From 7d0e1bb75dcb8d6d4fa843f95610fd1adec803f0 Mon Sep 17 00:00:00 2001
From: Martin Jones
Date: Tue, 13 Sep 2011 09:57:15 +1000
Subject: Backport imports directory caching performance optimization
Backported from Qt5 change a6da3b26
Change-Id: Ib1715f3d5c144775e475426ce4471000b5ae0645
Task-number: QTBUG-15899
---
src/declarative/qml/qdeclarativedirparser.cpp | 29 +++++++
src/declarative/qml/qdeclarativedirparser_p.h | 4 +
src/declarative/qml/qdeclarativeimport.cpp | 103 ++++++++++++-------------
src/declarative/qml/qdeclarativeimport_p.h | 2 +
src/declarative/qml/qdeclarativetypeloader.cpp | 99 +++++++++++++++++++++++-
src/declarative/qml/qdeclarativetypeloader_p.h | 9 +++
6 files changed, 190 insertions(+), 56 deletions(-)
diff --git a/src/declarative/qml/qdeclarativedirparser.cpp b/src/declarative/qml/qdeclarativedirparser.cpp
index 0a7a749..401eea9 100644
--- a/src/declarative/qml/qdeclarativedirparser.cpp
+++ b/src/declarative/qml/qdeclarativedirparser.cpp
@@ -41,8 +41,10 @@
#include "private/qdeclarativedirparser_p.h"
#include "qdeclarativeerror.h"
+#include
#include
+#include
#include
QT_BEGIN_NAMESPACE
@@ -66,6 +68,16 @@ void QDeclarativeDirParser::setUrl(const QUrl &url)
_url = url;
}
+QString QDeclarativeDirParser::fileSource() const
+{
+ return _filePathSouce;
+}
+
+void QDeclarativeDirParser::setFileSource(const QString &filePath)
+{
+ _filePathSouce = filePath;
+}
+
QString QDeclarativeDirParser::source() const
{
return _source;
@@ -92,6 +104,23 @@ bool QDeclarativeDirParser::parse()
_plugins.clear();
_components.clear();
+ if (_source.isEmpty() && !_filePathSouce.isEmpty()) {
+ QFile file(_filePathSouce);
+ if (!QDeclarative_isFileCaseCorrect(_filePathSouce)) {
+ QDeclarativeError error;
+ error.setDescription(QString::fromUtf8("cannot load module \"%1\": File name case mismatch for \"%2\"").arg(_url.toString()).arg(_filePathSouce));
+ _errors.prepend(error);
+ return false;
+ } else if (file.open(QFile::ReadOnly)) {
+ _source = QString::fromUtf8(file.readAll());
+ } else {
+ QDeclarativeError error;
+ error.setDescription(QString::fromUtf8("module \"%1\" definition \"%2\" not readable").arg(_url.toString()).arg(_filePathSouce));
+ _errors.prepend(error);
+ return false;
+ }
+ }
+
QTextStream stream(&_source);
int lineNumber = 0;
diff --git a/src/declarative/qml/qdeclarativedirparser_p.h b/src/declarative/qml/qdeclarativedirparser_p.h
index 7db7d8c..347b229 100644
--- a/src/declarative/qml/qdeclarativedirparser_p.h
+++ b/src/declarative/qml/qdeclarativedirparser_p.h
@@ -73,6 +73,9 @@ public:
QString source() const;
void setSource(const QString &source);
+ QString fileSource() const;
+ void setFileSource(const QString &filePath);
+
bool isParsed() const;
bool parse();
@@ -116,6 +119,7 @@ private:
QList _errors;
QUrl _url;
QString _source;
+ QString _filePathSouce;
QList _components;
QList _plugins;
unsigned _isParsed: 1;
diff --git a/src/declarative/qml/qdeclarativeimport.cpp b/src/declarative/qml/qdeclarativeimport.cpp
index 6e0b348..44fc849 100644
--- a/src/declarative/qml/qdeclarativeimport.cpp
+++ b/src/declarative/qml/qdeclarativeimport.cpp
@@ -79,16 +79,16 @@ public:
QList qmlDirComponents;
- bool find_helper(int i, const QByteArray& type, int *vmajor, int *vminor,
+ bool find_helper(QDeclarativeTypeLoader *typeLoader, int i, const QByteArray& type, int *vmajor, int *vminor,
QDeclarativeType** type_return, QUrl* url_return,
QUrl *base = 0, bool *typeRecursionDetected = 0);
- bool find(const QByteArray& type, int *vmajor, int *vminor, QDeclarativeType** type_return,
+ bool find(QDeclarativeTypeLoader *typeLoader, const QByteArray& type, int *vmajor, int *vminor, QDeclarativeType** type_return,
QUrl* url_return, QUrl *base = 0, QString *errorString = 0);
};
class QDeclarativeImportsPrivate {
public:
- QDeclarativeImportsPrivate();
+ QDeclarativeImportsPrivate(QDeclarativeTypeLoader *loader);
~QDeclarativeImportsPrivate();
bool importExtension(const QString &absoluteFilePath, const QString &uri,
@@ -111,6 +111,7 @@ public:
QSet qmlDirFilesForWhichPluginsHaveBeenLoaded;
QDeclarativeImportedNamespace unqualifiedset;
QHash set;
+ QDeclarativeTypeLoader *typeLoader;
};
/*!
@@ -134,9 +135,12 @@ QDeclarativeImports::operator =(const QDeclarativeImports ©)
return *this;
}
-QDeclarativeImports::QDeclarativeImports()
-: d(new QDeclarativeImportsPrivate)
-{
+QDeclarativeImports::QDeclarativeImports()
+ : d(new QDeclarativeImportsPrivate(0)){
+}
+
+QDeclarativeImports::QDeclarativeImports(QDeclarativeTypeLoader *typeLoader)
+ : d(new QDeclarativeImportsPrivate(typeLoader)){
}
QDeclarativeImports::~QDeclarativeImports()
@@ -268,10 +272,11 @@ bool QDeclarativeImports::resolveType(QDeclarativeImportedNamespace* ns, const Q
QDeclarativeType** type_return, QUrl* url_return,
int *vmaj, int *vmin) const
{
- return ns->find(type,vmaj,vmin,type_return,url_return);
+ Q_ASSERT(d->typeLoader);
+ return ns->find(d->typeLoader,type,vmaj,vmin,type_return,url_return);
}
-bool QDeclarativeImportedNamespace::find_helper(int i, const QByteArray& type, int *vmajor, int *vminor,
+bool QDeclarativeImportedNamespace::find_helper(QDeclarativeTypeLoader *typeLoader, int i, const QByteArray& type, int *vmajor, int *vminor,
QDeclarativeType** type_return, QUrl* url_return,
QUrl *base, bool *typeRecursionDetected)
{
@@ -291,7 +296,6 @@ bool QDeclarativeImportedNamespace::find_helper(int i, const QByteArray& type, i
return true;
}
- QUrl url = QUrl(urls.at(i) + QLatin1Char('/') + QString::fromUtf8(type) + QLatin1String(".qml"));
QDeclarativeDirComponents qmldircomponents = qmlDirComponents.at(i);
bool typeWasDeclaredInQmldir = false;
@@ -303,6 +307,7 @@ bool QDeclarativeImportedNamespace::find_helper(int i, const QByteArray& type, i
// importing version -1 means import ALL versions
if ((vmaj == -1) || (c.majorVersion < vmaj || (c.majorVersion == vmaj && vmin >= c.minorVersion))) {
+ QUrl url = QUrl(urls.at(i) + QLatin1Char('/') + QString::fromUtf8(type) + QLatin1String(".qml"));
QUrl candidate = url.resolved(QUrl(c.fileName));
if (c.internal && base) {
if (base->resolved(QUrl(c.fileName)) != candidate)
@@ -323,8 +328,9 @@ bool QDeclarativeImportedNamespace::find_helper(int i, const QByteArray& type, i
if (!typeWasDeclaredInQmldir && !isLibrary.at(i)) {
// XXX search non-files too! (eg. zip files, see QT-524)
- QFileInfo f(QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url));
- if (f.exists()) {
+ QUrl url = QUrl(urls.at(i) + QLatin1Char('/') + QString::fromUtf8(type) + QLatin1String(".qml"));
+ QString file = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url);
+ if (!typeLoader->absoluteFilePath(file).isEmpty()) {
if (base && *base == url) { // no recursion
if (typeRecursionDetected)
*typeRecursionDetected = true;
@@ -338,9 +344,8 @@ bool QDeclarativeImportedNamespace::find_helper(int i, const QByteArray& type, i
return false;
}
-QDeclarativeImportsPrivate::QDeclarativeImportsPrivate()
-: ref(1)
-{
+QDeclarativeImportsPrivate::QDeclarativeImportsPrivate(QDeclarativeTypeLoader *loader)
+ : ref(1), typeLoader(loader){
}
QDeclarativeImportsPrivate::~QDeclarativeImportsPrivate()
@@ -353,33 +358,19 @@ bool QDeclarativeImportsPrivate::importExtension(const QString &absoluteFilePath
QDeclarativeImportDatabase *database,
QDeclarativeDirComponents* components, QString *errorString)
{
- QFile file(absoluteFilePath);
- QString filecontent;
- if (!QDeclarative_isFileCaseCorrect(absoluteFilePath)) {
- if (errorString)
- *errorString = QDeclarativeImportDatabase::tr("cannot load module \"%1\": File name case mismatch for \"%2\"").arg(uri).arg(absoluteFilePath);
- return false;
- } else if (file.open(QFile::ReadOnly)) {
- filecontent = QString::fromUtf8(file.readAll());
- if (qmlImportTrace())
- qDebug().nospace() << "QDeclarativeImports(" << qPrintable(base.toString()) << "::importExtension: "
- << "loaded " << absoluteFilePath;
- } else {
+ Q_ASSERT(typeLoader);
+ const QDeclarativeDirParser *qmldirParser = typeLoader->qmlDirParser(absoluteFilePath);
+ if (qmldirParser->hasError()) {
if (errorString)
*errorString = QDeclarativeImportDatabase::tr("module \"%1\" definition \"%2\" not readable").arg(uri).arg(absoluteFilePath);
return false;
}
- QDir dir = QFileInfo(file).dir();
-
- QDeclarativeDirParser qmldirParser;
- qmldirParser.setSource(filecontent);
- qmldirParser.parse();
if (! qmlDirFilesForWhichPluginsHaveBeenLoaded.contains(absoluteFilePath)) {
qmlDirFilesForWhichPluginsHaveBeenLoaded.insert(absoluteFilePath);
-
- foreach (const QDeclarativeDirParser::Plugin &plugin, qmldirParser.plugins()) {
+ QDir dir = QFileInfo(absoluteFilePath).dir();
+ foreach (const QDeclarativeDirParser::Plugin &plugin, qmldirParser->plugins()) {
QString resolvedFilePath = database->resolvePlugin(dir, plugin.path, plugin.name);
#if defined(QT_LIBINFIX) && defined(Q_OS_SYMBIAN)
@@ -404,7 +395,7 @@ bool QDeclarativeImportsPrivate::importExtension(const QString &absoluteFilePath
}
if (components)
- *components = qmldirParser.components();
+ *components = qmldirParser->components();
return true;
}
@@ -445,6 +436,7 @@ bool QDeclarativeImportsPrivate::add(const QDeclarativeDirComponents &qmldircomp
QDeclarativeScriptParser::Import::Type importType,
QDeclarativeImportDatabase *database, QString *errorString)
{
+ Q_ASSERT(typeLoader);
QDeclarativeDirComponents qmldircomponents = qmldircomponentsnetwork;
QString uri = uri_arg;
QDeclarativeImportedNamespace *s;
@@ -462,20 +454,20 @@ bool QDeclarativeImportsPrivate::add(const QDeclarativeDirComponents &qmldircomp
url.replace(QLatin1Char('.'), QLatin1Char('/'));
bool found = false;
QString dir;
-
+ QString qmldir;
// step 1: search for extension with fully encoded version number
if (vmaj >= 0 && vmin >= 0) {
foreach (const QString &p, database->fileImportPath) {
dir = p+QLatin1Char('/')+url;
+ qmldir = dir+QString(QLatin1String(".%1.%2")).arg(vmaj).arg(vmin)+QLatin1String("/qmldir");
- QFileInfo fi(dir+QString(QLatin1String(".%1.%2")).arg(vmaj).arg(vmin)+QLatin1String("/qmldir"));
- const QString absoluteFilePath = fi.absoluteFilePath();
-
- if (fi.isFile()) {
+ QString absoluteFilePath = typeLoader->absoluteFilePath(qmldir);
+ if (!absoluteFilePath.isEmpty()) {
found = true;
- url = QUrl::fromLocalFile(fi.absolutePath()).toString();
+ QString absolutePath = absoluteFilePath.left(absoluteFilePath.lastIndexOf(QLatin1Char('/')));
+ url = QUrl::fromLocalFile(absolutePath).toString();
uri = resolvedUri(dir, database);
if (!importExtension(absoluteFilePath, uri, database, &qmldircomponents, errorString))
return false;
@@ -487,14 +479,14 @@ bool QDeclarativeImportsPrivate::add(const QDeclarativeDirComponents &qmldircomp
if (vmaj >= 0 && vmin >= 0) {
foreach (const QString &p, database->fileImportPath) {
dir = p+QLatin1Char('/')+url;
+ qmldir = dir+QString(QLatin1String(".%1")).arg(vmaj)+QLatin1String("/qmldir");
- QFileInfo fi(dir+QString(QLatin1String(".%1")).arg(vmaj)+QLatin1String("/qmldir"));
- const QString absoluteFilePath = fi.absoluteFilePath();
-
- if (fi.isFile()) {
+ QString absoluteFilePath = typeLoader->absoluteFilePath(qmldir);
+ if (!absoluteFilePath.isEmpty()) {
found = true;
- url = QUrl::fromLocalFile(fi.absolutePath()).toString();
+ QString absolutePath = absoluteFilePath.left(absoluteFilePath.lastIndexOf(QLatin1Char('/')));
+ url = QUrl::fromLocalFile(absolutePath).toString();
uri = resolvedUri(dir, database);
if (!importExtension(absoluteFilePath, uri, database, &qmldircomponents, errorString))
return false;
@@ -507,14 +499,14 @@ bool QDeclarativeImportsPrivate::add(const QDeclarativeDirComponents &qmldircomp
foreach (const QString &p, database->fileImportPath) {
dir = p+QLatin1Char('/')+url;
+ qmldir = dir+QLatin1String("/qmldir");
- QFileInfo fi(dir+QLatin1String("/qmldir"));
- const QString absoluteFilePath = fi.absoluteFilePath();
-
- if (fi.isFile()) {
+ QString absoluteFilePath = typeLoader->absoluteFilePath(qmldir);
+ if (!absoluteFilePath.isEmpty()) {
found = true;
- url = QUrl::fromLocalFile(fi.absolutePath()).toString();
+ QString absolutePath = absoluteFilePath.left(absoluteFilePath.lastIndexOf(QLatin1Char('/')));
+ url = QUrl::fromLocalFile(absolutePath).toString();
uri = resolvedUri(dir, database);
if (!importExtension(absoluteFilePath, uri, database, &qmldircomponents, errorString))
return false;
@@ -552,7 +544,7 @@ bool QDeclarativeImportsPrivate::add(const QDeclarativeDirComponents &qmldircomp
uri = resolvedUri(QDeclarativeEnginePrivate::urlToLocalFileOrQrc(base.resolved(QUrl(uri))), database);
if (uri.endsWith(QLatin1Char('/')))
uri.chop(1);
- if (QFile::exists(localFileOrQrc)) {
+ if (!typeLoader->absoluteFilePath(localFileOrQrc).isEmpty()) {
if (!importExtension(localFileOrQrc,uri,database,&qmldircomponents,errorString))
return false;
}
@@ -615,6 +607,7 @@ bool QDeclarativeImportsPrivate::add(const QDeclarativeDirComponents &qmldircomp
bool QDeclarativeImportsPrivate::find(const QByteArray& type, int *vmajor, int *vminor, QDeclarativeType** type_return,
QUrl* url_return, QString *errorString)
{
+ Q_ASSERT(typeLoader);
QDeclarativeImportedNamespace *s = 0;
int slash = type.indexOf('/');
if (slash >= 0) {
@@ -636,7 +629,7 @@ bool QDeclarativeImportsPrivate::find(const QByteArray& type, int *vmajor, int *
}
QByteArray unqualifiedtype = slash < 0 ? type : type.mid(slash+1); // common-case opt (QString::mid works fine, but slower)
if (s) {
- if (s->find(unqualifiedtype,vmajor,vminor,type_return,url_return, &base, errorString))
+ if (s->find(typeLoader, unqualifiedtype,vmajor,vminor,type_return,url_return, &base, errorString))
return true;
if (s->urls.count() == 1 && !s->isLibrary[0] && url_return && s != &unqualifiedset) {
// qualified, and only 1 url
@@ -653,16 +646,16 @@ QDeclarativeImportedNamespace *QDeclarativeImportsPrivate::findNamespace(const Q
return set.value(type);
}
-bool QDeclarativeImportedNamespace::find(const QByteArray& type, int *vmajor, int *vminor, QDeclarativeType** type_return,
+bool QDeclarativeImportedNamespace::find(QDeclarativeTypeLoader *typeLoader, const QByteArray& type, int *vmajor, int *vminor, QDeclarativeType** type_return,
QUrl* url_return, QUrl *base, QString *errorString)
{
bool typeRecursionDetected = false;
for (int i=0; i
#include
#include
+#include
#include
QT_BEGIN_NAMESPACE
+/*
+Returns the set of QML files in path (qmldir, *.qml, *.js). The caller
+is responsible for deleting the returned data.
+*/
+static QSet *qmlFilesInDirectory(const QString &path)
+{
+ QDirIterator dir(path, QDir::Files);
+ if (!dir.hasNext())
+ return 0;
+ QSet *files = new QSet;
+ while (dir.hasNext()) {
+ dir.next();
+ QString fileName = dir.fileName();
+ if (fileName == QLatin1String("qmldir")
+ || fileName.endsWith(QLatin1String(".qml"))
+ || fileName.endsWith(QLatin1String(".js"))) {
+#if defined(Q_OS_WIN32) || defined(Q_OS_WINCE) || defined(Q_OS_DARWIN) || defined(Q_OS_SYMBIAN)
+ fileName = fileName.toLower();
+#endif
+ files->insert(fileName);
+ }
+ }
+ return files;
+}
+
+
/*!
\class QDeclarativeDataBlob
\brief The QDeclarativeDataBlob encapsulates a data request that can be issued to a QDeclarativeDataLoader.
@@ -715,6 +742,72 @@ QDeclarativeQmldirData *QDeclarativeTypeLoader::getQmldir(const QUrl &url)
return qmldirData;
}
+/*!
+Returns the absolute filename of path via a directory cache for files named
+"qmldir", "*.qml", "*.js"
+Returns a empty string if the path does not exist.
+*/
+QString QDeclarativeTypeLoader::absoluteFilePath(const QString &path)
+{
+ if (path.isEmpty())
+ return QString();
+ if (path.at(0) == QLatin1Char(':')) {
+ // qrc resource
+ QFileInfo fileInfo(path);
+ return fileInfo.isFile() ? fileInfo.absoluteFilePath() : QString();
+ }
+#if defined(Q_OS_WIN32) || defined(Q_OS_WINCE) || defined(Q_OS_DARWIN) || defined(Q_OS_SYMBIAN)
+ QString lowPath(path.toLower());
+#else
+ QString lowPath(path);
+#endif
+ int lastSlash = lowPath.lastIndexOf(QLatin1Char('/'));
+ QString dirPath = lowPath.left(lastSlash);
+
+ StringSet *fileSet = 0;
+ QHash::const_iterator it = m_importDirCache.find(dirPath);
+ if (it == m_importDirCache.end()) {
+ StringSet *files = qmlFilesInDirectory(path.left(lastSlash));
+ m_importDirCache.insert(dirPath, files);
+ fileSet = files;
+ } else {
+ fileSet = *it;
+ }
+ if (!fileSet)
+ return QString();
+
+ QString absoluteFilePath = fileSet->contains(QString(lowPath.constData()+lastSlash+1, lowPath.length()-lastSlash-1)) ? path : QString();
+ if (absoluteFilePath.length() > 2 && absoluteFilePath.at(0) != QLatin1Char('/') && absoluteFilePath.at(1) != QLatin1Char(':'))
+ absoluteFilePath = QFileInfo(absoluteFilePath).absoluteFilePath();
+
+ return absoluteFilePath;
+}
+
+/*!
+Return a QDeclarativeDirParser for absoluteFilePath. The QDeclarativeDirParser may be cached.
+*/
+const QDeclarativeDirParser *QDeclarativeTypeLoader::qmlDirParser(const QString &absoluteFilePath)
+{
+ QDeclarativeDirParser *qmldirParser;
+#if defined(Q_OS_WIN32) || defined(Q_OS_WINCE) || defined(Q_OS_DARWIN) || defined(Q_OS_SYMBIAN)
+ QString lowPath(absoluteFilePath.toLower());
+#else
+ QString lowPath(absoluteFilePath);
+#endif
+ QHash::const_iterator it = m_importQmlDirCache.find(lowPath);
+ if (it == m_importQmlDirCache.end()) {
+ qmldirParser = new QDeclarativeDirParser;
+ qmldirParser->setFileSource(absoluteFilePath);
+ qmldirParser->setUrl(QUrl::fromLocalFile(absoluteFilePath));
+ qmldirParser->parse();
+ m_importQmlDirCache.insert(lowPath, qmldirParser);
+ } else {
+ qmldirParser = *it;
+ }
+
+ return qmldirParser;
+}
+
void QDeclarativeTypeLoader::clearCache()
{
for (TypeCache::Iterator iter = m_typeCache.begin(); iter != m_typeCache.end(); ++iter)
@@ -723,16 +816,20 @@ void QDeclarativeTypeLoader::clearCache()
(*iter)->release();
for (QmldirCache::Iterator iter = m_qmldirCache.begin(); iter != m_qmldirCache.end(); ++iter)
(*iter)->release();
+ qDeleteAll(m_importDirCache);
+ qDeleteAll(m_importQmlDirCache);
m_typeCache.clear();
m_scriptCache.clear();
m_qmldirCache.clear();
+ m_importDirCache.clear();
+ m_importQmlDirCache.clear();
}
QDeclarativeTypeData::QDeclarativeTypeData(const QUrl &url, QDeclarativeTypeLoader::Options options,
QDeclarativeTypeLoader *manager)
-: QDeclarativeDataBlob(url, QmlFile), m_options(options), m_typesResolved(false),
+: QDeclarativeDataBlob(url, QmlFile), m_options(options), m_imports(manager), m_typesResolved(false),
m_compiledData(0), m_typeLoader(manager)
{
}
diff --git a/src/declarative/qml/qdeclarativetypeloader_p.h b/src/declarative/qml/qdeclarativetypeloader_p.h
index 56b6636..c0dce3e 100644
--- a/src/declarative/qml/qdeclarativetypeloader_p.h
+++ b/src/declarative/qml/qdeclarativetypeloader_p.h
@@ -198,14 +198,23 @@ public:
QDeclarativeScriptData *getScript(const QUrl &);
QDeclarativeQmldirData *getQmldir(const QUrl &);
+
+ QString absoluteFilePath(const QString &path);
+ const QDeclarativeDirParser *qmlDirParser(const QString &absoluteFilePath);
+
private:
typedef QHash TypeCache;
typedef QHash ScriptCache;
typedef QHash QmldirCache;
+ typedef QSet StringSet;
+ typedef QHash ImportDirCache;
+ typedef QHash ImportQmlDirCache;
TypeCache m_typeCache;
ScriptCache m_scriptCache;
QmldirCache m_qmldirCache;
+ ImportDirCache m_importDirCache;
+ ImportQmlDirCache m_importQmlDirCache;
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QDeclarativeTypeLoader::Options)
--
cgit v0.12
From 09cd2f818208a83489fae034b80e6497b7cc83af Mon Sep 17 00:00:00 2001
From: Martin Jones
Date: Wed, 14 Sep 2011 16:24:30 +1000
Subject: Fix StrictlyEnforceRange with snapOneItem/Row and header behavior, pt
2
Change cf23188de237009136fa1480ab8fd9e3ca364769 changed the positioning
of a view with StrictlyEnforceRange, snapOneItem/Row, and a header,
such that the view was positioned at the beginning of the header,
rather than on the first item.
Change f85819fe083ae7c6804c884de68e906d153a6d11 partially fixed the
problem. This change handles the case of the header/footer being
large enough to cause a snap item not to be found when the view
is dragged beyond the first/last item. In this case snap to the
currentItem.
Change-Id: I08b7e61496a79f71c3b40fafaca985ae90f88503
Task-number: QTTH-1501
Reviewed-by: Bea Lam
---
src/declarative/graphicsitems/qdeclarativegridview.cpp | 10 ++++++++++
src/declarative/graphicsitems/qdeclarativelistview.cpp | 12 +++++++++++-
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp
index 5a5b60e..ff88e31 100644
--- a/src/declarative/graphicsitems/qdeclarativegridview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp
@@ -1081,7 +1081,17 @@ void QDeclarativeGridViewPrivate::fixup(AxisData &data, qreal minExtent, qreal m
tempPosition -= bias;
}
FxGridItem *topItem = snapItemAt(tempPosition+highlightStart);
+ if (!topItem && strictHighlightRange && currentItem) {
+ // StrictlyEnforceRange always keeps an item in range
+ updateHighlight();
+ topItem = currentItem;
+ }
FxGridItem *bottomItem = snapItemAt(tempPosition+highlightEnd);
+ if (!bottomItem && strictHighlightRange && currentItem) {
+ // StrictlyEnforceRange always keeps an item in range
+ updateHighlight();
+ bottomItem = currentItem;
+ }
qreal pos;
if (topItem && bottomItem && strictHighlightRange) {
qreal topPos = qMin(topItem->rowPos() - highlightStart, -maxExtent);
diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp
index 70be7a7..6c8e99b 100644
--- a/src/declarative/graphicsitems/qdeclarativelistview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp
@@ -1324,10 +1324,20 @@ void QDeclarativeListViewPrivate::fixup(AxisData &data, qreal minExtent, qreal m
tempPosition -= bias;
}
FxListItem *topItem = snapItemAt(tempPosition+highlightStart);
+ if (!topItem && strictHighlightRange && currentItem) {
+ // StrictlyEnforceRange always keeps an item in range
+ updateHighlight();
+ topItem = currentItem;
+ }
FxListItem *bottomItem = snapItemAt(tempPosition+highlightEnd);
+ if (!bottomItem && strictHighlightRange && currentItem) {
+ // StrictlyEnforceRange always keeps an item in range
+ updateHighlight();
+ bottomItem = currentItem;
+ }
qreal pos;
bool isInBounds = -position() > maxExtent && -position() <= minExtent;
- if (topItem && isInBounds) {
+ if (topItem && (isInBounds || strictHighlightRange)) {
if (topItem->index == 0 && header && tempPosition+highlightStart < header->position()+header->size()/2 && !strictHighlightRange) {
pos = isRightToLeft() ? - header->position() + highlightStart - size() : header->position() - highlightStart;
} else {
--
cgit v0.12
From 2c1e828af311bb103a6f02513cd339973e9582f6 Mon Sep 17 00:00:00 2001
From: Frederik Gladhorn
Date: Wed, 28 Sep 2011 17:11:31 +0200
Subject: Fix typo when updating accessible treeview selection.
Reviewed-by: Gabi
---
src/gui/itemviews/qtableview.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gui/itemviews/qtableview.cpp b/src/gui/itemviews/qtableview.cpp
index 6f532eb..356f187 100644
--- a/src/gui/itemviews/qtableview.cpp
+++ b/src/gui/itemviews/qtableview.cpp
@@ -3205,7 +3205,7 @@ void QTableView::selectionChanged(const QItemSelection &selected,
QModelIndex desel = deselected.indexes().value(0);
if (desel.isValid()) {
#ifdef Q_WS_X11
- int entry = d->accessibleTable2Index(sel);
+ int entry = d->accessibleTable2Index(desel);
QAccessible::updateAccessibility(this, entry, QAccessible::SelectionRemove);
#else
int entry = visualIndex(sel);
--
cgit v0.12
From d63910575949106f84dacf04abaa14fc866aa66b Mon Sep 17 00:00:00 2001
From: David Faure
Date: Fri, 3 Dec 2010 11:34:09 +0100
Subject: Set missing flags in the option when rendering QTreeView drag pixmap
QAbstractItemViewPrivate::renderToPixmap was not setting all the flags
that the normal QTreeView painting sets:
option.showDecorationSelected, option.viewItemPosition (so the drag pixmap
looked wrong on Windows 7, with rects around each cell), and then the
unittest also discovered that State_Children/State_Sibling wasn't set either.
Task-number: QTBUG-15834
Merge-request: 2517
Reviewed-by: Gabriel
---
src/gui/itemviews/qabstractitemview.cpp | 1 +
src/gui/itemviews/qabstractitemview_p.h | 2 +
src/gui/itemviews/qtreeview.cpp | 113 +++++++++++++++++++++-----------
src/gui/itemviews/qtreeview_p.h | 5 ++
tests/auto/qtreeview/tst_qtreeview.cpp | 11 +++-
5 files changed, 92 insertions(+), 40 deletions(-)
diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp
index ded4d63..1676c46 100644
--- a/src/gui/itemviews/qabstractitemview.cpp
+++ b/src/gui/itemviews/qabstractitemview.cpp
@@ -4238,6 +4238,7 @@ QPixmap QAbstractItemViewPrivate::renderToPixmap(const QModelIndexList &indexes,
for (int j = 0; j < paintPairs.count(); ++j) {
option.rect = paintPairs.at(j).first.translated(-r->topLeft());
const QModelIndex ¤t = paintPairs.at(j).second;
+ adjustViewOptionsForIndex(&option, current);
delegateForIndex(current)->paint(&painter, option, current);
}
return pixmap;
diff --git a/src/gui/itemviews/qabstractitemview_p.h b/src/gui/itemviews/qabstractitemview_p.h
index 04babde..b742529 100644
--- a/src/gui/itemviews/qabstractitemview_p.h
+++ b/src/gui/itemviews/qabstractitemview_p.h
@@ -193,6 +193,8 @@ public:
#endif
virtual QItemViewPaintPairs draggablePaintPairs(const QModelIndexList &indexes, QRect *r) const;
+ // reimplemented in subclasses
+ virtual void adjustViewOptionsForIndex(QStyleOptionViewItemV4*, const QModelIndex&) const {}
inline void releaseEditor(QWidget *editor) const {
if (editor) {
diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
index 9228ac8..868cd92 100644
--- a/src/gui/itemviews/qtreeview.cpp
+++ b/src/gui/itemviews/qtreeview.cpp
@@ -1378,6 +1378,23 @@ QItemViewPaintPairs QTreeViewPrivate::draggablePaintPairs(const QModelIndexList
return ret;
}
+void QTreeViewPrivate::adjustViewOptionsForIndex(QStyleOptionViewItemV4 *option, const QModelIndex ¤t) const
+{
+ const int row = current.row();
+ option->state = option->state | (viewItems.at(row).expanded ? QStyle::State_Open : QStyle::State_None)
+ | (viewItems.at(row).hasChildren ? QStyle::State_Children : QStyle::State_None)
+ | (viewItems.at(row).hasMoreSiblings ? QStyle::State_Sibling : QStyle::State_None);
+
+ option->showDecorationSelected = (selectionBehavior & QTreeView::SelectRows)
+ || option->showDecorationSelected;
+
+ QVector logicalIndices;
+ QVector viewItemPosList; // vector of left/middle/end for each logicalIndex
+ calcLogicalIndices(&logicalIndices, &viewItemPosList);
+ int logicalIndex = header->logicalIndex(current.column());
+ option->viewItemPosition = viewItemPosList.at(logicalIndex);
+}
+
/*!
\since 4.2
@@ -1463,6 +1480,59 @@ static inline bool ancestorOf(QObject *widget, QObject *other)
return false;
}
+void QTreeViewPrivate::calcLogicalIndices(QVector *logicalIndices, QVector *itemPositions) const
+{
+ const int left = (spanning ? header->visualIndex(0) : leftAndRight.first);
+ const int right = (spanning ? header->visualIndex(0) : leftAndRight.second);
+ const int columnCount = header->count();
+ /* 'left' and 'right' are the left-most and right-most visible visual indices.
+ Compute the first visible logical indices before and after the left and right.
+ We will use these values to determine the QStyleOptionViewItemV4::viewItemPosition. */
+ int logicalIndexBeforeLeft = -1, logicalIndexAfterRight = -1;
+ for (int visualIndex = left - 1; visualIndex >= 0; --visualIndex) {
+ int logicalIndex = header->logicalIndex(visualIndex);
+ if (!header->isSectionHidden(logicalIndex)) {
+ logicalIndexBeforeLeft = logicalIndex;
+ break;
+ }
+ }
+
+ for (int visualIndex = left; visualIndex < columnCount; ++visualIndex) {
+ int logicalIndex = header->logicalIndex(visualIndex);
+ if (!header->isSectionHidden(logicalIndex)) {
+ if (visualIndex > right) {
+ logicalIndexAfterRight = logicalIndex;
+ break;
+ }
+ logicalIndices->append(logicalIndex);
+ }
+ }
+
+ itemPositions->resize(logicalIndices->count());
+ for (int currentLogicalSection = 0; currentLogicalSection < logicalIndices->count(); ++currentLogicalSection) {
+ const int headerSection = logicalIndices->at(currentLogicalSection);
+ // determine the viewItemPosition depending on the position of column 0
+ int nextLogicalSection = currentLogicalSection + 1 >= logicalIndices->count()
+ ? logicalIndexAfterRight
+ : logicalIndices->at(currentLogicalSection + 1);
+ int prevLogicalSection = currentLogicalSection - 1 < 0
+ ? logicalIndexBeforeLeft
+ : logicalIndices->at(currentLogicalSection - 1);
+ QStyleOptionViewItemV4::ViewItemPosition pos;
+ if (columnCount == 1 || (nextLogicalSection == 0 && prevLogicalSection == -1)
+ || (headerSection == 0 && nextLogicalSection == -1) || spanning)
+ pos = QStyleOptionViewItemV4::OnlyOne;
+ else if (headerSection == 0 || (nextLogicalSection != 0 && prevLogicalSection == -1))
+ pos = QStyleOptionViewItemV4::Beginning;
+ else if (nextLogicalSection == 0 || nextLogicalSection == -1)
+ pos = QStyleOptionViewItemV4::End;
+ else
+ pos = QStyleOptionViewItemV4::Middle;
+ (*itemPositions)[currentLogicalSection] = pos;
+ }
+}
+
+
/*!
Draws the row in the tree view that contains the model item \a index,
using the \a painter given. The \a option control how the item is
@@ -1531,33 +1601,13 @@ void QTreeView::drawRow(QPainter *painter, const QStyleOptionViewItem &option,
int width, height = option.rect.height();
int position;
QModelIndex modelIndex;
- int columnCount = header->count();
const bool hoverRow = selectionBehavior() == QAbstractItemView::SelectRows
&& index.parent() == hover.parent()
&& index.row() == hover.row();
- /* 'left' and 'right' are the left-most and right-most visible visual indices.
- Compute the first visible logical indices before and after the left and right.
- We will use these values to determine the QStyleOptionViewItemV4::viewItemPosition. */
- int logicalIndexBeforeLeft = -1, logicalIndexAfterRight = -1;
- for (int visualIndex = left - 1; visualIndex >= 0; --visualIndex) {
- int logicalIndex = header->logicalIndex(visualIndex);
- if (!header->isSectionHidden(logicalIndex)) {
- logicalIndexBeforeLeft = logicalIndex;
- break;
- }
- }
- QVector logicalIndices; // vector of currently visibly logical indices
- for (int visualIndex = left; visualIndex < columnCount; ++visualIndex) {
- int logicalIndex = header->logicalIndex(visualIndex);
- if (!header->isSectionHidden(logicalIndex)) {
- if (visualIndex > right) {
- logicalIndexAfterRight = logicalIndex;
- break;
- }
- logicalIndices.append(logicalIndex);
- }
- }
+ QVector logicalIndices;
+ QVector viewItemPosList; // vector of left/middle/end for each logicalIndex
+ d->calcLogicalIndices(&logicalIndices, &viewItemPosList);
for (int currentLogicalSection = 0; currentLogicalSection < logicalIndices.count(); ++currentLogicalSection) {
int headerSection = logicalIndices.at(currentLogicalSection);
@@ -1579,22 +1629,7 @@ void QTreeView::drawRow(QPainter *painter, const QStyleOptionViewItem &option,
continue;
opt.state = state;
- // determine the viewItemPosition depending on the position of column 0
- int nextLogicalSection = currentLogicalSection + 1 >= logicalIndices.count()
- ? logicalIndexAfterRight
- : logicalIndices.at(currentLogicalSection + 1);
- int prevLogicalSection = currentLogicalSection - 1 < 0
- ? logicalIndexBeforeLeft
- : logicalIndices.at(currentLogicalSection - 1);
- if (columnCount == 1 || (nextLogicalSection == 0 && prevLogicalSection == -1)
- || (headerSection == 0 && nextLogicalSection == -1) || spanning)
- opt.viewItemPosition = QStyleOptionViewItemV4::OnlyOne;
- else if (headerSection == 0 || (nextLogicalSection != 0 && prevLogicalSection == -1))
- opt.viewItemPosition = QStyleOptionViewItemV4::Beginning;
- else if (nextLogicalSection == 0 || nextLogicalSection == -1)
- opt.viewItemPosition = QStyleOptionViewItemV4::End;
- else
- opt.viewItemPosition = QStyleOptionViewItemV4::Middle;
+ opt.viewItemPosition = viewItemPosList.at(currentLogicalSection);
// fake activeness when row editor has focus
if (indexWidgetHasFocus)
diff --git a/src/gui/itemviews/qtreeview_p.h b/src/gui/itemviews/qtreeview_p.h
index a9dc452..ef8f11c 100644
--- a/src/gui/itemviews/qtreeview_p.h
+++ b/src/gui/itemviews/qtreeview_p.h
@@ -97,6 +97,7 @@ public:
void initialize();
QItemViewPaintPairs draggablePaintPairs(const QModelIndexList &indexes, QRect *r) const;
+ void adjustViewOptionsForIndex(QStyleOptionViewItemV4 *option, const QModelIndex ¤t) const;
#ifndef QT_NO_ANIMATION
struct AnimatedOperation : public QVariantAnimation
@@ -167,6 +168,10 @@ public:
void paintAlternatingRowColors(QPainter *painter, QStyleOptionViewItemV4 *option, int y, int bottom) const;
+ // logicalIndices: vector of currently visibly logical indices
+ // itemPositions: vector of view item positions (beginning/middle/end/onlyone)
+ void calcLogicalIndices(QVector *logicalIndices, QVector *itemPositions) const;
+
QHeaderView *header;
int indent;
diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp
index facb982..c37a4ea 100644
--- a/tests/auto/qtreeview/tst_qtreeview.cpp
+++ b/tests/auto/qtreeview/tst_qtreeview.cpp
@@ -45,6 +45,7 @@
#include
#include
+#include
#include "../../shared/util.h"
//TESTED_CLASS=
@@ -112,6 +113,8 @@ struct PublicView : public QTreeView
inline QStyleOptionViewItem viewOptions() const { return QTreeView::viewOptions(); }
inline int sizeHintForColumn(int column) const { return QTreeView::sizeHintForColumn(column); }
+ inline void startDrag(Qt::DropActions supportedActions) { QTreeView::startDrag(supportedActions); }
+ QAbstractItemViewPrivate* aiv_priv() { return static_cast(d_ptr.data()); }
};
class tst_QTreeView : public QObject
@@ -2947,7 +2950,7 @@ void tst_QTreeView::styleOptionViewItem()
bool allCollapsed;
};
- QTreeView view;
+ PublicView view;
QStandardItemModel model;
view.setModel(&model);
MyDelegate delegate;
@@ -3006,6 +3009,12 @@ void tst_QTreeView::styleOptionViewItem()
QApplication::processEvents();
QTRY_VERIFY(delegate.count >= 4);
+ // test that the rendering of drag pixmap sets the correct options too (QTBUG-15834)
+ delegate.count = 0;
+ QItemSelection sel(model.index(0,0), model.index(0,3));
+ QRect rect;
+ view.aiv_priv()->renderToPixmap(sel.indexes(), &rect);
+ QTRY_VERIFY(delegate.count >= 4);
//test dynamic models
{
--
cgit v0.12
From 7d9ac9659568f77d3acf70f304fa152d3ecadcb1 Mon Sep 17 00:00:00 2001
From: Konstantin Ritt
Date: Thu, 29 Sep 2011 14:36:33 +0200
Subject: don't assume the PATH envvar is latin1-encoded
use Unicode getenv() version instead
Merge-request: 1344
Reviewed-by: Jan-Arve Saether
---
src/corelib/plugin/qsystemlibrary.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/corelib/plugin/qsystemlibrary.cpp b/src/corelib/plugin/qsystemlibrary.cpp
index bb9c82a..c983f38 100644
--- a/src/corelib/plugin/qsystemlibrary.cpp
+++ b/src/corelib/plugin/qsystemlibrary.cpp
@@ -115,7 +115,7 @@ HINSTANCE QSystemLibrary::load(const wchar_t *libraryName, bool onlySystemDirect
searchOrder << qSystemDirectory();
if (!onlySystemDirectory) {
- const QString PATH(QLatin1String(qgetenv("PATH").constData()));
+ const QString PATH = QString::fromWCharArray((const wchar_t *)_wgetenv(L"PATH"));
searchOrder << PATH.split(QLatin1Char(';'), QString::SkipEmptyParts);
}
QString fileName = QString::fromWCharArray(libraryName);
--
cgit v0.12
From 569228bb5d7759025f06b1963f3d4a1fc4e05694 Mon Sep 17 00:00:00 2001
From: Konstantin Ritt
Date: Thu, 29 Sep 2011 14:36:44 +0200
Subject: nano-opts, styling fixes
Merge-request: 1344
Reviewed-by: Jan-Arve Saether
---
src/corelib/plugin/qsystemlibrary.cpp | 13 ++++++-------
src/corelib/plugin/qsystemlibrary_p.h | 9 +++++----
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/corelib/plugin/qsystemlibrary.cpp b/src/corelib/plugin/qsystemlibrary.cpp
index c983f38..7296c5b 100644
--- a/src/corelib/plugin/qsystemlibrary.cpp
+++ b/src/corelib/plugin/qsystemlibrary.cpp
@@ -40,6 +40,7 @@
****************************************************************************/
#include "qsystemlibrary_p.h"
+
#include
#include
#include
@@ -91,7 +92,7 @@ HINSTANCE QSystemLibrary::load(const wchar_t *libraryName, bool onlySystemDirect
extern QString qAppFileName();
#endif
-static QString qSystemDirectory()
+static inline QString qSystemDirectory()
{
QVarLengthArray fullPath;
@@ -118,24 +119,22 @@ HINSTANCE QSystemLibrary::load(const wchar_t *libraryName, bool onlySystemDirect
const QString PATH = QString::fromWCharArray((const wchar_t *)_wgetenv(L"PATH"));
searchOrder << PATH.split(QLatin1Char(';'), QString::SkipEmptyParts);
}
- QString fileName = QString::fromWCharArray(libraryName);
- fileName.append(QLatin1String(".dll"));
+ const QString fileName = QString::fromWCharArray(libraryName) + QLatin1String(".dll");
// Start looking in the order specified
for (int i = 0; i < searchOrder.count(); ++i) {
QString fullPathAttempt = searchOrder.at(i);
- if (!fullPathAttempt.endsWith(QLatin1Char('\\'))) {
+ if (!fullPathAttempt.endsWith(QLatin1Char('\\')))
fullPathAttempt.append(QLatin1Char('\\'));
- }
fullPathAttempt.append(fileName);
HINSTANCE inst = ::LoadLibrary((const wchar_t *)fullPathAttempt.utf16());
if (inst != 0)
return inst;
}
- return 0;
+ return 0;
}
-#endif //Q_OS_WINCE
+#endif // !Q_OS_WINCE
QT_END_NAMESPACE
diff --git a/src/corelib/plugin/qsystemlibrary_p.h b/src/corelib/plugin/qsystemlibrary_p.h
index f20d0b6..88ab82c 100644
--- a/src/corelib/plugin/qsystemlibrary_p.h
+++ b/src/corelib/plugin/qsystemlibrary_p.h
@@ -85,9 +85,9 @@ public:
if (!m_handle)
return 0;
#ifdef Q_OS_WINCE
- return (void*)GetProcAddress(m_handle, (const wchar_t*)QString::fromLatin1(symbol).utf16());
+ return (void*)GetProcAddress(m_handle, (const wchar_t*)QString::fromLatin1(symbol).utf16());
#else
- return (void*)GetProcAddress(m_handle, symbol);
+ return (void*)GetProcAddress(m_handle, symbol);
#endif
}
@@ -97,6 +97,7 @@ public:
}
static Q_CORE_EXPORT HINSTANCE load(const wchar_t *lpFileName, bool onlySystemDirectory = true);
+
private:
HINSTANCE m_handle;
QString m_libraryName;
@@ -105,6 +106,6 @@ private:
QT_END_NAMESPACE
-#endif //Q_OS_WIN
+#endif // Q_OS_WIN
-#endif //QSYSTEMLIBRARY_P_H
+#endif // QSYSTEMLIBRARY_P_H
--
cgit v0.12
From f3f65928525465e20f40e89d0855a1f32de6d8a4 Mon Sep 17 00:00:00 2001
From: Andreas Aardal Hanssen
Date: Thu, 29 Sep 2011 14:54:15 +0200
Subject: Fix bug in QGraphicsItem::isVisibleTo().
Task-number: QTBUG-21612
Reviewed-by: James Perrett
Reviewed-by: Magne Pettersen Zachrisen
Merge-request: 1396
Reviewed-by: Jan-Arve Saether
---
src/gui/graphicsview/qgraphicsitem.cpp | 20 ++---
tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp | 108 +++++++++++++++++++++++++
2 files changed, 119 insertions(+), 9 deletions(-)
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index 9092593..f7ae045 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -2237,7 +2237,8 @@ bool QGraphicsItem::isVisible() const
returned. \a parent can be 0, in which case this function will return
whether the item is visible to the scene or not.
- An item may not be visible to its ancestors even if isVisible() is true. If
+ An item may not be visible to its ancestors even if isVisible() is true. It
+ may also be visible to its ancestors even if isVisible() is false. If
any ancestor is hidden, the item itself will be implicitly hidden, in which
case this function will return false.
@@ -2245,15 +2246,16 @@ bool QGraphicsItem::isVisible() const
*/
bool QGraphicsItem::isVisibleTo(const QGraphicsItem *parent) const
{
- if (!d_ptr->visible)
+ const QGraphicsItem *p = this;
+ if (d_ptr->explicitlyHidden)
return false;
- if (parent == this)
- return true;
- if (parentItem() && parentItem()->isVisibleTo(parent))
- return true;
- if (!parent && !parentItem())
- return true;
- return false;
+ do {
+ if (p == parent)
+ return true;
+ if (p->d_ptr->explicitlyHidden)
+ return false;
+ } while ((p = p->d_ptr->parent));
+ return parent == 0;
}
/*!
diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
index 9b834d5..b6a402e 100644
--- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -306,6 +306,7 @@ private slots:
void inputMethodHints();
void toolTip();
void visible();
+ void isVisibleTo();
void explicitlyVisible();
void enabled();
void explicitlyEnabled();
@@ -1138,6 +1139,113 @@ void tst_QGraphicsItem::visible()
QVERIFY(!item->hasFocus());
}
+void tst_QGraphicsItem::isVisibleTo()
+{
+ QGraphicsScene scene;
+ QGraphicsItem *parent = scene.addRect(QRectF(0, 0, 100, 100));
+ QGraphicsItem *child = scene.addRect(QRectF(25, 25, 50, 50));
+ QGraphicsItem *grandChild = scene.addRect(QRectF(50, 50, 50, 50));
+ QGraphicsItem *stranger = scene.addRect(100, 100, 100, 100);
+
+ child->setParentItem(parent);
+ grandChild->setParentItem(child);
+
+ QVERIFY(grandChild->isVisible());
+ QVERIFY(grandChild->isVisibleTo(grandChild));
+ QVERIFY(grandChild->isVisibleTo(child));
+ QVERIFY(grandChild->isVisibleTo(parent));
+ QVERIFY(grandChild->isVisibleTo(0));
+ QVERIFY(child->isVisible());
+ QVERIFY(child->isVisibleTo(child));
+ QVERIFY(child->isVisibleTo(parent));
+ QVERIFY(child->isVisibleTo(0));
+ QVERIFY(parent->isVisible());
+ QVERIFY(parent->isVisibleTo(parent));
+ QVERIFY(parent->isVisibleTo(0));
+ QVERIFY(!parent->isVisibleTo(child));
+ QVERIFY(!child->isVisibleTo(grandChild));
+ QVERIFY(!grandChild->isVisibleTo(stranger));
+ QVERIFY(!child->isVisibleTo(stranger));
+ QVERIFY(!parent->isVisibleTo(stranger));
+ QVERIFY(!stranger->isVisibleTo(grandChild));
+ QVERIFY(!stranger->isVisibleTo(child));
+ QVERIFY(!stranger->isVisibleTo(parent));
+
+ // Case 1: only parent is explicitly hidden
+ parent->hide();
+
+ QVERIFY(!grandChild->isVisible());
+ QVERIFY(grandChild->isVisibleTo(grandChild));
+ QVERIFY(grandChild->isVisibleTo(child));
+ QVERIFY(grandChild->isVisibleTo(parent));
+ QVERIFY(!grandChild->isVisibleTo(0));
+ QVERIFY(!child->isVisible());
+ QVERIFY(child->isVisibleTo(child));
+ QVERIFY(child->isVisibleTo(parent));
+ QVERIFY(!child->isVisibleTo(0));
+ QVERIFY(!parent->isVisible());
+ QVERIFY(!parent->isVisibleTo(parent));
+ QVERIFY(!parent->isVisibleTo(0));
+ QVERIFY(!parent->isVisibleTo(child));
+ QVERIFY(!child->isVisibleTo(grandChild));
+ QVERIFY(!grandChild->isVisibleTo(stranger));
+ QVERIFY(!child->isVisibleTo(stranger));
+ QVERIFY(!parent->isVisibleTo(stranger));
+ QVERIFY(!stranger->isVisibleTo(grandChild));
+ QVERIFY(!stranger->isVisibleTo(child));
+ QVERIFY(!stranger->isVisibleTo(parent));
+
+ // Case 2: only child is hidden
+ parent->show();
+ child->hide();
+
+ QVERIFY(!grandChild->isVisible());
+ QVERIFY(grandChild->isVisibleTo(grandChild));
+ QVERIFY(grandChild->isVisibleTo(child));
+ QVERIFY(!grandChild->isVisibleTo(parent));
+ QVERIFY(!grandChild->isVisibleTo(0));
+ QVERIFY(!child->isVisible());
+ QVERIFY(!child->isVisibleTo(child));
+ QVERIFY(!child->isVisibleTo(parent));
+ QVERIFY(!child->isVisibleTo(0));
+ QVERIFY(parent->isVisible());
+ QVERIFY(parent->isVisibleTo(parent));
+ QVERIFY(parent->isVisibleTo(0));
+ QVERIFY(!parent->isVisibleTo(child));
+ QVERIFY(!child->isVisibleTo(grandChild));
+ QVERIFY(!grandChild->isVisibleTo(stranger));
+ QVERIFY(!child->isVisibleTo(stranger));
+ QVERIFY(!parent->isVisibleTo(stranger));
+ QVERIFY(!stranger->isVisibleTo(grandChild));
+ QVERIFY(!stranger->isVisibleTo(child));
+ QVERIFY(!stranger->isVisibleTo(parent));
+
+ // Case 3: only grand child is hidden
+ child->show();
+ grandChild->hide();
+
+ QVERIFY(!grandChild->isVisible());
+ QVERIFY(!grandChild->isVisibleTo(grandChild));
+ QVERIFY(!grandChild->isVisibleTo(child));
+ QVERIFY(!grandChild->isVisibleTo(parent));
+ QVERIFY(!grandChild->isVisibleTo(0));
+ QVERIFY(child->isVisible());
+ QVERIFY(child->isVisibleTo(child));
+ QVERIFY(child->isVisibleTo(parent));
+ QVERIFY(child->isVisibleTo(0));
+ QVERIFY(parent->isVisible());
+ QVERIFY(parent->isVisibleTo(parent));
+ QVERIFY(parent->isVisibleTo(0));
+ QVERIFY(!parent->isVisibleTo(child));
+ QVERIFY(!child->isVisibleTo(grandChild));
+ QVERIFY(!grandChild->isVisibleTo(stranger));
+ QVERIFY(!child->isVisibleTo(stranger));
+ QVERIFY(!parent->isVisibleTo(stranger));
+ QVERIFY(!stranger->isVisibleTo(grandChild));
+ QVERIFY(!stranger->isVisibleTo(child));
+ QVERIFY(!stranger->isVisibleTo(parent));
+}
+
void tst_QGraphicsItem::explicitlyVisible()
{
QGraphicsScene scene;
--
cgit v0.12
From 633e03367031ef6e36dddc27a85e7a5c05285d65 Mon Sep 17 00:00:00 2001
From: Damian Jansen
Date: Tue, 4 Oct 2011 14:53:19 +1000
Subject: Fix deployment for declarative tests, examples on Symbian
Task-number: QTBUG-21306
Reviewed-by: Rohan McGovern
---
examples/declarative/cppextensions/imageprovider/imageprovider.pro | 2 +-
examples/declarative/cppextensions/qwidgets/qwidgets.pro | 2 +-
src/imports/folderlistmodel/folderlistmodel.pro | 4 ++--
src/imports/gestures/gestures.pro | 6 +++---
src/imports/particles/particles.pro | 6 +++---
src/imports/shaders/shaders.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 +-
.../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 +-
.../declarative/qdeclarativeflickable/qdeclarativeflickable.pro | 2 +-
.../auto/declarative/qdeclarativeflipable/qdeclarativeflipable.pro | 2 +-
.../declarative/qdeclarativefocusscope/qdeclarativefocusscope.pro | 2 +-
.../qdeclarativefolderlistmodel/qdeclarativefolderlistmodel.pro | 2 +-
.../declarative/qdeclarativefontloader/qdeclarativefontloader.pro | 2 +-
.../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 +-
.../auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro | 2 +-
.../declarative/qdeclarativelayoutitem/qdeclarativelayoutitem.pro | 2 +-
.../declarative/qdeclarativelistmodel/qdeclarativelistmodel.pro | 2 +-
.../auto/declarative/qdeclarativelistview/qdeclarativelistview.pro | 2 +-
tests/auto/declarative/qdeclarativeloader/qdeclarativeloader.pro | 2 +-
.../declarative/qdeclarativemousearea/qdeclarativemousearea.pro | 2 +-
.../declarative/qdeclarativeparticles/qdeclarativeparticles.pro | 2 +-
.../auto/declarative/qdeclarativepathview/qdeclarativepathview.pro | 2 +-
.../declarative/qdeclarativepincharea/qdeclarativepincharea.pro | 2 +-
.../declarative/qdeclarativepixmapcache/qdeclarativepixmapcache.pro | 2 +-
.../declarative/qdeclarativepositioners/qdeclarativepositioners.pro | 2 +-
.../auto/declarative/qdeclarativeproperty/qdeclarativeproperty.pro | 2 +-
tests/auto/declarative/qdeclarativeqt/qdeclarativeqt.pro | 2 +-
.../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 +-
.../auto/declarative/qdeclarativetextedit/qdeclarativetextedit.pro | 2 +-
.../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 +-
.../qdeclarativeworkerscript/qdeclarativeworkerscript.pro | 2 +-
.../qdeclarativexmlhttprequest/qdeclarativexmlhttprequest.pro | 2 +-
.../qdeclarativexmllistmodel/qdeclarativexmllistmodel.pro | 2 +-
tests/auto/declarative/qmlvisual/qmlvisual.pro | 2 +-
tests/benchmarks/declarative/binding/binding.pro | 2 +-
.../benchmarks/declarative/qdeclarativeimage/qdeclarativeimage.pro | 2 +-
tests/benchmarks/declarative/script/script.pro | 2 +-
61 files changed, 66 insertions(+), 66 deletions(-)
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/src/imports/folderlistmodel/folderlistmodel.pro b/src/imports/folderlistmodel/folderlistmodel.pro
index 8964ab0..d369ed1 100644
--- a/src/imports/folderlistmodel/folderlistmodel.pro
+++ b/src/imports/folderlistmodel/folderlistmodel.pro
@@ -19,8 +19,8 @@ symbian:{
isEmpty(DESTDIR):importFiles.sources = qmlfolderlistmodelplugin$${QT_LIBINFIX}.dll qmldir
else:importFiles.sources = $$DESTDIR/qmlfolderlistmodelplugin$${QT_LIBINFIX}.dll qmldir
importFiles.path = $$QT_IMPORTS_BASE_DIR/$$TARGETPATH
-
- DEPLOYMENT = importFiles
+
+ DEPLOYMENT += importFiles
}
INSTALLS += target qmldir
diff --git a/src/imports/gestures/gestures.pro b/src/imports/gestures/gestures.pro
index a4c914d..f9e71fa 100644
--- a/src/imports/gestures/gestures.pro
+++ b/src/imports/gestures/gestures.pro
@@ -15,12 +15,12 @@ qmldir.path += $$[QT_INSTALL_IMPORTS]/$$TARGETPATH
symbian:{
TARGET.UID3 = 0x2002131F
-
+
isEmpty(DESTDIR):importFiles.sources = qmlgesturesplugin$${QT_LIBINFIX}.dll qmldir
else:importFiles.sources = $$DESTDIR/qmlgesturesplugin$${QT_LIBINFIX}.dll qmldir
importFiles.path = $$QT_IMPORTS_BASE_DIR/$$TARGETPATH
-
- DEPLOYMENT = importFiles
+
+ DEPLOYMENT += importFiles
}
INSTALLS += target qmldir
diff --git a/src/imports/particles/particles.pro b/src/imports/particles/particles.pro
index bb9da01..59cc16a 100644
--- a/src/imports/particles/particles.pro
+++ b/src/imports/particles/particles.pro
@@ -19,12 +19,12 @@ qmldir.path += $$[QT_INSTALL_IMPORTS]/$$TARGETPATH
symbian:{
TARGET.UID3 = 0x2002131E
-
+
isEmpty(DESTDIR):importFiles.sources = qmlparticlesplugin$${QT_LIBINFIX}.dll qmldir
else:importFiles.sources = $$DESTDIR/qmlparticlesplugin$${QT_LIBINFIX}.dll qmldir
importFiles.path = $$QT_IMPORTS_BASE_DIR/$$TARGETPATH
-
- DEPLOYMENT = importFiles
+
+ DEPLOYMENT += importFiles
}
INSTALLS += target qmldir
diff --git a/src/imports/shaders/shaders.pro b/src/imports/shaders/shaders.pro
index d7a6275..51a9a91 100644
--- a/src/imports/shaders/shaders.pro
+++ b/src/imports/shaders/shaders.pro
@@ -32,7 +32,7 @@ symbian:{
isEmpty(DESTDIR):importFiles.sources = qmlparticlesplugin$${QT_LIBINFIX}.dll qmldir
else:importFiles.sources = $$DESTDIR/qmlparticlesplugin$${QT_LIBINFIX}.dll qmldir
importFiles.path = $$QT_IMPORTS_BASE_DIR/$$TARGETPATH
- DEPLOYMENT = importFiles
+ DEPLOYMENT += importFiles
}
INSTALLS += target qmldir
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 8c99f08..e3df2c3 100644
--- a/tests/auto/declarative/qdeclarativelistview/qdeclarativelistview.pro
+++ b/tests/auto/declarative/qdeclarativelistview/qdeclarativelistview.pro
@@ -8,7 +8,7 @@ SOURCES += tst_qdeclarativelistview.cpp incrementalmodel.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/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/qdeclarativepincharea/qdeclarativepincharea.pro b/tests/auto/declarative/qdeclarativepincharea/qdeclarativepincharea.pro
index 2c13644..3bdb3fc 100644
--- a/tests/auto/declarative/qdeclarativepincharea/qdeclarativepincharea.pro
+++ b/tests/auto/declarative/qdeclarativepincharea/qdeclarativepincharea.pro
@@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativepincharea.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 9e698fe..a963140 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 efcea12..80c5711 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 b2c5b4f..0977fe4 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/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 aefda8ce30695c5383860eab709acca345d290dc Mon Sep 17 00:00:00 2001
From: Mikko Knuutila
Date: Tue, 4 Oct 2011 15:00:27 +0200
Subject: QTBUG-21058: Fix for possible crashes in
QTextControl::setCursorWidth()
Cursor's width is now queried from the style only when the user calls
cursorWidth(). Earlier it was queried already in the ctor, which
caused crashes if the application was guiless.
Merge-request: 2697
Reviewed-by: Jan-Arve Saether
---
src/gui/text/qtextcontrol.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/gui/text/qtextcontrol.cpp b/src/gui/text/qtextcontrol.cpp
index aeeef85..5babbc2 100644
--- a/src/gui/text/qtextcontrol.cpp
+++ b/src/gui/text/qtextcontrol.cpp
@@ -408,7 +408,6 @@ void QTextControlPrivate::init(Qt::TextFormat format, const QString &text, QText
setContent(format, text, document);
doc->setUndoRedoEnabled(interactionFlags & Qt::TextEditable);
- q->setCursorWidth(-1);
}
void QTextControlPrivate::setContent(Qt::TextFormat format, const QString &text, QTextDocument *document)
@@ -2236,7 +2235,10 @@ int QTextControl::cursorWidth() const
{
#ifndef QT_NO_PROPERTIES
Q_D(const QTextControl);
- return d->doc->documentLayout()->property("cursorWidth").toInt();
+ int width = d->doc->documentLayout()->property("cursorWidth").toInt();
+ if (width == -1)
+ width = QApplication::style()->pixelMetric(QStyle::PM_TextCursorWidth);
+ return width;
#else
return 1;
#endif
@@ -2248,8 +2250,6 @@ void QTextControl::setCursorWidth(int width)
#ifdef QT_NO_PROPERTIES
Q_UNUSED(width);
#else
- if (width == -1)
- width = QApplication::style()->pixelMetric(QStyle::PM_TextCursorWidth);
d->doc->documentLayout()->setProperty("cursorWidth", width);
#endif
d->repaintCursor();
--
cgit v0.12
From ed430f5b82df464e8c144bd809eb82f441c0197d Mon Sep 17 00:00:00 2001
From: Damian Jansen
Date: Wed, 5 Oct 2011 13:50:08 +1000
Subject: Fix more test DEPLOYMENT statements for Symbian
Reviewed-by: Rohan McGovern
---
tests/auto/qapplication/test/test.pro | 2 +-
tests/auto/qaudioinput/qaudioinput.pro | 2 +-
tests/auto/qaudiooutput/qaudiooutput.pro | 2 +-
tests/auto/qchar/qchar.pro | 4 ++--
tests/auto/qclipboard/test/test.pro | 6 +++---
tests/auto/qfile/test/test.pro | 2 +-
tests/auto/qfileinfo/qfileinfo.pro | 4 ++--
tests/auto/qhttp/qhttp.pro | 4 ++--
tests/auto/qlocalsocket/test/test.pro | 4 ++--
tests/auto/qsound/qsound.pro | 2 +-
10 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/tests/auto/qapplication/test/test.pro b/tests/auto/qapplication/test/test.pro
index d946e7e..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: {
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..2cb5201 100644
--- a/tests/auto/qchar/qchar.pro
+++ b/tests/auto/qchar/qchar.pro
@@ -4,8 +4,8 @@ SOURCES += tst_qchar.cpp
QT = core
wince*|symbian: {
-deploy.sources += NormalizationTest.txt
-DEPLOYMENT = deploy
+ deploy.sources += NormalizationTest.txt
+ DEPLOYMENT += deploy
}
symbian: {
diff --git a/tests/auto/qclipboard/test/test.pro b/tests/auto/qclipboard/test/test.pro
index 97b0c9c..9043f69 100644
--- a/tests/auto/qclipboard/test/test.pro
+++ b/tests/auto/qclipboard/test/test.pro
@@ -15,7 +15,7 @@ wince*|symbian: {
copier.path = copier
paster.sources = ../paster/paster.exe
paster.path = paster
-
+
symbian: {
LIBS += -lbafl -lestor -letext
@@ -27,6 +27,6 @@ wince*|symbian: {
reg_resource.sources += $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/paster_reg.rsc
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..8f04178 100644
--- a/tests/auto/qfileinfo/qfileinfo.pro
+++ b/tests/auto/qfileinfo/qfileinfo.pro
@@ -10,14 +10,14 @@ 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 {
TARGET.CAPABILITY=AllFiles
LIBS *= -lefsrv
INCLUDEPATH *= $$MW_LAYER_SYSTEMINCLUDE # Needed for e32svr.h in S^3 envs
- }
+}
# support for running test from shadow build directory
wince* {
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..ffdadd3 100644
--- a/tests/auto/qlocalsocket/test/test.pro
+++ b/tests/auto/qlocalsocket/test/test.pro
@@ -42,9 +42,9 @@ 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/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/\\\"
--
cgit v0.12
From 48a73353029104a4d2c5fda2c9fb007d1924c9ec Mon Sep 17 00:00:00 2001
From: Konstantin Ritt
Date: Fri, 7 Oct 2011 14:45:12 +0200
Subject: make QElapsedTimer use QSystemLibrary on win
we also need to ensure the counterFrequency was already set up,
thus volatile (which fixes possible race condition)
Merge-request: 2655
Reviewed-by: Jan-Arve Saether
---
src/corelib/tools/qelapsedtimer_win.cpp | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/src/corelib/tools/qelapsedtimer_win.cpp b/src/corelib/tools/qelapsedtimer_win.cpp
index d79dc5d..e6bce27 100644
--- a/src/corelib/tools/qelapsedtimer_win.cpp
+++ b/src/corelib/tools/qelapsedtimer_win.cpp
@@ -42,6 +42,8 @@
#include "qelapsedtimer.h"
#include
+#include
+
typedef ULONGLONG (WINAPI *PtrGetTickCount64)(void);
static PtrGetTickCount64 ptrGetTickCount64 = 0;
@@ -52,21 +54,17 @@ static quint64 counterFrequency = 0;
static void resolveLibs()
{
- static bool done = false;
+ static volatile bool done = false;
if (done)
return;
// try to get GetTickCount64 from the system
- HMODULE kernel32 = GetModuleHandleW(L"kernel32");
- if (!kernel32)
+ QSystemLibrary kernel32(QLatin1String("kernel32"));
+ if (!kernel32.load())
return;
-#if defined(Q_OS_WINCE)
// does this function exist on WinCE, or will ever exist?
- ptrGetTickCount64 = (PtrGetTickCount64)GetProcAddress(kernel32, L"GetTickCount64");
-#else
- ptrGetTickCount64 = (PtrGetTickCount64)GetProcAddress(kernel32, "GetTickCount64");
-#endif
+ ptrGetTickCount64 = (PtrGetTickCount64)kernel32.resolve("GetTickCount64");
// Retrieve the number of high-resolution performance counter ticks per second
LARGE_INTEGER frequency;
--
cgit v0.12
From 80a8c4c8615da574b155b7624eab1c8323de3ee3 Mon Sep 17 00:00:00 2001
From: Konstantin Ritt
Date: Fri, 7 Oct 2011 14:45:19 +0200
Subject: nativewifi bearer plugin: prefer DLL Safe Search mode
by using QSystemLibrary instead of QLibrary
Merge-request: 2655
Reviewed-by: Jan-Arve Saether
---
src/plugins/bearer/nativewifi/main.cpp | 31 +++++++++++++++++--------------
1 file changed, 17 insertions(+), 14 deletions(-)
diff --git a/src/plugins/bearer/nativewifi/main.cpp b/src/plugins/bearer/nativewifi/main.cpp
index ce7d906..cbdfd99 100644
--- a/src/plugins/bearer/nativewifi/main.cpp
+++ b/src/plugins/bearer/nativewifi/main.cpp
@@ -44,7 +44,7 @@
#include
#include
-#include
+#include
#include
@@ -63,30 +63,33 @@ static void resolveLibrary()
QMutexLocker locker(QMutexPool::globalInstanceGet(&local_WlanOpenHandle));
#endif
- if (!triedResolve) {
+ if (triedResolve)
+ return;
+
+ QSystemLibrary wlanapi(QLatin1String("wlanapi"));
+ if (wlanapi.load()) {
local_WlanOpenHandle = (WlanOpenHandleProto)
- QLibrary::resolve(QLatin1String("wlanapi.dll"), "WlanOpenHandle");
+ wlanapi.resolve("WlanOpenHandle");
local_WlanRegisterNotification = (WlanRegisterNotificationProto)
- QLibrary::resolve(QLatin1String("wlanapi.dll"), "WlanRegisterNotification");
+ wlanapi.resolve("WlanRegisterNotification");
local_WlanEnumInterfaces = (WlanEnumInterfacesProto)
- QLibrary::resolve(QLatin1String("wlanapi.dll"), "WlanEnumInterfaces");
+ wlanapi.resolve("WlanEnumInterfaces");
local_WlanGetAvailableNetworkList = (WlanGetAvailableNetworkListProto)
- QLibrary::resolve(QLatin1String("wlanapi.dll"), "WlanGetAvailableNetworkList");
+ wlanapi.resolve("WlanGetAvailableNetworkList");
local_WlanQueryInterface = (WlanQueryInterfaceProto)
- QLibrary::resolve(QLatin1String("wlanapi.dll"), "WlanQueryInterface");
+ wlanapi.resolve("WlanQueryInterface");
local_WlanConnect = (WlanConnectProto)
- QLibrary::resolve(QLatin1String("wlanapi.dll"), "WlanConnect");
+ wlanapi.resolve("WlanConnect");
local_WlanDisconnect = (WlanDisconnectProto)
- QLibrary::resolve(QLatin1String("wlanapi.dll"), "WlanDisconnect");
+ wlanapi.resolve("WlanDisconnect");
local_WlanScan = (WlanScanProto)
- QLibrary::resolve(QLatin1String("wlanapi.dll"), "WlanScan");
+ wlanapi.resolve("WlanScan");
local_WlanFreeMemory = (WlanFreeMemoryProto)
- QLibrary::resolve(QLatin1String("wlanapi.dll"), "WlanFreeMemory");
+ wlanapi.resolve("WlanFreeMemory");
local_WlanCloseHandle = (WlanCloseHandleProto)
- QLibrary::resolve(QLatin1String("wlanapi.dll"), "WlanCloseHandle");
-
- triedResolve = true;
+ wlanapi.resolve("WlanCloseHandle");
}
+ triedResolve = true;
}
}
--
cgit v0.12
From 1bfef526ef3d1deb7cf0f11dc1880f33937a85ac Mon Sep 17 00:00:00 2001
From: Konstantin Ritt
Date: Fri, 7 Oct 2011 14:45:26 +0200
Subject: use QSystemLibrary::resolve() instead of GetProcAddress() win API
calls
this makes the code more consistent with similar parts and a bit more readable
Merge-request: 2655
Reviewed-by: Jan-Arve Saether
---
src/corelib/io/qfilesystemengine_win.cpp | 39 ++++++++++++++--------------
src/gui/dialogs/qfiledialog_win.cpp | 10 +++----
src/network/kernel/qnetworkinterface_win.cpp | 19 +++++---------
3 files changed, 31 insertions(+), 37 deletions(-)
diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp
index 98404a5..8622121 100644
--- a/src/corelib/io/qfilesystemengine_win.cpp
+++ b/src/corelib/io/qfilesystemengine_win.cpp
@@ -188,12 +188,12 @@ static void resolveLibs()
triedResolve = true;
#if !defined(Q_OS_WINCE)
- HINSTANCE advapiHnd = QSystemLibrary::load(L"advapi32");
- if (advapiHnd) {
- ptrGetNamedSecurityInfoW = (PtrGetNamedSecurityInfoW)GetProcAddress(advapiHnd, "GetNamedSecurityInfoW");
- ptrLookupAccountSidW = (PtrLookupAccountSidW)GetProcAddress(advapiHnd, "LookupAccountSidW");
- ptrBuildTrusteeWithSidW = (PtrBuildTrusteeWithSidW)GetProcAddress(advapiHnd, "BuildTrusteeWithSidW");
- ptrGetEffectiveRightsFromAclW = (PtrGetEffectiveRightsFromAclW)GetProcAddress(advapiHnd, "GetEffectiveRightsFromAclW");
+ QSystemLibrary advapi32(QLatin1String("advapi32"));
+ if (advapi32.load()) {
+ ptrGetNamedSecurityInfoW = (PtrGetNamedSecurityInfoW)advapi32.resolve("GetNamedSecurityInfoW");
+ ptrLookupAccountSidW = (PtrLookupAccountSidW)advapi32.resolve("LookupAccountSidW");
+ ptrBuildTrusteeWithSidW = (PtrBuildTrusteeWithSidW)advapi32.resolve("BuildTrusteeWithSidW");
+ ptrGetEffectiveRightsFromAclW = (PtrGetEffectiveRightsFromAclW)advapi32.resolve("GetEffectiveRightsFromAclW");
}
if (ptrBuildTrusteeWithSidW) {
// Create TRUSTEE for current user
@@ -208,9 +208,9 @@ static void resolveLibs()
}
typedef BOOL (WINAPI *PtrAllocateAndInitializeSid)(PSID_IDENTIFIER_AUTHORITY, BYTE, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, PSID*);
- PtrAllocateAndInitializeSid ptrAllocateAndInitializeSid = (PtrAllocateAndInitializeSid)GetProcAddress(advapiHnd, "AllocateAndInitializeSid");
+ PtrAllocateAndInitializeSid ptrAllocateAndInitializeSid = (PtrAllocateAndInitializeSid)advapi32.resolve("AllocateAndInitializeSid");
typedef PVOID (WINAPI *PtrFreeSid)(PSID);
- PtrFreeSid ptrFreeSid = (PtrFreeSid)GetProcAddress(advapiHnd, "FreeSid");
+ PtrFreeSid ptrFreeSid = (PtrFreeSid)advapi32.resolve("FreeSid");
if (ptrAllocateAndInitializeSid && ptrFreeSid) {
// Create TRUSTEE for Everyone (World)
SID_IDENTIFIER_AUTHORITY worldAuth = { SECURITY_WORLD_SID_AUTHORITY };
@@ -220,12 +220,14 @@ static void resolveLibs()
ptrFreeSid(pWorld);
}
}
- HINSTANCE userenvHnd = QSystemLibrary::load(L"userenv");
- if (userenvHnd)
- ptrGetUserProfileDirectoryW = (PtrGetUserProfileDirectoryW)GetProcAddress(userenvHnd, "GetUserProfileDirectoryW");
- HINSTANCE kernel32 = LoadLibrary(L"kernel32");
- if(kernel32)
- ptrGetVolumePathNamesForVolumeNameW = (PtrGetVolumePathNamesForVolumeNameW)GetProcAddress(kernel32, "GetVolumePathNamesForVolumeNameW");
+
+ QSystemLibrary userenv(QLatin1String("userenv"));
+ if (userenv.load())
+ ptrGetUserProfileDirectoryW = (PtrGetUserProfileDirectoryW)userenv.resolve("GetUserProfileDirectoryW");
+
+ QSystemLibrary kernel32(QLatin1String("kernel32"));
+ if (kernel32.load())
+ ptrGetVolumePathNamesForVolumeNameW = (PtrGetVolumePathNamesForVolumeNameW)kernel32.resolve("GetVolumePathNamesForVolumeNameW");
#endif
}
}
@@ -254,11 +256,10 @@ static bool resolveUNCLibs()
#endif
triedResolve = true;
#if !defined(Q_OS_WINCE)
- HINSTANCE hLib = QSystemLibrary::load(L"Netapi32");
- if (hLib) {
- ptrNetShareEnum = (PtrNetShareEnum)GetProcAddress(hLib, "NetShareEnum");
- if (ptrNetShareEnum)
- ptrNetApiBufferFree = (PtrNetApiBufferFree)GetProcAddress(hLib, "NetApiBufferFree");
+ QSystemLibrary netapi32(QLatin1String("kernel32"));
+ if (netapi32.load()) {
+ ptrNetShareEnum = (PtrNetShareEnum)netapi32.resolve("NetShareEnum");
+ ptrNetApiBufferFree = (PtrNetApiBufferFree)netapi32.resolve("NetApiBufferFree");
}
#endif
}
diff --git a/src/gui/dialogs/qfiledialog_win.cpp b/src/gui/dialogs/qfiledialog_win.cpp
index de8e33d..30f5f18 100644
--- a/src/gui/dialogs/qfiledialog_win.cpp
+++ b/src/gui/dialogs/qfiledialog_win.cpp
@@ -99,16 +99,16 @@ static void qt_win_resolve_libs()
triedResolve = true;
#if !defined(Q_WS_WINCE)
- QSystemLibrary lib(L"shell32");
+ QSystemLibrary lib(QLatin1String("shell32"));
ptrSHBrowseForFolder = (PtrSHBrowseForFolder)lib.resolve("SHBrowseForFolderW");
ptrSHGetPathFromIDList = (PtrSHGetPathFromIDList)lib.resolve("SHGetPathFromIDListW");
ptrSHGetMalloc = (PtrSHGetMalloc)lib.resolve("SHGetMalloc");
#else
// CE stores them in a different lib and does not use unicode version
- HINSTANCE handle = LoadLibrary(L"Ceshell");
- ptrSHBrowseForFolder = (PtrSHBrowseForFolder)GetProcAddress(handle, L"SHBrowseForFolder");
- ptrSHGetPathFromIDList = (PtrSHGetPathFromIDList)GetProcAddress(handle, L"SHGetPathFromIDList");
- ptrSHGetMalloc = (PtrSHGetMalloc)GetProcAddress(handle, L"SHGetMalloc");
+ QSystemLibrary lib(QLatin1String("Ceshell"));
+ ptrSHBrowseForFolder = (PtrSHBrowseForFolder)lib.resolve("SHBrowseForFolder");
+ ptrSHGetPathFromIDList = (PtrSHGetPathFromIDList)lib.resolve("SHGetPathFromIDList");
+ ptrSHGetMalloc = (PtrSHGetMalloc)lib.resolve("SHGetMalloc");
if (ptrSHBrowseForFolder && ptrSHGetPathFromIDList && ptrSHGetMalloc)
qt_priv_ptr_valid = true;
#endif
diff --git a/src/network/kernel/qnetworkinterface_win.cpp b/src/network/kernel/qnetworkinterface_win.cpp
index e8b96f6..5f273d7 100644
--- a/src/network/kernel/qnetworkinterface_win.cpp
+++ b/src/network/kernel/qnetworkinterface_win.cpp
@@ -67,19 +67,12 @@ static void resolveLibs()
if (!done) {
done = true;
- HINSTANCE iphlpapiHnd = QSystemLibrary::load(L"iphlpapi");
- if (iphlpapiHnd == NULL)
- return;
-
-#if defined(Q_OS_WINCE)
- ptrGetAdaptersInfo = (PtrGetAdaptersInfo)GetProcAddress(iphlpapiHnd, L"GetAdaptersInfo");
- ptrGetAdaptersAddresses = (PtrGetAdaptersAddresses)GetProcAddress(iphlpapiHnd, L"GetAdaptersAddresses");
- ptrGetNetworkParams = (PtrGetNetworkParams)GetProcAddress(iphlpapiHnd, L"GetNetworkParams");
-#else
- ptrGetAdaptersInfo = (PtrGetAdaptersInfo)GetProcAddress(iphlpapiHnd, "GetAdaptersInfo");
- ptrGetAdaptersAddresses = (PtrGetAdaptersAddresses)GetProcAddress(iphlpapiHnd, "GetAdaptersAddresses");
- ptrGetNetworkParams = (PtrGetNetworkParams)GetProcAddress(iphlpapiHnd, "GetNetworkParams");
-#endif
+ QSystemLibrary iphlpapi(QLatin1String("iphlpapi"));
+ if (iphlpapi.load()) {
+ ptrGetAdaptersInfo = (PtrGetAdaptersInfo)iphlpapi.resolve("GetAdaptersInfo");
+ ptrGetAdaptersAddresses = (PtrGetAdaptersAddresses)iphlpapi.resolve("GetAdaptersAddresses");
+ ptrGetNetworkParams = (PtrGetNetworkParams)iphlpapi.resolve("GetNetworkParams");
+ }
}
}
--
cgit v0.12
From 74251fb0fc57b1e0f7db0b561e4aa4c0347f6f37 Mon Sep 17 00:00:00 2001
From: Konstantin Ritt
Date: Fri, 7 Oct 2011 14:45:33 +0200
Subject: simplify the code by using QSystemLibrary a bit smarter
Merge-request: 2655
Reviewed-by: Jan-Arve Saether
---
src/corelib/kernel/qeventdispatcher_win.cpp | 12 +++++----
src/gui/kernel/qapplication_win.cpp | 41 +++++++++--------------------
src/network/kernel/qhostinfo_win.cpp | 13 ++++-----
3 files changed, 26 insertions(+), 40 deletions(-)
diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp
index 84663fa..3e367b7 100644
--- a/src/corelib/kernel/qeventdispatcher_win.cpp
+++ b/src/corelib/kernel/qeventdispatcher_win.cpp
@@ -328,13 +328,15 @@ static void resolveTimerAPI()
return;
#endif
triedResolve = true;
-#if !defined(Q_OS_WINCE)
- qtimeSetEvent = (ptimeSetEvent)QSystemLibrary::resolve(QLatin1String("winmm"), "timeSetEvent");
- qtimeKillEvent = (ptimeKillEvent)QSystemLibrary::resolve(QLatin1String("winmm"), "timeKillEvent");
+#ifndef Q_OS_WINCE
+ QSystemLibrary library(QLatin1String("Mmtimer"));
#else
- qtimeSetEvent = (ptimeSetEvent)QSystemLibrary::resolve(QLatin1String("Mmtimer"), "timeSetEvent");
- qtimeKillEvent = (ptimeKillEvent)QSystemLibrary::resolve(QLatin1String("Mmtimer"), "timeKillEvent");
+ QSystemLibrary library(QLatin1String("winmm"));
#endif
+ if (library.load()) {
+ qtimeSetEvent = (ptimeSetEvent)library.resolve("timeSetEvent");
+ qtimeKillEvent = (ptimeKillEvent)library.resolve("timeKillEvent");
+ }
}
}
diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp
index 756cb56..bca3acc 100644
--- a/src/gui/kernel/qapplication_win.cpp
+++ b/src/gui/kernel/qapplication_win.cpp
@@ -854,19 +854,15 @@ void qt_init(QApplicationPrivate *priv, int)
qt_win_initialize_directdraw();
#ifndef Q_OS_WINCE
- ptrUpdateLayeredWindowIndirect =
- (PtrUpdateLayeredWindowIndirect) QSystemLibrary::resolve(QLatin1String("user32"),
- "UpdateLayeredWindowIndirect");
- ptrUpdateLayeredWindow =
- (PtrUpdateLayeredWindow) QSystemLibrary::resolve(QLatin1String("user32"),
- "UpdateLayeredWindow");
+ QSystemLibrary user32(QLatin1String("user32"));
+ ptrUpdateLayeredWindowIndirect = (PtrUpdateLayeredWindowIndirect)user32.resolve("UpdateLayeredWindowIndirect");
+ ptrUpdateLayeredWindow = (PtrUpdateLayeredWindow)user32.resolve("UpdateLayeredWindow");
if (ptrUpdateLayeredWindow && !ptrUpdateLayeredWindowIndirect)
ptrUpdateLayeredWindowIndirect = qt_updateLayeredWindowIndirect;
// Notify Vista and Windows 7 that we support highter DPI settings
- ptrSetProcessDPIAware = (PtrSetProcessDPIAware)
- QSystemLibrary::resolve(QLatin1String("user32"), "SetProcessDPIAware");
+ ptrSetProcessDPIAware = (PtrSetProcessDPIAware)user32.resolve("SetProcessDPIAware");
if (ptrSetProcessDPIAware)
ptrSetProcessDPIAware();
#endif
@@ -886,29 +882,16 @@ void qt_init(QApplicationPrivate *priv, int)
priv->GetGestureExtraArgs = (PtrGetGestureExtraArgs) &TKGetGestureExtraArguments;
#elif !defined(Q_WS_WINCE)
#if !defined(QT_NO_NATIVE_GESTURES)
- priv->GetGestureInfo =
- (PtrGetGestureInfo)QSystemLibrary::resolve(QLatin1String("user32"),
- "GetGestureInfo");
- priv->GetGestureExtraArgs =
- (PtrGetGestureExtraArgs)QSystemLibrary::resolve(QLatin1String("user32"),
- "GetGestureExtraArgs");
- priv->CloseGestureInfoHandle =
- (PtrCloseGestureInfoHandle)QSystemLibrary::resolve(QLatin1String("user32"),
- "CloseGestureInfoHandle");
- priv->SetGestureConfig =
- (PtrSetGestureConfig)QSystemLibrary::resolve(QLatin1String("user32"),
- "SetGestureConfig");
- priv->GetGestureConfig =
- (PtrGetGestureConfig)QSystemLibrary::resolve(QLatin1String("user32"),
- "GetGestureConfig");
+ priv->GetGestureInfo = (PtrGetGestureInfo)user32.resolve("GetGestureInfo");
+ priv->GetGestureExtraArgs = (PtrGetGestureExtraArgs)user32.resolve("GetGestureExtraArgs");
+ priv->CloseGestureInfoHandle = (PtrCloseGestureInfoHandle)user32.resolve("CloseGestureInfoHandle");
+ priv->SetGestureConfig = (PtrSetGestureConfig)user32.resolve("SetGestureConfig");
+ priv->GetGestureConfig = (PtrGetGestureConfig)user32.resolve("GetGestureConfig");
#endif // QT_NO_NATIVE_GESTURES
QSystemLibrary libTheme(QLatin1String("uxtheme"));
- priv->BeginPanningFeedback =
- (PtrBeginPanningFeedback)libTheme.resolve("BeginPanningFeedback");
- priv->UpdatePanningFeedback =
- (PtrUpdatePanningFeedback)libTheme.resolve("UpdatePanningFeedback");
- priv->EndPanningFeedback =
- (PtrEndPanningFeedback)libTheme.resolve("EndPanningFeedback");
+ priv->BeginPanningFeedback = (PtrBeginPanningFeedback)libTheme.resolve("BeginPanningFeedback");
+ priv->UpdatePanningFeedback = (PtrUpdatePanningFeedback)libTheme.resolve("UpdatePanningFeedback");
+ priv->EndPanningFeedback = (PtrEndPanningFeedback)libTheme.resolve("EndPanningFeedback");
#endif
#endif // QT_NO_GESTURES
}
diff --git a/src/network/kernel/qhostinfo_win.cpp b/src/network/kernel/qhostinfo_win.cpp
index 6fc5b7b..03e72c4 100644
--- a/src/network/kernel/qhostinfo_win.cpp
+++ b/src/network/kernel/qhostinfo_win.cpp
@@ -85,14 +85,15 @@ static void resolveLibrary()
// Attempt to resolve getaddrinfo(); without it we'll have to fall
// back to gethostbyname(), which has no IPv6 support.
#if !defined(Q_OS_WINCE)
- local_getaddrinfo = (getaddrinfoProto) QSystemLibrary::resolve(QLatin1String("ws2_32"), "getaddrinfo");
- local_freeaddrinfo = (freeaddrinfoProto) QSystemLibrary::resolve(QLatin1String("ws2_32"), "freeaddrinfo");
- local_getnameinfo = (getnameinfoProto) QSystemLibrary::resolve(QLatin1String("ws2_32"), "getnameinfo");
+ QSystemLibrary ws2lib(QLatin1String("ws2_32"));
#else
- local_getaddrinfo = (getaddrinfoProto) QSystemLibrary::resolve(QLatin1String("ws2"), "getaddrinfo");
- local_freeaddrinfo = (freeaddrinfoProto) QSystemLibrary::resolve(QLatin1String("ws2"), "freeaddrinfo");
- local_getnameinfo = (getnameinfoProto) QSystemLibrary::resolve(QLatin1String("ws2"), "getnameinfo");
+ QSystemLibrary ws2lib(QLatin1String("ws2"));
#endif
+ if (ws2lib.load()) {
+ local_getaddrinfo = (getaddrinfoProto)ws2lib.resolve("getaddrinfo");
+ local_freeaddrinfo = (freeaddrinfoProto)ws2lib.resolve("freeaddrinfo");
+ local_getnameinfo = (getnameinfoProto)ws2lib.resolve("getnameinfo");
+ }
}
#if defined(Q_OS_WINCE)
--
cgit v0.12
From a0feeef52efde872c6d6e458c8e15616da0bf74f Mon Sep 17 00:00:00 2001
From: Konstantin Ritt
Date: Fri, 7 Oct 2011 14:45:40 +0200
Subject: fix possible race conditions
the initialization guard must be set after the initialization is done;
for the code assumed to be only executed in a single thread, this change was done
just for consistency - in order to avoid similar issues by copy-pasting in future
Merge-request: 2655
Reviewed-by: Jan-Arve Saether
---
src/activeqt/shared/qaxtypes.cpp | 4 ++--
src/corelib/io/qfilesystemengine_win.cpp | 5 +++--
src/corelib/kernel/qeventdispatcher_win.cpp | 3 ++-
src/gui/accessible/qaccessible_win.cpp | 2 +-
src/gui/dialogs/qfiledialog_win.cpp | 3 ++-
src/gui/dialogs/qwizard_win.cpp | 2 +-
src/gui/image/qpixmap_mac.cpp | 4 +++-
src/gui/kernel/qapplication_win.cpp | 12 ++++++------
src/gui/kernel/qguifunctions_wince.cpp | 5 ++---
src/gui/kernel/qmime_mac.cpp | 4 +++-
src/gui/styles/qwindowsvistastyle.cpp | 2 +-
src/gui/styles/qwindowsxpstyle.cpp | 2 +-
src/gui/text/qfontengine_win.cpp | 5 ++++-
src/gui/widgets/qmenu_wince.cpp | 2 +-
src/network/kernel/qnetworkinterface_win.cpp | 4 +---
15 files changed, 33 insertions(+), 26 deletions(-)
diff --git a/src/activeqt/shared/qaxtypes.cpp b/src/activeqt/shared/qaxtypes.cpp
index 8835caf..9452c6a 100644
--- a/src/activeqt/shared/qaxtypes.cpp
+++ b/src/activeqt/shared/qaxtypes.cpp
@@ -665,9 +665,9 @@ bool QVariantToVARIANT(const QVariant &var, VARIANT &arg, const QByteArray &type
static PGetRecordInfoFromTypeInfo pGetRecordInfoFromTypeInfo = 0;
static bool resolved = false;
if (!resolved) {
+ QSystemLibrary oleaut32(QLatin1String("oleaut32"));
+ pGetRecordInfoFromTypeInfo = (PGetRecordInfoFromTypeInfo)oleaut32.resolve("GetRecordInfoFromTypeInfo");
resolved = true;
- pGetRecordInfoFromTypeInfo = (PGetRecordInfoFromTypeInfo)QSystemLibrary::resolve(QLatin1String("oleaut32"),
- "GetRecordInfoFromTypeInfo");
}
if (!pGetRecordInfoFromTypeInfo)
break;
diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp
index 8622121..218cf20 100644
--- a/src/corelib/io/qfilesystemengine_win.cpp
+++ b/src/corelib/io/qfilesystemengine_win.cpp
@@ -186,7 +186,6 @@ static void resolveLibs()
}
#endif
- triedResolve = true;
#if !defined(Q_OS_WINCE)
QSystemLibrary advapi32(QLatin1String("advapi32"));
if (advapi32.load()) {
@@ -229,6 +228,7 @@ static void resolveLibs()
if (kernel32.load())
ptrGetVolumePathNamesForVolumeNameW = (PtrGetVolumePathNamesForVolumeNameW)kernel32.resolve("GetVolumePathNamesForVolumeNameW");
#endif
+ triedResolve = true;
}
}
#endif // QT_NO_LIBRARY
@@ -254,7 +254,7 @@ static bool resolveUNCLibs()
return ptrNetShareEnum && ptrNetApiBufferFree;
}
#endif
- triedResolve = true;
+
#if !defined(Q_OS_WINCE)
QSystemLibrary netapi32(QLatin1String("kernel32"));
if (netapi32.load()) {
@@ -262,6 +262,7 @@ static bool resolveUNCLibs()
ptrNetApiBufferFree = (PtrNetApiBufferFree)netapi32.resolve("NetApiBufferFree");
}
#endif
+ triedResolve = true;
}
return ptrNetShareEnum && ptrNetApiBufferFree;
}
diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp
index 3e367b7..365b28e 100644
--- a/src/corelib/kernel/qeventdispatcher_win.cpp
+++ b/src/corelib/kernel/qeventdispatcher_win.cpp
@@ -327,7 +327,6 @@ static void resolveTimerAPI()
if (triedResolve)
return;
#endif
- triedResolve = true;
#ifndef Q_OS_WINCE
QSystemLibrary library(QLatin1String("Mmtimer"));
#else
@@ -337,6 +336,8 @@ static void resolveTimerAPI()
qtimeSetEvent = (ptimeSetEvent)library.resolve("timeSetEvent");
qtimeKillEvent = (ptimeKillEvent)library.resolve("timeKillEvent");
}
+
+ triedResolve = true;
}
}
diff --git a/src/gui/accessible/qaccessible_win.cpp b/src/gui/accessible/qaccessible_win.cpp
index 1fd1bfd..c1bb54b 100644
--- a/src/gui/accessible/qaccessible_win.cpp
+++ b/src/gui/accessible/qaccessible_win.cpp
@@ -353,8 +353,8 @@ void QAccessible::updateAccessibility(QObject *o, int who, Event reason)
static PtrNotifyWinEvent ptrNotifyWinEvent = 0;
static bool resolvedNWE = false;
if (!resolvedNWE) {
- resolvedNWE = true;
ptrNotifyWinEvent = (PtrNotifyWinEvent)QSystemLibrary::resolve(QLatin1String("user32"), "NotifyWinEvent");
+ resolvedNWE = true;
}
if (!ptrNotifyWinEvent)
return;
diff --git a/src/gui/dialogs/qfiledialog_win.cpp b/src/gui/dialogs/qfiledialog_win.cpp
index 30f5f18..45f6164 100644
--- a/src/gui/dialogs/qfiledialog_win.cpp
+++ b/src/gui/dialogs/qfiledialog_win.cpp
@@ -97,7 +97,6 @@ static void qt_win_resolve_libs()
}
#endif
- triedResolve = true;
#if !defined(Q_WS_WINCE)
QSystemLibrary lib(QLatin1String("shell32"));
ptrSHBrowseForFolder = (PtrSHBrowseForFolder)lib.resolve("SHBrowseForFolderW");
@@ -112,6 +111,8 @@ static void qt_win_resolve_libs()
if (ptrSHBrowseForFolder && ptrSHGetPathFromIDList && ptrSHGetMalloc)
qt_priv_ptr_valid = true;
#endif
+
+ triedResolve = true;
}
}
diff --git a/src/gui/dialogs/qwizard_win.cpp b/src/gui/dialogs/qwizard_win.cpp
index 9ea114c..00ebbfd 100644
--- a/src/gui/dialogs/qwizard_win.cpp
+++ b/src/gui/dialogs/qwizard_win.cpp
@@ -705,7 +705,6 @@ bool QVistaHelper::resolveSymbols()
{
static bool tried = false;
if (!tried) {
- tried = true;
QSystemLibrary dwmLib(L"dwmapi");
pDwmIsCompositionEnabled =
(PtrDwmIsCompositionEnabled)dwmLib.resolve("DwmIsCompositionEnabled");
@@ -727,6 +726,7 @@ bool QVistaHelper::resolveSymbols()
pDrawThemeTextEx = (PtrDrawThemeTextEx)themeLib.resolve("DrawThemeTextEx");
pSetWindowThemeAttribute = (PtrSetWindowThemeAttribute)themeLib.resolve("SetWindowThemeAttribute");
}
+ tried = true;
}
return (
diff --git a/src/gui/image/qpixmap_mac.cpp b/src/gui/image/qpixmap_mac.cpp
index 47b6eef..aa1571b 100644
--- a/src/gui/image/qpixmap_mac.cpp
+++ b/src/gui/image/qpixmap_mac.cpp
@@ -752,7 +752,8 @@ static PtrglReadPixels ptrglReadPixels = 0;
static bool resolveOpenGLSymbols()
{
- if (ptrCGLChoosePixelFormat == 0) {
+ static bool triedResolve = false;
+ if (!triedResolve) {
QLibrary library(QLatin1String("/System/Library/Frameworks/OpenGL.framework/OpenGL"));
ptrCGLChoosePixelFormat = (PtrCGLChoosePixelFormat)(library.resolve("CGLChoosePixelFormat"));
ptrCGLClearDrawable = (PtrCGLClearDrawable)(library.resolve("CGLClearDrawable"));
@@ -765,6 +766,7 @@ static bool resolveOpenGLSymbols()
ptrglPixelStorei = (PtrglPixelStorei)(library.resolve("glPixelStorei"));
ptrglReadBuffer = (PtrglReadBuffer)(library.resolve("glReadBuffer"));
ptrglReadPixels = (PtrglReadPixels)(library.resolve("glReadPixels"));
+ triedResolve = true;
}
return ptrCGLChoosePixelFormat && ptrCGLClearDrawable && ptrCGLCreateContext
&& ptrCGLDestroyContext && ptrCGLDestroyPixelFormat && ptrCGLSetCurrentContext
diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp
index bca3acc..b84fe56 100644
--- a/src/gui/kernel/qapplication_win.cpp
+++ b/src/gui/kernel/qapplication_win.cpp
@@ -218,9 +218,9 @@ static bool aygResolved = false;
static void resolveAygLibs()
{
if (!aygResolved) {
- aygResolved = true;
QSystemLibrary ayglib(QLatin1String("aygshell"));
ptrRecognizeGesture = (AygRecognizeGesture) ayglib.resolve("SHRecognizeGesture");
+ aygResolved = true;
}
}
#endif // QT_NO_GESTURES
@@ -2371,15 +2371,14 @@ extern "C" LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wPa
break;
}
+#if !defined(Q_OS_WINCE)
typedef LRESULT (WINAPI *PtrLresultFromObject)(REFIID, WPARAM, LPUNKNOWN);
static PtrLresultFromObject ptrLresultFromObject = 0;
static bool oleaccChecked = false;
-
if (!oleaccChecked) {
+ QSystemLibrary oleacclib(QLatin1String("oleacc"));
+ ptrLresultFromObject = (PtrLresultFromObject)oleacclib.resolve("LresultFromObject");
oleaccChecked = true;
-#if !defined(Q_OS_WINCE)
- ptrLresultFromObject = (PtrLresultFromObject)QSystemLibrary::resolve(QLatin1String("oleacc"), "LresultFromObject");
-#endif
}
if (ptrLresultFromObject) {
QAccessibleInterface *acc = QAccessible::queryAccessibleInterface(widget);
@@ -2396,6 +2395,7 @@ extern "C" LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wPa
if (res > 0)
RETURN(res);
}
+#endif
}
result = false;
break;
@@ -3181,8 +3181,8 @@ bool QETWidget::translateMouseEvent(const MSG &msg)
if (curWin != 0) {
if (!trackMouseEventLookup) {
- trackMouseEventLookup = true;
ptrTrackMouseEvent = (PtrTrackMouseEvent)QSystemLibrary::resolve(QLatin1String("comctl32"), "_TrackMouseEvent");
+ trackMouseEventLookup = true;
}
if (ptrTrackMouseEvent && !qApp->d_func()->inPopupMode()) {
// We always have to set the tracking, since
diff --git a/src/gui/kernel/qguifunctions_wince.cpp b/src/gui/kernel/qguifunctions_wince.cpp
index 78dc469..ae2ca04 100644
--- a/src/gui/kernel/qguifunctions_wince.cpp
+++ b/src/gui/kernel/qguifunctions_wince.cpp
@@ -125,17 +125,16 @@ static AygInitDialog ptrAygInitDialog = 0;
static AygFullScreen ptrAygFullScreen = 0;
static AygSHSipInfo ptrAygSHSipInfo = 0;
static AygSHDoneButton ptrAygSHDoneButton = 0;
-static bool aygResolved = false;
-
static void resolveAygLibs()
{
+ static bool aygResolved = false;
if (!aygResolved) {
- aygResolved = true;
QLibrary ayglib(QLatin1String("aygshell"));
ptrAygInitDialog = (AygInitDialog) ayglib.resolve("SHInitDialog");
ptrAygFullScreen = (AygFullScreen) ayglib.resolve("SHFullScreen");
ptrAygSHSipInfo = (AygSHSipInfo) ayglib.resolve("SHSipInfo");
ptrAygSHDoneButton = (AygSHDoneButton) ayglib.resolve("SHDoneButton");
+ aygResolved = true;
}
}
diff --git a/src/gui/kernel/qmime_mac.cpp b/src/gui/kernel/qmime_mac.cpp
index 8b47d8e..e92bd49 100644
--- a/src/gui/kernel/qmime_mac.cpp
+++ b/src/gui/kernel/qmime_mac.cpp
@@ -520,13 +520,15 @@ static PtrGraphicsExportDoExport ptrGraphicsExportDoExport = 0;
static bool resolveMimeQuickTimeSymbols()
{
- if (ptrGraphicsImportSetDataHandle == 0) {
+ static bool triedResolve = false;
+ if (!triedResolve) {
QLibrary library(QLatin1String("/System/Library/Frameworks/QuickTime.framework/QuickTime"));
ptrGraphicsImportSetDataHandle = reinterpret_cast(library.resolve("GraphicsImportSetDataHandle"));
ptrGraphicsImportCreateCGImage = reinterpret_cast(library.resolve("GraphicsImportCreateCGImage"));
ptrGraphicsExportSetInputCGImage = reinterpret_cast(library.resolve("GraphicsExportSetInputCGImage"));
ptrGraphicsExportSetOutputHandle = reinterpret_cast(library.resolve("GraphicsExportSetOutputHandle"));
ptrGraphicsExportDoExport = reinterpret_cast(library.resolve("GraphicsExportDoExport"));
+ triedResolve = true;
}
return ptrGraphicsImportSetDataHandle != 0
diff --git a/src/gui/styles/qwindowsvistastyle.cpp b/src/gui/styles/qwindowsvistastyle.cpp
index b894eb4..f991cbc 100644
--- a/src/gui/styles/qwindowsvistastyle.cpp
+++ b/src/gui/styles/qwindowsvistastyle.cpp
@@ -2586,7 +2586,6 @@ bool QWindowsVistaStylePrivate::resolveSymbols()
{
static bool tried = false;
if (!tried) {
- tried = true;
QSystemLibrary themeLib(QLatin1String("uxtheme"));
pSetWindowTheme = (PtrSetWindowTheme )themeLib.resolve("SetWindowTheme");
pIsThemePartDefined = (PtrIsThemePartDefined )themeLib.resolve("IsThemePartDefined");
@@ -2611,6 +2610,7 @@ bool QWindowsVistaStylePrivate::resolveSymbols()
pGetThemeString = (PtrGetThemeString )themeLib.resolve("GetThemeString");
pGetThemeTransitionDuration = (PtrGetThemeTransitionDuration)themeLib.resolve("GetThemeTransitionDuration");
pGetThemePropertyOrigin = (PtrGetThemePropertyOrigin)themeLib.resolve("GetThemePropertyOrigin");
+ tried = true;
}
return pGetThemeTransitionDuration != 0;
}
diff --git a/src/gui/styles/qwindowsxpstyle.cpp b/src/gui/styles/qwindowsxpstyle.cpp
index 3c33df3..dd7f1f6 100644
--- a/src/gui/styles/qwindowsxpstyle.cpp
+++ b/src/gui/styles/qwindowsxpstyle.cpp
@@ -343,7 +343,6 @@ bool QWindowsXPStylePrivate::resolveSymbols()
{
static bool tried = false;
if (!tried) {
- tried = true;
QSystemLibrary themeLib(QLatin1String("uxtheme"));
pIsAppThemed = (PtrIsAppThemed)themeLib.resolve("IsAppThemed");
if (pIsAppThemed) {
@@ -372,6 +371,7 @@ bool QWindowsXPStylePrivate::resolveSymbols()
pGetThemeDocumentationProperty = (PtrGetThemeDocumentationProperty )themeLib.resolve("GetThemeDocumentationProperty");
pIsThemeBackgroundPartiallyTransparent = (PtrIsThemeBackgroundPartiallyTransparent)themeLib.resolve("IsThemeBackgroundPartiallyTransparent");
}
+ tried = true;
}
return pIsAppThemed != 0;
diff --git a/src/gui/text/qfontengine_win.cpp b/src/gui/text/qfontengine_win.cpp
index fc11387..bb5e041 100644
--- a/src/gui/text/qfontengine_win.cpp
+++ b/src/gui/text/qfontengine_win.cpp
@@ -138,8 +138,11 @@ static void resolveGetCharWidthI()
{
if (resolvedGetCharWidthI)
return;
+
+ QSystemLibrary gdi32(QLatin1String("gdi32"));
+ ptrGetCharWidthI = (PtrGetCharWidthI)gdi32.resolve("GetCharWidthI");
+
resolvedGetCharWidthI = true;
- ptrGetCharWidthI = (PtrGetCharWidthI)QSystemLibrary::resolve(QLatin1String("gdi32"), "GetCharWidthI");
}
#endif // !defined(Q_WS_WINCE)
diff --git a/src/gui/widgets/qmenu_wince.cpp b/src/gui/widgets/qmenu_wince.cpp
index b0c6c1b..d45daf8 100644
--- a/src/gui/widgets/qmenu_wince.cpp
+++ b/src/gui/widgets/qmenu_wince.cpp
@@ -111,10 +111,10 @@ static AygEnableSoftKey ptrEnableSoftKey = 0;
static void resolveAygLibs()
{
if (!aygResolved) {
- aygResolved = true;
QLibrary aygLib(QLatin1String("aygshell"));
ptrCreateMenuBar = (AygCreateMenuBar) aygLib.resolve("SHCreateMenuBar");
ptrEnableSoftKey = (AygEnableSoftKey) aygLib.resolve("SHEnableSoftkey");
+ aygResolved = true;
}
}
diff --git a/src/network/kernel/qnetworkinterface_win.cpp b/src/network/kernel/qnetworkinterface_win.cpp
index 5f273d7..a624468 100644
--- a/src/network/kernel/qnetworkinterface_win.cpp
+++ b/src/network/kernel/qnetworkinterface_win.cpp
@@ -63,16 +63,14 @@ static void resolveLibs()
{
// try to find the functions we need from Iphlpapi.dll
static bool done = false;
-
if (!done) {
- done = true;
-
QSystemLibrary iphlpapi(QLatin1String("iphlpapi"));
if (iphlpapi.load()) {
ptrGetAdaptersInfo = (PtrGetAdaptersInfo)iphlpapi.resolve("GetAdaptersInfo");
ptrGetAdaptersAddresses = (PtrGetAdaptersAddresses)iphlpapi.resolve("GetAdaptersAddresses");
ptrGetNetworkParams = (PtrGetNetworkParams)iphlpapi.resolve("GetNetworkParams");
}
+ done = true;
}
}
--
cgit v0.12
From 1e8479b2aa781e6ce3fadf01294023fbc6ddbc22 Mon Sep 17 00:00:00 2001
From: Konstantin Ritt
Date: Fri, 7 Oct 2011 14:45:47 +0200
Subject: don't lock the global mutex if there is nothing to protect
according to Thiago, setting the pointer with the same values *is* thread-safe
Merge-request: 2655
Reviewed-by: Jan-Arve Saether
---
src/corelib/kernel/qeventdispatcher_win.cpp | 6 ------
src/gui/dialogs/qfiledialog_win.cpp | 17 -----------------
src/network/kernel/qhostinfo_win.cpp | 20 ++++++++------------
src/plugins/bearer/nativewifi/main.cpp | 14 +-------------
4 files changed, 9 insertions(+), 48 deletions(-)
diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp
index 365b28e..c135c4a 100644
--- a/src/corelib/kernel/qeventdispatcher_win.cpp
+++ b/src/corelib/kernel/qeventdispatcher_win.cpp
@@ -53,7 +53,6 @@
#include "qabstracteventdispatcher_p.h"
#include "qcoreapplication_p.h"
#include
-#include
QT_BEGIN_NAMESPACE
@@ -322,11 +321,6 @@ static void resolveTimerAPI()
{
static bool triedResolve = false;
if (!triedResolve) {
-#ifndef QT_NO_THREAD
- QMutexLocker locker(QMutexPool::globalInstanceGet(&triedResolve));
- if (triedResolve)
- return;
-#endif
#ifndef Q_OS_WINCE
QSystemLibrary library(QLatin1String("Mmtimer"));
#else
diff --git a/src/gui/dialogs/qfiledialog_win.cpp b/src/gui/dialogs/qfiledialog_win.cpp
index 45f6164..32dbe4f 100644
--- a/src/gui/dialogs/qfiledialog_win.cpp
+++ b/src/gui/dialogs/qfiledialog_win.cpp
@@ -55,10 +55,6 @@
#include
#include "qfiledialog_win_p.h"
-#ifndef QT_NO_THREAD
-# include
-#endif
-
#ifdef Q_WS_WINCE
#include
bool qt_priv_ptr_valid = false;
@@ -83,20 +79,7 @@ QT_BEGIN_NAMESPACE
static void qt_win_resolve_libs()
{
static bool triedResolve = false;
-
if (!triedResolve) {
-#ifndef QT_NO_THREAD
- // protect initialization
- 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
-
#if !defined(Q_WS_WINCE)
QSystemLibrary lib(QLatin1String("shell32"));
ptrSHBrowseForFolder = (PtrSHBrowseForFolder)lib.resolve("SHBrowseForFolderW");
diff --git a/src/network/kernel/qhostinfo_win.cpp b/src/network/kernel/qhostinfo_win.cpp
index 03e72c4..1cbf350 100644
--- a/src/network/kernel/qhostinfo_win.cpp
+++ b/src/network/kernel/qhostinfo_win.cpp
@@ -45,9 +45,7 @@
#include "private/qnativesocketengine_p.h"
#include
#include
-#include
#include
-#include
QT_BEGIN_NAMESPACE
@@ -84,6 +82,10 @@ static void resolveLibrary()
{
// Attempt to resolve getaddrinfo(); without it we'll have to fall
// back to gethostbyname(), which has no IPv6 support.
+ static bool triedResolve = false;
+ if (triedResolve)
+ return;
+
#if !defined(Q_OS_WINCE)
QSystemLibrary ws2lib(QLatin1String("ws2_32"));
#else
@@ -94,6 +96,8 @@ static void resolveLibrary()
local_freeaddrinfo = (freeaddrinfoProto)ws2lib.resolve("freeaddrinfo");
local_getnameinfo = (getnameinfoProto)ws2lib.resolve("getnameinfo");
}
+
+ triedResolve = true;
}
#if defined(Q_OS_WINCE)
@@ -103,21 +107,13 @@ QMutex qPrivCEMutex;
QHostInfo QHostInfoAgent::fromName(const QString &hostName)
{
+ resolveLibrary();
+
#if defined(Q_OS_WINCE)
QMutexLocker locker(&qPrivCEMutex);
#endif
QWindowsSockInit winSock;
- // Load res_init on demand.
- static volatile bool triedResolve = false;
- if (!triedResolve) {
- QMutexLocker locker(QMutexPool::globalInstanceGet(&local_getaddrinfo));
- if (!triedResolve) {
- resolveLibrary();
- triedResolve = true;
- }
- }
-
QHostInfo results;
#if defined(QHOSTINFO_DEBUG)
diff --git a/src/plugins/bearer/nativewifi/main.cpp b/src/plugins/bearer/nativewifi/main.cpp
index cbdfd99..d279631 100644
--- a/src/plugins/bearer/nativewifi/main.cpp
+++ b/src/plugins/bearer/nativewifi/main.cpp
@@ -42,30 +42,18 @@
#include "qnativewifiengine.h"
#include "platformdefs.h"
-#include
-#include
#include
#include
-#include
-
#ifndef QT_NO_BEARERMANAGEMENT
QT_BEGIN_NAMESPACE
static void resolveLibrary()
{
- static volatile bool triedResolve = false;
-
+ static bool triedResolve = false;
if (!triedResolve) {
-#ifndef QT_NO_THREAD
- QMutexLocker locker(QMutexPool::globalInstanceGet(&local_WlanOpenHandle));
-#endif
-
- if (triedResolve)
- return;
-
QSystemLibrary wlanapi(QLatin1String("wlanapi"));
if (wlanapi.load()) {
local_WlanOpenHandle = (WlanOpenHandleProto)
--
cgit v0.12
From 919e75fb1bad3c3a399e072c52e850c0df5b2f71 Mon Sep 17 00:00:00 2001
From: Jan-Arve Saether
Date: Mon, 10 Oct 2011 08:09:06 +0200
Subject: Fix regression introduced by 1bfef526ef3d1deb7cf0f11dc1880f33937a85ac
Reviewed-by: Trustme
---
src/corelib/io/qfilesystemengine_win.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp
index 218cf20..338552c 100644
--- a/src/corelib/io/qfilesystemengine_win.cpp
+++ b/src/corelib/io/qfilesystemengine_win.cpp
@@ -256,7 +256,7 @@ static bool resolveUNCLibs()
#endif
#if !defined(Q_OS_WINCE)
- QSystemLibrary netapi32(QLatin1String("kernel32"));
+ QSystemLibrary netapi32(QLatin1String("Netapi32"));
if (netapi32.load()) {
ptrNetShareEnum = (PtrNetShareEnum)netapi32.resolve("NetShareEnum");
ptrNetApiBufferFree = (PtrNetApiBufferFree)netapi32.resolve("NetApiBufferFree");
--
cgit v0.12
From ecd78168271cfe71715e074a50752712f4aa3229 Mon Sep 17 00:00:00 2001
From: Tero Ahola
Date: Mon, 10 Oct 2011 17:02:33 +0200
Subject: Fixed resource leak when setting QProgressBar style sheet
Task-number: QTBUG-19110
Merge-request: 2687
Reviewed-by: Frederik Gladhorn
---
src/gui/styles/qwindowsstyle.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/gui/styles/qwindowsstyle.cpp b/src/gui/styles/qwindowsstyle.cpp
index 342c4c6..2244c11 100644
--- a/src/gui/styles/qwindowsstyle.cpp
+++ b/src/gui/styles/qwindowsstyle.cpp
@@ -221,7 +221,8 @@ bool QWindowsStyle::eventFilter(QObject *o, QEvent *e)
d->bars << bar;
if (d->bars.size() == 1) {
Q_ASSERT(d->animationFps> 0);
- d->animateTimer = startTimer(1000 / d->animationFps);
+ if (d->animateTimer == 0)
+ d->animateTimer = startTimer(1000 / d->animationFps);
}
}
}
--
cgit v0.12
From c47cd8f01ea5d3f2a6d0ea73572d9735947919a0 Mon Sep 17 00:00:00 2001
From: Shane Kearns
Date: Tue, 11 Oct 2011 15:51:58 +0100
Subject: Symbian - fix deleteLater not working from RunL
deleteLater stores the loop level in the deferred delete event to
prevent the object being deleted by a nested event loop.
However as symbian active object RunL functions are called directly
from the active scheduler, the loop level is incorrect at that point.
(It is normally set by QCoreApplication::notifyInternal)
To solve this, the loop level is adjusted before calling RunIfReady
so that it is correct during RunL functions. It is then adjusted back
for the specific active objects in the event dispatcher that call
into QCoreApplication - sendPostedEvents, sendEvent.
Task-number: QTBUG-21928
Reviewed-by: mread
---
src/corelib/kernel/qeventdispatcher_symbian.cpp | 29 +++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/src/corelib/kernel/qeventdispatcher_symbian.cpp b/src/corelib/kernel/qeventdispatcher_symbian.cpp
index 5e2bc4f..b796728 100644
--- a/src/corelib/kernel/qeventdispatcher_symbian.cpp
+++ b/src/corelib/kernel/qeventdispatcher_symbian.cpp
@@ -61,6 +61,24 @@ QT_BEGIN_NAMESPACE
#define NULLTIMER_PRIORITY CActive::EPriorityLow
#define COMPLETE_DEFERRED_ACTIVE_OBJECTS_PRIORITY CActive::EPriorityIdle
+class Incrementer {
+ int &variable;
+public:
+ inline Incrementer(int &variable) : variable(variable)
+ { ++variable; }
+ inline ~Incrementer()
+ { --variable; }
+};
+
+class Decrementer {
+ int &variable;
+public:
+ inline Decrementer(int &variable) : variable(variable)
+ { --variable; }
+ inline ~Decrementer()
+ { ++variable; }
+};
+
static inline int qt_pipe_write(int socket, const char *data, qint64 len)
{
return ::write(socket, data, len);
@@ -830,6 +848,8 @@ bool QEventDispatcherSymbian::processEvents ( QEventLoop::ProcessEventsFlags fla
#endif
while (1) {
+ //native active object callbacks are logically part of the event loop, so inc nesting level
+ Incrementer inc(d->threadData->loopLevel);
if (block) {
// This is where Qt will spend most of its time.
CActiveScheduler::Current()->WaitForAnyRequest();
@@ -894,6 +914,7 @@ bool QEventDispatcherSymbian::processEvents ( QEventLoop::ProcessEventsFlags fla
void QEventDispatcherSymbian::timerFired(int timerId)
{
+ Q_D(QAbstractEventDispatcher);
QHash::iterator i = m_timerList.find(timerId);
if (i == m_timerList.end()) {
// The timer has been deleted. Ignore this event.
@@ -912,6 +933,8 @@ void QEventDispatcherSymbian::timerFired(int timerId)
m_insideTimerEvent = true;
QTimerEvent event(timerInfo->timerId);
+ //undo the added nesting level around RunIfReady, since Qt's event system also nests
+ Decrementer dec(d->threadData->loopLevel);
QCoreApplication::sendEvent(timerInfo->receiver, &event);
m_insideTimerEvent = oldInsideTimerEventValue;
@@ -922,6 +945,7 @@ void QEventDispatcherSymbian::timerFired(int timerId)
void QEventDispatcherSymbian::socketFired(QSocketActiveObject *socketAO)
{
+ Q_D(QAbstractEventDispatcher);
if (m_noSocketEvents) {
m_deferredSocketEvents.append(socketAO);
return;
@@ -929,6 +953,8 @@ void QEventDispatcherSymbian::socketFired(QSocketActiveObject *socketAO)
QEvent e(QEvent::SockAct);
socketAO->m_inSocketEvent = true;
+ //undo the added nesting level around RunIfReady, since Qt's event system also nests
+ Decrementer dec(d->threadData->loopLevel);
QCoreApplication::sendEvent(socketAO->m_notifier, &e);
socketAO->m_inSocketEvent = false;
@@ -943,6 +969,7 @@ void QEventDispatcherSymbian::socketFired(QSocketActiveObject *socketAO)
void QEventDispatcherSymbian::wakeUpWasCalled()
{
+ Q_D(QAbstractEventDispatcher);
// The reactivation should happen in RunL, right before the call to this function.
// This is because m_wakeUpDone is the "signal" that the object can be completed
// once more.
@@ -952,6 +979,8 @@ void QEventDispatcherSymbian::wakeUpWasCalled()
// the sendPostedEvents was done, but before the object was ready to be completed
// again. This could deadlock the application if there are no other posted events.
m_wakeUpDone.fetchAndStoreOrdered(0);
+ //undo the added nesting level around RunIfReady, since Qt's event system also nests
+ Decrementer dec(d->threadData->loopLevel);
sendPostedEvents();
}
--
cgit v0.12
From 3f42986b357c5066adb9755454bc4bcc4915ab9f Mon Sep 17 00:00:00 2001
From: Martin Jones
Date: Wed, 12 Oct 2011 09:35:42 +1000
Subject: Backport more imports directory caching changes.
Fixes error reporting on Windows.
Change-Id: I49b559aa9d0c227be4e8e3d0fdc43c402273a302
Task-number: QTBUG-15899
Reviewed-by: Damian Jansen
---
src/declarative/qml/qdeclarativedirparser.cpp | 15 +++++++++++----
src/declarative/qml/qdeclarativedirparser_p.h | 2 +-
src/declarative/qml/qdeclarativeimport.cpp | 9 ++++++---
src/declarative/qml/qdeclarativetypeloader.cpp | 9 ++-------
4 files changed, 20 insertions(+), 15 deletions(-)
diff --git a/src/declarative/qml/qdeclarativedirparser.cpp b/src/declarative/qml/qdeclarativedirparser.cpp
index 401eea9..fcc74da 100644
--- a/src/declarative/qml/qdeclarativedirparser.cpp
+++ b/src/declarative/qml/qdeclarativedirparser.cpp
@@ -108,14 +108,14 @@ bool QDeclarativeDirParser::parse()
QFile file(_filePathSouce);
if (!QDeclarative_isFileCaseCorrect(_filePathSouce)) {
QDeclarativeError error;
- error.setDescription(QString::fromUtf8("cannot load module \"%1\": File name case mismatch for \"%2\"").arg(_url.toString()).arg(_filePathSouce));
+ error.setDescription(QString::fromUtf8("cannot load module \"$$URI$$\": File name case mismatch for \"%1\"").arg(_filePathSouce));
_errors.prepend(error);
return false;
} else if (file.open(QFile::ReadOnly)) {
_source = QString::fromUtf8(file.readAll());
} else {
QDeclarativeError error;
- error.setDescription(QString::fromUtf8("module \"%1\" definition \"%2\" not readable").arg(_url.toString()).arg(_filePathSouce));
+ error.setDescription(QString::fromUtf8("module \"$$URI$$\" definition \"%1\" not readable").arg(_filePathSouce));
_errors.prepend(error);
return false;
}
@@ -243,9 +243,16 @@ bool QDeclarativeDirParser::hasError() const
return false;
}
-QList QDeclarativeDirParser::errors() const
+QList QDeclarativeDirParser::errors(const QString &uri) const
{
- return _errors;
+ QList errors = _errors;
+ for (int i = 0; i < errors.size(); ++i) {
+ QDeclarativeError &e = errors[i];
+ QString description = e.description();
+ description.replace(QLatin1String("$$URI$$"), uri);
+ e.setDescription(description);
+ }
+ return errors;
}
QList QDeclarativeDirParser::plugins() const
diff --git a/src/declarative/qml/qdeclarativedirparser_p.h b/src/declarative/qml/qdeclarativedirparser_p.h
index 347b229..bc84a42 100644
--- a/src/declarative/qml/qdeclarativedirparser_p.h
+++ b/src/declarative/qml/qdeclarativedirparser_p.h
@@ -80,7 +80,7 @@ public:
bool parse();
bool hasError() const;
- QList errors() const;
+ QList errors(const QString &uri) const;
struct Plugin
{
diff --git a/src/declarative/qml/qdeclarativeimport.cpp b/src/declarative/qml/qdeclarativeimport.cpp
index 44fc849..734d63e 100644
--- a/src/declarative/qml/qdeclarativeimport.cpp
+++ b/src/declarative/qml/qdeclarativeimport.cpp
@@ -361,8 +361,11 @@ bool QDeclarativeImportsPrivate::importExtension(const QString &absoluteFilePath
Q_ASSERT(typeLoader);
const QDeclarativeDirParser *qmldirParser = typeLoader->qmlDirParser(absoluteFilePath);
if (qmldirParser->hasError()) {
- if (errorString)
- *errorString = QDeclarativeImportDatabase::tr("module \"%1\" definition \"%2\" not readable").arg(uri).arg(absoluteFilePath);
+ if (errorString) {
+ const QList qmldirErrors = qmldirParser->errors(uri);
+ for (int i = 0; i < qmldirErrors.size(); ++i)
+ *errorString += qmldirErrors.at(i).description();
+ }
return false;
}
@@ -1022,7 +1025,7 @@ bool QDeclarativeImportDatabase::importPlugin(const QString &filePath, const QSt
if (!engineInitialized || !typesRegistered) {
if (!QDeclarative_isFileCaseCorrect(absoluteFilePath)) {
if (errorString)
- *errorString = tr("File name case mismatch for \"%2\"").arg(absoluteFilePath);
+ *errorString = tr("File name case mismatch for \"%1\"").arg(absoluteFilePath);
return false;
}
QPluginLoader loader(absoluteFilePath);
diff --git a/src/declarative/qml/qdeclarativetypeloader.cpp b/src/declarative/qml/qdeclarativetypeloader.cpp
index cd199ad..5e20617 100644
--- a/src/declarative/qml/qdeclarativetypeloader.cpp
+++ b/src/declarative/qml/qdeclarativetypeloader.cpp
@@ -789,18 +789,13 @@ Return a QDeclarativeDirParser for absoluteFilePath. The QDeclarativeDirParser
const QDeclarativeDirParser *QDeclarativeTypeLoader::qmlDirParser(const QString &absoluteFilePath)
{
QDeclarativeDirParser *qmldirParser;
-#if defined(Q_OS_WIN32) || defined(Q_OS_WINCE) || defined(Q_OS_DARWIN) || defined(Q_OS_SYMBIAN)
- QString lowPath(absoluteFilePath.toLower());
-#else
- QString lowPath(absoluteFilePath);
-#endif
- QHash::const_iterator it = m_importQmlDirCache.find(lowPath);
+ QHash::const_iterator it = m_importQmlDirCache.find(absoluteFilePath);
if (it == m_importQmlDirCache.end()) {
qmldirParser = new QDeclarativeDirParser;
qmldirParser->setFileSource(absoluteFilePath);
qmldirParser->setUrl(QUrl::fromLocalFile(absoluteFilePath));
qmldirParser->parse();
- m_importQmlDirCache.insert(lowPath, qmldirParser);
+ m_importQmlDirCache.insert(absoluteFilePath, qmldirParser);
} else {
qmldirParser = *it;
}
--
cgit v0.12
From 61f165239c4e87a8f6bcd594553b8fcea1a7f8d0 Mon Sep 17 00:00:00 2001
From: Martin Jones
Date: Wed, 12 Oct 2011 17:02:12 +1000
Subject: Cannot flick to the end of a horizontal list view width
LayoutMirroring
minXExtent calculated the offset due to highlight range incorrectly
(reversed) when mirroring enabled. Also us same algorithm for fixup()
in GridView and ListView uses.
Change-Id: Id7e7e540a894d6f520685b237d34b4186bc427b6
Task-number: QTBUG-21756
Reviewed-by: Bea Lam
---
.../graphicsitems/qdeclarativegridview.cpp | 23 +++++++++-------------
.../graphicsitems/qdeclarativelistview.cpp | 2 +-
2 files changed, 10 insertions(+), 15 deletions(-)
diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp
index ff88e31..03cc335 100644
--- a/src/declarative/graphicsitems/qdeclarativegridview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp
@@ -1093,23 +1093,17 @@ void QDeclarativeGridViewPrivate::fixup(AxisData &data, qreal minExtent, qreal m
bottomItem = currentItem;
}
qreal pos;
- if (topItem && bottomItem && strictHighlightRange) {
- qreal topPos = qMin(topItem->rowPos() - highlightStart, -maxExtent);
- qreal bottomPos = qMax(bottomItem->rowPos() - highlightEnd, -minExtent);
- pos = qAbs(data.move + topPos) < qAbs(data.move + bottomPos) ? topPos : bottomPos;
- } else if (topItem) {
- qreal headerPos = 0;
- if (header)
- headerPos = isRightToLeftTopToBottom() ? header->rowPos() + cellWidth - headerSize() : header->rowPos();
- if (topItem->index == 0 && header && tempPosition+highlightStart < headerPos+headerSize()/2 && !strictHighlightRange) {
- pos = isRightToLeftTopToBottom() ? - headerPos + highlightStart - size() : headerPos - highlightStart;
+ bool isInBounds = -position() > maxExtent && -position() <= minExtent;
+ if (topItem && (isInBounds || strictHighlightRange)) {
+ if (topItem->index == 0 && header && tempPosition+highlightStart < header->rowPos()+headerSize()/2 && !strictHighlightRange) {
+ pos = isRightToLeftTopToBottom() ? - header->rowPos() + highlightStart - size() : header->rowPos() - highlightStart;
} else {
if (isRightToLeftTopToBottom())
pos = qMax(qMin(-topItem->rowPos() + highlightStart - size(), -maxExtent), -minExtent);
else
pos = qMax(qMin(topItem->rowPos() - highlightStart, -maxExtent), -minExtent);
}
- } else if (bottomItem) {
+ } else if (bottomItem && isInBounds) {
if (isRightToLeftTopToBottom())
pos = qMax(qMin(-bottomItem->rowPos() + highlightEnd - size(), -maxExtent), -minExtent);
else
@@ -2255,9 +2249,10 @@ qreal QDeclarativeGridView::minXExtent() const
qreal extent = -d->startPosition();
qreal highlightStart;
qreal highlightEnd;
- qreal endPositionFirstItem;
+ qreal endPositionFirstItem = 0;
if (d->isRightToLeftTopToBottom()) {
- endPositionFirstItem = d->rowPosAt(d->model->count()-1);
+ if (d->model && d->model->count())
+ endPositionFirstItem = d->rowPosAt(d->model->count()-1);
highlightStart = d->highlightRangeStartValid
? d->highlightRangeStart - (d->lastPosition()-endPositionFirstItem)
: d->size() - (d->lastPosition()-endPositionFirstItem);
@@ -2272,7 +2267,7 @@ qreal QDeclarativeGridView::minXExtent() const
extent += d->header->item->width();
}
if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) {
- extent += highlightStart;
+ extent += d->isRightToLeftTopToBottom() ? -highlightStart : highlightStart;
extent = qMax(extent, -(endPositionFirstItem - highlightEnd));
}
return extent;
diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp
index 6c8e99b..2db29fe 100644
--- a/src/declarative/graphicsitems/qdeclarativelistview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp
@@ -2762,7 +2762,7 @@ qreal QDeclarativeListView::minXExtent() const
d->minExtent += d->header->size();
}
if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) {
- d->minExtent += highlightStart;
+ d->minExtent += d->isRightToLeft() ? -highlightStart : highlightStart;
d->minExtent = qMax(d->minExtent, -(endPositionFirstItem - highlightEnd + 1));
}
d->minExtentDirty = false;
--
cgit v0.12
From 4c64464ddf63ed89603ad759ffb68c6f298edd26 Mon Sep 17 00:00:00 2001
From: Jens Bache-Wiig
Date: Thu, 13 Oct 2011 14:37:36 +0200
Subject: Fix regression in ListView
This reverts commit d91a8f3a5dbcf3e4c4c0afb28463b25e192b00e4
and introduces a minimal fix for the original crash report.
Task-number: QTBUG-21433
Reviewed-by: gabriel
---
src/gui/itemviews/qlistview.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/gui/itemviews/qlistview.cpp b/src/gui/itemviews/qlistview.cpp
index a0955d2..01a9eec 100644
--- a/src/gui/itemviews/qlistview.cpp
+++ b/src/gui/itemviews/qlistview.cpp
@@ -1475,7 +1475,7 @@ void QListView::doItemsLayout()
void QListView::updateGeometries()
{
Q_D(QListView);
- if (d->model->rowCount(d->root) <= 0 || d->model->columnCount(d->root) <= 0) {
+ if (geometry().isEmpty() || d->model->rowCount(d->root) <= 0 || d->model->columnCount(d->root) <= 0) {
horizontalScrollBar()->setRange(0, 0);
verticalScrollBar()->setRange(0, 0);
} else {
@@ -1490,15 +1490,15 @@ void QListView::updateGeometries()
// if the scroll bars are turned off, we resize the contents to the viewport
if (d->movement == Static && !d->isWrapping()) {
- const QSize maxSize = maximumViewportSize();
+ d->layoutChildren(); // we need the viewport size to be updated
if (d->flow == TopToBottom) {
if (horizontalScrollBarPolicy() == Qt::ScrollBarAlwaysOff) {
- d->setContentsSize(maxSize.width(), contentsSize().height());
+ d->setContentsSize(viewport()->width(), contentsSize().height());
horizontalScrollBar()->setRange(0, 0); // we see all the contents anyway
}
} else { // LeftToRight
if (verticalScrollBarPolicy() == Qt::ScrollBarAlwaysOff) {
- d->setContentsSize(contentsSize().width(), maxSize.height());
+ d->setContentsSize(contentsSize().width(), viewport()->height());
verticalScrollBar()->setRange(0, 0); // we see all the contents anyway
}
}
--
cgit v0.12
From 3ae56c0e4cfdd30579dbbff97fbf37af1da73a78 Mon Sep 17 00:00:00 2001
From: Shane Kearns
Date: Thu, 13 Oct 2011 15:45:47 +0100
Subject: symbian - search drives for translation files
Qt may be installed on a different drive from the application,
particularly the case when Qt is included in ROM (Z:) and the
application is on C:
With this change, if QTranslator::load() specifies an absolute
directory in the filesystem (e.g. "/resource/qt/translations") without
a drive letter, then the symbian search paths are used.
Note that this example path is the one returned by QLibraryInfo so
applications using the example code from
http://doc.qt.nokia.com/latest/internationalization.html#produce-translations
will work as expected.
Task-number: QT-5246
Reviewed-by: mread
---
src/corelib/kernel/qtranslator.cpp | 40 ++++++++++++++++++++++++++++++++++++--
1 file changed, 38 insertions(+), 2 deletions(-)
diff --git a/src/corelib/kernel/qtranslator.cpp b/src/corelib/kernel/qtranslator.cpp
index 3672846..1a9acbb 100644
--- a/src/corelib/kernel/qtranslator.cpp
+++ b/src/corelib/kernel/qtranslator.cpp
@@ -50,6 +50,7 @@
#include "qcoreapplication.h"
#include "qcoreapplication_p.h"
#include "qdatastream.h"
+#include "qdir.h"
#include "qfile.h"
#include "qmap.h"
#include "qalgorithms.h"
@@ -61,6 +62,10 @@
#include "private/qcore_unix_p.h"
#endif
+#ifdef Q_OS_SYMBIAN
+#include "private/qcore_symbian_p.h"
+#endif
+
// most of the headers below are already included in qplatformdefs.h
// also this lacks Large File support but that's probably irrelevant
#if defined(QT_USE_MMAP)
@@ -402,11 +407,24 @@ bool QTranslator::load(const QString & filename, const QString & directory,
QString prefix;
if (QFileInfo(filename).isRelative()) {
+#ifdef Q_OS_SYMBIAN
+ if(directory.isEmpty())
+ prefix = QCoreApplication::applicationDirPath();
+ else
+ prefix = QFileInfo(directory).absoluteFilePath(); //TFindFile doesn't like dirty paths
+ if (prefix.length() > 2 && prefix.at(1) == QLatin1Char(':') && prefix.at(0).isLetter())
+ prefix[0] = QLatin1Char('Y');
+#else
prefix = directory;
- if (prefix.length() && !prefix.endsWith(QLatin1Char('/')))
- prefix += QLatin1Char('/');
+#endif
+ if (prefix.length() && !prefix.endsWith(QLatin1Char('/')))
+ prefix += QLatin1Char('/');
}
+#ifdef Q_OS_SYMBIAN
+ QString nativePrefix = QDir::toNativeSeparators(prefix);
+#endif
+
QString fname = filename;
QString realname;
QString delims;
@@ -415,6 +433,24 @@ bool QTranslator::load(const QString & filename, const QString & directory,
for (;;) {
QFileInfo fi;
+#ifdef Q_OS_SYMBIAN
+ //search for translations on other drives, e.g. Qt may be in Z, while app is in C
+ //note this uses symbian search rules, i.e. y:->a:, followed by z:
+ TFindFile finder(qt_s60GetRFs());
+ QString fname2 = fname + (suffix.isNull() ? QString::fromLatin1(".qm") : suffix);
+ TInt err = finder.FindByDir(
+ qt_QString2TPtrC(fname2),
+ qt_QString2TPtrC(nativePrefix));
+ if (err != KErrNone)
+ err = finder.FindByDir(qt_QString2TPtrC(fname), qt_QString2TPtrC(nativePrefix));
+ if (err == KErrNone) {
+ fi.setFile(qt_TDesC2QString(finder.File()));
+ realname = fi.canonicalFilePath();
+ if (fi.isReadable() && fi.isFile())
+ break;
+ }
+#endif
+
realname = prefix + fname + (suffix.isNull() ? QString::fromLatin1(".qm") : suffix);
fi.setFile(realname);
if (fi.isReadable() && fi.isFile())
--
cgit v0.12
From 5dec90ff13cd96ca4f341cf5e8360037edf5eeb3 Mon Sep 17 00:00:00 2001
From: Shane Kearns
Date: Thu, 13 Oct 2011 15:45:47 +0100
Subject: symbian - search drives for translation files
Qt may be installed on a different drive from the application,
particularly the case when Qt is included in ROM (Z:) and the
application is on C:
With this change, if QTranslator::load() specifies an absolute
directory in the filesystem (e.g. "/resource/qt/translations") without
a drive letter, then the symbian search paths are used.
Note that this example path is the one returned by QLibraryInfo so
applications using the example code from
http://doc.qt.nokia.com/latest/internationalization.html#produce-translations
will work as expected.
Task-number: QT-5246
Reviewed-by: mread
---
src/corelib/kernel/qtranslator.cpp | 40 ++++++++++++++++++++++++++++++++++++--
1 file changed, 38 insertions(+), 2 deletions(-)
diff --git a/src/corelib/kernel/qtranslator.cpp b/src/corelib/kernel/qtranslator.cpp
index 3672846..8c08760 100644
--- a/src/corelib/kernel/qtranslator.cpp
+++ b/src/corelib/kernel/qtranslator.cpp
@@ -50,6 +50,7 @@
#include "qcoreapplication.h"
#include "qcoreapplication_p.h"
#include "qdatastream.h"
+#include "qdir.h"
#include "qfile.h"
#include "qmap.h"
#include "qalgorithms.h"
@@ -61,6 +62,10 @@
#include "private/qcore_unix_p.h"
#endif
+#ifdef Q_OS_SYMBIAN
+#include "private/qcore_symbian_p.h"
+#endif
+
// most of the headers below are already included in qplatformdefs.h
// also this lacks Large File support but that's probably irrelevant
#if defined(QT_USE_MMAP)
@@ -402,11 +407,24 @@ bool QTranslator::load(const QString & filename, const QString & directory,
QString prefix;
if (QFileInfo(filename).isRelative()) {
+#ifdef Q_OS_SYMBIAN
+ if (directory.isEmpty())
+ prefix = QCoreApplication::applicationDirPath();
+ else
+ prefix = QFileInfo(directory).absoluteFilePath(); //TFindFile doesn't like dirty paths
+ if (prefix.length() > 2 && prefix.at(1) == QLatin1Char(':') && prefix.at(0).isLetter())
+ prefix[0] = QLatin1Char('Y');
+#else
prefix = directory;
- if (prefix.length() && !prefix.endsWith(QLatin1Char('/')))
- prefix += QLatin1Char('/');
+#endif
+ if (prefix.length() && !prefix.endsWith(QLatin1Char('/')))
+ prefix += QLatin1Char('/');
}
+#ifdef Q_OS_SYMBIAN
+ QString nativePrefix = QDir::toNativeSeparators(prefix);
+#endif
+
QString fname = filename;
QString realname;
QString delims;
@@ -415,6 +433,24 @@ bool QTranslator::load(const QString & filename, const QString & directory,
for (;;) {
QFileInfo fi;
+#ifdef Q_OS_SYMBIAN
+ //search for translations on other drives, e.g. Qt may be in Z, while app is in C
+ //note this uses symbian search rules, i.e. y:->a:, followed by z:
+ TFindFile finder(qt_s60GetRFs());
+ QString fname2 = fname + (suffix.isNull() ? QString::fromLatin1(".qm") : suffix);
+ TInt err = finder.FindByDir(
+ qt_QString2TPtrC(fname2),
+ qt_QString2TPtrC(nativePrefix));
+ if (err != KErrNone)
+ err = finder.FindByDir(qt_QString2TPtrC(fname), qt_QString2TPtrC(nativePrefix));
+ if (err == KErrNone) {
+ fi.setFile(qt_TDesC2QString(finder.File()));
+ realname = fi.canonicalFilePath();
+ if (fi.isReadable() && fi.isFile())
+ break;
+ }
+#endif
+
realname = prefix + fname + (suffix.isNull() ? QString::fromLatin1(".qm") : suffix);
fi.setFile(realname);
if (fi.isReadable() && fi.isFile())
--
cgit v0.12
From b3eca5777543fb6fc97e025b03fe07ed9541c0a5 Mon Sep 17 00:00:00 2001
From: Jan-Arve Saether
Date: Fri, 14 Oct 2011 11:47:58 +0200
Subject: Fix bug in QStringToBSTR.
Use the same implementation as found in ActiveQt, which Volker
suggested.
Task-number: QTBUG-11083
---
src/gui/accessible/qaccessible_win.cpp | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/src/gui/accessible/qaccessible_win.cpp b/src/gui/accessible/qaccessible_win.cpp
index c1bb54b..f404535 100644
--- a/src/gui/accessible/qaccessible_win.cpp
+++ b/src/gui/accessible/qaccessible_win.cpp
@@ -691,14 +691,7 @@ private:
static inline BSTR QStringToBSTR(const QString &str)
{
- BSTR bstrVal;
-
- int wlen = str.length()+1;
- bstrVal = SysAllocStringByteLen(0, wlen*2);
- memcpy(bstrVal, str.unicode(), sizeof(QChar)*(wlen));
- bstrVal[wlen] = 0;
-
- return bstrVal;
+ return SysAllocStringLen((OLECHAR*)str.unicode(), str.length());
}
/*
--
cgit v0.12
From 2482191bfe660963825b404735811320a49f2b3f Mon Sep 17 00:00:00 2001
From: Joerg Bornemann
Date: Fri, 14 Oct 2011 17:18:31 +0200
Subject: qmake: fix writing of incremental linker option for vcxproj files
---
qmake/generators/win32/msbuild_objectmodel.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp
index 0b201b8..bf84e60 100644
--- a/qmake/generators/win32/msbuild_objectmodel.cpp
+++ b/qmake/generators/win32/msbuild_objectmodel.cpp
@@ -653,7 +653,7 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProject &tool)
<< valueTagT(tool.SingleProjects.at(i).Configuration.linker.IgnoreImportLibrary);
}
- if ( tool.SingleProjects.at(i).Configuration.linker.LinkIncremental != unset) {
+ if ( tool.SingleProjects.at(i).Configuration.linker.LinkIncremental != linkIncrementalDefault) {
const triState ts = (tool.SingleProjects.at(i).Configuration.linker.LinkIncremental == linkIncrementalYes ? _True : _False);
xml << tag("LinkIncremental")
<< attrTag("Condition", QString("'$(Configuration)|$(Platform)'=='%1'").arg(tool.SingleProjects.at(i).Configuration.Name))
--
cgit v0.12
From 2543ed5b1b18864797b3a11c9bd13887c7567e86 Mon Sep 17 00:00:00 2001
From: Jani Hautakangas
Date: Fri, 14 Oct 2011 13:00:15 +0300
Subject: Add new signals to indicate GPU resource usage.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
QML elements that use GPU resources directly
needs to know when Qt releases GPU resources
and when they are available again.
Task-number: QT-5310
Reviewed-by: Samuel Rødal
---
src/gui/kernel/qapplication.cpp | 28 ++++++++++++++++++++++++++++
src/gui/kernel/qapplication.h | 4 ++++
src/gui/kernel/qapplication_p.h | 3 +++
src/gui/kernel/qapplication_s60.cpp | 24 ++++++++++++++++++++++++
src/s60installs/eabi/QtGuiu.def | 7 +++++++
5 files changed, 66 insertions(+)
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index 34ce9a8..34decef 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -3389,7 +3389,35 @@ QString QApplication::sessionKey() const
}
#endif
+/*!
+ \since 4.7.4
+ \fn void QApplication::aboutToReleaseGpuResources()
+
+ This signal is emitted when application is about to release all
+ GPU resources accociated to contexts owned by application.
+
+ The signal is particularly useful if your application has allocated
+ GPU resources directly apart from Qt and needs to do some last-second
+ cleanup.
+
+ \warning This signal is only emitted on Symbian.
+
+ \sa aboutToUseGpuResources()
+*/
+/*!
+ \since 4.7.4
+ \fn void QApplication::aboutToUseGpuResources()
+
+ This signal is emitted when application is about to use GPU resources.
+
+ The signal is particularly useful if your application needs to know
+ when GPU resources are be available.
+
+ \warning This signal is only emitted on Symbian.
+
+ \sa aboutToFreeGpuResources()
+*/
/*!
\since 4.2
diff --git a/src/gui/kernel/qapplication.h b/src/gui/kernel/qapplication.h
index cbf0117..32ff91b 100644
--- a/src/gui/kernel/qapplication.h
+++ b/src/gui/kernel/qapplication.h
@@ -298,6 +298,10 @@ Q_SIGNALS:
void commitDataRequest(QSessionManager &sessionManager);
void saveStateRequest(QSessionManager &sessionManager);
#endif
+#ifdef Q_OS_SYMBIAN
+ void aboutToReleaseGpuResources();
+ void aboutToUseGpuResources();
+#endif
public:
QString styleSheet() const;
diff --git a/src/gui/kernel/qapplication_p.h b/src/gui/kernel/qapplication_p.h
index 99822e2..abdee49 100644
--- a/src/gui/kernel/qapplication_p.h
+++ b/src/gui/kernel/qapplication_p.h
@@ -523,6 +523,9 @@ public:
int symbianResourceChange(const QSymbianEvent *symbianEvent);
void _q_aboutToQuit();
+
+ void emitAboutToReleaseGpuResources();
+ void emitAboutToUseGpuResources();
#endif
#if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined (Q_WS_QWS) || defined(Q_WS_MAC)
void sendSyntheticEnterLeave(QWidget *widget);
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp
index a53d273..5c657a4 100644
--- a/src/gui/kernel/qapplication_s60.cpp
+++ b/src/gui/kernel/qapplication_s60.cpp
@@ -207,6 +207,9 @@ void QS60Data::controlVisibilityChanged(CCoeControl *control, bool visible)
if (QTLWExtra *topData = qt_widget_private(window)->maybeTopData()) {
QWidgetBackingStoreTracker &backingStore = topData->backingStore;
if (visible) {
+ QApplicationPrivate *d = QApplicationPrivate::instance();
+ d->emitAboutToUseGpuResources();
+
if (backingStore.data()) {
backingStore.registerWidget(widget);
} else {
@@ -216,6 +219,9 @@ void QS60Data::controlVisibilityChanged(CCoeControl *control, bool visible)
widget->repaint();
}
} else {
+ QApplicationPrivate *d = QApplicationPrivate::instance();
+ d->emitAboutToReleaseGpuResources();
+
// In certain special scenarios we may get an ENotVisible event
// without a previous EPartiallyVisible. The backingstore must
// still be destroyed, hence the registerWidget() call below.
@@ -2704,6 +2710,24 @@ void QApplicationPrivate::_q_aboutToQuit()
#endif
}
+void QApplicationPrivate::emitAboutToReleaseGpuResources()
+{
+#ifdef Q_SYMBIAN_SUPPORTS_SURFACES
+ Q_Q(QApplication);
+ QPointer guard(q);
+ emit q->aboutToReleaseGpuResources();
+#endif
+}
+
+void QApplicationPrivate::emitAboutToUseGpuResources()
+{
+#ifdef Q_SYMBIAN_SUPPORTS_SURFACES
+ Q_Q(QApplication);
+ QPointer guard(q);
+ emit q->aboutToUseGpuResources();
+#endif
+}
+
QS60ThreadLocalData::QS60ThreadLocalData()
{
CCoeEnv *env = CCoeEnv::Static();
diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def
index 6028a6d..723fcf6 100644
--- a/src/s60installs/eabi/QtGuiu.def
+++ b/src/s60installs/eabi/QtGuiu.def
@@ -12198,4 +12198,11 @@ EXPORTS
_ZNK11QPixmapData15toVolatileImageEv @ 12197 NONAME
_ZNK14QVolatileImage13constImageRefEv @ 12198 NONAME
_Z43qt_s60_setPartialScreenAutomaticTranslationb @ 12199 NONAME
+ _ZN11QTextEngine16getClusterLengthEPtPK17HB_CharAttributesiiiPi @ 12200 NONAME
+ _ZN11QTextEngine18positionInLigatureEPK11QScriptItemi6QFixedS3_ib @ 12201 NONAME
+ _ZN12QApplication22aboutToUseGpuResourcesEv @ 12202 NONAME
+ _ZN12QApplication26aboutToReleaseGpuResourcesEv @ 12203 NONAME
+ _ZN14QWidgetPrivate16_q_cleanupWinIdsEv @ 12204 NONAME
+ _ZN19QApplicationPrivate26emitAboutToUseGpuResourcesEv @ 12205 NONAME
+ _ZN19QApplicationPrivate30emitAboutToReleaseGpuResourcesEv @ 12206 NONAME
--
cgit v0.12
From 968d4a3c2c01d6afdfeb2537b960169968942d9d Mon Sep 17 00:00:00 2001
From: Jani Hautakangas
Date: Fri, 14 Oct 2011 19:36:08 +0300
Subject: Typo fix
Reviewed-by: trustme
---
src/gui/kernel/qapplication.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index 34decef..9d8b590 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -3394,7 +3394,7 @@ QString QApplication::sessionKey() const
\fn void QApplication::aboutToReleaseGpuResources()
This signal is emitted when application is about to release all
- GPU resources accociated to contexts owned by application.
+ GPU resources associated to contexts owned by application.
The signal is particularly useful if your application has allocated
GPU resources directly apart from Qt and needs to do some last-second
--
cgit v0.12
From 93c64e1be3a2d68eb504d7c4f7c60f66ce1ff650 Mon Sep 17 00:00:00 2001
From: Michael Brasser
Date: Fri, 30 Sep 2011 13:33:56 +1000
Subject: Fix crash on exit when overriding signal handlers in states.
Change-Id: I0e73948f18aa1b78c7e92677167673b84a90a450
Task-number: QTBUG-21617
Reviewed-by: Martin Jones
---
.../util/qdeclarativepropertychanges.cpp | 5 ++--
.../data/signalOverrideCrash3.qml | 27 ++++++++++++++++++++++
.../qdeclarativestates/tst_qdeclarativestates.cpp | 17 ++++++++++++++
3 files changed, 47 insertions(+), 2 deletions(-)
create mode 100644 tests/auto/declarative/qdeclarativestates/data/signalOverrideCrash3.qml
diff --git a/src/declarative/util/qdeclarativepropertychanges.cpp b/src/declarative/util/qdeclarativepropertychanges.cpp
index 5cdf785..f86274f 100644
--- a/src/declarative/util/qdeclarativepropertychanges.cpp
+++ b/src/declarative/util/qdeclarativepropertychanges.cpp
@@ -171,7 +171,8 @@ public:
reverseExpression = rewindExpression;
}
- /*virtual void copyOriginals(QDeclarativeActionEvent *other)
+ virtual bool needsCopy() { return true; }
+ virtual void copyOriginals(QDeclarativeActionEvent *other)
{
QDeclarativeReplaceSignalHandler *rsh = static_cast(other);
saveCurrentValues();
@@ -182,7 +183,7 @@ public:
ownedExpression = rsh->ownedExpression;
rsh->ownedExpression = 0;
}
- }*/
+ }
virtual void rewind() {
ownedExpression = QDeclarativePropertyPrivate::setSignalExpression(property, rewindExpression);
diff --git a/tests/auto/declarative/qdeclarativestates/data/signalOverrideCrash3.qml b/tests/auto/declarative/qdeclarativestates/data/signalOverrideCrash3.qml
new file mode 100644
index 0000000..ed1f22f
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativestates/data/signalOverrideCrash3.qml
@@ -0,0 +1,27 @@
+import QtQuick 1.0
+
+Rectangle {
+ id: myRect
+ width: 400
+ height: 400
+
+ onHeightChanged: console.log("base state")
+
+ states: [
+ State {
+ name: "state1"
+ PropertyChanges {
+ target: myRect
+ onHeightChanged: console.log("state1")
+ color: "green"
+ }
+ },
+ State {
+ name: "state2";
+ PropertyChanges {
+ target: myRect
+ onHeightChanged: console.log("state2")
+ color: "red"
+ }
+ }]
+}
diff --git a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
index 9fafa7d..e90e6fb 100644
--- a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
+++ b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
@@ -113,6 +113,7 @@ private slots:
void signalOverride();
void signalOverrideCrash();
void signalOverrideCrash2();
+ void signalOverrideCrash3();
void parentChange();
void parentChangeErrors();
void anchorChanges();
@@ -520,6 +521,22 @@ void tst_qdeclarativestates::signalOverrideCrash2()
delete rect;
}
+void tst_qdeclarativestates::signalOverrideCrash3()
+{
+ QDeclarativeEngine engine;
+
+ QDeclarativeComponent rectComponent(&engine, SRCDIR "/data/signalOverrideCrash3.qml");
+ QDeclarativeRectangle *rect = qobject_cast(rectComponent.create());
+ QVERIFY(rect != 0);
+
+ QDeclarativeItemPrivate::get(rect)->setState("state1");
+ QDeclarativeItemPrivate::get(rect)->setState("");
+ QDeclarativeItemPrivate::get(rect)->setState("state2");
+ QDeclarativeItemPrivate::get(rect)->setState("");
+
+ delete rect;
+}
+
void tst_qdeclarativestates::parentChange()
{
QDeclarativeEngine engine;
--
cgit v0.12
From 4a52d5b9b038d3b800156b01546d980d3cf36f58 Mon Sep 17 00:00:00 2001
From: Park Shinjo
Date: Mon, 17 Oct 2011 11:32:27 +0200
Subject: Update Korean translations to 4.8
Merge-request: 1416
Reviewed-by: Oswald Buddenhagen
---
translations/assistant_ko.ts | 165 +++++++-
translations/designer_ko.ts | 109 +++++-
translations/linguist_ko.ts | 16 +-
translations/qt_ko.ts | 530 +++++++++++++++++++++++++-
translations/qtconfig_ko.ts | 886 +++++++++++++++++++++++++++++++++++--------
5 files changed, 1509 insertions(+), 197 deletions(-)
diff --git a/translations/assistant_ko.ts b/translations/assistant_ko.ts
index 1dbdf4f..c9d51cd 100644
--- a/translations/assistant_ko.ts
+++ b/translations/assistant_ko.ts
@@ -259,6 +259,10 @@ Reason:
주소
+ Toolbar Menu
+ 도구 모음 메뉴
+
+
Bookmarks Menu
책갈피 메뉴
@@ -286,11 +290,11 @@ Reason:
CentralWidget
Add new page
- 새 쪽 추가
+ 새 쪽 추가
Close current page
- 현재 쪽 닫기
+ 현재 쪽 닫기
Print Document
@@ -298,27 +302,27 @@ Reason:
unknown
- 알 수 없음
+ 알 수 없음
Add New Page
- 새 쪽 추가
+ 새 쪽 추가
Close This Page
- 이 쪽 닫기
+ 이 쪽 닫기
Close Other Pages
- 다른 쪽 닫기
+ 다른 쪽 닫기
Add Bookmark for this Page...
- 이 쪽을 책갈피에 추가...
+ 이 쪽을 책갈피에 추가...
Search
- 찾기
+ 찾기
@@ -657,6 +661,49 @@ Reason:
+ GlobalActions
+
+ &Back
+ 뒤로(&B)
+
+
+ &Forward
+ 앞으로(&F)
+
+
+ &Home
+ 홈 페이지(&H)
+
+
+ ALT+Home
+ ALT+Home
+
+
+ Zoom &in
+ 확대(&I)
+
+
+ Zoom &out
+ 축소(&O)
+
+
+ &Copy selected Text
+ 선택한 텍스트 복사(&C)
+
+
+ &Print...
+ 인쇄(&P)...
+
+
+ &Find in Text...
+ 텍스트에서 찾기(&F)...
+
+
+ &Find
+ 찾기(&F)
+
+
+
HelpEngineWrapper
Unfiltered
@@ -681,16 +728,32 @@ Reason:
<title>404 오류...</title><div align="center"><br><br><h1>페이지를 찾을 수 없음</h1><br><h3>'%1'</h3></div>
+ Open Link
+ 링크 열기
+
+
Copy &Link Location
링크 주소 복사(&L)
+ Copy
+ 복사
+
+
+ Reload
+ 새로 고침
+
+
Open Link in New Tab Ctrl+LMB
새 탭으로 링크 열기 Ctrl+LMB
Open Link in New Tab
- 새 탭으로 링크 열기
+ 새 탭으로 링크 열기
+
+
+ Open Link in New Page
+ 새 쪽으로 링크 열기
@@ -881,10 +944,18 @@ Reason:
책갈피
+ Open Pages
+ 쪽 열기
+
+
Qt Assistant
Qt Assistant
+ Bookmark Toolbar
+ 책갈피 도구 모음
+
+
Looking for Qt Documentation...
Qt 문서 찾는 중...
@@ -906,7 +977,7 @@ Reason:
&Print...
- 인쇄(&P)...
+ 인쇄(&P)...
&Close Tab
@@ -926,15 +997,15 @@ Reason:
&Copy selected Text
- 선택한 텍스트 복사(&C)
+ 선택한 텍스트 복사(&C)
&Find in Text...
- 텍스트에서 찾기(&F)...
+ 텍스트에서 찾기(&F)...
&Find
- 찾기(&F)
+ 찾기(&F)
Find &Next
@@ -954,11 +1025,11 @@ Reason:
Zoom &in
- 확대(&I)
+ 확대(&I)
Zoom &out
- 축소(&O)
+ 축소(&O)
Normal &Size
@@ -985,28 +1056,36 @@ Reason:
찾기
+ E&xit
+ 끝내기(&X)
+
+
ALT+S
ALT+S
+ ALT+P
+ ALT+P
+
+
&Go
이동(&G)
&Home
- 홈 페이지(&H)
+ 홈 페이지(&H)
ALT+Home
- ALT+Home
+ ALT+Home
&Back
- 뒤로(&B)
+ 뒤로(&B)
&Forward
- 앞으로(&F)
+ 앞으로(&F)
Sync with Table of Contents
@@ -1089,8 +1168,12 @@ Reason:
연결된 내용을 찾을 수 없습니다.
+ <center><h3>%1</h3><p>Version %2</p></center><p>Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).</p>
+ <center><h3>%1</h3><p>버전 %2</p></center><p>저작권자 (C) 2011 Nokia Corporation and/or its subsidiary(-ies).</p>
+
+
<center><h3>%1</h3><p>Version %2</p></center><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p>
- <center><h3>%1</h3><p>버전 %2</p></center><p>저작권자 (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p>
+ <center><h3>%1</h3><p>버전 %2</p></center><p>저작권자 (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p>
About %1
@@ -1106,6 +1189,17 @@ Reason:
+ OpenPagesWidget
+
+ Close %1
+ %1 닫기
+
+
+ Close All Except %1
+ %1 이외 모두 닫기
+
+
+
OutputPage
Form
@@ -1324,6 +1418,14 @@ Do you want to remove it?
Restore to default
기본값으로 복원
+
+ Appearance
+ 모양
+
+
+ Show tabs for each individual page
+ 각각 쪽마다 탭 보이기
+
QCollectionGenerator
@@ -1526,6 +1628,29 @@ qhelpgenerator <help-project-file> [옵션]
+ TabBar
+
+ (Untitled)
+ (제목 없음)
+
+
+ New &Tab
+ 새 탭(&T)
+
+
+ &Close Tab
+ 탭 닫기(&C)
+
+
+ Close Other Tabs
+ 다른 탭 닫기
+
+
+ Add Bookmark for this Page...
+ 이 쪽을 책갈피에 추가...
+
+
+
TopicChooser
Choose Topic
diff --git a/translations/designer_ko.ts b/translations/designer_ko.ts
index b14273f..9c2f6a8 100644
--- a/translations/designer_ko.ts
+++ b/translations/designer_ko.ts
@@ -410,7 +410,7 @@
page
- 쪽
+ 쪽
Insert Subwindow
@@ -418,7 +418,7 @@
subwindow
- subwindow
+ subwindow
Subwindow
@@ -461,6 +461,10 @@
'%1'의 레이아웃을 %2에서 %3(으)로 변경
+ Change layout alignment
+ 레이아웃 정렬 변경
+
+
Set action text
동작 텍스트 설정
@@ -1813,7 +1817,11 @@ Container pages should only be added by specifying them in XML returned by the d
Edit
- 편집
+ 편집
+
+
+ &Edit
+ 편집(&E)
F&orm
@@ -3248,8 +3256,12 @@ Do you want overwrite the template?
<br/>Qt Designer는 Qt 프로그램의 그래픽 사용자 인터페이스 디자이너입니다.<br/>
+ %1<br/>Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+ %1<br/>저작권자 (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+
+
%1<br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- %1<br/>저작권자 (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ %1<br/>저작권자 (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
@@ -3725,6 +3737,10 @@ Do you want overwrite the template?
상속됨
+ [Theme] %1
+ [테마] %1
+
+
Horizontal
수평
@@ -3733,6 +3749,10 @@ Do you want overwrite the template?
수직
+ Theme
+ 테마
+
+
Normal Off
일반 꺼짐
@@ -4317,6 +4337,17 @@ Do you want overwrite the template?
+ qdesigner_internal::IconThemeDialog
+
+ Set Icon From Theme
+ 테마에서 아이콘 선택하기
+
+
+ Input icon name from the current theme:
+ 현재 테마의 아이콘 이름을 입력하십시오:
+
+
+
qdesigner_internal::ItemListEditor
Items List
@@ -4467,20 +4498,36 @@ Do you want overwrite the template?
Shortcut:
- 단축키:
+ 단축키:
Checkable:
- 선택 가능:
+ 선택 가능:
ToolTip:
- 풍선 도움말:
+ 풍선 도움말:
...
...
+
+ T&oolTip:
+ 풍선 도움말:
+
+
+ Icon th&eme:
+ 아이콘 테마(&E):
+
+
+ &Checkable:
+ 선택 가능(&C):
+
+
+ &Shortcut:
+ 단축키(&S):
+
qdesigner_internal::NewDynamicPropertyDialog
@@ -4730,6 +4777,10 @@ Please select another name.
파일 선택...
+ Set Icon From Theme...
+ 테마에서 아이콘 선택...
+
+
Copy Path
경로 복사
@@ -4741,6 +4792,10 @@ Please select another name.
...
...
+
+ [Theme] %1
+ [테마] %1
+
qdesigner_internal::PlainTextEditorDialog
@@ -5064,6 +5119,42 @@ Class: %2
qdesigner_internal::QDesignerTaskMenu
+ Layout Alignment
+ 레이아웃 정렬
+
+
+ No Horizontal Alignment
+ 수평 정렬 없음
+
+
+ Left
+ 왼쪽
+
+
+ Center Horizontally
+ 수평 가운데
+
+
+ Right
+ 오른쪽
+
+
+ No Vertical Alignment
+ 수직 정렬 없음
+
+
+ Top
+ 위
+
+
+ Center Vertically
+ 수직 가운데
+
+
+ Bottom
+ 아래
+
+
Change objectName...
objectName 바꾸기...
@@ -5329,6 +5420,10 @@ Class: %2
Insert &Image
그림 삽입(&I)
+
+ Simplify Rich Text
+ 서식있는 텍스트 단순화
+
qdesigner_internal::ScriptDialog
diff --git a/translations/linguist_ko.ts b/translations/linguist_ko.ts
index 7545dbc..ed740b0 100644
--- a/translations/linguist_ko.ts
+++ b/translations/linguist_ko.ts
@@ -84,6 +84,10 @@
DataModel
+ The translation file '%1' will not be loaded because it is empty.
+ 번역 파일 '%1'이(가) 비어 있으므로 불러올 수 없습니다.
+
+
<qt>Duplicate messages found in '%1':
<qt>'%1'에 중복된 메시지가 있음:
@@ -1109,7 +1113,11 @@ Java, JavaScript/QtScript 원본 코드에서 번역 가능한 문자열을 추
Illegal escape squence
- 잘못된 탈출 문자
+ 잘못된 탈출 문자
+
+
+ Illegal escape sequence
+ 잘못된 탈출 시퀀스
Illegal unicode escape sequence
@@ -1942,8 +1950,12 @@ All files (*)
버전 %1
+ <center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist is a tool for adding translations to Qt applications.</p><p>Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+ <center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist는 Qt 프로그램을 번역하는 도구입니다.</p><p>저작권자 (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+
+
<center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist is a tool for adding translations to Qt applications.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- <center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist는 Qt 프로그램을 번역하는 도구입니다.</p><p>저작권자 (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ <center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist는 Qt 프로그램을 번역하는 도구입니다.</p><p>저작권자 (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
Do you want to save the modified files?
diff --git a/translations/qt_ko.ts b/translations/qt_ko.ts
index b9e30f5..c391fa2 100644
--- a/translations/qt_ko.ts
+++ b/translations/qt_ko.ts
@@ -9,9 +9,24 @@
+ Debugger::JSAgentWatchData
+
+ [Array of length %1]
+ [길이가 %1인 배열]
+
+
+ <undefined>
+ <정의되지 않음>
+
+
+
FakeReply
Fake error !
+ 가짜 오류!
+
+
+ Fake error!
가짜 오류!
@@ -421,7 +436,7 @@ libgstreamer-plugins-base 패키지의 설치 상태를 확인해 보십시오.<
Reflections delay (ms)
- ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection.
+ ReflectionsDelay: Amount of delay between the arrival of the direct path from the source and the arrival of the first reflection.
반사 지연 시간 (ms)
@@ -436,7 +451,7 @@ libgstreamer-plugins-base 패키지의 설치 상태를 확인해 보십시오.<
Reverb level (mB)
- ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude.
+ ReverbLevel: Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude.
리버브 레벨 (mB)
@@ -468,6 +483,10 @@ libgstreamer-plugins-base 패키지의 설치 상태를 확인해 보십시오.<
Error opening source: media type could not be determined
원본 열기 오류: 미디어 형식을 결정할 수 없음
+
+ Failed to set requested IAP
+ 요청한 IAP를 설정할 수 없음
+
Phonon::MMF::StereoWidening
@@ -490,10 +509,14 @@ libgstreamer-plugins-base 패키지의 설치 상태를 확인해 보십시오.<
음량: %1%
- Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%
+ Use this slider to adjust the volume. The leftmost position is 0%. The rightmost is %1%
이 슬라이더를 사용하여 음량을 조정하십시오. 맨 왼쪽은 0%, 맨 오른쪽은 %1%입니다
+ Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%
+ 이 슬라이더를 사용하여 음량을 조정하십시오. 맨 왼쪽은 0%, 맨 오른쪽은 %1%입니다
+
+
Muted
음소거
@@ -1082,6 +1105,14 @@ to
QAccessibleButton
+ Uncheck
+ 선택 해제
+
+
+ Check
+ 선택
+
+
Press
누름
@@ -1228,6 +1259,11 @@ to
%1: 자원 부족
+ %1: permission denied
+ QSystemSemaphore
+ %1: 권한이 거부됨
+
+
%1: unknown error %2
QSystemSemaphore
%1: 알 수 없는 오류 %2
@@ -1394,6 +1430,13 @@ to
+ QDeclarativeApplication
+
+ Application is an abstract class
+ Application은 추상 클래스임
+
+
+
QDeclarativeBehavior
Cannot change the animation assigned to a Behavior.
@@ -1521,6 +1564,14 @@ to
비어 있는 컴포넌트 정의를 만들 수 없음
+ "%1.%2" is not available in %3 %4.%5.
+ "%1.%2"은(는) %3 %4.%5에서 사용할 수 없습니다.
+
+
+ "%1.%2" is not available due to component versioning.
+ "%1.%2"은(는) 구성 요소 버전 때문에 사용할 수 없습니다.
+
+
Incorrectly specified signal assignment
잘못 지정된 시그널 할당
@@ -1731,6 +1782,10 @@ to
Invalid empty URL
잘못된 빈 URL
+
+ createObject: value is not an object
+ createObject: 값이 객체가 아님
+
QDeclarativeConnections
@@ -1871,6 +1926,17 @@ to
+ QDeclarativeLayoutMirroringAttached
+
+ LayoutDirection attached property only works with Items
+ 연결된 속성 LayoutDirection은 Item에서만 동작함
+
+
+ LayoutMirroring is only available via attached properties
+ LayoutMirroring은 연결된 속성으로만 사용할 수 있음
+
+
+
QDeclarativeListModel
remove: index %1 out of range
@@ -1970,6 +2036,10 @@ to
Illegal escape squence
+ 잘못된 탈출 시퀀스
+
+
+ Illegal escape sequence
잘못된 탈출 시퀀스
@@ -2435,6 +2505,10 @@ to
Cannot create %1 for output
%1에 쓰기 위하여 열 수 없음
+
+ No file engine available or engine does not support UnMapExtension
+ 파일 엔진을 사용할 수 없거나 파일 엔진이 UnMapExtension을 지원하지 않음
+
QFileDialog
@@ -3422,6 +3496,18 @@ Do you want to delete it anyway?
Cannot resolve symbol "%1" in %2: %3
%2의 심볼 "%1"을(를) 불러올 수 없음: %3
+
+ '%1' is not an ELF object (%2)
+ '%1'은(는) ELF 객체가 아님 (%2)
+
+
+ '%1' is not an ELF object
+ '%1'은(는) ELF 객체가 아님
+
+
+ '%1' is an invalid ELF object (%2)
+ '%1'은(는) 잘못된 ELF 객체임 (%2)
+
QLineEdit
@@ -3519,6 +3605,10 @@ Do you want to delete it anyway?
%1: Unknown error %2
%1: 알 수 없는 오류 %2
+
+ %1: Access denied
+ %1: 접근이 거부됨
+
QMYSQLDriver
@@ -3693,6 +3783,10 @@ Do you want to delete it anyway?
Actions
동작
+
+ Corner Toolbar
+ 모서리 도구 모음
+
QMessageBox
@@ -3717,8 +3811,12 @@ Do you want to delete it anyway?
<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 Windows, Mac OS 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) 2011 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 Windows, Mac OS X, 리눅스, 여러 상용 유닉스 간 소스 호환성을 제공합니다. Qt는 Qt for Embedded Linux, Qt for Windows CE와 같은 임베디드 장치도 지원합니다.</p><p>Qt는 여러 사용자의 조건에 맞는 세 가지 조건으로 라이선스됩니다.</p><p>Qt의 상용 라이선스는 제 3자와 코드를 공유할 수 없거나, GNU LGPL 2.1, GNU GPL 3.0의 조건을 따를 수 없는 독점/상용 소프트웨어 개발에 사용할 수 있습니다.</p><p>Qt의 GNU LGPL 2.1 라이선스는 GNU LGPL 2.1의 조건을 따르는 독점 및 오픈소스 Qt 프로그램을 개발할 수 있습니다.</p><p>Qt의 GNU GPL 3.0 라이선스는 GNU GPL 3.0의 조건을 적용받거나 GNU GPL 3.0으로 라이선싱할 Qt 프로그램을 개발할 수 있습니다.</p><p>Qt 라이선싱 조건을 알아 보려면 <a href="http://qt.nokia.con/products/licensing">qt.nokia.com/products/licensing</a> 페이지를 참고하십시오.</p><p>Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt는 노키아의 제품입니다. 더 많은 정보를 보려면 <a href="http://qt.nokia.com">qt.nokia.com</a>을 참조하십시오.</p>
+
+
<p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS Windows, Mac OS 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는 마이크로소프트 윈도, Mac OS X, 리눅스, 여러 상용 유닉스 간 소스 호환성을 제공합니다. Qt는 Qt for Embedded Linux, Qt for Windows CE와 같은 임베디드 장치도 지원합니다.</p><p>Qt는 여러 사용자의 조건에 맞는 세 가지 조건으로 라이선스됩니다.</p><p>Qt의 상용 라이선스는 제 3자와 코드를 공유할 수 없거나, GNU LGPL 2.1, GNU GPL 3.0의 조건을 따를 수 없는 독점/상용 소프트웨어 개발에 사용할 수 있습니다.</p><p>Qt의 GNU LGPL 2.1 라이선스는 GNU LGPL 2.1의 조건을 따르는 독점 및 오픈소스 Qt 프로그램을 개발할 수 있습니다.</p><p>Qt의 GNU GPL 3.0 라이선스는 GNU GPL 3.0의 조건을 적용받거나 GNU GPL 3.0으로 라이선싱할 Qt 프로그램을 개발할 수 있습니다.</p><p>Qt 라이선싱 조건을 알아 보려면 <a href="http://qt.nokia.con/products/licensing">qt.nokia.com/products/licensing</a> 페이지를 참고하십시오.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt는 노키아의 제품입니다. 더 많은 정보를 보려면 <a href="http://qt.nokia.com">qt.nokia.com</a>을 참조하십시오.</p>
+ <p>Qt는 크로스 플랫폼 프로그램 개발을 위한 C++ 툴킷입니다.</p><p>Qt는 마이크로소프트 윈도, Mac OS X, 리눅스, 여러 상용 유닉스 간 소스 호환성을 제공합니다. Qt는 Qt for Embedded Linux, Qt for Windows CE와 같은 임베디드 장치도 지원합니다.</p><p>Qt는 여러 사용자의 조건에 맞는 세 가지 조건으로 라이선스됩니다.</p><p>Qt의 상용 라이선스는 제 3자와 코드를 공유할 수 없거나, GNU LGPL 2.1, GNU GPL 3.0의 조건을 따를 수 없는 독점/상용 소프트웨어 개발에 사용할 수 있습니다.</p><p>Qt의 GNU LGPL 2.1 라이선스는 GNU LGPL 2.1의 조건을 따르는 독점 및 오픈소스 Qt 프로그램을 개발할 수 있습니다.</p><p>Qt의 GNU GPL 3.0 라이선스는 GNU GPL 3.0의 조건을 적용받거나 GNU GPL 3.0으로 라이선싱할 Qt 프로그램을 개발할 수 있습니다.</p><p>Qt 라이선싱 조건을 알아 보려면 <a href="http://qt.nokia.con/products/licensing">qt.nokia.com/products/licensing</a> 페이지를 참고하십시오.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt는 노키아의 제품입니다. 더 많은 정보를 보려면 <a href="http://qt.nokia.com">qt.nokia.com</a>을 참조하십시오.</p>
About Qt
@@ -3861,7 +3959,7 @@ Do you want to delete it anyway?
QNetworkAccessDataBackend
Operation not supported on %1
- %1에는 작업이 지원되지 않음
+ %1에는 작업이 지원되지 않음
Invalid URI: %1
@@ -3958,6 +4056,10 @@ Do you want to delete it anyway?
네트워크 세션 오류.
+ backend start error.
+ 백엔드 시작 오류.
+
+
Temporary network failure.
일시적인 네트워크 실패.
@@ -4150,6 +4252,10 @@ Do you want to delete it anyway?
invalid query: "%1"
잘못된 쿼리: "%1"
+
+ Host not found
+ 호스트를 찾을 수 없음
+
QPPDOptionsModel
@@ -5460,7 +5566,7 @@ Do you want to overwrite it?
%1: key error
- %1: 키 오류
+ %1: 키 오류
%1: unable to make key
@@ -5503,6 +5609,10 @@ Do you want to overwrite it?
%1: 시스템에서 크게를 제한함
+ %1: bad name
+ %1: 잘못된 이름
+
+
%1: not attached
%1: 연결되지 않음
@@ -6517,6 +6627,10 @@ Do you want to overwrite it?
QSoftKeyManager
Ok
+ 확인
+
+
+ OK
확인
@@ -6685,6 +6799,10 @@ Do you want to overwrite it?
호스트 이름이 이 인증서에서 지정한 유효한 호스트 중 아무 것도 일치하지 않음
+ The peer certificate is blacklisted
+ 동료 인증서가 블랙리스트에 포함됨
+
+
Unknown error
알 수 없는 오류
@@ -6757,6 +6875,187 @@ Do you want to overwrite it?
+ QSymSQLDriver
+
+ Invalid option:
+ 잘못된 옵션:
+
+
+ Error opening database
+ 데이터베이스를 여는 중 오류 발생
+
+
+ POLICY_DB_DEFAULT must be defined before any other POLICY definitions can be used
+ 다른 POLICY 선언을 사용하기 전에 POLICY_DB_DEFAULT가 정의되어야 함
+
+
+ Unable to begin transaction
+ 트랜잭션을 시작할 수 없음
+
+
+ Unable to commit transaction
+ 트랜잭션을 커밋할 수 없음
+
+
+ Unable to rollback transaction
+ 트랜잭션을 되돌릴 수 없음
+
+
+
+ QSymSQLResult
+
+ Error retrieving column count
+ 행 개수를 가져올 수 없음
+
+
+ Error retrieving column name
+ 행 이름을 가져올 수 없음
+
+
+ Error retrieving column type
+ 행 종류를 가져올 수 없음
+
+
+ Unable to fetch row
+ 열을 가져올 수 없음
+
+
+ Unable to execute statement
+ 구문을 실행할 수 없음
+
+
+ Statement is not prepared
+ 구문이 준비되지 않았음
+
+
+ Unable to reset statement
+ 구문을 초기화할 수 없음
+
+
+ Unable to bind parameters
+ 인자를 바인딩할 수 없음
+
+
+ Parameter count mismatch
+ 인자 수가 일치하지 않음
+
+
+
+ QSymbianSocketEngine
+
+ 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 소켓을 사용하려고 시도함
+
+
+ The remote host closed the connection
+ 원격 호스트에서 연결을 닫음
+
+
+ Network operation timed out
+ 네트워크 작업 시간 초과
+
+
+ Out of resources
+ 자원 부족
+
+
+ Unsupported socket operation
+ 지원하지 않는 소켓 작업
+
+
+ Protocol type not supported
+ 지원하지 않는 프로토콜 형식
+
+
+ Invalid socket descriptor
+ 잘못된 소켓 설명자
+
+
+ Host unreachable
+ 호스트에 접근할 수 없음
+
+
+ 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
+ 주소가 보호되어 있음
+
+
+ Datagram was too large to send
+ 한 번에 보낼 데이터그램이 너무 큼
+
+
+ Unable to send a message
+ 메시지를 보낼 수 없음
+
+
+ Unable to receive a message
+ 메시지를 받을 수 없음
+
+
+ Unable to write
+ 쓸 수 없음
+
+
+ Network error
+ 네트워크 오류
+
+
+ Another socket is already listening on the same port
+ 다른 소켓이 지정한 포트에서 듣고 있음
+
+
+ Operation on non-socket
+ 비 소켓에서 작업 실행됨
+
+
+ The proxy type is invalid for this operation
+ 이 작업에 사용할 프록시 형식이 잘못됨
+
+
+ The address is invalid for this operation
+ 이 작업에 사용할 주소가 잘못됨
+
+
+ The specified network session is not opened
+ 지정한 네트워크 세션이 열려 있지 않음
+
+
+ Unknown error
+ 알 수 없는 오류
+
+
+
QSystemSemaphore
%1: permission denied
@@ -6800,6 +7099,10 @@ Do you want to overwrite it?
%1: 자원 부족
+ %1: name error
+ %1: 이름 오류
+
+
%1: unknown error %2
%1: 알 수 없는 오류 %2
@@ -6890,10 +7193,28 @@ Do you want to overwrite it?
QUndoGroup
Undo
+ 실행 취소
+
+
+ Redo
+ 다시 실행
+
+
+ Undo %1
+ %1 실행 취소
+
+
+ Undo
+ Default text for undo action
실행 취소
+ Redo %1
+ %1 다시 실행
+
+
Redo
+ Default text for redo action
다시 실행
@@ -6908,10 +7229,28 @@ Do you want to overwrite it?
QUndoStack
Undo
+ 실행 취소
+
+
+ Redo
+ 다시 실행
+
+
+ Undo %1
+ %1 실행 취소
+
+
+ Undo
+ Default text for undo action
실행 취소
+ Redo %1
+ %1 다시 실행
+
+
Redo
+ Default text for redo action
다시 실행
@@ -6969,6 +7308,10 @@ Do you want to overwrite it?
요청 취소됨
+ Request canceled
+ 요청 취소됨
+
+
Request blocked
요청 거부됨
@@ -6988,6 +7331,10 @@ Do you want to overwrite it?
File does not exist
파일이 존재하지 않음
+
+ Loading is handled by the media engine
+ 미디어 엔진에서 불러오기 작업이 처리됨
+
QWebPage
@@ -6997,7 +7344,7 @@ Do you want to overwrite it?
Bad HTTP request
- 잘못된 HTTP 요청
+ 잘못된 HTTP 요청
%n file(s)
@@ -7294,11 +7641,76 @@ Do you want to overwrite it?
초기화
+ Details
+ text to display in <details> tag when it has no <summary> child
+ 자세히
+
+
+ Copy Image Address
+ Copy Image Address menu item
+ 그림 주소 복사
+
+
+ Open Video
+ Open Video in New Window
+ 비디오 열기
+
+
+ Open Audio
+ Open Audio in New Window
+ 오디오 열기
+
+
+ Copy Video
+ Copy Video Link Location
+ 비디오 복사
+
+
+ Copy Audio
+ Copy Audio Link Location
+ 오디오 복사
+
+
+ Toggle Controls
+ Toggle Media Controls
+ 컨트롤 보이기/숨기기
+
+
+ Toggle Loop
+ Toggle Media Loop Playback
+ 반복/반복 해제
+
+
+ Enter Fullscreen
+ Switch Video to Fullscreen
+ 전체 화면
+
+
+ Play
+ Play
+ 재생
+
+
+ Pause
+ Pause
+ 일시 정지
+
+
+ Mute
+ Mute
+ 음소거
+
+
Stop
Stop context menu item
정지
+ Select All
+ Select All context menu item
+ 모두 선택
+
+
Ignore
Ignore Spelling context menu item
무시
@@ -7610,7 +8022,7 @@ Do you want to overwrite it?
Select all
- 모두 선택
+ 모두 선택
Select to the next character
@@ -8111,6 +8523,94 @@ Do you want to overwrite it?
+ QmlJSDebugger::LiveSelectionTool
+
+ Items
+ 항목
+
+
+
+ QmlJSDebugger::QmlToolBar
+
+ Inspector Mode
+ 들여다보기 모드
+
+
+ Play/Pause Animations
+ 애니메이션 재생/일시 정지
+
+
+ Select
+ 선택
+
+
+ Select (Marquee)
+ 선택 (Marquee)
+
+
+ Zoom
+ 확대/축소
+
+
+ Color Picker
+ 색상 선택기
+
+
+ Apply Changes to QML Viewer
+ QML 뷰어에 변경 사항 적용하기
+
+
+ Apply Changes to Document
+ 문서에 변경 사항 적용하기
+
+
+ Tools
+ 도구
+
+
+ 1x
+ 1x
+
+
+ 0.5x
+ 0.5x
+
+
+ 0.25x
+ 0.25x
+
+
+ 0.125x
+ 0.125x
+
+
+ 0.1x
+ 0.1x
+
+
+
+ QmlJSDebugger::ToolBarColorBox
+
+ Copy Color
+ 색 복사
+
+
+
+ QmlJSDebugger::ZoomTool
+
+ Zoom to &100%
+ 원본 크기(&1)
+
+
+ Zoom In
+ 확대
+
+
+ Zoom Out
+ 축소
+
+
+
QtXmlPatterns
%1 is an unsupported encoding.
@@ -8570,6 +9070,10 @@ Do you want to overwrite it?
The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)
+ 사용자 정의 함수의 네임스페이스는 비어 있을 수 없습니다. (이러한 경우에 사용할 수 있는 미리 정의된 접두사 %1을(를) 사용하십시오)
+
+
+ The namespace for a user defined function cannot be empty (try the predefined prefix %1, which exists for cases like this)
사용자 정의 함수의 네임스페이스는 비어 있을 수 없습니다. (이러한 경우에 사용할 수 있는 미리 정의된 접두사 %1을(를) 사용하십시오)
@@ -9419,6 +9923,10 @@ Do you want to overwrite it?
Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type.
+ 복합 형식 %1의 내용 모델은 %2 원소를 포함하므로 비어 있지 않은 형식의 확장으로 파생될 수 없습니다.
+
+
+ Content model of complex type %1 contains %2 element, so it cannot be derived by extension from a non-empty type.
복합 형식 %1의 내용 모델은 %2 원소를 포함하므로 비어 있지 않은 형식의 확장으로 파생될 수 없습니다.
@@ -9826,8 +10334,12 @@ Do you want to overwrite it?
원소 %1에 허용되지 않은 텍스트 내용이 포함되어 있습니다.
+ Element %1 cannot contain other elements, as it has fixed content.
+ 원소 %1은(는) 고정된 내용을 가지고 있으므로 다른 원소를 포함할 수 없습니다.
+
+
Element %1 cannot contain other elements, as it has a fixed content.
- 원소 %1의 내용은 고정되어 있으므로 다른 원소를 포함할 수 없습니다.
+ 원소 %1의 내용은 고정되어 있으므로 다른 원소를 포함할 수 없습니다.
Element %1 is missing required attribute %2.
diff --git a/translations/qtconfig_ko.ts b/translations/qtconfig_ko.ts
index 9708a22..fc139ed 100644
--- a/translations/qtconfig_ko.ts
+++ b/translations/qtconfig_ko.ts
@@ -36,6 +36,10 @@
On The Spot
+ Unknown
+ 알 수 없음
+
+
Auto (default)
자동 (기본값)
@@ -92,6 +96,14 @@
변경 사항 저장하는 중...
+ Saved changes.
+ 변경 사항을 저장하였습니다.
+
+
+ <h3>%1</h3><br/>Version %2<br/><br/>Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+ <h3>%1</h3><br/>버전 %2<br/><br/>저작권자 (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+
+
Over The Spot
Over The Spot
@@ -109,7 +121,7 @@
<h3>%1</h3><br/>Version %2<br/><br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- <h3>%1</h3><br/>버전 %2<br/><br/>저작권자 (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ <h3>%1</h3><br/>버전 %2<br/><br/>저작권자 (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
Qt Configuration
@@ -125,22 +137,15 @@
&Yes
- 예(&Y)
+ 예(&Y)
&No
- 아니오(&N)
+ 아니오(&N)
&Cancel
- 취소(&C)
-
-
-
- MainWindowBase
-
- Qt Configuration
- Qt 설정
+ 취소(&C)
Appearance
@@ -179,8 +184,8 @@
팔레트 생성
- &3-D Effects:
- 3차원 효과(&3):
+ &Button Background:
+ 단추 배경(&B):
Window Back&ground:
@@ -351,22 +356,6 @@
XIM 입력 방식:
- On The Spot
- On The Spot
-
-
- Over The Spot
- Over The Spot
-
-
- Off The Spot
- Off The Spot
-
-
- Root
- 루트
-
-
Default Input Method:
기본 입력기:
@@ -411,32 +400,16 @@
웹 사이트:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://phonon.kde.org"><span style=" text-decoration: underline; color:#0000ff;">http://phonon.kde.org</span></a></p></body></html>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://phonon.kde.org"><span style=" text-decoration: underline; color:#0000ff;">http://phonon.kde.org</span></a></p></body></html>
+ <a href="http://phonon.kde.org">http://phonon.kde.org/</a>
+ <a href="http://phonon.kde.org">http://phonon.kde.org/</a>
About GStreamer
GStreamer 정보
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://gstreamer.freedesktop.org/"><span style=" text-decoration: underline; color:#0000ff;">http://gstreamer.freedesktop.org/</span></a></p></body></html>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://gstreamer.freedesktop.org/"><span style=" text-decoration: underline; color:#0000ff;">http://gstreamer.freedesktop.org/</span></a></p></body></html>
+ <a href="http://gstreamer.freedesktop.org/">http://gstreamer.freedesktop.org/</a>
+ <a href="http://gstreamer.freedesktop.org/">http://gstreamer.freedesktop.org/</a>
GStreamer backend settings
@@ -491,6 +464,10 @@ p, li { white-space: pre-wrap; }
끝내기
+ Ctrl+Q
+ Ctrl+Q
+
+
&About
정보(&A)
@@ -508,224 +485,815 @@ p, li { white-space: pre-wrap; }
- PaletteEditorAdvancedBase
+ MainWindowBase
- Tune Palette
- 팔레트 조정
+ Qt Configuration
+ Qt 설정
- <b>Edit Palette</b><p>Change the palette of the current widget or form.</p><p>Use a generated palette or select colors for each color group and each color role.</p><p>The palette can be tested with different widget layouts in the preview section.</p>
- <b>팔레트 조정</b><p>현재 위젯이나 폼의 팔레트를 변경합니다.</p><p>생성된 팔레트를 사용하거나, 각각 색상 그룹과 역할의 색을 선택하십시오.</p><p>미리 보기 섹션의 여러 위젯 레이아웃으로 팔레트를 테스트할 수 있습니다.</p>
+ Appearance
+ 모양
+
+
+ GUI Style
+ GUI 스타일
+
+
+ Select GUI &Style:
+ GUI 스타일 선택(&S):
+
+
+ Preview
+ 미리 보기
Select &Palette:
- 팔레트 선택(&P):
+ 팔레트 선택(&P):
Active Palette
- 활성 팔레트
+ 활성 팔레트
Inactive Palette
- 비활성 팔레트
+ 비활성 팔레트
Disabled Palette
- 사용 불가 팔레트
+ 사용 불가 팔레트
- Auto
- 자동
+ Build Palette
+ 팔레트 생성
- Build inactive palette from active
- 활성 팔레트에서 비활성 팔레트 생성
+ &3-D Effects:
+ 3차원 효과(&3):
- Build disabled palette from active
- 활성 팔레트에서 사용 불가 팔레트 생성
+ Window Back&ground:
+ 창 배경(&G):
- Central color &roles
- 중심 색상 역할(&R)
+ &Tune Palette...
+ 팔레트 조정(&T)...
- Choose central color role
- 중심 색상 역할 선택
+ Please use the KDE Control Center to set the palette.
+ KDE 제어판에서 팔레트를 조정하십시오.
- <b>Select a color role.</b><p>Available central roles are: <ul> <li>Window - general background color.</li> <li>WindowText - general foreground color. </li> <li>Base - used as background color for e.g. text entry widgets, usually white or another light color. </li> <li>Text - the foreground color used with Base. Usually this is the same as WindowText, in what case it must provide good contrast both with Window and Base. </li> <li>Button - general button background color, where buttons need a background different from Window, as in the Macintosh style. </li> <li>ButtonText - a foreground color used with the Button color. </li> <li>Highlight - a color to indicate a selected or highlighted item. </li> <li>HighlightedText - a text color that contrasts to Highlight. </li> <li>BrightText - a text color that is very different from WindowText and contrasts well with e.g. black. </li> </ul> </p>
- <b>색상 역할을 선택하십시오.</b><p>사용 가능한 색상 역할 목록: <ul> <li>창 - 일반적인 배경색.</li> <li>창 텍스트 - 일반적인 전경색. </li> <li>기본 - 텍스트 입력 위젯과 같은 곳의 배경색. 일반적으로 흰색 또는 밝은 색입니다.</li> <li>텍스트 - '기본'과 같이 사용되는 전경색입니다. 대개 창 텍스트와 같은 색을 사용합니다.</li> <li>단추 - 일반적인 단추 배경색. 매킨토시 스타일과 같이 단추와 창의 배경색이 다른 곳에서 사용합니다.</li> <li>단추 텍스트 - 단추 색과 같이 사용되는 전경색.</li> <li>강조 - 선택하거나 강조된 항목을 나타내는 색.</li> <li>강조 텍스트 - '강조'와 같이 사용되는 텍스트 색.</li> <li>밝은 텍스트 - 창 텍스트와 대조되는 텍스트 색. 예를 들어 검정색입니다.</li> </ul> </p>
+ Fonts
+ 글꼴
- Window
- 창
+ Default Font
+ 기본 글꼴
- WindowText
- 창 텍스트
+ &Style:
+ 스타일(&S):
- Button
- 단추
+ &Point Size:
+ 포인트 크기(&P):
- Base
- 기본
+ F&amily:
+ 종류(&A):
- Text
- 텍스트
+ Sample Text
+ 견본 텍스트
- BrightText
- 밝은 텍스트
+ Font Substitution
+ 글꼴 대체
- ButtonText
- 단추 텍스트
+ S&elect or Enter a Family:
+ 글꼴을 선택하거나 입력하십시오(&E):
- Highlight
- 강조
+ Current Substitutions:
+ 현재 대체 목록:
- HighlightedText
- 강조된 텍스트
+ Up
+ 위로
- &Select Color:
- 색 선택(&S):
+ Down
+ 아래로
- Choose a color
- 색 선택
+ Remove
+ 삭제
- Choose a color for the selected central color role.
- 중심 색상 역할에 사용할 색상을 선택하십시오.
+ Select s&ubstitute Family:
+ 대체할 글꼴을 선택하십시오(&U):
- 3-D shadow &effects
- 3차원 그림자 효과(&E)
+ Add
+ 추가
- Build &from button color
- 단추 색상에서 생성(&F)
+ Interface
+ 인터페이스
- Generate shadings
- 그림자 생성
+ Feel Settings
+ 모양 설정
- Check to let 3D-effect colors be calculated from button-color.
- 3차원 효과 색상을 단추 색상에서 생성하려면 누르십시오.
+ ms
+ ms
- Choose 3D-effect color role
- 3차원 효과 색상 역할 선택
+ &Double Click Interval:
+ 두 번 누름 간격(&D):
- <b>Select a color role.</b><p>Available effect roles are: <ul> <li>Light - lighter than Button color. </li> <li>Midlight - between Button and Light. </li> <li>Mid - between Button and Dark. </li> <li>Dark - darker than Button. </li> <li>Shadow - a very dark color. </li> </ul>
- <b>색상 역할을 선택하십시오.</b><p>사용 가능한 색상 역할 목록: <ul> <li>밝음 - 단추 색보다 밝음. </li> <li>약간 밝음 - '밝음'과 '단추 색'의 중간.</li> <li>중간 - '단추 색'과 '어두움'의 중간.</li> <li>어두움 - 단추 색보다 어두움.</li> <li>그림자 - 매우 어두운 색.</li> </ul>
+ No blinking
+ 깜빡임 없음
- Light
- 밝음
+ &Cursor Flash Time:
+ 커서 깜빡임 시간(&C):
- Midlight
- 약간 밝음
+ lines
+ 줄
- Mid
- 중간
+ Wheel &Scroll Lines:
+ 휠 스크롤 줄 수(&S):
- Dark
- 어두움
+ Resolve symlinks in URLs
+ URL의 심볼릭 링크 따라가기
- Shadow
- 그림자
+ GUI Effects
+ GUI 효과
- Select Co&lor:
- 색 선택(&L):
+ &Enable
+ 활성화(&E)
- Choose a color for the selected effect color role.
- 선택한 효과 색상 역할에 사용할 색을 선택하십시오.
+ Alt+E
+ Alt+E
- OK
- 확인
+ &Menu Effect:
+ 메뉴 효과(&M):
- Close dialog and apply all changes.
- 대화 상자를 닫고 변경 사항을 적용합니다.
+ C&omboBox Effect:
+ 콤보 상자 효과(&O):
- Cancel
- 취소
+ &ToolTip Effect:
+ 풍선 도움말 효과(&T):
- Close dialog and discard all changes.
- 대화 상자를 닫고 변경 사항을 적용하지 않습니다.
+ Tool&Box Effect:
+ 도구 상자 효과(&B):
-
-
- PreviewFrame
- Desktop settings will only take effect after an application restart.
- 데스크톱 설정은 프로그램을 다시 시작해야 적용됩니다.
+ Disable
+ 사용 안함
-
-
- PreviewWidgetBase
- Preview Window
- 미리 보기 창
+ Animate
+ 애니메이션
- ButtonGroup
- 단추 그룹
+ Fade
+ 페이드
- RadioButton1
- 라디오 단추 1
+ Global Strut
+ 크기 제한
- RadioButton2
- 라디오 단추 2
+ Minimum &Width:
+ 최소 폭(&W):
- RadioButton3
- 라디오 단추 3
+ Minimum Hei&ght:
+ 최소 높이(&G):
- ButtonGroup2
- 단추 그룹 2
+ pixels
+ 픽셀
- CheckBox1
- 체크 상자 1
+ Enhanced support for languages written right-to-left
+ 오른쪽에서 왼쪽으로 쓰는 언어 지원 향상
- CheckBox2
- 체크 상자 2
+ XIM Input Style:
+ XIM 입력 방식:
- LineEdit
- 라인 편집기
+ On The Spot
+ On The Spot
- ComboBox
- 콤보 상자
+ Over The Spot
+ Over The Spot
- PushButton
- 누름 단추
+ Off The Spot
+ Off The Spot
+
+
+ Root
+ 루트
+
+
+ Default Input Method:
+ 기본 입력기:
+
+
+ Printer
+ 프린터
+
+
+ Enable Font embedding
+ 글꼴 임베딩 사용하기
+
+
+ Font Paths
+ 글꼴 경로
+
+
+ Browse...
+ 찾아보기...
+
+
+ Press the <b>Browse</b> button or enter a directory and press Enter to add them to the list.
+ <b>찾아보기</b> 단추를 누르거나 디렉터리를 입력하고 Enter 키를 눌러서 목록에 추가할 수 있습니다.
+
+
+ Phonon
+ Phonon
+
+
+ About Phonon
+ Phonon 정보
+
+
+ Current Version:
+ 현재 버전:
+
+
+ Not available
+ 사용할 수 없음
+
+
+ Website:
+ 웹 사이트:
+
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://phonon.kde.org"><span style=" text-decoration: underline; color:#0000ff;">http://phonon.kde.org</span></a></p></body></html>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://phonon.kde.org"><span style=" text-decoration: underline; color:#0000ff;">http://phonon.kde.org</span></a></p></body></html>
+
+
+ About GStreamer
+ GStreamer 정보
+
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://gstreamer.freedesktop.org/"><span style=" text-decoration: underline; color:#0000ff;">http://gstreamer.freedesktop.org/</span></a></p></body></html>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://gstreamer.freedesktop.org/"><span style=" text-decoration: underline; color:#0000ff;">http://gstreamer.freedesktop.org/</span></a></p></body></html>
+
+
+ GStreamer backend settings
+ GStreamer 백엔드 설정
+
+
+ Preferred audio sink:
+ 선호하는 오디오 싱크:
+
+
+ Preferred render method:
+ 선호하는 렌더링 방법:
+
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: changes to these settings may prevent applications from starting up correctly.</span></p></body></html>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">메모: 이 설정을 변경하면 프로그램이 시작되지 않을 수도 있습니다.</span></p></body></html>
+
+
+ &File
+ 파일(&F)
+
+
+ &Help
+ 도움말(&H)
+
+
+ &Save
+ 저장(&S)
+
+
+ Save
+ 저장
+
+
+ Ctrl+S
+ Ctrl+S
+
+
+ E&xit
+ 끝내기(&X)
+
+
+ Exit
+ 끝내기
+
+
+ &About
+ 정보(&A)
+
+
+ About
+ 정보
+
+
+ About &Qt
+ Qt 정보(&Q)
+
+
+ About Qt
+ Qt 정보
+
+
+
+ PaletteEditorAdvanced
+
+ Tune Palette
+ 팔레트 조정
+
+
+ Select &Palette:
+ 팔레트 선택(&P):
+
+
+ Active Palette
+ 활성 팔레트
+
+
+ Inactive Palette
+ 비활성 팔레트
+
+
+ Disabled Palette
+ 사용 불가 팔레트
+
+
+ Auto
+ 자동
+
+
+ Build inactive palette from active
+ 활성 팔레트에서 비활성 팔레트 생성
+
+
+ Build disabled palette from active
+ 활성 팔레트에서 사용 불가 팔레트 생성
+
+
+ Central color &roles
+ 중심 색상 역할(&R)
+
+
+ Choose central color role
+ 중심 색상 역할 선택
+
+
+ <b>Select a color role.</b><p>Available central roles are: <ul> <li>Window - general background color.</li> <li>WindowText - general foreground color. </li> <li>Base - used as background color for e.g. text entry widgets, usually white or another light color. </li> <li>Text - the foreground color used with Base. Usually this is the same as WindowText, in what case it must provide good contrast both with Window and Base. </li> <li>Button - general button background color, where buttons need a background different from Window, as in the Macintosh style. </li> <li>ButtonText - a foreground color used with the Button color. </li> <li>Highlight - a color to indicate a selected or highlighted item. </li> <li>HighlightedText - a text color that contrasts to Highlight. </li> <li>BrightText - a text color that is very different from WindowText and contrasts well with e.g. black. </li> </ul> </p>
+ <b>색상 역할을 선택하십시오.</b><p>사용 가능한 색상 역할 목록: <ul> <li>창 - 일반적인 배경색.</li> <li>창 텍스트 - 일반적인 전경색. </li> <li>기본 - 텍스트 입력 위젯과 같은 곳의 배경색. 일반적으로 흰색 또는 밝은 색입니다.</li> <li>텍스트 - '기본'과 같이 사용되는 전경색입니다. 대개 창 텍스트와 같은 색을 사용합니다.</li> <li>단추 - 일반적인 단추 배경색. 매킨토시 스타일과 같이 단추와 창의 배경색이 다른 곳에서 사용합니다.</li> <li>단추 텍스트 - 단추 색과 같이 사용되는 전경색.</li> <li>강조 - 선택하거나 강조된 항목을 나타내는 색.</li> <li>강조 텍스트 - '강조'와 같이 사용되는 텍스트 색.</li> <li>밝은 텍스트 - 창 텍스트와 대조되는 텍스트 색. 예를 들어 검정색입니다.</li> </ul> </p>
+
+
+ Window
+ 창
+
+
+ WindowText
+ 창 텍스트
+
+
+ Base
+ 기본
+
+
+ AlternateBase
+ 대체 텍스트
+
+
+ ToolTipBase
+ 풍선 도움말 기본
+
+
+ ToolTipText
+ 풍선 도움말 텍스트
+
+
+ Text
+ 텍스트
+
+
+ Button
+ 단추
+
+
+ ButtonText
+ 단추 텍스트
+
+
+ BrightText
+ 밝은 텍스트
+
+
+ Highlight
+ 강조
+
+
+ HighlightedText
+ 강조된 텍스트
+
+
+ Link
+ 링크
+
+
+ LinkVisited
+ 방문한 링크
+
+
+ &Select Color:
+ 색 선택(&S):
+
+
+ 3-D shadow &effects
+ 3차원 그림자 효과(&E)
+
+
+ Generate shadings
+ 그림자 생성
+
+
+ Check to let 3D-effect colors be calculated from button-color.
+ 3차원 효과 색상을 단추 색상에서 생성하려면 누르십시오.
+
+
+ Build &from button color
+ 단추 색상에서 생성(&F)
+
+
+ Choose 3D-effect color role
+ 3차원 효과 색상 역할 선택
+
+
+ <b>Select a color role.</b><p>Available effect roles are: <ul> <li>Light - lighter than Button color. </li> <li>Midlight - between Button and Light. </li> <li>Mid - between Button and Dark. </li> <li>Dark - darker than Button. </li> <li>Shadow - a very dark color. </li> </ul>
+ <b>색상 역할을 선택하십시오.</b><p>사용 가능한 색상 역할 목록: <ul> <li>밝음 - 단추 색보다 밝음. </li> <li>약간 밝음 - '밝음'과 '단추 색'의 중간.</li> <li>중간 - '단추 색'과 '어두움'의 중간.</li> <li>어두움 - 단추 색보다 어두움.</li> <li>그림자 - 매우 어두운 색.</li> </ul>
+
+
+ Light
+ 밝음
+
+
+ Midlight
+ 약간 밝음
+
+
+ Mid
+ 중간
+
+
+ Dark
+ 어두움
+
+
+ Shadow
+ 그림자
+
+
+ Select Co&lor:
+ 색 선택(&L):
+
+
+ Choose a color
+ 색 선택
+
+
+ Choose a color for the selected central color role.
+ 중심 색상 역할에 사용할 색상을 선택하십시오.
+
+
+ Choose a color for the selected effect color role.
+ 선택한 효과 색상 역할에 사용할 색을 선택하십시오.
+
+
+
+ PaletteEditorAdvancedBase
+
+ Tune Palette
+ 팔레트 조정
+
+
+ <b>Edit Palette</b><p>Change the palette of the current widget or form.</p><p>Use a generated palette or select colors for each color group and each color role.</p><p>The palette can be tested with different widget layouts in the preview section.</p>
+ <b>팔레트 조정</b><p>현재 위젯이나 폼의 팔레트를 변경합니다.</p><p>생성된 팔레트를 사용하거나, 각각 색상 그룹과 역할의 색을 선택하십시오.</p><p>미리 보기 섹션의 여러 위젯 레이아웃으로 팔레트를 테스트할 수 있습니다.</p>
+
+
+ Select &Palette:
+ 팔레트 선택(&P):
+
+
+ Active Palette
+ 활성 팔레트
+
+
+ Inactive Palette
+ 비활성 팔레트
+
+
+ Disabled Palette
+ 사용 불가 팔레트
+
+
+ Auto
+ 자동
+
+
+ Build inactive palette from active
+ 활성 팔레트에서 비활성 팔레트 생성
+
+
+ Build disabled palette from active
+ 활성 팔레트에서 사용 불가 팔레트 생성
+
+
+ Central color &roles
+ 중심 색상 역할(&R)
+
+
+ Choose central color role
+ 중심 색상 역할 선택
+
+
+ <b>Select a color role.</b><p>Available central roles are: <ul> <li>Window - general background color.</li> <li>WindowText - general foreground color. </li> <li>Base - used as background color for e.g. text entry widgets, usually white or another light color. </li> <li>Text - the foreground color used with Base. Usually this is the same as WindowText, in what case it must provide good contrast both with Window and Base. </li> <li>Button - general button background color, where buttons need a background different from Window, as in the Macintosh style. </li> <li>ButtonText - a foreground color used with the Button color. </li> <li>Highlight - a color to indicate a selected or highlighted item. </li> <li>HighlightedText - a text color that contrasts to Highlight. </li> <li>BrightText - a text color that is very different from WindowText and contrasts well with e.g. black. </li> </ul> </p>
+ <b>색상 역할을 선택하십시오.</b><p>사용 가능한 색상 역할 목록: <ul> <li>창 - 일반적인 배경색.</li> <li>창 텍스트 - 일반적인 전경색. </li> <li>기본 - 텍스트 입력 위젯과 같은 곳의 배경색. 일반적으로 흰색 또는 밝은 색입니다.</li> <li>텍스트 - '기본'과 같이 사용되는 전경색입니다. 대개 창 텍스트와 같은 색을 사용합니다.</li> <li>단추 - 일반적인 단추 배경색. 매킨토시 스타일과 같이 단추와 창의 배경색이 다른 곳에서 사용합니다.</li> <li>단추 텍스트 - 단추 색과 같이 사용되는 전경색.</li> <li>강조 - 선택하거나 강조된 항목을 나타내는 색.</li> <li>강조 텍스트 - '강조'와 같이 사용되는 텍스트 색.</li> <li>밝은 텍스트 - 창 텍스트와 대조되는 텍스트 색. 예를 들어 검정색입니다.</li> </ul> </p>
+
+
+ Window
+ 창
+
+
+ WindowText
+ 창 텍스트
+
+
+ Button
+ 단추
+
+
+ Base
+ 기본
+
+
+ Text
+ 텍스트
+
+
+ BrightText
+ 밝은 텍스트
+
+
+ ButtonText
+ 단추 텍스트
+
+
+ Highlight
+ 강조
+
+
+ HighlightedText
+ 강조된 텍스트
+
+
+ &Select Color:
+ 색 선택(&S):
+
+
+ Choose a color
+ 색 선택
+
+
+ Choose a color for the selected central color role.
+ 중심 색상 역할에 사용할 색상을 선택하십시오.
+
+
+ 3-D shadow &effects
+ 3차원 그림자 효과(&E)
+
+
+ Build &from button color
+ 단추 색상에서 생성(&F)
+
+
+ Generate shadings
+ 그림자 생성
+
+
+ Check to let 3D-effect colors be calculated from button-color.
+ 3차원 효과 색상을 단추 색상에서 생성하려면 누르십시오.
+
+
+ Choose 3D-effect color role
+ 3차원 효과 색상 역할 선택
+
+
+ <b>Select a color role.</b><p>Available effect roles are: <ul> <li>Light - lighter than Button color. </li> <li>Midlight - between Button and Light. </li> <li>Mid - between Button and Dark. </li> <li>Dark - darker than Button. </li> <li>Shadow - a very dark color. </li> </ul>
+ <b>색상 역할을 선택하십시오.</b><p>사용 가능한 색상 역할 목록: <ul> <li>밝음 - 단추 색보다 밝음. </li> <li>약간 밝음 - '밝음'과 '단추 색'의 중간.</li> <li>중간 - '단추 색'과 '어두움'의 중간.</li> <li>어두움 - 단추 색보다 어두움.</li> <li>그림자 - 매우 어두운 색.</li> </ul>
+
+
+ Light
+ 밝음
+
+
+ Midlight
+ 약간 밝음
+
+
+ Mid
+ 중간
+
+
+ Dark
+ 어두움
+
+
+ Shadow
+ 그림자
+
+
+ Select Co&lor:
+ 색 선택(&L):
+
+
+ Choose a color for the selected effect color role.
+ 선택한 효과 색상 역할에 사용할 색을 선택하십시오.
+
+
+ OK
+ 확인
+
+
+ Close dialog and apply all changes.
+ 대화 상자를 닫고 변경 사항을 적용합니다.
+
+
+ Cancel
+ 취소
+
+
+ Close dialog and discard all changes.
+ 대화 상자를 닫고 변경 사항을 적용하지 않습니다.
+
+
+
+ PreviewFrame
+
+ Desktop settings will only take effect after an application restart.
+ 데스크톱 설정은 프로그램을 다시 시작해야 적용됩니다.
+
+
+
+ PreviewWidget
+
+ Preview Window
+ 미리 보기 창
+
+
+ GroupBox
+ 그룹 상자
+
+
+ RadioButton1
+ 라디오 단추 1
+
+
+ RadioButton2
+ 라디오 단추 2
+
+
+ RadioButton3
+ 라디오 단추 3
+
+
+ GroupBox2
+ 그룹 상자 2
+
+
+ CheckBox1
+ 체크 상자 1
+
+
+ CheckBox2
+ 체크 상자 2
+
+
+ LineEdit
+ 라인 편집기
+
+
+ ComboBox
+ 콤보 상자
+
+
+ PushButton
+ 누름 단추
+
+
+ <p><a href="http://qt.nokia.com">http://qt.nokia.com</a></p>
+<p><a href="http://www.kde.org">http://www.kde.org</a></p>
+ <p><a href="http://qt.nokia.com">http://qt.nokia.com</a></p>
+<p><a href="http://www.kde.org">http://www.kde.org</a></p>
+
+
+
+ PreviewWidgetBase
+
+ Preview Window
+ 미리 보기 창
+
+
+ ButtonGroup
+ 단추 그룹
+
+
+ RadioButton1
+ 라디오 단추 1
+
+
+ RadioButton2
+ 라디오 단추 2
+
+
+ RadioButton3
+ 라디오 단추 3
+
+
+ ButtonGroup2
+ 단추 그룹 2
+
+
+ CheckBox1
+ 체크 상자 1
+
+
+ CheckBox2
+ 체크 상자 2
+
+
+ LineEdit
+ 라인 편집기
+
+
+ ComboBox
+ 콤보 상자
+
+
+ PushButton
+ 누름 단추
<p>
@@ -734,7 +1302,7 @@ p, li { white-space: pre-wrap; }
<p>
<a href="http://www.kde.org">http://www.kde.org</a>
</p>
- <p>
+ <p>
<a href="http://qt.nokia.com">http://qt.nokia.com</a>
</p>
<p>
--
cgit v0.12
From 8f73ed3a283cc1dbabbd72f7df9eb1df3d60c097 Mon Sep 17 00:00:00 2001
From: Sergey Belyashov
Date: Mon, 17 Oct 2011 11:36:15 +0200
Subject: Updated Russian translation
Merge-request: 1417
Reviewed-by: Oswald Buddenhagen
---
translations/qt_ru.ts | 43 ++++++++++++++++++++-----------------------
1 file changed, 20 insertions(+), 23 deletions(-)
diff --git a/translations/qt_ru.ts b/translations/qt_ru.ts
index 7dd4320..348b1ce 100644
--- a/translations/qt_ru.ts
+++ b/translations/qt_ru.ts
@@ -408,7 +408,7 @@ have libgstreamer-plugins-base installed.
Reflections delay (ms)
- ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection.
+ ReflectionsDelay: Amount of delay between the arrival of the direct path from the source and the arrival of the first reflection.
Затухание отражений (мс)
@@ -423,7 +423,7 @@ have libgstreamer-plugins-base installed.
Reverb level (mB)
- ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude.
+ ReverbLevel: Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude.
Уровень эха (мБар)
@@ -481,7 +481,7 @@ have libgstreamer-plugins-base installed.
Громкость: %1%
- Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%
+ Use this slider to adjust the volume. The leftmost position is 0%. The rightmost is %1%
Используйте данный регулятор для настройки громкости. Крайнее левое положение соответствует 0%, крайнее правое - %1%
@@ -6479,8 +6479,8 @@ Please choose a different file name.
QSoftKeyManager
- Ok
- ОК
+ OK
+ OK
Select
@@ -7116,6 +7116,10 @@ Please choose a different file name.
Запрос отменён
+ Request canceled
+ Запрос отменён
+
+
Request blocked
Запрос блокирован
@@ -8359,13 +8363,6 @@ Please choose a different file name.
- QmlJSDebugger::ToolBox
-
- Qt Quick Toolbox
- Инструментарий Qt Quick
-
-
-
QmlJSDebugger::ZoomTool
Zoom to &100%
@@ -8799,6 +8796,10 @@ Please choose a different file name.
Функция стилей должна иметь имя с префиксом.
+ The namespace for a user defined function cannot be empty (try the predefined prefix %1, which exists for cases like this)
+ Пространство имён для функции пользователя не может быть пустым (попробуйте предопределённый префикс %1, созданный для подобных случаев)
+
+
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, который существует для подобных ситуаций.
@@ -8955,10 +8956,6 @@ Please choose a different file name.
Корневой узел второго аргумента функции %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.
Объявление пространство имён по умолчанию должно быть до объявления функций, переменных и опций.
@@ -9519,7 +9516,7 @@ Please choose a different file name.
- 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.
@@ -10107,10 +10104,6 @@ Please choose a different file name.
Для обнуляемых элементов недопустимо ограничение фиксированным значением.
- Element %1 cannot contain other elements, as it has a fixed content.
- Элемент %1 не может содержать другие элементы, т.к. имеет статическое содержимое.
-
-
Specified type %1 is not validly substitutable with element type %2.
Указанный тип %1 не может быть корректно замещён элементом типа %2.
@@ -10143,6 +10136,10 @@ Please choose a different file name.
Элемент %1 содержит недопустимое текстовое содержимое.
+ Element %1 cannot contain other elements, as it has fixed content.
+ Элемент %1 не может содержать другие элементы, так как у него фиксированное содержимое.
+
+
Element %1 is missing required attribute %2.
У элемента %1 отсутствует необходимый атрибут %2.
@@ -10180,11 +10177,11 @@ Please choose a different file name.
Key constraint %1 contains absent fields.
- Ограничение на ключ %1 содержит недостающие поля.
+ Ограничение на ключ %1 содержит недостающие поля.
Key constraint %1 contains references nillable element %2.
-
+ Ограничение на ключ %1 содержит ссылки на обнуляемый элемент %2.
No referenced value found for key reference %1.
--
cgit v0.12
From 241547b8fa39125316b3e7a6466f3b89a4ab2016 Mon Sep 17 00:00:00 2001
From: Takumi ASAKI
Date: Mon, 17 Oct 2011 11:47:36 +0200
Subject: Update Japanese translations.
Merge-request: 2700
Reviewed-by: Oswald Buddenhagen
---
translations/qt_ja.ts | 106 +++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 100 insertions(+), 6 deletions(-)
diff --git a/translations/qt_ja.ts b/translations/qt_ja.ts
index 05ed9d4..7a6985b 100644
--- a/translations/qt_ja.ts
+++ b/translations/qt_ja.ts
@@ -407,7 +407,7 @@ libgstreamer-plugins-base はインストールされていますか。
Reflections delay (ms)
- ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection.
+ ReflectionsDelay: Amount of delay between the arrival of the direct path from the source and the arrival of the first reflection.
反射遅延 (ms)
@@ -422,7 +422,7 @@ libgstreamer-plugins-base はインストールされていますか。
Reverb level (mB)
- ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude.
+ ReverbLevel: Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude.
リバーブ レベル (mB)
@@ -480,8 +480,12 @@ libgstreamer-plugins-base はインストールされていますか。音量: %1%
+ Use this slider to adjust the volume. The leftmost position is 0%. The rightmost is %1%
+ スライダを用いて音量を調整してください。左端が0%です。右端が%1%になります
+
+
Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%
- スライダを用いて音量を指定してください。左端が0%、右端が%1%になります
+ スライダを用いて音量を指定してください。左端が0%、右端が%1%になります
Muted
@@ -3724,6 +3728,10 @@ Do you want to delete it anyway?
Actions
アクション
+
+ Corner Toolbar
+ コーナーツールバー
+
QMessageBox
@@ -6481,6 +6489,10 @@ Please choose a different file name.
QSoftKeyManager
Ok
+ OK
+
+
+ OK
OK
@@ -6725,6 +6737,72 @@ Please choose a different file name.
+ QSymSQLDriver
+
+ Invalid option:
+ 無効なオプション:
+
+
+ Error opening database
+ データベースのオープン時にエラーが発生しました
+
+
+ POLICY_DB_DEFAULT must be defined before any other POLICY definitions can be used
+ POLICY_DB_DEFAULT は他の POLICY 定義の利用前に定義されなければなりません
+
+
+ Unable to begin transaction
+ トランザクションを開始できません
+
+
+ Unable to commit transaction
+ トランザクションをコミットできません
+
+
+ Unable to rollback transaction
+ トランザクションをロールバックできません
+
+
+
+ QSymSQLResult
+
+ Error retrieving column count
+ カラム数の取得時にエラーが発生しました
+
+
+ Error retrieving column name
+ カラム名の取得時にエラーが発生しました
+
+
+ Error retrieving column type
+ カラムの型の取得時にエラーが発生しました
+
+
+ Unable to fetch row
+ レコードをフェッチできません
+
+
+ Unable to execute statement
+ ステートメントを実行できません
+
+
+ Statement is not prepared
+ ステートメントがプリペアではありません
+
+
+ Unable to reset statement
+ ステートメントをリセットできません
+
+
+ Unable to bind parameters
+ パラメータをバインドできません
+
+
+ Parameter count mismatch
+ パラメータの数が合っていません
+
+
+
QSymbianSocketEngine
Unable to initialize non-blocking socket
@@ -7051,6 +7129,10 @@ Please choose a different file name.
リクエストはキャンセルされました
+ Request canceled
+ リクエストはキャンセルされました
+
+
Request blocked
リクエストはブロックされました
@@ -8298,7 +8380,7 @@ Please choose a different file name.
QmlJSDebugger::ToolBox
Qt Quick Toolbox
- Qt Quick ツールボックス
+ Qt Quick ツールボックス
@@ -8776,7 +8858,11 @@ Please choose a different file name.
The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)
- ユーザ定義の関数の名前空間は、空であってはなりません。(すでに定義されているプレフィックス '%1' が使用できます)
+ ユーザ定義の関数の名前空間は、空であってはなりません。(すでに定義されているプレフィックス '%1' が使用できます)
+
+
+ The namespace for a user defined function cannot be empty (try the predefined prefix %1, which exists for cases like this)
+ ユーザ定義の関数の名前空間は、空であってはなりません。(今回の場合、すでに定義されているプレフィックス '%1' が使用できます)
The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases.
@@ -9620,6 +9706,10 @@ Please choose a different file name.
Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type.
+ 複合型 %1 のコンテンツモデルは %2 要素を含んでいますが非 empty 型を派生した拡張にする事はできません。
+
+
+ Content model of complex type %1 contains %2 element, so it cannot be derived by extension from a non-empty type.
複合型 %1 のコンテンツモデルは %2 要素を含んでいますが非 empty 型を派生した拡張にする事はできません。
@@ -10027,10 +10117,14 @@ Please choose a different file name.
要素 %1 はテキストを含む事を許可されていません。
- Element %1 cannot contain other elements, as it has a fixed content.
+ Element %1 cannot contain other elements, as it has fixed content.
要素 %1 は固定値を持った他の要素を含む事はできません。
+ Element %1 cannot contain other elements, as it has a fixed content.
+ 要素 %1 は固定値を持った他の要素を含む事はできません。
+
+
Element %1 is missing required attribute %2.
要素 %1 に要求された属性 %2 がありません。
--
cgit v0.12
From 17e0607ef47e455f56894e134541c46b42e7cdd9 Mon Sep 17 00:00:00 2001
From: Jani Hautakangas
Date: Tue, 18 Oct 2011 12:52:30 +0300
Subject: Update def files
Reviewed-by: TRUSTME
---
src/s60installs/bwins/QtGuiu.def | 6 +++++-
src/s60installs/eabi/QtGuiu.def | 11 ++++-------
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def
index 40cdcde..c66bb89 100644
--- a/src/s60installs/bwins/QtGuiu.def
+++ b/src/s60installs/bwins/QtGuiu.def
@@ -13113,5 +13113,9 @@ EXPORTS
?hasBCM2727@QSymbianGraphicsSystemEx@@SA_NXZ @ 13112 NONAME ; bool QSymbianGraphicsSystemEx::hasBCM2727(void)
?constImageRef@QVolatileImage@@QBEABVQImage@@XZ @ 13113 NONAME ; class QImage const & QVolatileImage::constImageRef(void) const
?toVolatileImage@QPixmapData@@UBE?AVQVolatileImage@@XZ @ 13114 NONAME ; class QVolatileImage QPixmapData::toVolatileImage(void) const
- ?qt_s60_setPartialScreenAutomaticTranslation@@YAX_N@Z @ 13115 NONAME ; void qt_s60_setPartialScreenAutomaticTranslation(bool)
+ ?qt_s60_setPartialScreenAutomaticTranslation@@YAX_N@Z @ 13115 NONAME ; void qt_s60_setPartialScreenAutomaticTranslation(bool)
+ ?aboutToUseGpuResources@QApplication@@IAEXXZ @ 13116 NONAME ; void QApplication::aboutToUseGpuResources(void)
+ ?aboutToReleaseGpuResources@QApplication@@IAEXXZ @ 13117 NONAME ; void QApplication::aboutToReleaseGpuResources(void)
+ ?emitAboutToUseGpuResources@QApplicationPrivate@@QAEXXZ @ 13118 NONAME ; void QApplicationPrivate::emitAboutToUseGpuResources(void)
+ ?emitAboutToReleaseGpuResources@QApplicationPrivate@@QAEXXZ @ 13119 NONAME ; void QApplicationPrivate::emitAboutToReleaseGpuResources(void)
diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def
index 723fcf6..9d39b90 100644
--- a/src/s60installs/eabi/QtGuiu.def
+++ b/src/s60installs/eabi/QtGuiu.def
@@ -12198,11 +12198,8 @@ EXPORTS
_ZNK11QPixmapData15toVolatileImageEv @ 12197 NONAME
_ZNK14QVolatileImage13constImageRefEv @ 12198 NONAME
_Z43qt_s60_setPartialScreenAutomaticTranslationb @ 12199 NONAME
- _ZN11QTextEngine16getClusterLengthEPtPK17HB_CharAttributesiiiPi @ 12200 NONAME
- _ZN11QTextEngine18positionInLigatureEPK11QScriptItemi6QFixedS3_ib @ 12201 NONAME
- _ZN12QApplication22aboutToUseGpuResourcesEv @ 12202 NONAME
- _ZN12QApplication26aboutToReleaseGpuResourcesEv @ 12203 NONAME
- _ZN14QWidgetPrivate16_q_cleanupWinIdsEv @ 12204 NONAME
- _ZN19QApplicationPrivate26emitAboutToUseGpuResourcesEv @ 12205 NONAME
- _ZN19QApplicationPrivate30emitAboutToReleaseGpuResourcesEv @ 12206 NONAME
+ _ZN12QApplication22aboutToUseGpuResourcesEv @ 12200 NONAME
+ _ZN12QApplication26aboutToReleaseGpuResourcesEv @ 12201 NONAME
+ _ZN19QApplicationPrivate26emitAboutToUseGpuResourcesEv @ 12202 NONAME
+ _ZN19QApplicationPrivate30emitAboutToReleaseGpuResourcesEv @ 12203 NONAME
--
cgit v0.12
From b9a3d4bf7827aa631995d47233d47583917a5a7f Mon Sep 17 00:00:00 2001
From: Jani Hautakangas
Date: Tue, 18 Oct 2011 13:04:21 +0300
Subject: Fix to QGLWidget crash
QGLWidget crashed due to regression
caused by fix to QTTH-1553. Crash only
occurred if application was locked to
landscape mode but started when device
was in portrait mode.
Task-number: QTTH-1597
Reviewed-by: Laszlo Agocs
---
src/opengl/qgl.cpp | 7 +++++--
src/opengl/qgl_p.h | 2 ++
src/opengl/qgl_symbian.cpp | 18 +++++++++++-------
3 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp
index ca16cca..3b3da43 100644
--- a/src/opengl/qgl.cpp
+++ b/src/opengl/qgl.cpp
@@ -4297,7 +4297,7 @@ bool QGLWidget::event(QEvent *e)
// if we've reparented a window that has the current context
// bound, we need to rebind that context to the new window id
if (d->glcx == QGLContext::currentContext())
- makeCurrent();
+ makeCurrent(); // Shouldn't happen but keep it here just for sure
if (testAttribute(Qt::WA_TranslucentBackground))
setContext(new QGLContext(d->glcx->requestedFormat(), this));
@@ -4305,8 +4305,11 @@ bool QGLWidget::event(QEvent *e)
// A re-parent is likely to destroy the Symbian window and re-create it. It is important
// that we free the EGL surface _before_ the winID changes - otherwise we can leak.
- if (e->type() == QEvent::ParentAboutToChange)
+ if (e->type() == QEvent::ParentAboutToChange) {
+ if (d->glcx == QGLContext::currentContext())
+ d->glcx->doneCurrent();
d->glcx->d_func()->destroyEglSurfaceForDevice();
+ }
if ((e->type() == QEvent::ParentChange) || (e->type() == QEvent::WindowStateChange)) {
// The window may have been re-created during re-parent or state change - if so, the EGL
diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h
index 2ca8dc9..c56b2db 100644
--- a/src/opengl/qgl_p.h
+++ b/src/opengl/qgl_p.h
@@ -175,6 +175,7 @@ public:
#endif
#if defined(Q_OS_SYMBIAN)
, eglSurfaceWindowId(0)
+ , surfaceSizeInitialized(false)
#endif
{
isGLWidget = 1;
@@ -220,6 +221,7 @@ public:
#ifdef Q_OS_SYMBIAN
void recreateEglSurface();
WId eglSurfaceWindowId;
+ bool surfaceSizeInitialized : 1;
#endif
};
diff --git a/src/opengl/qgl_symbian.cpp b/src/opengl/qgl_symbian.cpp
index b8e5c22..94c63fc 100644
--- a/src/opengl/qgl_symbian.cpp
+++ b/src/opengl/qgl_symbian.cpp
@@ -259,7 +259,7 @@ bool QGLContext::chooseContext(const QGLContext* shareContext) // almost same as
return true;
}
-void QGLWidget::resizeEvent(QResizeEvent *)
+void QGLWidget::resizeEvent(QResizeEvent *e)
{
Q_D(QGLWidget);
if (!isValid())
@@ -270,17 +270,18 @@ void QGLWidget::resizeEvent(QResizeEvent *)
if (this == qt_gl_share_widget())
return;
- if (QGLContext::currentContext())
- doneCurrent();
-
- // Symbian needs to recreate the surface on resize.
- d->recreateEglSurface();
+ if (!d->surfaceSizeInitialized || e->oldSize() != e->size()) {
+ // On Symbian we need to recreate the surface on resize.
+ d->recreateEglSurface();
+ d->surfaceSizeInitialized = true;
+ }
makeCurrent();
+
if (!d->glcx->initialized())
glInit();
+
resizeGL(width(), height());
- //handle overlay
}
const QGLContext* QGLWidget::overlayContext() const
@@ -363,6 +364,9 @@ void QGLWidgetPrivate::recreateEglSurface()
WId currentId = q->winId();
if (glcx->d_func()->eglSurface != EGL_NO_SURFACE) {
+ if (glcx == QGLContext::currentContext())
+ glcx->doneCurrent();
+
eglDestroySurface(glcx->d_func()->eglContext->display(),
glcx->d_func()->eglSurface);
}
--
cgit v0.12
From f90c18e09e8b2e275230080cb51656e3f8a31fba Mon Sep 17 00:00:00 2001
From: Jerome Pasion
Date: Wed, 19 Oct 2011 10:43:24 +0200
Subject: Doc: adding link to the Qt Quick Components for Symbian page.
Reviewed-by: Geir Vattekar
---
doc/src/declarative/declarativeui.qdoc | 1 +
doc/src/mainpage.qdoc | 1 +
doc/src/platforms/supported-platforms.qdoc | 5 +++++
doc/src/qt-webpages.qdoc | 5 +++++
4 files changed, 12 insertions(+)
diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc
index cecccf6..4201cf1 100644
--- a/doc/src/declarative/declarativeui.qdoc
+++ b/doc/src/declarative/declarativeui.qdoc
@@ -82,6 +82,7 @@ Qt applications.
\section1 QML Add-Ons
\list
+\o \l{Qt Quick Components for Symbian 1.1}{Qt Quick Components for Symbian} - a native component set for the Symbian^3 platform
\o \l{QtWebKit QML Module}
\o \l{http://doc.qt.nokia.com/qtmobility-1.1.0/qml-plugins.html}{Mobility QML Plugins}
\endlist
diff --git a/doc/src/mainpage.qdoc b/doc/src/mainpage.qdoc
index 41818ee..154d14c 100644
--- a/doc/src/mainpage.qdoc
+++ b/doc/src/mainpage.qdoc
@@ -110,6 +110,7 @@ applications using layouts and Qt Quick interfaces with QML.
\o \l{Qt Quick} - create UIs using QML
\list
\o \l{external: Developing Qt Quick Applications}{Creator's QML Design Mode} - design Qt Quick interfaces using Creator's design mode
+ \o \l{Qt Quick Components for Symbian 1.1}{Qt Quick Components for Symbian} - a native QML component set for the Symbian^3 platform
\endlist
\o \l{Widgets and Layouts} - primary elements for C++ based interfaces
\list
diff --git a/doc/src/platforms/supported-platforms.qdoc b/doc/src/platforms/supported-platforms.qdoc
index ba59c37..92bf12d 100644
--- a/doc/src/platforms/supported-platforms.qdoc
+++ b/doc/src/platforms/supported-platforms.qdoc
@@ -465,6 +465,8 @@
\o \l{Platform and Compiler Notes - Symbian}{Platform Notes - Symbian}
- Platform specific notes.
\o \l{Getting Started Guides}{Getting started}
+ \o \l{Qt Quick Components for Symbian 1.1}{Qt Quick Components for Symbian}
+ - provides a QML component set for the Symbian^3 platform
\endlist
\section1 Key Features for Symbian Development
@@ -481,6 +483,9 @@
time and lines of code required for traditional UI styling with
Qt Style Sheets.
+ The \l{Qt Quick Components for Symbian 1.1}{Qt Quick Components for Symbian 1.1}
+ provides a native QML component set.
+
\section2 Graphics Features
Qt for Symbian contains a powerful paint engine that provides
diff --git a/doc/src/qt-webpages.qdoc b/doc/src/qt-webpages.qdoc
index f67ff83..c4d400d 100644
--- a/doc/src/qt-webpages.qdoc
+++ b/doc/src/qt-webpages.qdoc
@@ -554,3 +554,8 @@
\externalpage http://labs.qt.nokia.com/2011/05/03/qt-modules-maturity-level/
\title Qt Modules' Maturity Level - Description
*/
+
+/*!
+ \externalpage http://doc.qt.nokia.com/qtquick-components-symbian-1.1/index.html
+ \title Qt Quick Components for Symbian 1.1
+*/
\ No newline at end of file
--
cgit v0.12
From 20542f9546637bd649c928226249be0ffc91841b Mon Sep 17 00:00:00 2001
From: Jani Hautakangas
Date: Wed, 19 Oct 2011 09:39:22 +0300
Subject: Workaround to VideoCore III scissor bug.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Some versions of VideoCore III drivers seem
to pollute and use stencil buffer when using
glScissors. Workaround is to clear stencil buffer
before disabling scissoring.
Task-number: QT-5308
Reviewed-by: Samuel Rødal
---
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp | 2 ++
src/opengl/qgl.cpp | 2 ++
src/opengl/qgl_egl.cpp | 11 ++++++++++-
src/opengl/qgl_p.h | 2 ++
4 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
index 047d589..999a074 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
@@ -2059,6 +2059,8 @@ void QGL2PaintEngineExPrivate::updateClipScissorTest()
currentScissorBounds = bounds;
if (bounds == QRect(0, 0, width, height)) {
+ if (ctx->d_func()->workaround_brokenScissor)
+ clearClip(0);
glDisable(GL_SCISSOR_TEST);
} else {
glEnable(GL_SCISSOR_TEST);
diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp
index 3b3da43..af160d8 100644
--- a/src/opengl/qgl.cpp
+++ b/src/opengl/qgl.cpp
@@ -1716,6 +1716,8 @@ void QGLContextPrivate::init(QPaintDevice *dev, const QGLFormat &format)
workaround_brokenTextureFromPixmap = false;
workaround_brokenTextureFromPixmap_init = false;
+ workaround_brokenScissor = false;
+
for (int i = 0; i < QT_GL_VERTEX_ARRAY_TRACKED_COUNT; ++i)
vertexAttributeArraysEnabledState[i] = false;
}
diff --git a/src/opengl/qgl_egl.cpp b/src/opengl/qgl_egl.cpp
index a589118..07134cf 100644
--- a/src/opengl/qgl_egl.cpp
+++ b/src/opengl/qgl_egl.cpp
@@ -192,7 +192,9 @@ void QGLContext::makeCurrent()
if (!d->workaroundsCached) {
d->workaroundsCached = true;
const char *renderer = reinterpret_cast(glGetString(GL_RENDERER));
- if (renderer && (strstr(renderer, "SGX") || strstr(renderer, "MBX"))) {
+ if (!renderer)
+ return;
+ if ((strstr(renderer, "SGX") || strstr(renderer, "MBX"))) {
// PowerVR MBX/SGX chips needs to clear all buffers when starting to render
// a new frame, otherwise there will be a performance penalty to pay for
// each frame.
@@ -229,6 +231,13 @@ void QGLContext::makeCurrent()
d->workaround_brokenFBOReadBack = true;
}
}
+ } else if (strstr(renderer, "VideoCore III")) {
+ // Some versions of VideoCore III drivers seem to pollute and use
+ // stencil buffer when using glScissors even if stencil test is disabled.
+ // Workaround is to clear stencil buffer before disabling scissoring.
+
+ // qDebug() << "Found VideoCore III driver, enabling brokenDisableScissorTest";
+ d->workaround_brokenScissor = true;
}
}
}
diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h
index c56b2db..d76f0b0 100644
--- a/src/opengl/qgl_p.h
+++ b/src/opengl/qgl_p.h
@@ -415,6 +415,8 @@ public:
uint workaround_brokenTextureFromPixmap : 1;
uint workaround_brokenTextureFromPixmap_init : 1;
+ uint workaround_brokenScissor : 1;
+
QPaintDevice *paintDevice;
QColor transpColor;
QGLContext *q_ptr;
--
cgit v0.12
From 55c2ea18c522bd8700f43884124e02b460cdb5e2 Mon Sep 17 00:00:00 2001
From: aavit
Date: Wed, 19 Oct 2011 14:02:24 +0200
Subject: Fixes: the png_handle_cHRM crash bug in bundled libpng 1.5.4
The PNG Development Group explains that libpng 1.5.4 (only) introduced
a divide-by-zero bug in png_handle_cHRM(), which could lead to crashes
(denial of service) for certain malformed PNGs.
Ref. http://www.libpng.org/pub/png/libpng.html
Task-number: QTBUG-22168
---
src/3rdparty/libpng/pngrutil.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/3rdparty/libpng/pngrutil.c b/src/3rdparty/libpng/pngrutil.c
index 07e46e2..daf3c5e 100644
--- a/src/3rdparty/libpng/pngrutil.c
+++ b/src/3rdparty/libpng/pngrutil.c
@@ -1037,12 +1037,14 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
*/
png_uint_32 w = y_red + y_green + y_blue;
- png_ptr->rgb_to_gray_red_coeff = (png_uint_16)(((png_uint_32)y_red *
- 32768)/w);
- png_ptr->rgb_to_gray_green_coeff = (png_uint_16)(((png_uint_32)y_green
- * 32768)/w);
- png_ptr->rgb_to_gray_blue_coeff = (png_uint_16)(((png_uint_32)y_blue *
- 32768)/w);
+ if (w != 0) {
+ png_ptr->rgb_to_gray_red_coeff = (png_uint_16)(((png_uint_32)y_red *
+ 32768)/w);
+ png_ptr->rgb_to_gray_green_coeff = (png_uint_16)(((png_uint_32)y_green
+ * 32768)/w);
+ png_ptr->rgb_to_gray_blue_coeff = (png_uint_16)(((png_uint_32)y_blue *
+ 32768)/w);
+ }
}
}
#endif
--
cgit v0.12
From e5098123c12880d922923d1117f7b82995c6b5a0 Mon Sep 17 00:00:00 2001
From: aavit
Date: Wed, 19 Oct 2011 14:02:24 +0200
Subject: Fixes: the png_handle_cHRM crash bug in bundled libpng 1.5.4
The PNG Development Group explains that libpng 1.5.4 (only) introduced
a divide-by-zero bug in png_handle_cHRM(), which could lead to crashes
(denial of service) for certain malformed PNGs.
Ref. http://www.libpng.org/pub/png/libpng.html
This commit contains the patch recommended by the PNG Development
Group, ref. http://www.kb.cert.org/vuls/id/477046
Task-number: QTBUG-22168
(cherry picked from commit 55c2ea18c522bd8700f43884124e02b460cdb5e2)
---
src/3rdparty/libpng/pngrutil.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/3rdparty/libpng/pngrutil.c b/src/3rdparty/libpng/pngrutil.c
index 07e46e2..daf3c5e 100644
--- a/src/3rdparty/libpng/pngrutil.c
+++ b/src/3rdparty/libpng/pngrutil.c
@@ -1037,12 +1037,14 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
*/
png_uint_32 w = y_red + y_green + y_blue;
- png_ptr->rgb_to_gray_red_coeff = (png_uint_16)(((png_uint_32)y_red *
- 32768)/w);
- png_ptr->rgb_to_gray_green_coeff = (png_uint_16)(((png_uint_32)y_green
- * 32768)/w);
- png_ptr->rgb_to_gray_blue_coeff = (png_uint_16)(((png_uint_32)y_blue *
- 32768)/w);
+ if (w != 0) {
+ png_ptr->rgb_to_gray_red_coeff = (png_uint_16)(((png_uint_32)y_red *
+ 32768)/w);
+ png_ptr->rgb_to_gray_green_coeff = (png_uint_16)(((png_uint_32)y_green
+ * 32768)/w);
+ png_ptr->rgb_to_gray_blue_coeff = (png_uint_16)(((png_uint_32)y_blue *
+ 32768)/w);
+ }
}
}
#endif
--
cgit v0.12
From 2be143ebb5246bb2f9b674bb09d23df5b2b6c504 Mon Sep 17 00:00:00 2001
From: Sami Merila
Date: Thu, 20 Oct 2011 16:46:12 +0300
Subject: Accepting predicted text using hardware keyboard replaces unwanted
part
Current implementation of Symbian input context assumes that predicted
word replacement happens so that the original typed text is at the end
of the surrounded text. The logic fails, if to-be-predicted text is
in the middle of, or in the beginning of another, already accepted
word.
As a fix, input context need to store the original cursor position,
when reset() was called (this happens when word selection list
appears). Input context is already storing a copy of a preedit string
in this situation.
Then, when word replacement happens, this stored cursor position is
used instead of current cursor position (the native side might
temporarily move the cursor to the end when word selection list opens
or closes) to replace the typed word with one selected from suggested
word list.
Stored cursor position is dismissed immediately after used, or
if cached preedit string is dismissed.
Task-number: QTBUG-22147
Reviewed-by: Miikka Heikkinen
---
src/gui/inputmethod/qcoefepinputcontext_p.h | 1 +
src/gui/inputmethod/qcoefepinputcontext_s60.cpp | 37 +++++++++++++++++++++++--
2 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/src/gui/inputmethod/qcoefepinputcontext_p.h b/src/gui/inputmethod/qcoefepinputcontext_p.h
index 8c30838..cefae5e 100644
--- a/src/gui/inputmethod/qcoefepinputcontext_p.h
+++ b/src/gui/inputmethod/qcoefepinputcontext_p.h
@@ -162,6 +162,7 @@ private:
QBasicTimer m_tempPreeditStringTimeout;
bool m_hasTempPreeditString;
QString m_cachedPreeditString;
+ int m_cachedCursorAndAnchorPosition;
int m_splitViewResizeBy;
Qt::WindowStates m_splitViewPreviousWindowStates;
diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
index 79005ce..66ab4c8 100644
--- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
+++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
@@ -115,6 +115,7 @@ QCoeFepInputContext::QCoeFepInputContext(QObject *parent)
m_formatRetriever(0),
m_pointerHandler(0),
m_hasTempPreeditString(false),
+ m_cachedCursorAndAnchorPosition(-1),
m_splitViewResizeBy(0),
m_splitViewPreviousWindowStates(Qt::WindowNoState)
{
@@ -158,9 +159,18 @@ void QCoeFepInputContext::reset()
}
// Store a copy of preedit text, if prediction is active and input context is reseted.
// This is to ensure that we can replace preedit string after losing focus to FEP manager's
- // internal sub-windows.
- if (m_cachedPreeditString.isEmpty() && !(currentHints & Qt::ImhNoPredictiveText))
+ // internal sub-windows. Additionally, store the cursor position if there is no selected text.
+ // This allows input context to replace preedit strings if they are not at the end of current
+ // text.
+ if (m_cachedPreeditString.isEmpty() && !(currentHints & Qt::ImhNoPredictiveText)) {
m_cachedPreeditString = m_preeditString;
+ if (focusWidget()) {
+ int cursor = focusWidget()->inputMethodQuery(Qt::ImCursorPosition).toInt();
+ int anchor = focusWidget()->inputMethodQuery(Qt::ImAnchorPosition).toInt();
+ if (cursor == anchor)
+ m_cachedCursorAndAnchorPosition = cursor;
+ }
+ }
commitCurrentString(true);
}
@@ -196,6 +206,7 @@ void QCoeFepInputContext::setFocusWidget(QWidget *w)
void QCoeFepInputContext::widgetDestroyed(QWidget *w)
{
m_cachedPreeditString.clear();
+ m_cachedCursorAndAnchorPosition = -1;
// Make sure that the input capabilities of whatever new widget got focused are queried.
CCoeControl *ctrl = w->effectiveWinId();
@@ -981,6 +992,7 @@ void QCoeFepInputContext::StartFepInlineEditL(const TDesC& aInitialInlineText,
return;
m_cachedPreeditString.clear();
+ m_cachedCursorAndAnchorPosition = -1;
commitTemporaryPreeditString();
@@ -1039,8 +1051,16 @@ void QCoeFepInputContext::UpdateFepInlineTextL(const TDesC& aNewInlineText,
QString newPreeditString = qt_TDesC2QString(aNewInlineText);
QInputMethodEvent event(newPreeditString, attributes);
if (!m_cachedPreeditString.isEmpty()) {
- event.setCommitString(QLatin1String(""), -m_cachedPreeditString.length(), m_cachedPreeditString.length());
+ int cursorPos = w->inputMethodQuery(Qt::ImCursorPosition).toInt();
+ // Predicted word is either replaced from the end of the word (normal case),
+ // or from stored location, if the predicted word is either in the beginning of,
+ // or in the middle of already committed word.
+ int diff = cursorPos - m_cachedCursorAndAnchorPosition;
+ int replaceLocation = (diff != m_cachedPreeditString.length()) ? diff : m_cachedPreeditString.length();
+
+ event.setCommitString(QLatin1String(""), -replaceLocation, m_cachedPreeditString.length());
m_cachedPreeditString.clear();
+ m_cachedCursorAndAnchorPosition = -1;
} else if (newPreeditString.isEmpty() && m_preeditString.isEmpty()) {
// In Symbian world this means "erase last character".
event.setCommitString(QLatin1String(""), -1, 1);
@@ -1138,6 +1158,10 @@ void QCoeFepInputContext::SetCursorSelectionForFepL(const TCursorSelection& aCur
int pos = aCursorSelection.iAnchorPos;
int length = aCursorSelection.iCursorPos - pos;
+ if (m_cachedCursorAndAnchorPosition != -1) {
+ pos = m_cachedCursorAndAnchorPosition;
+ length = 0;
+ }
QList attributes;
attributes << QInputMethodEvent::Attribute(QInputMethodEvent::Selection, pos, length, QVariant());
@@ -1155,6 +1179,13 @@ void QCoeFepInputContext::GetCursorSelectionForFep(TCursorSelection& aCursorSele
int cursor = w->inputMethodQuery(Qt::ImCursorPosition).toInt() + m_preeditString.size();
int anchor = w->inputMethodQuery(Qt::ImAnchorPosition).toInt() + m_preeditString.size();
+
+ // If the position is stored, use that value, so that word replacement from proposed word
+ // lists are added to the correct position.
+ if (m_cachedCursorAndAnchorPosition != -1) {
+ cursor = m_cachedCursorAndAnchorPosition;
+ anchor = m_cachedCursorAndAnchorPosition;
+ }
QString text = w->inputMethodQuery(Qt::ImSurroundingText).value();
int combinedSize = text.size() + m_preeditString.size();
if (combinedSize < anchor || combinedSize < cursor) {
--
cgit v0.12
From 0375fff2b077ddd20a97c1b1c8d34f22553abe0c Mon Sep 17 00:00:00 2001
From: "Bradley T. Hughes"
Date: Fri, 21 Oct 2011 09:59:54 +0200
Subject: Fix performance regression on Mac OS X when creating/destroying
QMutex
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reverts commit cf17b743d2fe84ab259b7232ab07b58a1872e18e, which
changed QMutex to use a Mach semaphore_t on Mac OS X. We now use
pthread_mutex_t on Mac OS X as well. Contention performance is mostly
unchanged, but the new constructionQMutex() benchmark added in this
commit shows that creating/destroying a semaphore_t is about 20 times
slower than pthread_mutex_t.
Reviewed-by: Olivier Goffart
Reviewed-by: João Abecasis
---
src/corelib/thread/qmutex_p.h | 8 +---
src/corelib/thread/qmutex_unix.cpp | 50 +++-------------------
.../corelib/thread/qmutex/tst_qmutex.cpp | 19 ++++++++
3 files changed, 26 insertions(+), 51 deletions(-)
diff --git a/src/corelib/thread/qmutex_p.h b/src/corelib/thread/qmutex_p.h
index a9923c4..d2ffd28 100644
--- a/src/corelib/thread/qmutex_p.h
+++ b/src/corelib/thread/qmutex_p.h
@@ -58,10 +58,6 @@
#include
#include
-#if defined(Q_OS_MAC)
-# include
-#endif
-
#if defined(Q_OS_SYMBIAN)
# include
#endif
@@ -83,9 +79,7 @@ public:
Qt::HANDLE owner;
uint count;
-#if defined(Q_OS_MAC)
- semaphore_t mach_semaphore;
-#elif defined(Q_OS_UNIX) && !defined(Q_OS_LINUX) && !defined(Q_OS_SYMBIAN)
+#if defined(Q_OS_UNIX) && !defined(Q_OS_LINUX) && !defined(Q_OS_SYMBIAN)
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 2a9d23c..790fad3 100644
--- a/src/corelib/thread/qmutex_unix.cpp
+++ b/src/corelib/thread/qmutex_unix.cpp
@@ -65,7 +65,7 @@
QT_BEGIN_NAMESPACE
-#if !defined(Q_OS_MAC) && !defined(Q_OS_LINUX)
+#if !defined(Q_OS_LINUX)
static void report_error(int code, const char *where, const char *what)
{
if (code != 0)
@@ -77,11 +77,7 @@ static void report_error(int code, const char *where, const char *what)
QMutexPrivate::QMutexPrivate(QMutex::RecursionMode mode)
: 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);
- if (r != KERN_SUCCESS)
- qWarning("QMutex: failed to create semaphore, error %d", r);
-#elif !defined(Q_OS_LINUX)
+#if !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");
@@ -90,47 +86,13 @@ QMutexPrivate::QMutexPrivate(QMutex::RecursionMode mode)
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);
-#elif !defined(Q_OS_LINUX)
+#if !defined(Q_OS_LINUX)
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;
- }
- kern_return_t r;
- if (timeout < 0) {
- do {
- r = semaphore_wait(mach_semaphore);
- } while (r == KERN_ABORTED);
- if (r != KERN_SUCCESS)
- qWarning("QMutex: infinite wait failed, error %d", r);
- } else {
- mach_timespec_t ts;
- ts.tv_nsec = ((timeout % 1000) * 1000) * 1000;
- ts.tv_sec = (timeout / 1000);
- r = semaphore_timedwait(mach_semaphore, ts);
- }
- contenders.deref();
- return r == KERN_SUCCESS;
-}
-
-void QMutexPrivate::wakeUp()
-{
- semaphore_signal(mach_semaphore);
-}
-
-#elif defined(Q_OS_LINUX)
+#if defined(Q_OS_LINUX)
static inline int _q_futex(volatile int *addr, int op, int val, const struct timespec *timeout, int *addr2, int val2)
{
@@ -174,7 +136,7 @@ void QMutexPrivate::wakeUp()
(void) _q_futex(&contenders._q_value, FUTEX_WAKE, 1, 0, 0, 0);
}
-#else // !Q_OS_MAC && !Q_OS_LINUX
+#else // !Q_OS_LINUX
bool QMutexPrivate::wait(int timeout)
{
@@ -221,7 +183,7 @@ void QMutexPrivate::wakeUp()
report_error(pthread_mutex_unlock(&mutex), "QMutex::unlock", "mutex unlock");
}
-#endif // !Q_OS_MAC && !Q_OS_LINUX
+#endif // !Q_OS_LINUX
QT_END_NAMESPACE
diff --git a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp
index 05a1575..eca38b6 100644
--- a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp
+++ b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp
@@ -128,7 +128,9 @@ private slots:
void noThread_data();
void noThread();
+ void constructionNative();
void uncontendedNative();
+ void constructionQMutex();
void uncontendedQMutex();
void uncontendedQMutexLocker();
@@ -205,6 +207,15 @@ void tst_QMutex::noThread()
QCOMPARE(int(count), N);
}
+void tst_QMutex::constructionNative()
+{
+ QBENCHMARK {
+ NativeMutexType mutex;
+ NativeMutexInitialize(&mutex);
+ NativeMutexDestroy(&mutex);
+ }
+}
+
void tst_QMutex::uncontendedNative()
{
NativeMutexType mutex;
@@ -216,6 +227,14 @@ void tst_QMutex::uncontendedNative()
NativeMutexDestroy(&mutex);
}
+void tst_QMutex::constructionQMutex()
+{
+ QBENCHMARK {
+ QMutex mutex;
+ Q_UNUSED(mutex);
+ }
+}
+
void tst_QMutex::uncontendedQMutex()
{
QMutex mutex;
--
cgit v0.12
From 67dd642ca7cd7f61ba5de83218a3933ffe12f10e Mon Sep 17 00:00:00 2001
From: Jerome Pasion
Date: Wed, 19 Oct 2011 10:43:24 +0200
Subject: Doc: adding link to the Qt Quick Components for Symbian page.
Reviewed-by: Geir Vattekar
---
doc/src/declarative/declarativeui.qdoc | 1 +
doc/src/mainpage.qdoc | 1 +
doc/src/platforms/supported-platforms.qdoc | 5 ++
doc/src/qt-webpages.qdoc | 118 +++++++++++++++++++++++++++++
4 files changed, 125 insertions(+)
diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc
index d1d82d8..bddd05b 100644
--- a/doc/src/declarative/declarativeui.qdoc
+++ b/doc/src/declarative/declarativeui.qdoc
@@ -82,6 +82,7 @@ Qt applications.
\section1 QML Add-Ons
\list
+\o \l{Qt Quick Components for Symbian}{Qt Quick Components for Symbian} - a native component set for the Symbian^3 platform
\o \l{QtWebKit QML Module}
\o \l{http://doc.qt.nokia.com/qtmobility-1.1.0/qml-plugins.html}{Mobility QML Plugins}
\endlist
diff --git a/doc/src/mainpage.qdoc b/doc/src/mainpage.qdoc
index 41818ee..6865f10 100644
--- a/doc/src/mainpage.qdoc
+++ b/doc/src/mainpage.qdoc
@@ -110,6 +110,7 @@ applications using layouts and Qt Quick interfaces with QML.
\o \l{Qt Quick} - create UIs using QML
\list
\o \l{external: Developing Qt Quick Applications}{Creator's QML Design Mode} - design Qt Quick interfaces using Creator's design mode
+ \o \l{Qt Quick Components for Symbian}{Qt Quick Components for Symbian} - a native QML component set for the Symbian^3 platform
\endlist
\o \l{Widgets and Layouts} - primary elements for C++ based interfaces
\list
diff --git a/doc/src/platforms/supported-platforms.qdoc b/doc/src/platforms/supported-platforms.qdoc
index ba59c37..eee6555 100644
--- a/doc/src/platforms/supported-platforms.qdoc
+++ b/doc/src/platforms/supported-platforms.qdoc
@@ -465,6 +465,8 @@
\o \l{Platform and Compiler Notes - Symbian}{Platform Notes - Symbian}
- Platform specific notes.
\o \l{Getting Started Guides}{Getting started}
+ \o \l{Qt Quick Components for Symbian}{Qt Quick Components for Symbian}
+ - provides a QML component set for the Symbian^3 platform
\endlist
\section1 Key Features for Symbian Development
@@ -481,6 +483,9 @@
time and lines of code required for traditional UI styling with
Qt Style Sheets.
+ The \l{Qt Quick Components for Symbian}{Qt Quick Components for Symbian}
+ provides a native QML component set.
+
\section2 Graphics Features
Qt for Symbian contains a powerful paint engine that provides
diff --git a/doc/src/qt-webpages.qdoc b/doc/src/qt-webpages.qdoc
index 742de73..16bc665 100644
--- a/doc/src/qt-webpages.qdoc
+++ b/doc/src/qt-webpages.qdoc
@@ -318,3 +318,121 @@
\title Qt Developer Days 2010
*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/qt_essentials_widget_edition_fundamentals_of_qt_part_2_hello_world_in_qtcre
+ \title Qt Essentials - Fundamentals of Qt part 1
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/qt_essentials_widget_edition_fundamentals_of_qt_part_1_your_first_qt_applic
+ \title Qt Essentials - Fundamentals of Qt part 2
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/qt_essentials_widget_edition_application_creation_part_1_mainwindows
+ \title Qt Essentials - Application Creation part 1
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/application_creation_part_2_settings_resources_and_application_deployment
+ \title Qt Essentials - Application Creation part 2
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/application_creation_part_3_translation_for_developers
+ \title Qt Essentials - Application Creation part 3
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/widgets_part_1_common_widgets
+ \title Qt Essentials - Widgets part 1
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/widgets_part_2_layout_management
+ \title Qt Essentials - Widgets part 2
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/widgets_part_3_guidelines_for_custom_widgets
+ \title Qt Essentials - Widgets part 3
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/graphics_view_part_1_using_graphicsview_classes
+ \title Qt Essentials - Graphics View part 1
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/graphics_view_part_2_transformations_and_coordinate_systems
+ \title Qt Essentials - Graphics View part 2
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/graphics_view_part_3_creating_custom_items
+ \title Qt Essentials - Graphics View part 3
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/model_view_part_1_model_view_concept
+ \title Qt Essentials - Model/View I part 1
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/model_view_part_2_showing_simple_data
+ \title Qt Essentials - Model/View I part 2
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/model_view_part_3_proxy_models
+ \title Qt Essentials - Model/View I part 3
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/model_view_part_4_custom_models
+ \title Qt Essentials - Model/View I part 4
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/model_view_ii_part_1_editing_item_data
+ \title Qt Essentials - Model/View II part 1
+*/
+/*!
+ \externalpage
+ \title Qt Essentials - Model/View II part 2
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/model_view_ii_part_3_data_widget_mapper
+ \title Qt Essentials - Model/View II part 3
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/model_view_ii_part_4_custom_tree_model
+ \title Qt Essentials - Model/View II part 4
+*/
+/*!
+ \externalpage http://developer.qt.nokia.com/elearning/watch/model_view_ii_part_5_drag_and_drop
+ \title Qt Essentials - Model/View II part 5
+*/
+/*!
+ \externalpage http://qt.nokia.com/certification
+ \title Qt Certification
+*/
+/*!
+ \externalpage http://qt.nokia.com/developer/learning/certification/exams/preparation-prerequisites
+ \title Qt Certification Exam Preparation and Prerequisites
+*/
+
+/*!
+ \externalpage http://qt.nokia.com/developer/learning/online/training/materials
+ \title Download Qt training materials
+*/
+
+/*!
+ \externalpage http://qt.nokia.com/partners/qt-in-education/qt-in-education-course-material/
+ \title Qt in Education Course Material
+*/
+
+/*!
+ \externalpage http://developer.qt.nokia.com/
+ \title Qt Developer Network
+*/
+
+/*!
+ \externalpage http://developer.qt.nokia.com/wiki/Qt_Modules_Maturity_Level
+ \title Qt Modules' Maturity Levels - Modules List
+*/
+
+/*!
+ \externalpage http://labs.qt.nokia.com/2011/05/03/qt-modules-maturity-level/
+ \title Qt Modules' Maturity Level - Description
+*/
+
+/*!
+ \externalpage http://doc.qt.nokia.com/qtquick-components-symbian-latest/index.html
+ \title Qt Quick Components for Symbian
+*/
--
cgit v0.12
From 65c5f90299193d1ef658b9b17cab551e03fbe14a Mon Sep 17 00:00:00 2001
From: Sami Merila
Date: Thu, 20 Oct 2011 16:46:12 +0300
Subject: Accepting predicted text using hardware keyboard replaces unwanted
part
Current implementation of Symbian input context assumes that predicted
word replacement happens so that the original typed text is at the end
of the surrounded text. The logic fails, if to-be-predicted text is
in the middle of, or in the beginning of another, already accepted
word.
As a fix, input context need to store the original cursor position,
when reset() was called (this happens when word selection list
appears). Input context is already storing a copy of a preedit string
in this situation.
Then, when word replacement happens, this stored cursor position is
used instead of current cursor position (the native side might
temporarily move the cursor to the end when word selection list opens
or closes) to replace the typed word with one selected from suggested
word list.
Stored cursor position is dismissed immediately after used, or
if cached preedit string is dismissed.
Task-number: QTBUG-22147
Reviewed-by: Miikka Heikkinen
---
src/gui/inputmethod/qcoefepinputcontext_p.h | 1 +
src/gui/inputmethod/qcoefepinputcontext_s60.cpp | 37 +++++++++++++++++++++++--
2 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/src/gui/inputmethod/qcoefepinputcontext_p.h b/src/gui/inputmethod/qcoefepinputcontext_p.h
index 8c30838..cefae5e 100644
--- a/src/gui/inputmethod/qcoefepinputcontext_p.h
+++ b/src/gui/inputmethod/qcoefepinputcontext_p.h
@@ -162,6 +162,7 @@ private:
QBasicTimer m_tempPreeditStringTimeout;
bool m_hasTempPreeditString;
QString m_cachedPreeditString;
+ int m_cachedCursorAndAnchorPosition;
int m_splitViewResizeBy;
Qt::WindowStates m_splitViewPreviousWindowStates;
diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
index 79005ce..66ab4c8 100644
--- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
+++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
@@ -115,6 +115,7 @@ QCoeFepInputContext::QCoeFepInputContext(QObject *parent)
m_formatRetriever(0),
m_pointerHandler(0),
m_hasTempPreeditString(false),
+ m_cachedCursorAndAnchorPosition(-1),
m_splitViewResizeBy(0),
m_splitViewPreviousWindowStates(Qt::WindowNoState)
{
@@ -158,9 +159,18 @@ void QCoeFepInputContext::reset()
}
// Store a copy of preedit text, if prediction is active and input context is reseted.
// This is to ensure that we can replace preedit string after losing focus to FEP manager's
- // internal sub-windows.
- if (m_cachedPreeditString.isEmpty() && !(currentHints & Qt::ImhNoPredictiveText))
+ // internal sub-windows. Additionally, store the cursor position if there is no selected text.
+ // This allows input context to replace preedit strings if they are not at the end of current
+ // text.
+ if (m_cachedPreeditString.isEmpty() && !(currentHints & Qt::ImhNoPredictiveText)) {
m_cachedPreeditString = m_preeditString;
+ if (focusWidget()) {
+ int cursor = focusWidget()->inputMethodQuery(Qt::ImCursorPosition).toInt();
+ int anchor = focusWidget()->inputMethodQuery(Qt::ImAnchorPosition).toInt();
+ if (cursor == anchor)
+ m_cachedCursorAndAnchorPosition = cursor;
+ }
+ }
commitCurrentString(true);
}
@@ -196,6 +206,7 @@ void QCoeFepInputContext::setFocusWidget(QWidget *w)
void QCoeFepInputContext::widgetDestroyed(QWidget *w)
{
m_cachedPreeditString.clear();
+ m_cachedCursorAndAnchorPosition = -1;
// Make sure that the input capabilities of whatever new widget got focused are queried.
CCoeControl *ctrl = w->effectiveWinId();
@@ -981,6 +992,7 @@ void QCoeFepInputContext::StartFepInlineEditL(const TDesC& aInitialInlineText,
return;
m_cachedPreeditString.clear();
+ m_cachedCursorAndAnchorPosition = -1;
commitTemporaryPreeditString();
@@ -1039,8 +1051,16 @@ void QCoeFepInputContext::UpdateFepInlineTextL(const TDesC& aNewInlineText,
QString newPreeditString = qt_TDesC2QString(aNewInlineText);
QInputMethodEvent event(newPreeditString, attributes);
if (!m_cachedPreeditString.isEmpty()) {
- event.setCommitString(QLatin1String(""), -m_cachedPreeditString.length(), m_cachedPreeditString.length());
+ int cursorPos = w->inputMethodQuery(Qt::ImCursorPosition).toInt();
+ // Predicted word is either replaced from the end of the word (normal case),
+ // or from stored location, if the predicted word is either in the beginning of,
+ // or in the middle of already committed word.
+ int diff = cursorPos - m_cachedCursorAndAnchorPosition;
+ int replaceLocation = (diff != m_cachedPreeditString.length()) ? diff : m_cachedPreeditString.length();
+
+ event.setCommitString(QLatin1String(""), -replaceLocation, m_cachedPreeditString.length());
m_cachedPreeditString.clear();
+ m_cachedCursorAndAnchorPosition = -1;
} else if (newPreeditString.isEmpty() && m_preeditString.isEmpty()) {
// In Symbian world this means "erase last character".
event.setCommitString(QLatin1String(""), -1, 1);
@@ -1138,6 +1158,10 @@ void QCoeFepInputContext::SetCursorSelectionForFepL(const TCursorSelection& aCur
int pos = aCursorSelection.iAnchorPos;
int length = aCursorSelection.iCursorPos - pos;
+ if (m_cachedCursorAndAnchorPosition != -1) {
+ pos = m_cachedCursorAndAnchorPosition;
+ length = 0;
+ }
QList attributes;
attributes << QInputMethodEvent::Attribute(QInputMethodEvent::Selection, pos, length, QVariant());
@@ -1155,6 +1179,13 @@ void QCoeFepInputContext::GetCursorSelectionForFep(TCursorSelection& aCursorSele
int cursor = w->inputMethodQuery(Qt::ImCursorPosition).toInt() + m_preeditString.size();
int anchor = w->inputMethodQuery(Qt::ImAnchorPosition).toInt() + m_preeditString.size();
+
+ // If the position is stored, use that value, so that word replacement from proposed word
+ // lists are added to the correct position.
+ if (m_cachedCursorAndAnchorPosition != -1) {
+ cursor = m_cachedCursorAndAnchorPosition;
+ anchor = m_cachedCursorAndAnchorPosition;
+ }
QString text = w->inputMethodQuery(Qt::ImSurroundingText).value();
int combinedSize = text.size() + m_preeditString.size();
if (combinedSize < anchor || combinedSize < cursor) {
--
cgit v0.12
From e2b892c48c986c38f431b1af98023d16af53bc96 Mon Sep 17 00:00:00 2001
From: Casper van Donderen
Date: Fri, 21 Oct 2011 12:14:58 +0200
Subject: Fix security problem on webpage due to bad JS
Reviewed-by: Trust Me
---
doc/src/template/scripts/functions.js | 13 +------------
tools/qdoc3/doc/config/scripts/functions.js | 13 +------------
tools/qdoc3/test/qt-html-templates-online.qdocconf | 13 -------------
tools/qdoc3/test/qt-html-templates_ja_JP-online.qdocconf | 11 -----------
tools/qdoc3/test/qt-html-templates_zh_CN-online.qdocconf | 11 -----------
5 files changed, 2 insertions(+), 59 deletions(-)
diff --git a/doc/src/template/scripts/functions.js b/doc/src/template/scripts/functions.js
index 3ab4a08..af204d8 100755
--- a/doc/src/template/scripts/functions.js
+++ b/doc/src/template/scripts/functions.js
@@ -183,17 +183,6 @@ var blankRE=/^\s*$/;
function CheckEmptyAndLoadList()
{
- /* Start Extracting information for feedback and adding this to the feedback form */
- var pageUrl = window.location.pathname;
- var pageVal = $('title').html();
- $('#pageType').removeClass('red');
- $('#feedUrl').remove();
- $('#pageVal').remove();
- $('.menuAlert').remove();
- $('#feedform').append(' ');
- $('#feedform').append(' ');
- /* End Extracting information for feedback and adding this to the feedback form */
-
/* extracts search query */
var value = document.getElementById('pageType').value;
/* if the search is less than three chars long remove class names and remove elements from old search*/
@@ -255,4 +244,4 @@ function CheckEmptyAndLoadList()
});
}, 500); /* timer set to 500 ms */
});
- });
\ No newline at end of file
+ });
diff --git a/tools/qdoc3/doc/config/scripts/functions.js b/tools/qdoc3/doc/config/scripts/functions.js
index 62bc535..af204d8 100755
--- a/tools/qdoc3/doc/config/scripts/functions.js
+++ b/tools/qdoc3/doc/config/scripts/functions.js
@@ -183,17 +183,6 @@ var blankRE=/^\s*$/;
function CheckEmptyAndLoadList()
{
- /* Start Extracting information for feedback and adding this to the feedback form */
- var pageUrl = window.location.href;
- var pageVal = $('title').html();
- $('#pageType').removeClass('red');
- $('#feedUrl').remove();
- $('#pageVal').remove();
- $('.menuAlert').remove();
- $('#feedform').append(' ');
- $('#feedform').append(' ');
- /* End Extracting information for feedback and adding this to the feedback form */
-
/* extracts search query */
var value = document.getElementById('pageType').value;
/* if the search is less than three chars long remove class names and remove elements from old search*/
@@ -255,4 +244,4 @@ function CheckEmptyAndLoadList()
});
}, 500); /* timer set to 500 ms */
});
- });
\ No newline at end of file
+ });
diff --git a/tools/qdoc3/test/qt-html-templates-online.qdocconf b/tools/qdoc3/test/qt-html-templates-online.qdocconf
index 77ab3c5..af78088 100644
--- a/tools/qdoc3/test/qt-html-templates-online.qdocconf
+++ b/tools/qdoc3/test/qt-html-templates-online.qdocconf
@@ -142,8 +142,6 @@ HTML.postpostheader = \
" \n"
HTML.footer = \
- "
\n" \
- " [+] Documentation Feedback
\n" \
"
\n" \
" \n" \
" \n" \
@@ -169,17 +167,6 @@ HTML.footer = \
" Free Documentation License version 1.3\n" \
" as published by the Free Software Foundation.
\n" \
" \n" \
- " \n" \
- "
X
\n" \
- "
\n" \
- "
\n" \
- " \n" \
- "
\n" \
"\n" \
" \n" \
" \n"
diff --git a/tools/qdoc3/test/qt-html-templates_ja_JP-online.qdocconf b/tools/qdoc3/test/qt-html-templates_ja_JP-online.qdocconf
index 8dc17af..ed94494 100644
--- a/tools/qdoc3/test/qt-html-templates_ja_JP-online.qdocconf
+++ b/tools/qdoc3/test/qt-html-templates_ja_JP-online.qdocconf
@@ -139,8 +139,6 @@ HTML.postpostheader = \
HTML.footer = \
" \n" \
- " \n" \
- " [+] Documentation Feedback
\n" \
" \n" \
" \n" \
" \n" \
- " \n" \
- "
X
\n" \
- "
\n" \
- " Please submit your feedback...
\n" \
- "
\n" \
- " \n" \
- "
\n" \
- " \n" \
"
\n"
diff --git a/tools/qdoc3/test/qt-html-templates_zh_CN-online.qdocconf b/tools/qdoc3/test/qt-html-templates_zh_CN-online.qdocconf
index e7e8220..ec0dc18 100644
--- a/tools/qdoc3/test/qt-html-templates_zh_CN-online.qdocconf
+++ b/tools/qdoc3/test/qt-html-templates_zh_CN-online.qdocconf
@@ -139,8 +139,6 @@ HTML.postpostheader = \
HTML.footer = \
" \n" \
- " \n" \
- " [+] Documentation Feedback
\n" \
" \n" \
" \n" \
" \n" \
- " \n" \
- "
X
\n" \
- "
\n" \
- " Please submit your feedback...
\n" \
- "
\n" \
- " \n" \
- "
\n" \
- " \n" \
"
\n"
--
cgit v0.12
From 19bd31fc84cc4916aef4835429fc4a55e85d0c28 Mon Sep 17 00:00:00 2001
From: Richard Moore
Date: Wed, 19 Oct 2011 11:40:57 +0200
Subject: Add the ability to enable various SSL bug workarounds.
There are lots of buggy SSL servers around and to connect to them you
need to disable various features. This commit adds the ability to
disable the SSL ticket extension, the ability to disable the insertion
of empty fragments, and the ability to disable compression.
Task-number: QTBUG-21906
Change-Id: I3e1d0347a46e9030b889bbf15b2aad19b8513b73
Merge-request: 68
Reviewed-by: Peter Hartmann
(cherry picked from commit 78d02e93aca5325fc5be9bfd275862795207abaa)
(commit was cherry-picked from Qt 5 to 4.8 after agreeing with the
author because the merge request was filed against Qt 5.)
---
src/network/ssl/qssl.cpp | 30 +++++++++++
src/network/ssl/qssl.h | 11 ++++
src/network/ssl/qsslconfiguration.cpp | 29 +++++++++-
src/network/ssl/qsslconfiguration.h | 4 ++
src/network/ssl/qsslconfiguration_p.h | 2 +
src/network/ssl/qsslsocket.cpp | 2 +
src/network/ssl/qsslsocket_openssl.cpp | 33 +++++++++---
tests/manual/qssloptions/main.cpp | 92 ++++++++++++++++++++++++++++++++
tests/manual/qssloptions/qssloptions.pro | 12 +++++
9 files changed, 206 insertions(+), 9 deletions(-)
create mode 100644 tests/manual/qssloptions/main.cpp
create mode 100644 tests/manual/qssloptions/qssloptions.pro
diff --git a/src/network/ssl/qssl.cpp b/src/network/ssl/qssl.cpp
index 586c894..08a05ff 100644
--- a/src/network/ssl/qssl.cpp
+++ b/src/network/ssl/qssl.cpp
@@ -120,4 +120,34 @@ QT_BEGIN_NAMESPACE
the correct setting for your protocol.
*/
+/*!
+ \enum QSsl::SslOption
+
+ Describes the options that can be used to control the details of
+ SSL behaviour. These options are generally used to turn features off
+ to work around buggy servers.
+
+ \value SslOptionDisableEmptyFragments Disables the insertion of empty
+ fragments into the data when using block ciphers. When enabled, this
+ prevents some attacks (such as the BEAST attack), however it is
+ incompatible with some servers.
+ \value SslOptionDisableTickets Disables the SSL session ticket
+ extension. This can cause slower connection setup, however some servers
+ are not compatible with the extension.
+ \value SslOptionDisableCompression Disables the SSL compression
+ extension. When enabled, this allows the data being passed over SSL to
+ be compressed, however some servers are not compatible with this
+ extension.
+ \value SslOptionDisableServerNameIndication Disables the SSL server
+ name indication extension. When enabled, this tells the server the virtual
+ host being accessed allowing it to respond with the correct certificate.
+
+ By default, SslOptionDisableEmptyFragments is turned on since this causes
+ problems with a large number of servers, but the other options are disabled.
+
+ Note: Availability of above options depends on the version of the SSL
+ backend in use.
+*/
+
+
QT_END_NAMESPACE
diff --git a/src/network/ssl/qssl.h b/src/network/ssl/qssl.h
index 2ecd1c3..453d4da 100644
--- a/src/network/ssl/qssl.h
+++ b/src/network/ssl/qssl.h
@@ -44,6 +44,7 @@
#define QSSL_H
#include
+#include
QT_BEGIN_HEADER
@@ -81,8 +82,18 @@ namespace QSsl {
SecureProtocols,
UnknownProtocol = -1
};
+
+ enum SslOption {
+ SslOptionDisableEmptyFragments = 0x01,
+ SslOptionDisableSessionTickets = 0x02,
+ SslOptionDisableCompression = 0x04,
+ SslOptionDisableServerNameIndication = 0x08
+ };
+ Q_DECLARE_FLAGS(SslOptions, SslOption)
}
+Q_DECLARE_OPERATORS_FOR_FLAGS(QSsl::SslOptions)
+
QT_END_NAMESPACE
QT_END_HEADER
diff --git a/src/network/ssl/qsslconfiguration.cpp b/src/network/ssl/qsslconfiguration.cpp
index 69d3b66..e24076e 100644
--- a/src/network/ssl/qsslconfiguration.cpp
+++ b/src/network/ssl/qsslconfiguration.cpp
@@ -167,7 +167,8 @@ bool QSslConfiguration::operator==(const QSslConfiguration &other) const
d->caCertificates == other.d->caCertificates &&
d->protocol == other.d->protocol &&
d->peerVerifyMode == other.d->peerVerifyMode &&
- d->peerVerifyDepth == other.d->peerVerifyDepth;
+ d->peerVerifyDepth == other.d->peerVerifyDepth &&
+ d->sslOptions == other.d->sslOptions;
}
/*!
@@ -199,7 +200,8 @@ bool QSslConfiguration::isNull() const
d->localCertificate.isNull() &&
d->privateKey.isNull() &&
d->peerCertificate.isNull() &&
- d->peerCertificateChain.count() == 0);
+ d->peerCertificateChain.count() == 0 &&
+ d->sslOptions == 0);
}
/*!
@@ -507,6 +509,29 @@ void QSslConfiguration::setCaCertificates(const QList &certific
}
/*!
+ Enables or disables an SSL compatibility option.
+
+ \sa testSSlOption()
+*/
+void QSslConfiguration::setSslOption(QSsl::SslOption option, bool on)
+{
+ if (on)
+ d->sslOptions |= option;
+ else
+ d->sslOptions &= ~option;
+}
+
+/*!
+ Returns true if the specified SSL compatibility option is enabled.
+
+ \sa testSSlOption()
+*/
+bool QSslConfiguration::testSslOption(QSsl::SslOption option) const
+{
+ return d->sslOptions & option;
+}
+
+/*!
Returns the default SSL configuration to be used in new SSL
connections.
diff --git a/src/network/ssl/qsslconfiguration.h b/src/network/ssl/qsslconfiguration.h
index 258b454..ff8c8fc 100644
--- a/src/network/ssl/qsslconfiguration.h
+++ b/src/network/ssl/qsslconfiguration.h
@@ -59,6 +59,7 @@
#include
#include
+#include
QT_BEGIN_HEADER
@@ -118,6 +119,9 @@ public:
QList caCertificates() const;
void setCaCertificates(const QList &certificates);
+ void setSslOption(QSsl::SslOption option, bool on);
+ bool testSslOption(QSsl::SslOption option) const;
+
static QSslConfiguration defaultConfiguration();
static void setDefaultConfiguration(const QSslConfiguration &configuration);
diff --git a/src/network/ssl/qsslconfiguration_p.h b/src/network/ssl/qsslconfiguration_p.h
index af80e4c..b83edb9 100644
--- a/src/network/ssl/qsslconfiguration_p.h
+++ b/src/network/ssl/qsslconfiguration_p.h
@@ -98,6 +98,8 @@ public:
QSslSocket::PeerVerifyMode peerVerifyMode;
int peerVerifyDepth;
+ QSsl::SslOptions sslOptions;
+
// in qsslsocket.cpp:
static QSslConfiguration defaultConfiguration();
static void setDefaultConfiguration(const QSslConfiguration &configuration);
diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp
index df61fb6..3ac8f18 100644
--- a/src/network/ssl/qsslsocket.cpp
+++ b/src/network/ssl/qsslsocket.cpp
@@ -896,6 +896,7 @@ void QSslSocket::setSslConfiguration(const QSslConfiguration &configuration)
d->configuration.peerVerifyDepth = configuration.peerVerifyDepth();
d->configuration.peerVerifyMode = configuration.peerVerifyMode();
d->configuration.protocol = configuration.protocol();
+ d->configuration.sslOptions = configuration.d->sslOptions;
d->allowRootCertOnDemandLoading = false;
}
@@ -2027,6 +2028,7 @@ void QSslConfigurationPrivate::deepCopyDefaultConfiguration(QSslConfigurationPri
ptr->protocol = global->protocol;
ptr->peerVerifyMode = global->peerVerifyMode;
ptr->peerVerifyDepth = global->peerVerifyDepth;
+ ptr->sslOptions = global->sslOptions;
}
/*!
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
index 8e53974..3942209 100644
--- a/src/network/ssl/qsslsocket_openssl.cpp
+++ b/src/network/ssl/qsslsocket_openssl.cpp
@@ -285,12 +285,29 @@ init_context:
return false;
}
- // Enable all bug workarounds.
- if (configuration.protocol == QSsl::TlsV1SslV3 || configuration.protocol == QSsl::SecureProtocols) {
- q_SSL_CTX_set_options(ctx, SSL_OP_ALL|SSL_OP_NO_SSLv2);
- } else {
- q_SSL_CTX_set_options(ctx, SSL_OP_ALL);
- }
+ // Enable bug workarounds.
+ long options;
+ if (configuration.protocol == QSsl::TlsV1SslV3 || configuration.protocol == QSsl::SecureProtocols)
+ options = SSL_OP_ALL|SSL_OP_NO_SSLv2;
+ else
+ options = SSL_OP_ALL;
+
+ // This option is disabled by default, so we need to be able to clear it
+ if (configuration.sslOptions & QSsl::SslOptionDisableEmptyFragments)
+ options |= SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS;
+ else
+ options &= ~SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS;
+
+#ifdef SSL_OP_NO_TICKET
+ if (configuration.sslOptions & QSsl::SslOptionDisableSessionTickets)
+ options |= SSL_OP_NO_TICKET;
+#endif
+#ifdef SSL_OP_NO_COMPRESSION
+ if (configuration.sslOptions & QSsl::SslOptionDisableCompression)
+ options |= SSL_OP_NO_COMPRESSION;
+#endif
+
+ q_SSL_CTX_set_options(ctx, options);
// Initialize ciphers
QByteArray cipherString;
@@ -419,7 +436,9 @@ init_context:
tlsHostName = hostName;
QByteArray ace = QUrl::toAce(tlsHostName);
// only send the SNI header if the URL is valid and not an IP
- if (!ace.isEmpty() && !QHostAddress().setAddress(tlsHostName)) {
+ if (!ace.isEmpty()
+ && !QHostAddress().setAddress(tlsHostName)
+ && !(configuration.sslOptions & QSsl::SslOptionDisableServerNameIndication)) {
#if OPENSSL_VERSION_NUMBER >= 0x10000000L
if (!q_SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_HOSTNAME, TLSEXT_NAMETYPE_host_name, ace.data()))
#else
diff --git a/tests/manual/qssloptions/main.cpp b/tests/manual/qssloptions/main.cpp
new file mode 100644
index 0000000..6f2f361
--- /dev/null
+++ b/tests/manual/qssloptions/main.cpp
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 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$
+** GNU Lesser General Public License Usage
+** 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.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include
+#include
+#include
+#include
+
+int main(int argc, char **argv)
+{
+ QCoreApplication app(argc, argv);
+
+ if (argc < 3) {
+ QTextStream out(stdout);
+ out << "Usage: " << argv[0] << " host port [options]" << endl;
+ out << "The options can be one or more of the following:" << endl;
+ out << "enable_empty_fragments" << endl;
+ out << "disable_session_tickets" << endl;
+ out << "disable_compression" << endl;
+ out << "disable_sni" << endl;
+ return 1;
+ }
+
+ QString host = QString::fromLocal8Bit(argv[1]);
+ int port = QString::fromLocal8Bit(argv[2]).toInt();
+
+ QSslConfiguration config = QSslConfiguration::defaultConfiguration();
+
+ for (int i=3; i < argc; i++) {
+ QString option = QString::fromLocal8Bit(argv[i]);
+
+ if (option == QLatin1String("enable_empty_fragments"))
+ config.setSslOption(QSsl::SslOptionDisableEmptyFragments, false);
+ else if (option == QLatin1String("disable_session_tickets"))
+ config.setSslOption(QSsl::SslOptionDisableSessionTickets, true);
+ else if (option == QLatin1String("disable_compression"))
+ config.setSslOption(QSsl::SslOptionDisableCompression, true);
+ else if (option == QLatin1String("disable_sni"))
+ config.setSslOption(QSsl::SslOptionDisableServerNameIndication, true);
+ }
+
+ QSslConfiguration::setDefaultConfiguration(config);
+
+ QSslSocket socket;
+ //socket.setSslConfiguration(config);
+ socket.connectToHostEncrypted(host, port);
+
+ if ( !socket.waitForEncrypted() ) {
+ qDebug() << socket.errorString();
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/tests/manual/qssloptions/qssloptions.pro b/tests/manual/qssloptions/qssloptions.pro
new file mode 100644
index 0000000..c1c8446
--- /dev/null
+++ b/tests/manual/qssloptions/qssloptions.pro
@@ -0,0 +1,12 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_qssloptions
+DEPENDPATH += .
+INCLUDEPATH += .
+
+QT -= gui
+QT += network
+
+#CONFIG += release
+
+SOURCES += main.cpp
--
cgit v0.12
From 5195c26208e9e2d80509c8308d590da2ef8a029b Mon Sep 17 00:00:00 2001
From: Sami Merila
Date: Fri, 21 Oct 2011 14:40:28 +0300
Subject: Regression caused by 2be143ebb5246bb2f9b674bb09d23df5b2b6c504
After 2be143ebb5246bb2f9b674bb09d23df5b2b6c504, if user opts to spell
a word him/herself instead of using the suggested word list, the
result is incorrect. The existing preedit string is committed,
then cursor is moved to the beginning and user written word is
added. E.g. user writes 'tadaa' then selects to spell it again and
writes 'radar', in editor there is 'radartadaa'.
Regression is caused due to storing the cursor pointer even in cases
where there is no stored preedit string.
Task-number: QTBUG-22147
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 66ab4c8..eeec04b 100644
--- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
+++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
@@ -164,7 +164,7 @@ void QCoeFepInputContext::reset()
// text.
if (m_cachedPreeditString.isEmpty() && !(currentHints & Qt::ImhNoPredictiveText)) {
m_cachedPreeditString = m_preeditString;
- if (focusWidget()) {
+ if (focusWidget() && !m_cachedPreeditString.isEmpty()) {
int cursor = focusWidget()->inputMethodQuery(Qt::ImCursorPosition).toInt();
int anchor = focusWidget()->inputMethodQuery(Qt::ImAnchorPosition).toInt();
if (cursor == anchor)
--
cgit v0.12
From 657b33557df8a997d7d440f33fd9fa34e97d1e0a Mon Sep 17 00:00:00 2001
From: Sergio Ahumada
Date: Fri, 21 Oct 2011 23:15:05 +0200
Subject: Doc: Fix example code
Task-number: QTWEBSITE-281
---
doc/src/getting-started/gettingstartedqt.qdoc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/src/getting-started/gettingstartedqt.qdoc b/doc/src/getting-started/gettingstartedqt.qdoc
index fc9d799..eda5ee1 100644
--- a/doc/src/getting-started/gettingstartedqt.qdoc
+++ b/doc/src/getting-started/gettingstartedqt.qdoc
@@ -374,7 +374,7 @@
\code
25 Notepad::Notepad()
26 {
-27 saveAction = new QAction(tr("&Open"), this);
+27 openAction = new QAction(tr("&Open"), this);
28 saveAction = new QAction(tr("&Save"), this);
29 exitAction = new QAction(tr("E&xit"), this);
30
--
cgit v0.12
From 417fb1565dc7b64a39c216a2daaa6208cec4a54a Mon Sep 17 00:00:00 2001
From: Sinan Tanilkan
Date: Mon, 24 Oct 2011 15:47:12 +0200
Subject: Update changelog for Qt 4.8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Change recieved from Aurélien Gâteau
---
dist/changes-4.8.0 | 3 +++
1 file changed, 3 insertions(+)
diff --git a/dist/changes-4.8.0 b/dist/changes-4.8.0
index 72d4230..d2c0807 100644
--- a/dist/changes-4.8.0
+++ b/dist/changes-4.8.0
@@ -208,6 +208,9 @@ Qt for Linux/X11
- Added experimental support for armCC
- Experimental support for associating Wayland clients with PID or a token,
to facilitate window management.
+ - Added plugin system for menubars, making it possible to provide
+ alternative menubar implementations. (eg, appmenu:
+ https://launchpad.net/appmenu-qt)
Qt for Windows
--------------
--
cgit v0.12
From eee1dfea9391ce0a163a241b26b3c2f069cbbe48 Mon Sep 17 00:00:00 2001
From: miniak
Date: Mon, 24 Oct 2011 19:25:51 +0200
Subject: Update changelog for Qt 4.8
MR #1272: Fix QSysInfo::WindowsVersion checking (QSysInfo::WV_NT_based is a mask)
MR #2616: QProgressBar: transparent background on Windows Vista (partId: PP_BAR -> PP_TRANSPARENTBAR)
MR #2526: Fix comctl32 v6 dependency generation in Visual Studio 2005 and higher
MR #2519: fix qFadeEffect windowOpacity issue on Windows
MR #769: qt_reg_winclass(): use RegisterClassEx() to load the small IDI_ICON1 icon correctly
Merge-request: 2708
Reviewed-by: Oswald Buddenhagen
---
dist/changes-4.8.0 | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/dist/changes-4.8.0 b/dist/changes-4.8.0
index d2c0807..0d494ab 100644
--- a/dist/changes-4.8.0
+++ b/dist/changes-4.8.0
@@ -127,7 +127,8 @@ QtGui
- QTextCursor optimization
- QUndoGroup, QUndoStack: Allow using not only prefixes for undo command text [QTBUG-14442]
- QUndoView: Allow different text for undo actions and items
- - QCommonStyle: Fix overrides from the proxy style [QTBUG-20849]
+ - QCommonStyle: Fix overrides from the proxy style [QTBUG-20849]
+ - QWindowsVistaStyle: Draw CE_ProgressBarGroove correctly with PP_TRANSPARENTBAR.
QtNetwork
---------
@@ -220,6 +221,11 @@ Qt for Windows
- MSVC runtime is bound to the runtime you're building with. This makes
deployment on Windows easier. (QTBUG-8215)
- QLocalSocket::isValid() has been fixed. (QTBUG-18204)
+ - qFadeEffect() issue fixed. The QSystemTrayIcon's popup menu no longer
+ stays transparent in rare circumstances after the animation has completed.
+ - The small 16x16 version of the default window icon is now being loaded
+ correctly from the IDI_ICON1 resource.
+ - Fixed version checking for untested versions of Windows. (QTBUG-20480)
Qt for Mac OS X
---------------
@@ -343,6 +349,8 @@ Qt for Windows CE
* Implemented "aux" template that allows making use of the INSTALLS variable
without building anything. Needed for projects with QML entry point.
* MSVC now link with /DYNAMICBASE /NXCOMPAT in order to increase security.
+ * Add comctl32 v6 assembly dependency to both /SUBSYSTEM:WINDOWS and
+ /SUBSYSTEM:CONSOLE applications to get consistent look and behaviour.
* Fix the language settings in generated Windows resource files. (QTBUG-12249)
* Write and install pkg-config files for MinGW
* Make PKGCONFIG referencing missing packages fatal; add packagesExist() for
--
cgit v0.12
From bff34e5675f1f5a64e18d2848eafb817e519ef56 Mon Sep 17 00:00:00 2001
From: Markku Heikkila
Date: Mon, 24 Oct 2011 19:28:45 +0200
Subject: Remove idc from mingw build.
Mingw tool chain does not support com/idl so remove it.
Task-number: QTBUG-22260
Merge-request: 2710
Reviewed-by: Oswald Buddenhagen
---
src/tools/tools.pro | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/tools/tools.pro b/src/tools/tools.pro
index 4736d09..32b920c 100644
--- a/src/tools/tools.pro
+++ b/src/tools/tools.pro
@@ -4,7 +4,7 @@ TOOLS_SUBDIRS = src_tools_bootstrap src_tools_moc src_tools_rcc
!contains(QT_CONFIG, no-gui): TOOLS_SUBDIRS += src_tools_uic
!cross_compile {
contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_tools_uic3
- win32:!wince*: SRC_SUBDIRS += src_tools_idc
+ win32:!wince*:!win32-g++*: SRC_SUBDIRS += src_tools_idc
}
# Set subdir and respective target name
--
cgit v0.12
From 5965fda95f61834e38204c4187ac27cf01a6033c Mon Sep 17 00:00:00 2001
From: Rimas Kudelis
Date: Mon, 24 Oct 2011 19:34:54 +0200
Subject: Added Lithuanian translation of Qt.
Merge-request: 2703
Reviewed-by: Oswald Buddenhagen
---
translations/qt_lt.ts | 10247 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 10247 insertions(+)
create mode 100644 translations/qt_lt.ts
diff --git a/translations/qt_lt.ts b/translations/qt_lt.ts
new file mode 100644
index 0000000..d484c0d
--- /dev/null
+++ b/translations/qt_lt.ts
@@ -0,0 +1,10247 @@
+
+
+
+
+ CloseButton
+
+ Close Tab
+ Užverti kortelę
+
+
+
+ Debugger::JSAgentWatchData
+
+ [Array of length %1]
+ [masyvas, kurio ilgis %1]
+
+
+ <undefined>
+ <neapibrėžta>
+
+
+
+ FakeReply
+
+ Fake error !
+ Fiktyvi klaida!
+
+
+ Fake error!
+ Fiktyvi klaida!
+
+
+ Invalid URL
+ Netinkamas URL adresas
+
+
+
+ MAC_APPLICATION_MENU
+
+ Services
+ Tarnybos
+
+
+ Hide %1
+ Nerodyti „%1“
+
+
+ Hide Others
+ Nerodyti kitų
+
+
+ Show All
+ Rodyti visas programas
+
+
+ Preferences...
+ Nuostatos…
+
+
+ Quit %1
+ Baigti „%1“ darbą
+
+
+ About %1
+ Apie „%1“
+
+
+
+ Phonon::
+
+ Notifications
+ Pranešimai
+
+
+ Music
+ Muzika
+
+
+ Video
+ Video
+
+
+ Communication
+ Komunikavimas
+
+
+ Games
+ Žaidimai
+
+
+ Accessibility
+ Prieiga neįgaliesiems
+
+
+
+ Phonon::AudioOutput
+
+ <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html>
+ <html>Garso atkūrimo įrenginys <b>%1</b> neveikia.<br/>Bus naudojamas <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>Bus naudojamas garso atkūrimo įrenginys <b>%1</b>,<br/>ką tik tapęs prieinamu ir turintis aukštesnį prioritetą.</html>
+
+
+ Revert back to device '%1'
+ Toliau naudoti įrenginį „%1“
+
+
+ <html>Switching to the audio playback device <b>%1</b><br/>which has higher preference or is specifically configured for this stream.</html>
+ <html>Bus naudojamas garso atkūrimo įrenginys <b>%1</b>,<br/>turintis aukštesnį prioritetą arba sukonfigūruotas būtent šiam srautui atkurti.</html>
+
+
+
+ Phonon::Gstreamer::Backend
+
+ Warning: You do not seem to have the package gstreamer0.10-plugins-good installed.
+ Some video features have been disabled.
+ Dėmesio! Panašu, jog neįdiegtas „gstreamer0.10-plugins-good“ paketas.
+ Kai kurios vaizdo galimybės išjungtos.
+
+
+ Warning: You do not seem to have the base GStreamer plugins installed.
+ All audio and video support has been disabled
+ Dėmesio! Panašu, jog neįdiegti baziniai „GStreamer“ papildiniai.
+ Visas garso ir vaizdo palaikymas išjungtas.
+
+
+
+ Phonon::Gstreamer::MediaObject
+
+ Cannot start playback.
+
+Check your GStreamer installation and make sure you
+have libgstreamer-plugins-base installed.
+ Nepavyko pradėti atkūrimo.
+
+Patikrinkite „GStreamer“ įdiegtį ir įsitikinkite, jog yra
+įdiegtas paketas „libgstreamer-plugins-base“.
+
+
+ Missing codec helper script assistant.
+ Trūksta kodekų pagelbiklio scenarijaus.
+
+
+ Plugin codec installation failed for codec: %0
+ Kodeko papildinio įdiegimas nepavyko kodekui: %0
+
+
+ A required codec is missing. You need to install the following codec(s) to play this content: %0
+ Trūksta būtino kodeko. Šiam turiniui atkurti būtina įdiegti šiuos kodekus: %0
+
+
+ Could not open media source.
+ Nepavyko atverti medijos šaltinio.
+
+
+ Invalid source type.
+ Netinkamas šaltinio tipas.
+
+
+ Could not locate media source.
+ Nepavyko rasti medijos šaltinio.
+
+
+ Could not open audio device. The device is already in use.
+ Nepavyko atverti garso įrenginio. Įrenginys jau naudojamas.
+
+
+ Could not decode media source.
+ Nepavyko dekoduoti medijos šaltinio.
+
+
+
+ Phonon::MMF
+
+ Audio Output
+ Garso išvestis
+
+
+ The audio output device
+ Garso išvesties įrenginys
+
+
+ No error
+ Klaidų nėra
+
+
+ Not found
+ Nerastas
+
+
+ Out of memory
+ Pritrūko atminties
+
+
+ Not supported
+ Nepalaikomas
+
+
+ Overflow
+ Perpildymas
+
+
+ Underflow
+ Atvirkštinis perpildymas
+
+
+ Already exists
+ Jau yra
+
+
+ Path not found
+ Kelias nerastas
+
+
+ In use
+ Naudojamas
+
+
+ Not ready
+ Nepasiruošęs
+
+
+ Access denied
+ Prieiga uždrausta
+
+
+ Could not connect
+ Nepavyko užmegzti ryšio
+
+
+ Disconnected
+ Atsijungta
+
+
+ Permission denied
+ Nepakanka teisių
+
+
+ Insufficient bandwidth
+ Nepakankamas pralaidumas
+
+
+ Network unavailable
+ Tinklas nepasiekiamas
+
+
+ Network communication error
+ Tinklo ryšio klaida
+
+
+ Streaming not supported
+ Srautinis duomenų siuntimas nepalaikomas
+
+
+ Server alert
+ Serverio įspėjimas
+
+
+ Invalid protocol
+ Netinkamas protokolas
+
+
+ Invalid URL
+ Netinkamas URL adresas
+
+
+ Multicast error
+ Transliavimo grupiniu adresu klaida
+
+
+ Proxy server error
+ Įgaliotojo serverio klaida
+
+
+ Proxy server not supported
+ Įgaliotasis serveris nepalaikomas
+
+
+ Audio output error
+ Garso išvesties klaida
+
+
+ Video output error
+ Vaizdo išvesties klaida
+
+
+ Decoder error
+ Dekoderio klaida
+
+
+ Audio or video components could not be played
+ Nepavyko atkurti garso arba vaizdo komponentų
+
+
+ DRM error
+ Skaitmeninio teisių valdymo (DRM) klaida
+
+
+ Unknown error (%1)
+ Nežinoma klaida (%1)
+
+
+
+ Phonon::MMF::AbstractMediaPlayer
+
+ Not ready to play
+ Nepasiruošta atkūrimui
+
+
+ Error opening file
+ Klaida atveriant failą
+
+
+ Error opening URL
+ Klaida atveriant URL adresą
+
+
+ Error opening resource
+ Klaida atveriant išteklių
+
+
+ Error opening source: resource not opened
+ Klaida atveriant šaltinį: neatvertas išteklius
+
+
+ Setting volume failed
+ Nustatyti garsumo nepavyko
+
+
+ Loading clip failed
+ Įkelti įrašo nepavyko
+
+
+ Playback complete
+ Atkūrimas baigtas
+
+
+ Download error
+ Parsiuntimo klaida
+
+
+
+ Phonon::MMF::AbstractVideoPlayer
+
+ Pause failed
+ Pristabdyti nepavyko
+
+
+ Seek failed
+ Pereiti į kitą įrašo vietą nepavyko
+
+
+ Getting position failed
+ Gauti vietos nepavyko
+
+
+ Opening clip failed
+ Atverti įrašo nepavyko
+
+
+
+ Phonon::MMF::AudioEqualizer
+
+ %1 Hz
+ %1 Hz
+
+
+
+ Phonon::MMF::AudioPlayer
+
+ Getting position failed
+ Gauti vietos nepavyko
+
+
+
+ Phonon::MMF::DsaVideoPlayer
+
+ Video display error
+ Vaizdo atvaizdavimo klaida
+
+
+
+ Phonon::MMF::EffectFactory
+
+ Enabled
+ Įjungtas
+
+
+
+ Phonon::MMF::EnvironmentalReverb
+
+ Decay HF ratio (%)
+ DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime.
+ Slopimo AD santykis (%)
+
+
+ Decay time (ms)
+ DecayTime: Time over which reverberation is diminished.
+ Slopimo trukmė (ms)
+
+
+ Density (%)
+ Density Delay between first and subsequent reflections. Note that the S60 platform documentation does not make clear the distinction between this value and the Diffusion value.
+ Tankis (%)
+
+
+ Diffusion (%)
+ Diffusion: Delay between first and subsequent reflections. Note that the S60 platform documentation does not make clear the distinction between this value and the Density value.
+ Difuzija (%)
+
+
+ Reflections delay (ms)
+ ReflectionsDelay: Amount of delay between the arrival of the direct path from the source and the arrival of the first reflection.
+ Atspindžių vėlavimas (ms)
+
+
+ Reflections level (mB)
+ ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude.
+ Atspindžių lygis (mB)
+
+
+ Reverb delay (ms)
+ ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation.
+ Aido vėlavimas (ms)
+
+
+ Reverb level (mB)
+ ReverbLevel: Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude.
+ Aido lygis (mB)
+
+
+ Room HF level
+ RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound.
+ Kambario AD lygis
+
+
+ Room level (mB)
+ RoomLevel: Master volume control for all reflected sound.
+ Kambario lygis (mB)
+
+
+
+ Phonon::MMF::MediaObject
+
+ Error opening source: type not supported
+ Klaida atveriant šaltinį: tipas nepalaikomas
+
+
+ Error opening source: resource is compressed
+ Klaida atveriant šaltinį: išteklius suglaudintas
+
+
+ Error opening source: resource not valid
+ Klaida atveriant šaltinį: išteklius netinkamas
+
+
+ Error opening source: media type could not be determined
+ Klaida atveriant šaltinį: nepavyko nustatyti medijos tipo
+
+
+ Failed to set requested IAP
+ Nepavyko nustatyti prašomo interneto paslaugos teikėjo
+
+
+
+ Phonon::MMF::StereoWidening
+
+ Level (%)
+ Lygis (%)
+
+
+
+ Phonon::MMF::SurfaceVideoPlayer
+
+ Video display error
+ Vaizdo atvaizdavimo klaida
+
+
+
+ Phonon::VolumeSlider
+
+ Volume: %1%
+ Garsis: %1%
+
+
+ Use this slider to adjust the volume. The leftmost position is 0%. The rightmost is %1%
+ Šio šliaužiklio pagalba galite keisti garsį. Kairiausioji pozicija lygi 0%, dešiniausioji – %1%
+
+
+ Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%
+ Šio šliaužiklio pagalba galite keisti garsį. Kairiausioji pozicija lygi 0%, dešiniausioji – %1%
+
+
+ Muted
+ Nutildytas
+
+
+
+ Q3Accel
+
+ %1, %2 not defined
+ %1, %2 neapibrėžtas
+
+
+ Ambiguous %1 not handled
+ Nevienareikšmė kombinacija %1 neapdorota
+
+
+
+ Q3DataTable
+
+ True
+ Taip
+
+
+ False
+ Ne
+
+
+ Insert
+ Įterpti
+
+
+ Update
+ Atnaujinti
+
+
+ Delete
+ Pašalinti
+
+
+
+ Q3FileDialog
+
+ Copy or Move a File
+ Failo kopijavimas arba perkėlimas
+
+
+ Read: %1
+ Skaitomas: %1
+
+
+ Write: %1
+ Rašomas: %1
+
+
+ Cancel
+ Atsisakyti
+
+
+ All Files (*)
+ Visi failai (*)
+
+
+ Name
+ Vardas
+
+
+ Size
+ Dydis
+
+
+ Type
+ Tipas
+
+
+ Date
+ Data
+
+
+ Attributes
+ Atributai
+
+
+ &OK
+ &Gerai
+
+
+ Look &in:
+ &Vieta:
+
+
+ File &name:
+ &Failo vardas:
+
+
+ File &type:
+ Failo &tipas:
+
+
+ Back
+ Atgal
+
+
+ One directory up
+ Vienu lygiu aukščiau
+
+
+ Create New Folder
+ Kurti naują aplanką
+
+
+ List View
+ Rodyti sąrašą
+
+
+ Detail View
+ Rodyti išsamią informaciją
+
+
+ Preview File Info
+ Peržiūrėti failo savybes
+
+
+ Preview File Contents
+ Peržiūrėti failo turinį
+
+
+ Read-write
+ Skaitomas ir rašomas
+
+
+ Read-only
+ Tik skaitomas
+
+
+ Write-only
+ Tik rašomas
+
+
+ Inaccessible
+ Nepasiekiamas
+
+
+ Symlink to File
+ Simbolinė nuoroda į failą
+
+
+ Symlink to Directory
+ Simbolinė nuoroda į aplanką
+
+
+ Symlink to Special
+ Simbolinė nuoroda į spec. failą
+
+
+ File
+ Failas
+
+
+ Dir
+ Aplankas
+
+
+ Special
+ Spec. failas
+
+
+ Open
+ Atverti
+
+
+ Save As
+ Įrašyti kaip
+
+
+ &Open
+ At&verti
+
+
+ &Save
+ Į&rašyti
+
+
+ &Rename
+ Per&vardyti
+
+
+ &Delete
+ Pa&šalinti
+
+
+ R&eload
+ Įkelti iš &naujo
+
+
+ Sort by &Name
+ Rikiuoti pagal &vardą
+
+
+ Sort by &Size
+ Rikiuoti pagal &dydį
+
+
+ Sort by &Date
+ Rikiuoti pagal d&atą
+
+
+ &Unsorted
+ &Nerikiuoti
+
+
+ Sort
+ Rikiavimas
+
+
+ Show &hidden files
+ Rodyti pa&slėptus failus
+
+
+ the file
+ failą
+
+
+ the directory
+ aplanką
+
+
+ the symlink
+ simbolinę nuorodą
+
+
+ Delete %1
+ Pašalinti %1
+
+
+ <qt>Are you sure you wish to delete %1 "%2"?</qt>
+ <qt>Ar tikrai norite pašalinti %1 „%2“?</qt>
+
+
+ &Yes
+ &Taip
+
+
+ &No
+ &Ne
+
+
+ New Folder 1
+ Naujas aplankas 1
+
+
+ New Folder
+ Naujas aplankas
+
+
+ New Folder %1
+ Naujas aplankas %1
+
+
+ Find Directory
+ Ieškoti aplanko
+
+
+ Directories
+ Aplankai
+
+
+ Directory:
+ Aplankas:
+
+
+ Error
+ Klaida
+
+
+ %1
+File not found.
+Check path and filename.
+ %1
+Failas nerastas.
+Patikrinkite kelią ir failo vardą.
+
+
+ All Files (*.*)
+ Visi failai (*.*)
+
+
+ Open
+ Atverti
+
+
+ Select a Directory
+ Parinkite aplanką
+
+
+
+ Q3LocalFs
+
+ Could not read directory
+%1
+ Aplanko nuskaityti nepavyko
+%1
+
+
+ Could not create directory
+%1
+ Aplanko sukurti nepavyko
+%1
+
+
+ Could not remove file or directory
+%1
+ Failo ar aplanko pašalinti nepavyko
+%1
+
+
+ Could not rename
+%1
+to
+%2
+ Nepavyko pervardyti
+%1
+į
+%2
+
+
+ Could not open
+%1
+ Nepavyko atverti
+%1
+
+
+ Could not write
+%1
+ Nepavyko įrašyti
+%1
+
+
+
+ Q3MainWindow
+
+ Line up
+ Sulygiuoti
+
+
+ Customize...
+ Tinkinti…
+
+
+
+ Q3NetworkProtocol
+
+ Operation stopped by the user
+ Operaciją nutraukė naudotojas
+
+
+
+ Q3ProgressDialog
+
+ Cancel
+ Atsisakyti
+
+
+
+ Q3TabDialog
+
+ OK
+ Gerai
+
+
+ Apply
+ Pritaikyti
+
+
+ Help
+ Pagalba
+
+
+ Defaults
+ Numatytosios reikšmės
+
+
+ Cancel
+ Atsisakyti
+
+
+
+ Q3TextEdit
+
+ &Undo
+ &Atšaukti
+
+
+ &Redo
+ A&tstatyti
+
+
+ Cu&t
+ Iški&rpti
+
+
+ &Copy
+ &Kopijuoti
+
+
+ &Paste
+ Į&dėti
+
+
+ Clear
+ Išvalyti
+
+
+ Select All
+ Pažymėti viską
+
+
+
+ Q3TitleBar
+
+ System
+ Sistemos antraštė
+
+
+ Restore up
+ Atkurti langą
+
+
+ Minimize
+ Sumažinti
+
+
+ Restore down
+ Atkurti dydį
+
+
+ Maximize
+ Išdidinti
+
+
+ Close
+ Užverti
+
+
+ Contains commands to manipulate the window
+ Apima komandas darbui su langu
+
+
+ Puts a minimized window back to normal
+ Atstato sumažinto lango dydį
+
+
+ Moves the window out of the way
+ Paslepia langą
+
+
+ Puts a maximized window back to normal
+ Grąžina pradinį išdidinto lango dydį
+
+
+ Makes the window full screen
+ Išdidina langą per visą ekraną
+
+
+ Closes the window
+ Užveria langą
+
+
+ Displays the name of the window and contains controls to manipulate it
+ Rodo lango pavadinimą ir pateikia komandas darbui su juo
+
+
+
+ Q3ToolBar
+
+ More...
+ Daugiau…
+
+
+
+ Q3UrlOperator
+
+ The protocol `%1' is not supported
+ Protokolas „%1“ nepalaikomas
+
+
+ The protocol `%1' does not support listing directories
+ Protokole „%1“ katalogų sąrašų pateikimas nenumatytas
+
+
+ The protocol `%1' does not support creating new directories
+ Protokole „%1“ naujų katalogų kūrimas nepalaikomas
+
+
+ The protocol `%1' does not support removing files or directories
+ Protokole „%1“ failų ar aplankų šalinimas nenumatytas
+
+
+ The protocol `%1' does not support renaming files or directories
+ Protokole „%1“ failų ar aplankų pervardinimas nenumatytas
+
+
+ The protocol `%1' does not support getting files
+ Protokole „%1“ failų gavimas nenumatytas
+
+
+ The protocol `%1' does not support putting files
+ Protokole „%1“ failų įdėjimas nenumatytas
+
+
+ The protocol `%1' does not support copying or moving files or directories
+ Protokole „%1“ failų ar aplankų kopijavimas ar perkėlimas nenumatytas
+
+
+ (unknown)
+ (nežinoma)
+
+
+
+ Q3Wizard
+
+ &Cancel
+ &Atsisakyti
+
+
+ < &Back
+ < At&gal
+
+
+ &Next >
+ &Toliau >
+
+
+ &Finish
+ &Baigti
+
+
+ &Help
+ &Žinynas
+
+
+
+ QAbstractSocket
+
+ Socket operation timed out
+ Baigėsi operacijai su lizdu skirtas laikas
+
+
+ Operation on socket is not supported
+ Operacija su lizdu nepalaikoma
+
+
+ Host not found
+ Mazgas nerastas
+
+
+ Connection refused
+ Ryšys atmestas
+
+
+ Connection timed out
+ Baigėsi ryšiui skirtas laikas
+
+
+ Socket is not connected
+ Lizdas neprijungtas
+
+
+ Network unreachable
+ Tinklas nepasiekiamas
+
+
+
+ QAbstractSpinBox
+
+ &Select All
+ Pažymėti &viską
+
+
+ &Step up
+ &Padidinti
+
+
+ Step &down
+ Pa&mažinti
+
+
+
+ QAccessibleButton
+
+ Uncheck
+ Panaikinti žymėjimą
+
+
+ Check
+ Pažymėti
+
+
+ Press
+ Nuspausti
+
+
+
+ QApplication
+
+ Activate
+ Aktyvinti
+
+
+ Activates the program's main window
+ Suaktyvina pagrindinį programos langą
+
+
+ Executable '%1' requires Qt %2, found Qt %3.
+ Vykdomajam failui „%1“ reikalingos „Qt %2“ bibliotekos, tačiau aptiktos „Qt %3“.
+
+
+ Incompatible Qt Library Error
+ „Qt“ bibliotekos nesuderinamumo klaida
+
+
+ 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
+
+
+
+ QAxSelect
+
+ Select ActiveX Control
+ Pasirinkite „ActiveX“ valdiklį
+
+
+ OK
+ Gerai
+
+
+ &Cancel
+ &Atsisakyti
+
+
+ COM &Object:
+ COM &objektas:
+
+
+
+ QCheckBox
+
+ Uncheck
+ Panaikinti žymėjimą
+
+
+ Check
+ Pažymėti
+
+
+ Toggle
+ Perjungti
+
+
+
+ QColorDialog
+
+ Hu&e:
+ &Atspalvis:
+
+
+ &Sat:
+ &Grynis:
+
+
+ &Val:
+ &Skaistis:
+
+
+ &Red:
+ &Raudona:
+
+
+ &Green:
+ &Žalia:
+
+
+ Bl&ue:
+ &Mėlyna:
+
+
+ A&lpha channel:
+ A&lfa kanalas:
+
+
+ Select Color
+ Parinkite spalvą
+
+
+ &Basic colors
+ &Bazinės spalvos
+
+
+ &Custom colors
+ &Naudotojo spalvos
+
+
+ &Add to Custom Colors
+ Į&traukti į naudotojo spalvas
+
+
+
+ QComboBox
+
+ False
+ Ne
+
+
+ True
+ Taip
+
+
+ Open
+ Atverti
+
+
+ Close
+ Užverti
+
+
+
+ QCoreApplication
+
+ %1: already exists
+ QSystemSemaphore
+ %1: jau egzistuoja
+
+
+ %1: does not exist
+ QSystemSemaphore
+ %1: neegzistuoja
+
+
+ %1: out of resources
+ QSystemSemaphore
+ %1: pritrūko išteklių
+
+
+ %1: permission denied
+ QSystemSemaphore
+ %1: nepakanka teisių
+
+
+ %1: unknown error %2
+ QSystemSemaphore
+ %1: nežinoma klaida %2
+
+
+ %1: key is empty
+ QSystemSemaphore
+ %1: raktas tuščias
+
+
+ %1: unable to make key
+ QSystemSemaphore
+ %1: rakto sukurti nepavyko
+
+
+ %1: ftok failed
+ QSystemSemaphore
+ %1: nepavyko ftok()
+
+
+
+ QDB2Driver
+
+ Unable to connect
+ Nepavyko užmegzti ryšio
+
+
+ Unable to commit transaction
+ Nepavyko užbaigti transakcijos
+
+
+ Unable to rollback transaction
+ Nepavyko anuliuoti transakcijos
+
+
+ Unable to set autocommit
+ Nepavyko įjungti automatinio transakcijų patvirtinimo
+
+
+
+ QDB2Result
+
+ Unable to execute statement
+ Nepavyko įvykdyti sakinio
+
+
+ Unable to prepare statement
+ Nepavyko paruošti sakinio
+
+
+ Unable to bind variable
+ Nepavyko susieti kintamojo
+
+
+ Unable to fetch record %1
+ Nepavyko gauti įrašo %1
+
+
+ Unable to fetch next
+ Nepavyko gauti tolesnio įrašo
+
+
+ Unable to fetch first
+ Nepavyko gauti pirmojo įrašo
+
+
+
+ QDateTimeEdit
+
+ AM
+ Priešpiet
+
+
+ am
+ priešpiet
+
+
+ PM
+ Popiet
+
+
+ pm
+ popiet
+
+
+
+ QDeclarativeAbstractAnimation
+
+ Cannot animate non-existent property "%1"
+ Negalima animuoti neegzistuojančios savybės „%1“
+
+
+ Cannot animate read-only property "%1"
+ Negalima animuoti tik skaitymui skirtos savybės „%1“
+
+
+ Animation is an abstract class
+ „Animation“ yra abstrakčioji klasė
+
+
+
+ QDeclarativeAnchorAnimation
+
+ Cannot set a duration of < 0
+ Negalima nustatyti neigiamos trukmės
+
+
+
+ QDeclarativeAnchors
+
+ Possible anchor loop detected on fill.
+
+
+
+ Possible anchor loop detected on centerIn.
+
+
+
+ Cannot anchor to an item that isn't a parent or sibling.
+
+
+
+ Possible anchor loop detected on vertical anchor.
+
+
+
+ Possible anchor loop detected on horizontal anchor.
+
+
+
+ Cannot specify left, right, and hcenter anchors.
+
+
+
+ Cannot anchor to a null item.
+
+
+
+ Cannot anchor a horizontal edge to a vertical edge.
+
+
+
+ Cannot anchor item to self.
+
+
+
+ Cannot specify top, bottom, and vcenter anchors.
+
+
+
+ Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors.
+
+
+
+ Cannot anchor a vertical edge to a horizontal edge.
+
+
+
+
+ QDeclarativeAnimatedImage
+
+ Qt was built without support for QMovie
+ „Qt“ sukompiliuota be „QMovie“ palaikymo
+
+
+
+ QDeclarativeApplication
+
+ Application is an abstract class
+ „Application“ yra abstrakčioji klasė
+
+
+
+ QDeclarativeBehavior
+
+ Cannot change the animation assigned to a Behavior.
+ Elgsenai priskirtos animacijos pakeisti negalima.
+
+
+
+ QDeclarativeBinding
+
+ Binding loop detected for property "%1"
+ Aptikta ciklinė savybės „%1“ susietis
+
+
+
+ QDeclarativeCompiledBindings
+
+ Binding loop detected for property "%1"
+ Aptikta ciklinė savybės „%1“ susietis
+
+
+
+ QDeclarativeCompiler
+
+ Invalid property assignment: "%1" is a read-only property
+
+
+
+ Invalid property assignment: unknown enumeration
+
+
+
+ Invalid property assignment: string expected
+
+
+
+ Invalid property assignment: url expected
+
+
+
+ Invalid property assignment: unsigned int expected
+
+
+
+ Invalid property assignment: int expected
+
+
+
+ Invalid property assignment: number expected
+
+
+
+ Invalid property assignment: color expected
+
+
+
+ Invalid property assignment: date expected
+
+
+
+ Invalid property assignment: time expected
+
+
+
+ Invalid property assignment: datetime expected
+
+
+
+ Invalid property assignment: point expected
+
+
+
+ Invalid property assignment: size expected
+
+
+
+ Invalid property assignment: rect expected
+
+
+
+ Invalid property assignment: boolean expected
+
+
+
+ Invalid property assignment: 3D vector expected
+
+
+
+ Invalid property assignment: unsupported type "%1"
+
+
+
+ Element is not creatable.
+
+
+
+ Component elements may not contain properties other than id
+
+
+
+ Invalid component id specification
+
+
+
+ id is not unique
+
+
+
+ Invalid component body specification
+
+
+
+ Component objects cannot declare new properties.
+
+
+
+ Component objects cannot declare new signals.
+
+
+
+ Component objects cannot declare new functions.
+
+
+
+ Cannot create empty component specification
+
+
+
+ "%1.%2" is not available in %3 %4.%5.
+
+
+
+ "%1.%2" is not available due to component versioning.
+
+
+
+ Incorrectly specified signal assignment
+
+
+
+ Cannot assign a value to a signal (expecting a script to be run)
+
+
+
+ Empty signal assignment
+
+
+
+ Empty property assignment
+
+
+
+ Attached properties cannot be used here
+
+
+
+ Non-existent attached object
+
+
+
+ Invalid attached object assignment
+
+
+
+ Cannot assign to non-existent default property
+
+
+
+ Cannot assign to non-existent property "%1"
+ Negalima priskirti neegzistuojančiai savybei „%1“
+
+
+ Invalid use of namespace
+
+
+
+ Not an attached property name
+
+
+
+ Invalid use of id property
+
+
+
+ Property has already been assigned a value
+
+
+
+ Invalid grouped property access
+
+
+
+ Cannot assign a value directly to a grouped property
+
+
+
+ Invalid property use
+
+
+
+ Property assignment expected
+
+
+
+ Single property assignment expected
+
+
+
+ Unexpected object assignment
+
+
+
+ Cannot assign object to list
+
+
+
+ Can only assign one binding to lists
+
+
+
+ Cannot assign primitives to lists
+
+
+
+ Cannot assign multiple values to a script property
+
+
+
+ Invalid property assignment: script expected
+
+
+
+ Cannot assign multiple values to a singular property
+
+
+
+ Cannot assign object to property
+
+
+
+ "%1" cannot operate on "%2"
+
+
+
+ Duplicate default property
+
+
+
+ Duplicate property name
+
+
+
+ Property names cannot begin with an upper case letter
+
+
+
+ Illegal property name
+
+
+
+ Duplicate signal name
+
+
+
+ Signal names cannot begin with an upper case letter
+
+
+
+ Illegal signal name
+
+
+
+ Duplicate method name
+
+
+
+ Method names cannot begin with an upper case letter
+
+
+
+ Illegal method name
+
+
+
+ Property value set multiple times
+
+
+
+ Invalid property nesting
+
+
+
+ Cannot override FINAL property
+
+
+
+ Invalid property type
+
+
+
+ Invalid empty ID
+
+
+
+ IDs cannot start with an uppercase letter
+
+
+
+ IDs must start with a letter or underscore
+
+
+
+ IDs must contain only letters, numbers, and underscores
+
+
+
+ ID illegally masks global JavaScript property
+
+
+
+ No property alias location
+
+
+
+ Invalid alias location
+
+
+
+ Invalid alias reference. An alias reference must be specified as <id>, <id>.<property> or <id>.<value property>.<property>
+
+
+
+ Invalid alias reference. Unable to find id "%1"
+
+
+
+ Alias property exceeds alias bounds
+
+
+
+
+ QDeclarativeComponent
+
+ Invalid empty URL
+ Negalimas tuščias URL adresas
+
+
+ createObject: value is not an object
+ createObject: reikšmė nėra objektas
+
+
+
+ QDeclarativeConnections
+
+ Cannot assign to non-existent property "%1"
+ Negalima priskirti neegzistuojančiai savybei „%1“
+
+
+ Connections: nested objects not allowed
+ Connections: objektai objektuose neleidžiami
+
+
+ Connections: syntax error
+ Connections: sintaksės klaida
+
+
+ Connections: script expected
+ Connections: tikėtasi scenarijaus
+
+
+
+ QDeclarativeEngine
+
+ executeSql called outside transaction()
+
+
+
+ Read-only Transaction
+
+
+
+ Version mismatch: expected %1, found %2
+
+
+
+ SQL transaction failed
+
+
+
+ transaction: missing callback
+
+
+
+ SQL: database version mismatch
+
+
+
+
+ QDeclarativeFlipable
+
+ front is a write-once property
+ „front“ yra tik kartą rašoma savybė
+
+
+ back is a write-once property
+ „back“ yra tik kartą rašoma savybė
+
+
+
+ QDeclarativeImportDatabase
+
+ cannot load module "%1": File name case mismatch for "%2"
+
+
+
+ module "%1" definition "%2" not readable
+
+
+
+ plugin cannot be loaded for module "%1": %2
+
+
+
+ module "%1" plugin "%2" not found
+
+
+
+ module "%1" version %2.%3 is not installed
+
+
+
+ module "%1" is not installed
+
+
+
+ "%1": no such directory
+
+
+
+ import "%1" has no qmldir and no namespace
+
+
+
+ - %1 is not a namespace
+
+
+
+ - nested namespaces not allowed
+
+
+
+ local directory
+
+
+
+ is ambiguous. Found in %1 and in %2
+
+
+
+ is ambiguous. Found in %1 in version %2.%3 and %4.%5
+
+
+
+ is instantiated recursively
+
+
+
+ is not a type
+
+
+
+ File name case mismatch for "%2"
+
+
+
+
+ QDeclarativeKeyNavigationAttached
+
+ KeyNavigation is only available via attached properties
+
+
+
+
+ QDeclarativeKeysAttached
+
+ Keys is only available via attached properties
+
+
+
+
+ QDeclarativeLayoutMirroringAttached
+
+ LayoutDirection attached property only works with Items
+
+
+
+ LayoutMirroring is only available via attached properties
+
+
+
+
+ QDeclarativeListModel
+
+ remove: index %1 out of range
+
+
+
+ insert: value is not an object
+
+
+
+ insert: index %1 out of range
+
+
+
+ move: out of range
+
+
+
+ append: value is not an object
+
+
+
+ set: value is not an object
+
+
+
+ set: index %1 out of range
+
+
+
+ ListElement: cannot contain nested elements
+
+
+
+ ListElement: cannot use reserved "id" property
+
+
+
+ ListElement: cannot use script for property value
+
+
+
+ ListModel: undefined property '%1'
+
+
+
+
+ QDeclarativeLoader
+
+ Loader does not support loading non-visual elements.
+
+
+
+
+ QDeclarativeParentAnimation
+
+ Unable to preserve appearance under complex transform
+
+
+
+ Unable to preserve appearance under non-uniform scale
+
+
+
+ Unable to preserve appearance under scale of 0
+
+
+
+
+ QDeclarativeParentChange
+
+ Unable to preserve appearance under complex transform
+
+
+
+ Unable to preserve appearance under non-uniform scale
+
+
+
+ Unable to preserve appearance under scale of 0
+
+
+
+
+ QDeclarativeParser
+
+ Illegal unicode escape sequence
+
+
+
+ Illegal character
+
+
+
+ Unclosed string at end of line
+
+
+
+ Illegal escape sequence
+
+
+
+ Unclosed comment at end of file
+
+
+
+ Illegal syntax for exponential number
+
+
+
+ Identifier cannot start with numeric literal
+
+
+
+ Unterminated regular expression literal
+
+
+
+ Invalid regular expression flag '%0'
+
+
+
+ Unterminated regular expression backslash sequence
+
+
+
+ Unterminated regular expression class
+
+
+
+ Syntax error
+
+
+
+ Unexpected token `%1'
+
+
+
+ Expected token `%1'
+
+
+
+ Property value set multiple times
+
+
+
+ Expected type name
+
+
+
+ Invalid import qualifier ID
+
+
+
+ Reserved name "Qt" cannot be used as an qualifier
+
+
+
+ Script import qualifiers must be unique.
+
+
+
+ Script import requires a qualifier
+
+
+
+ Library import requires a version
+
+
+
+ Expected parameter type
+
+
+
+ Invalid property type modifier
+
+
+
+ Unexpected property type modifier
+
+
+
+ Expected property type
+
+
+
+ Readonly not yet supported
+
+
+
+ JavaScript declaration outside Script element
+
+
+
+
+ QDeclarativePauseAnimation
+
+ Cannot set a duration of < 0
+ Negalima nustatyti neigiamos trukmės
+
+
+
+ QDeclarativePixmap
+
+ Error decoding: %1: %2
+ Dekodavimo klaida: %1: %2
+
+
+ Failed to get image from provider: %1
+ Nepavyko iš tiekėjo gauti paveikslo: %1
+
+
+ Cannot open: %1
+ Nepavyko atverti: %1
+
+
+
+ QDeclarativePropertyAnimation
+
+ Cannot set a duration of < 0
+ Negalima nustatyti neigiamos trukmės
+
+
+
+ QDeclarativePropertyChanges
+
+ PropertyChanges does not support creating state-specific objects.
+
+
+
+ Cannot assign to non-existent property "%1"
+ Negalima priskirti neegzistuojančiai savybei „%1“
+
+
+ Cannot assign to read-only property "%1"
+
+
+
+
+ QDeclarativeTextInput
+
+ Could not load cursor delegate
+
+
+
+ Could not instantiate cursor delegate
+
+
+
+
+ QDeclarativeTypeLoader
+
+ Script %1 unavailable
+ Scenarijus „%1“ nepasiekiamas
+
+
+ Type %1 unavailable
+ Tipas %1 nepasiekiamas
+
+
+ Namespace %1 cannot be used as a type
+ Vardų erdvė „%1“ negali būti naudojama kaip tipas
+
+
+ %1 %2
+ %1 %2
+
+
+
+ QDeclarativeVME
+
+ Unable to create object of type %1
+
+
+
+ Cannot assign value %1 to property %2
+
+
+
+ Cannot assign object type %1 with no default method
+
+
+
+ Cannot connect mismatched signal/slot %1 %vs. %2
+
+
+
+ Cannot assign an object to signal property %1
+
+
+
+ Cannot assign object to list
+
+
+
+ Cannot assign object to interface property
+
+
+
+ Unable to create attached object
+
+
+
+ Cannot set properties on %1 as it is null
+
+
+
+
+ QDeclarativeVisualDataModel
+
+ Delegate component must be Item type.
+
+
+
+
+ QDeclarativeXmlListModel
+
+ Qt was built without support for xmlpatterns
+ „Qt“ sukompiliuota be „xmlpatterns“ palaikymo
+
+
+
+ QDeclarativeXmlListModelRole
+
+ An XmlRole query must not start with '/'
+ „XmlRole“ užklausa negali prasidėti simboliu „/“
+
+
+
+ QDeclarativeXmlRoleList
+
+ An XmlListModel query must start with '/' or "//"
+ „XmlListModel“ užklausa negali prasidėti simboliu „/“ arba „//“
+
+
+
+ QDial
+
+ QDial
+ QDial
+
+
+ SpeedoMeter
+ Spidometras
+
+
+ SliderHandle
+ Šliaužiklio rankenėlė
+
+
+
+ QDialog
+
+ Done
+ Baigta
+
+
+ What's This?
+ Kas tai?
+
+
+
+ QDialogButtonBox
+
+ OK
+ Gerai
+
+
+ &OK
+ &Gerai
+
+
+ &Save
+ Į&rašyti
+
+
+ Save
+ Įrašyti
+
+
+ Open
+ Atverti
+
+
+ &Cancel
+ &Atsisakyti
+
+
+ Cancel
+ Atsisakyti
+
+
+ &Close
+ &Užverti
+
+
+ Close
+ Užverti
+
+
+ Apply
+ Pritaikyti
+
+
+ Reset
+ Atkurti
+
+
+ Help
+ Žinynas
+
+
+ Don't Save
+ Neįrašyti
+
+
+ Close without Saving
+ Užverti neįrašius
+
+
+ Discard
+ Atmesti
+
+
+ &Yes
+ &Taip
+
+
+ Yes to &All
+ Taip &viskam
+
+
+ &No
+ &Ne
+
+
+ N&o to All
+ N&e viskam
+
+
+ Save All
+ Įrašyti visus
+
+
+ Abort
+ Nutraukti
+
+
+ Retry
+ Kartoti bandymą
+
+
+ Ignore
+ Nepaisyti
+
+
+ Restore Defaults
+ Atkurti numatytąsias reikšmes
+
+
+
+ QDirModel
+
+ Name
+ Vardas
+
+
+ Size
+ Dydis
+
+
+ Kind
+ Match OS X Finder
+ Tipas
+
+
+ Type
+ All other platforms
+ Tipas
+
+
+ Date Modified
+ Modifikavimo data
+
+
+
+ QDockWidget
+
+ Close
+ Užverti
+
+
+ Dock
+ Įsegti
+
+
+ Float
+ Išsegti
+
+
+
+ QDoubleSpinBox
+
+ More
+ Daugiau
+
+
+ Less
+ Mažiau
+
+
+
+ QErrorMessage
+
+ Debug Message:
+ Derinimo pranešimas:
+
+
+ Warning:
+ Įspėjimas:
+
+
+ Fatal Error:
+ Lemtingoji klaida:
+
+
+ &Show this message again
+ &Rodyti šį pranešimą vėl
+
+
+ &OK
+ &Gerai
+
+
+
+ QFile
+
+ Destination file exists
+ Paskirties failas jau egzistuoja
+
+
+ Will not rename sequential file using block copy
+ Nuosekliosios prieigos failas nebus pervardytas naudojant blokų kopijavimą
+
+
+ Cannot remove source file
+ Nepavyko pašalinti šaltinio failo
+
+
+ Cannot open %1 for input
+ Nepavyko skaitymui atverti failo %1
+
+
+ Cannot open for output
+ Nepavyko rašymui atverti failo
+
+
+ Failure to write block
+ Nepavyko įrašyti bloko
+
+
+ Cannot create %1 for output
+ Nepavyko sukurti išvesties failo %1
+
+
+ No file engine available or engine does not support UnMapExtension
+
+
+
+
+ QFileDialog
+
+ Look in:
+ Vieta:
+
+
+ Back
+ Atgal
+
+
+ Go back
+ Grįžti atgal
+
+
+ Forward
+ Pirmyn
+
+
+ Go forward
+ Eiti pirmyn
+
+
+ Parent Directory
+ Vienu lygiu aukščiau
+
+
+ Go to the parent directory
+ Eiti į vienu lygiu aukštesnį aplanką
+
+
+ Create New Folder
+ Kurti naują aplanką
+
+
+ Create a New Folder
+ Sukurti naują aplanką
+
+
+ List View
+ Rodyti sąrašą
+
+
+ Change to list view mode
+ Aplanko turinį rodyti kaip paprastą sąrašą
+
+
+ Detail View
+ Rodyti išsamią informaciją
+
+
+ Change to detail view mode
+ Aplanko turinį rodyti kaip sąrašą su išsamia informacija
+
+
+ Files of type:
+ Failų tipas:
+
+
+ Find Directory
+ Ieškoti aplanko
+
+
+ Open
+ Atverti
+
+
+ Save As
+ Įrašyti kaip
+
+
+ All Files (*)
+ Visi failai (*)
+
+
+ Show
+ Rodyti
+
+
+ &Rename
+ Per&vardyti
+
+
+ &Delete
+ Pa&šalinti
+
+
+ Show &hidden files
+ Rodyti pa&slėptus failus
+
+
+ &New Folder
+ &Naujas aplankas
+
+
+ Directory:
+ Aplankas:
+
+
+ File &name:
+ &Failo vardas:
+
+
+ &Open
+ At&verti
+
+
+ &Save
+ Į&rašyti
+
+
+ Directories
+ Aplankai
+
+
+ &Choose
+ Pasi&rinkti
+
+
+ %1
+Directory not found.
+Please verify the correct directory name was given.
+ %1
+Aplankas nerastas.
+Įsitikinkite, jog nurodėte teisingą aplanko vardą.
+
+
+ %1 already exists.
+Do you want to replace it?
+ %1 jau egzistuoja.
+Ar norite jį pakeisti?
+
+
+ %1
+File not found.
+Please verify the correct file name was given.
+ %1
+Failas nerastas.
+Įsitikinkite, jog nurodėte teisingą failo vardą.
+
+
+ New Folder
+ Naujas aplankas
+
+
+ '%1' is write protected.
+Do you want to delete it anyway?
+ „%1“ yra apsaugotas nuo rašymo.
+Ar vis tiek norite jį pašalinti?
+
+
+ Are sure you want to delete '%1'?
+ Ar tikrai norite pašalinti „%1“?
+
+
+ Could not delete directory.
+ Nepavyko pašalinti aplanko.
+
+
+ Recent Places
+ Paskiausios vietos
+
+
+ All Files (*.*)
+ Visi failai (*.*)
+
+
+ Remove
+ Pašalinti
+
+
+ My Computer
+ Kompiuteris
+
+
+ Drive
+ Diskas
+
+
+ File
+ failas
+
+
+ File Folder
+ Match Windows Explorer
+ Failų aplankas
+
+
+ Folder
+ All other platforms
+ Aplankas
+
+
+ Alias
+ Mac OS X Finder
+ Nuoroda
+
+
+ Shortcut
+ All other platforms
+ Nuoroda
+
+
+ Unknown
+ Nežinomas
+
+
+
+ QFileSystemModel
+
+ %1 TB
+ %1 TB
+
+
+ %1 GB
+ %1 GB
+
+
+ %1 MB
+ %1 MB
+
+
+ %1 KB
+ %1 KB
+
+
+ %1 bytes
+ %1 B
+
+
+ Invalid filename
+ Neleistinas failo vardas
+
+
+ <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks.
+ <b>Vardas „%1“ neleistinas.</b><p>Pabandykite įvesti kitą vardą, pvz., sudarytą iš mažiau simbolių ar be skyrybos ženklų.
+
+
+ Name
+ Vardas
+
+
+ Size
+ Dydis
+
+
+ Kind
+ Match OS X Finder
+ Tipas
+
+
+ Type
+ All other platforms
+ Tipas
+
+
+ Date Modified
+ Modifikavimo data
+
+
+ My Computer
+ Kompiuteris
+
+
+ Computer
+ Kompiuteris
+
+
+ %1 byte(s)
+ %1 B
+
+
+
+ QFontDatabase
+
+ Normal
+ Normalusis
+
+
+ Bold
+ Pastorintas
+
+
+ Demi Bold
+
+
+
+ Black
+ Ryškus
+
+
+ Demi
+
+
+
+ Light
+ Lengvas
+
+
+ Italic
+ Kursyvas
+
+
+ Oblique
+ Pasvirasis
+
+
+ Any
+ Bet koks
+
+
+ Latin
+ Lotynų
+
+
+ Greek
+ Graikų
+
+
+ Cyrillic
+ Kirilica
+
+
+ Armenian
+ Armėnų
+
+
+ Hebrew
+ Hebrajų
+
+
+ Arabic
+ Arabų
+
+
+ Syriac
+ Sirų
+
+
+ Thaana
+ Tana
+
+
+ Devanagari
+ Devangarių
+
+
+ Bengali
+ Bengalų
+
+
+ Gurmukhi
+ Gurmukų
+
+
+ Gujarati
+ Gujaračių
+
+
+ Oriya
+ Orijų
+
+
+ Tamil
+ Tamilų
+
+
+ Telugu
+ Telugų
+
+
+ Kannada
+ Kanadų
+
+
+ Malayalam
+ Malajalamų
+
+
+ Sinhala
+ Singalų
+
+
+ Thai
+ Tajų
+
+
+ Lao
+ Laosiečių
+
+
+ Tibetan
+ Tibetiečių
+
+
+ Myanmar
+ Birmiečių
+
+
+ Georgian
+ Gruzinų
+
+
+ Khmer
+ Khmerų
+
+
+ Simplified Chinese
+ Supaprastintoji kinų
+
+
+ Traditional Chinese
+ Tradicinė kinų
+
+
+ Japanese
+ Japonų
+
+
+ Korean
+ Korėjiečių
+
+
+ Vietnamese
+ Vietnamiečių
+
+
+ Symbol
+ Spec. simboliai
+
+
+ Ogham
+ Ogamas
+
+
+ Runic
+ Runos
+
+
+ N'Ko
+ N'Ko
+
+
+
+ QFontDialog
+
+ Select Font
+ Parinkite šriftą
+
+
+ &Font
+ &Šriftas
+
+
+ Font st&yle
+ Šrifto &stilius
+
+
+ &Size
+ &Dydis
+
+
+ Effects
+ Efektai
+
+
+ Stri&keout
+ &Perbrauktas
+
+
+ &Underline
+ Pa&brauktas
+
+
+ Sample
+ Pavyzdys
+
+
+ Wr&iting System
+ &Rašto sistema
+
+
+
+ QFtp
+
+ Not connected
+ Neužmegztas ryšys
+
+
+ Host %1 not found
+ Mazgas %1 nerastas
+
+
+ Connection refused to host %1
+ Mazgas %1 atmetė ryšį
+
+
+ Connection timed out to host %1
+ Baigėsi ryšiui su mazgu %1 skirtas laikas
+
+
+ Connected to host %1
+ Užmegztas ryšys su mazgu %1
+
+
+ Connection refused for data connection
+ Užmegzti duomenų perdavimo ryšį atsisakyta
+
+
+ Unknown error
+ Nežinoma klaida
+
+
+ Connecting to host failed:
+%1
+ Nepavyko užmegzti ryšio su mazgu:
+%1
+
+
+ Login failed:
+%1
+ Registracija į seansą nepavyko:
+%1
+
+
+ Listing directory failed:
+%1
+ Nepavyko gauti katalogo turinio sąrašo:
+%1
+
+
+ Changing directory failed:
+%1
+ Pereiti į kitą katalogą nepavyko:
+%1
+
+
+ Downloading file failed:
+%1
+ Parsiųsti failo nepavyko:
+%1
+
+
+ Uploading file failed:
+%1
+ Nusiųsti failo nepavyko:
+%1
+
+
+ Removing file failed:
+%1
+ Pašalinti failo nepavyko:
+%1
+
+
+ Creating directory failed:
+%1
+ Sukurti katalogo nepavyko:
+%1
+
+
+ Removing directory failed:
+%1
+ Pašalinti katalogo nepavyko:
+%1
+
+
+ Connection closed
+ Ryšys baigtas
+
+
+ Host %1 found
+ Mazgas %1 nerastas
+
+
+ Connection to %1 closed
+ Ryšys su %1 baigtas
+
+
+ Host found
+ Mazgas surastas
+
+
+ Connected to host
+ Užmegztas ryšys su mazgu
+
+
+
+ QHostInfo
+
+ No host name given
+ Nepateiktas mazgo vardas
+
+
+ Unknown error
+ Nežinoma klaida
+
+
+
+ QHostInfoAgent
+
+ No host name given
+ Nepateiktas mazgo vardas
+
+
+ Invalid hostname
+ Netinkamas mazgo vardas
+
+
+ Unknown address type
+ Nežinomas adreso tipas
+
+
+ Host not found
+ Mazgas nerastas
+
+
+ Unknown error
+ Nežinoma klaida
+
+
+
+ QHttp
+
+ HTTPS connection requested but SSL support not compiled in
+ Pareikalauta HTTPS ryšio, tačiau SSL palaikymas nebuvo įkompiliuotas
+
+
+ Unknown error
+ Nežinoma klaida
+
+
+ Request aborted
+ Užklausos vykdymas nutrauktas
+
+
+ No server set to connect to
+ Nenurodytas serveris, prie kurio reikėtų jungtis
+
+
+ Wrong content length
+ Neteisinga turinio apimtis
+
+
+ Server closed connection unexpectedly
+ Serveris netikėtai užbaigė ryšį
+
+
+ Connection refused (or timed out)
+ Ryšys atmestas (arba baigėsi jam skirtas laikas)
+
+
+ Host %1 not found
+ Mazgas %1 nerastas
+
+
+ HTTP request failed
+ HTTP užlklausa nesėkminga
+
+
+ Invalid HTTP response header
+ Netinkama HTTP atsako antraštė
+
+
+ Unknown authentication method
+ Nežinomas tapatumo nustatymo metodas
+
+
+ Proxy authentication required
+ Būtinas tapatumo nustatymas įgaliotajame serveryje
+
+
+ Authentication required
+ Būtinas tapatumo nustatymas
+
+
+ Invalid HTTP chunked body
+ Neleistinai fragmentuoti HTTP duomenys
+
+
+ Error writing response to device
+ Klaida siunčiant atsakymą į įrenginį
+
+
+ Connection refused
+ Ryšys atmestas
+
+
+ Connection closed
+ Ryšys baigtas
+
+
+ Proxy requires authentication
+ Įgaliotasis serveris reikalauja nustatyti tapatybę
+
+
+ Host requires authentication
+ Mazgas reikalauja nustatyti tapatybę
+
+
+ Data corrupted
+ Duomenys sugadinti
+
+
+ Unknown protocol specified
+ Nurodytas nežinomas protokolas
+
+
+ SSL handshake failed
+ SSL pasisveikinimas nepavyko
+
+
+ Host %1 found
+ Mazgas %1 nerastas
+
+
+ Connected to host %1
+ Užmegztas ryšys su mazgu %1
+
+
+ Connection to %1 closed
+ Ryšys su %1 baigtas
+
+
+ Host found
+ Mazgas surastas
+
+
+ Connected to host
+ Užmegztas ryšys su mazgu
+
+
+
+ QHttpSocketEngine
+
+ Did not receive HTTP response from proxy
+ Iš įgaliotojo serverio negautas HTTP atsakas
+
+
+ Error parsing authentication request from proxy
+ Klaida analizuojant įgaliotojo serverio tapatumo nustatymo užklausą
+
+
+ Authentication required
+ Būtinas tapatumo nustatymas
+
+
+ Proxy denied connection
+ Įgaliotasis serveris nesuteikė ryšio
+
+
+ Error communicating with HTTP proxy
+ Komunikacijos su HTTP įgaliotuoju serveriu klaida
+
+
+ Proxy server not found
+ Įgaliotasis serveris nerastas
+
+
+ Proxy connection refused
+ Įgaliotasis serveris atmetė ryšį
+
+
+ Proxy server connection timed out
+ Baigėsi ryšiui su įgaliotuoju serveriu skirtas laikas
+
+
+ Proxy connection closed prematurely
+ Įgaliotasis serveris netikėtai užbaigė ryšį
+
+
+
+ QIBaseDriver
+
+ Error opening database
+ Klaida atveriant duomenų bazę
+
+
+ Could not start transaction
+ Nepavyko pradėti transakcijos
+
+
+ Unable to commit transaction
+ Nepavyko užbaigti transakcijos
+
+
+ Unable to rollback transaction
+ Nepavyko anuliuoti transakcijos
+
+
+
+ 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
+ Nepavyko pradėti transakcijos
+
+
+ Unable to commit transaction
+ Nepavyko užbaigti transakcijos
+
+
+ Could not allocate statement
+
+
+
+ Could not prepare statement
+ Nepavyko paruošti sakinio
+
+
+ Could not describe input statement
+
+
+
+ Could not describe statement
+ Nepavyko aprašyti sakinio
+
+
+ Unable to close statement
+ Nepavyko užverti sakinio
+
+
+ Unable to execute query
+ Nepavyko įvykdyti užklausos
+
+
+ Could not fetch next item
+
+
+
+ Could not get statement info
+
+
+
+
+ QIODevice
+
+ Permission denied
+ Nepakanka teisių
+
+
+ Too many open files
+ Per daug atvertų failų
+
+
+ No such file or directory
+ Nėra tokio failo ar katalogo
+
+
+ No space left on device
+ Įrenginyje neliko laisvos vietos
+
+
+ Unknown error
+ Nežinoma klaida
+
+
+
+ QInputContext
+
+ XIM
+ XIM
+
+
+ FEP
+ FEP
+
+
+ XIM input method
+ XIM įvesties būdas
+
+
+ Windows input method
+ „Windows“ įvesties būdas
+
+
+ Mac OS X input method
+ „Mac OS X“ įvesties būdas
+
+
+ S60 FEP input method
+ S60 FEP įvesties būdas
+
+
+
+ QInputDialog
+
+ Enter a value:
+ Įveskite reikšmę:
+
+
+
+ QLibrary
+
+ Plugin verification data mismatch in '%1'
+
+
+
+ The shared library was not found.
+ Bendroji biblioteka nerasta.
+
+
+ The file '%1' is not a valid Qt plugin.
+ Failas „%1“ nėra teisingas „Qt“ papildinys.
+
+
+ The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]
+ Papildinys „%1“ naudoja nesuderinamą „Qt“ bibliotekos versiją (%2.%3.%4) [%5]
+
+
+ The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"
+ Papildinys „%1“ naudoja nesuderinamą „Qt“. Tikėtasi darinio rakto „%2“, tačiau gautas „%3“
+
+
+ The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)
+ Papildinys „%1“ naudoja nesuderinamą „Qt“ bibliotekos versiją (negalima maišyti derinimui ir galutinėms laidoms skirtų bibliotekų).
+
+
+ Unknown error
+ Nežinoma klaida
+
+
+ Cannot load library %1: %2
+ Nepavyko įkelti bibliotekos %1: %2
+
+
+ Cannot unload library %1: %2
+ Nepavyko iškelti bibliotekos %1: %2
+
+
+ Cannot resolve symbol "%1" in %2: %3
+ Nepavyko rasti simbolio „%1“ bibliotekoje %2: %3
+
+
+ '%1' is not an ELF object (%2)
+
+
+
+ '%1' is not an ELF object
+
+
+
+ '%1' is an invalid ELF object (%2)
+
+
+
+
+ QLineEdit
+
+ &Undo
+ &Atšaukti
+
+
+ &Redo
+ A&tstatyti
+
+
+ Cu&t
+ Iški&rpti
+
+
+ &Copy
+ &Kopijuoti
+
+
+ &Paste
+ Į&dėti
+
+
+ Delete
+ Pašalinti
+
+
+ Select All
+ Pažymėti viską
+
+
+
+ QLocalServer
+
+ %1: Name error
+ %1: vardo klaida
+
+
+ %1: Permission denied
+ %1: nepakanka teisių
+
+
+ %1: Address in use
+ %1: adresas jau naudojamas
+
+
+ %1: Unknown error %2
+ %1: nežinoma klaida %2
+
+
+
+ QLocalSocket
+
+ %1: Connection refused
+ %1: ryšys atmestas
+
+
+ %1: Remote closed
+ %1: nutolęs mazgas užbaigė ryšį
+
+
+ %1: Invalid name
+ %1: netinkamas vardas
+
+
+ %1: Socket access error
+ %1: prieigos prie lizdo klaida
+
+
+ %1: Socket resource error
+ %1: lizdo ištekliaus klaida
+
+
+ %1: Socket operation timed out
+ %1: baigėsi operacijai su lizdu skirtas laikas
+
+
+ %1: Datagram too large
+ %1: duomenų paketas per didelis
+
+
+ %1: Connection error
+ %1: ryšio klaida
+
+
+ %1: The socket operation is not supported
+ %1: operacija su lizdu nepalaikoma
+
+
+ %1: Unknown error
+ %1: nežinoma klaida
+
+
+ %1: Unknown error %2
+ %1: nežinoma klaida %2
+
+
+ %1: Access denied
+ %1: prieiga uždrausta
+
+
+
+ QMYSQLDriver
+
+ Unable to open database '
+ Nepavyko atverti duomenų bazės '
+
+
+ Unable to connect
+ Nepavyko užmegzti ryšio
+
+
+ Unable to begin transaction
+ Nepavyko pradėti transakcijos
+
+
+ Unable to commit transaction
+ Nepavyko užbaigti transakcijos
+
+
+ Unable to rollback transaction
+ Nepavyko anuliuoti transakcijos
+
+
+
+ QMYSQLResult
+
+ Unable to fetch data
+ Nepavyko gauti duomenų
+
+
+ Unable to execute query
+ Nepavyko įvykdyti užklausos
+
+
+ Unable to store result
+ Nepavyko išsaugoti rezultato
+
+
+ Unable to execute next query
+
+
+
+ Unable to store next result
+
+
+
+ Unable to prepare statement
+ Nepavyko paruošti sakinio
+
+
+ Unable to reset statement
+
+
+
+ Unable to bind value
+
+
+
+ Unable to execute statement
+ Nepavyko įvykdyti sakinio
+
+
+ Unable to bind outvalues
+
+
+
+ Unable to store statement results
+ Nepavyko išsaugoti sakinio rezultatų
+
+
+
+ QMdiArea
+
+ (Untitled)
+ (Be pavadinimo)
+
+
+
+ QMdiSubWindow
+
+ - [%1]
+ – [%1]
+
+
+ %1 - [%2]
+ %1 – [%2]
+
+
+ Minimize
+ Sumažinti
+
+
+ Maximize
+ Išdidinti
+
+
+ Unshade
+ Išvynioti
+
+
+ Shade
+ Suvynioti
+
+
+ Restore Down
+ Atkurti dydį
+
+
+ Restore
+ Atkurti langą
+
+
+ Close
+ Užverti
+
+
+ Help
+ Žinynas
+
+
+ Menu
+ Meniu
+
+
+ &Restore
+ &Atkurti
+
+
+ &Move
+ &Perkelti
+
+
+ &Size
+ &Keisti dydį
+
+
+ Mi&nimize
+ Su&mažinti
+
+
+ Ma&ximize
+ Iš&didinti
+
+
+ Stay on &Top
+ &Visada viršuje
+
+
+ &Close
+ &Užverti
+
+
+
+ QMenu
+
+ Close
+ Užverti
+
+
+ Open
+ Atverti
+
+
+ Execute
+ Vykdyti
+
+
+
+ QMenuBar
+
+ Actions
+ Veiksmai
+
+
+ Corner Toolbar
+
+
+
+
+ QMessageBox
+
+ Show Details...
+ Išsamiau…
+
+
+ Hide Details...
+ Glausčiau…
+
+
+ OK
+ Gerai
+
+
+ Help
+ Žinynas
+
+
+ <h3>About Qt</h3><p>This program uses Qt version %1.</p>
+ <h3>Apie „Qt“</h3><p>Ši programa naudoja „Qt %1“.</p>
+
+
+ <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS Windows, Mac OS 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) 2011 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“ yra C++ priemonių komplektas, skirtas daugiaplatformėms programoms kurti.</p><p>Naudojant „Qt“, galima kurti perkeliamas tarp „Microsoft Windows“, „Mac OS X“, „Linux“ ir visų kitų pagrindinių UNIX variantų programas, naudojant tuos pačius pradinius tekstus. Taip pat Qt veikia integruotuose įrenginiuose, naudojančiuose „Embedded Linux“ ir „Windows CE“ operacines sistemas.</p><p>„Qt“ priemonių komplektas yra licencijuojamas trimis skirtingais būdais, tuo siekiant patenkinti visų naudotojų poreikius.</p><p>Mūsų komercinė licencinė sutartis skirta tiems atvejams, kai Jūs norite kurti nuosavybinę (komercinę) programinę įrangą, tačiau nenorite su niekuo dalintis jos pradiniais tekstais ar jų ištraukomis, arba kai Jūsų kuriamas produktas yra dėl kitų priežasčių nesuderinamas su GNU LGPL 2.1 versijos ar GNU GPL 3.0 versijos licencijomis.</p><p>GNU LGPL 2.1 versijos licenciją galite pasirinkti, jeigu kuriate „Qt“ programas (tiek laisvąsias, tiek nuosavybines) ir galite patenkinti šios licencijos reikalavimus.</p><p>GNU GPL 3.0 versijos licencijavimo būdas tinka tiems atvejams, kai Jūsų kuriamoje „Qt“ programoje bus naudojama pagal GNU GPL 3.0 versijos licenciją platinama programinė įranga arba kai Jūs norite ir galite patenkinti šios licencijos reikalavimus dėl kitų priežasčių.</p><p>Susipažinti su „Qt“ licencijavimo galimybėmis galite tinklalapyje <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a>.</p><p>© 2011 Nokia Corporation and/or its subsidiary(-ies).</p><p>„Qt“ yra kompanijos „Nokia“ produktas. Daugiau informacijos apie jį rasite adresu <a href="http://qt.nokia.com/">qt.nokia.com</a>.</p>
+
+
+ About Qt
+ Apie „Qt“
+
+
+
+ QMultiInputContext
+
+ Select IM
+ Įvesties būdo pasirinkimas
+
+
+
+ QMultiInputContextPlugin
+
+ Multiple input method switcher
+ Skirtingų įvesties būtų perjungiklis
+
+
+ Multiple input method switcher that uses the context menu of the text widgets
+ Skirtingų įvesties būdų perjungiklis, esantis teksto laukų kontekstiniame meniu
+
+
+
+ QNativeSocketEngine
+
+ Unable to initialize non-blocking socket
+ Nepavyko inicijuoti neblokuojamo lizdo
+
+
+ Unable to initialize broadcast socket
+ Nepavyko inicijuoti lizdo transliavimui
+
+
+ Attempt to use IPv6 socket on a platform with no IPv6 support
+ Bandoma naudoti IPv6 lizdą platformoje, kurioje IPv6 protokolas nepalaikomas
+
+
+ The remote host closed the connection
+ Nutolęs mazgas užbaigė ryšį
+
+
+ Network operation timed out
+ Baigėsi tinklo operacijai skirtas laikas
+
+
+ Out of resources
+ Pritrūko išteklių
+
+
+ Unsupported socket operation
+ Nepalaikoma operacija su lizdu
+
+
+ Protocol type not supported
+ Nepalaikomas protokolo tipas
+
+
+ Invalid socket descriptor
+ Netinkamas lizdo deskriptorius
+
+
+ Host unreachable
+ Mazgas nepasiekiamas
+
+
+ Network unreachable
+ Tinklas nepasiekiamas
+
+
+ Permission denied
+ Nepakanka teisių
+
+
+ Connection timed out
+ Baigėsi ryšiui skirtas laikas
+
+
+ Connection refused
+ Ryšys atmestas
+
+
+ The bound address is already in use
+ Bandomas naudoti adresas jau yra naudojamas
+
+
+ The address is not available
+ Adresas neleidžiamas
+
+
+ The address is protected
+ Adresas apsaugotas
+
+
+ Datagram was too large to send
+ Duomenų paketas per didelis, kad galėtų būti išsiųstas
+
+
+ Unable to send a message
+ Nepavyko išsiųsti pranešimo
+
+
+ Unable to receive a message
+ Nepavyko gauti pranešimo
+
+
+ Unable to write
+ Rašymas nepavyko
+
+
+ Network error
+ Tinklo klaida
+
+
+ Another socket is already listening on the same port
+ Tą patį prievadą klausymui jau naudoja kitas lizdas
+
+
+ Operation on non-socket
+ Operacija ne su lizdu
+
+
+ The proxy type is invalid for this operation
+ Įgaliotojo serverio tipas netinkamas šiai operacijai
+
+
+ Unknown error
+ Nežinoma klaida
+
+
+
+ QNetworkAccessCacheBackend
+
+ Error opening %1
+ Klaida atveriant %1
+
+
+
+ QNetworkAccessDataBackend
+
+ Operation not supported on %1
+ Operacija nepalaikoma su %1
+
+
+ Invalid URI: %1
+ Netinkamas universalusis ištekliaus identifikatorius (URI): %1
+
+
+
+ QNetworkAccessDebugPipeBackend
+
+ Write error writing to %1: %2
+ Rašymo klaida rašant į %1: %2
+
+
+ Socket error on %1: %2
+ Lizdo %1 klaida: %2
+
+
+ Remote host closed the connection prematurely on %1
+ Nutolęs mazgas netikėtai užbaigė ryšį lizde %1
+
+
+
+ QNetworkAccessFileBackend
+
+ Request for opening non-local file %1
+ Prašoma atverti nevietinį failą %1
+
+
+ Cannot open %1: Path is a directory
+ Nepavyko atverti %1: tai katalogo kelias
+
+
+ Error opening %1: %2
+ Klaida atveriant %1: %2
+
+
+ Write error writing to %1: %2
+ Rašymo klaida rašant %1: %2
+
+
+ Read error reading from %1: %2
+ Skaitymo klaida skaitant %1: %2
+
+
+
+ QNetworkAccessFtpBackend
+
+ No suitable proxy found
+ Nerastas tinkamas įgaliotasis serveris
+
+
+ Cannot open %1: is a directory
+ Nepavyko atverti %1: tai yra katalogas
+
+
+ Logging in to %1 failed: authentication required
+ Registracija į seansą su %1 nepavyko: būtinas tapatumo nustatymas
+
+
+ Error while downloading %1: %2
+ Klaida parsiunčiant %1: %2
+
+
+ Error while uploading %1: %2
+ Klaida nusiunčiant %1: %2
+
+
+
+ QNetworkAccessHttpBackend
+
+ No suitable proxy found
+ Nerastas tinkamas įgaliotasis serveris
+
+
+
+ QNetworkAccessManager
+
+ Network access is disabled.
+ Prieiga prie tinklo išjungta.
+
+
+
+ QNetworkReply
+
+ Error downloading %1 - server replied: %2
+ Klaida parsiunčiant %1. Serveris atsakė: %2
+
+
+ Protocol "%1" is unknown
+ Protokolas „%1“ nežinomas
+
+
+ Network session error.
+ Tinklo seanso klaida.
+
+
+ backend start error.
+
+
+
+ Temporary network failure.
+ Laikina problema su tinklu.
+
+
+
+ QNetworkReplyImpl
+
+ Operation canceled
+ Operacija atšaukta
+
+
+
+ QNetworkSession
+
+ Invalid configuration.
+ Neleistina sąranka.
+
+
+
+ QNetworkSessionPrivateImpl
+
+ Roaming error
+
+
+
+ Session aborted by user or system
+ Seansą nutraukė naudotojas arba sistema
+
+
+ The specified configuration cannot be used.
+ Nurodyta konfigūracija negali būti naudojama.
+
+
+ Unidentified Error
+ Neidentifikuota klaida
+
+
+ Unknown session error.
+ Nežinoma seanso klaida.
+
+
+ The session was aborted by the user or system.
+ Seansą nutraukė naudotojas arba sistema.
+
+
+ The requested operation is not supported by the system.
+ Norima atlikti operacija yra nepalaikoma sistemos.
+
+
+ Roaming was aborted or is not possible.
+
+
+
+
+ QOCIDriver
+
+ Unable to initialize
+ QOCIDriver
+ Inicijavimas nepavyko
+
+
+ Unable to logon
+ Nepavyko registruotis į seansą
+
+
+ Unable to begin transaction
+ Nepavyko pradėti transakcijos
+
+
+ Unable to commit transaction
+ Nepavyko užbaigti transakcijos
+
+
+ Unable to rollback transaction
+ Nepavyko anuliuoti transakcijos
+
+
+
+ QOCIResult
+
+ Unable to bind column for batch execute
+
+
+
+ Unable to execute batch statement
+ Nepavyko įvykdyti paketinio sakinio
+
+
+ Unable to goto next
+
+
+
+ Unable to alloc statement
+
+
+
+ Unable to prepare statement
+ Nepavyko paruošti sakinio
+
+
+ Unable to get statement type
+ Nepavyko gauti sakinio tipo
+
+
+ Unable to bind value
+
+
+
+ Unable to execute statement
+ Nepavyko įvykdyti sakinio
+
+
+
+ QODBCDriver
+
+ Unable to connect
+ Nepavyko užmegzti ryšio
+
+
+ Unable to connect - Driver doesn't support all functionality required
+ Nepavyko užmegzti ryšio: tvarkyklėje nepalaikomas visas reikiamas funkcionalumas
+
+
+ Unable to disable autocommit
+ Nepavyko išjungti automatinio transakcijų patvirtinimo
+
+
+ Unable to commit transaction
+ Nepavyko užbaigti transakcijos
+
+
+ Unable to rollback transaction
+ Nepavyko anuliuoti transakcijos
+
+
+ Unable to enable autocommit
+ Nepavyko įjungti automatinio transakcijų patvirtinimo
+
+
+
+ QODBCResult
+
+ QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration
+ QODBCResult::reset: nepavyko nustatyti sakinio atributo „SQL_CURSOR_STATIC“. Patikrinkite ODBC tvarkyklės sąranką
+
+
+ Unable to execute statement
+ Nepavyko įvykdyti sakinio
+
+
+ Unable to fetch
+ Nepavyko gauti įrašo
+
+
+ Unable to fetch next
+ Nepavyko gauti tolesnio įrašo
+
+
+ Unable to fetch first
+ Nepavyko gauti pirmojo įrašo
+
+
+ Unable to fetch previous
+ Nepavyko gauti ankstesnio įrašo
+
+
+ Unable to prepare statement
+ Nepavyko paruošti sakinio
+
+
+ Unable to bind variable
+ Nepavyko susieti kintamojo
+
+
+ Unable to fetch last
+ Nepavyko gauti paskutinio įrašo
+
+
+
+ QObject
+
+ PulseAudio Sound Server
+ „PulseAudio“ garso serveris
+
+
+ "%1" duplicates a previous role name and will be disabled.
+ „%1“ dubliuoja ankstesnės rolės vardą, todėl bus išjungtas.
+
+
+ invalid query: "%1"
+ netinkama užklausa: „%1“
+
+
+ Host not found
+ Mazgas nerastas
+
+
+
+ QPPDOptionsModel
+
+ Name
+ Vardas
+
+
+ Value
+ Reikšmė
+
+
+
+ QPSQLDriver
+
+ Unable to connect
+ Nepavyko užmegzti ryšio
+
+
+ Could not begin transaction
+ Nepavyko pradėti transakcijos
+
+
+ Could not commit transaction
+ Nepavyko užbaigti transakcijos
+
+
+ Could not rollback transaction
+ Nepavyko anuliuoti transakcijos
+
+
+ Unable to subscribe
+ Nepavyko prenumeruoti
+
+
+ Unable to unsubscribe
+ Nepavyko atsisakyti prenumeratos
+
+
+
+ QPSQLResult
+
+ Unable to create query
+ Nepavyko sukurti užklausos
+
+
+ Unable to prepare statement
+ Nepavyko paruošti sakinio
+
+
+
+ QPageSetupWidget
+
+ Form
+ Forma
+
+
+ Paper
+ Popierius
+
+
+ Page size:
+ Popieriaus dydis:
+
+
+ Width:
+ Plotis:
+
+
+ Height:
+ Aukštis:
+
+
+ Paper source:
+ Popieriaus šaltinis:
+
+
+ Orientation
+ Orientacija
+
+
+ Portrait
+ Stačias
+
+
+ Landscape
+ Gulsčias
+
+
+ Reverse landscape
+ Apverstas gulsčias
+
+
+ Reverse portrait
+ Apverstas stačias
+
+
+ Margins
+ Paraštės
+
+
+ top margin
+ viršutinė paraštė
+
+
+ left margin
+ kairioji paraštė
+
+
+ right margin
+ dešinioji paraštė
+
+
+ bottom margin
+ apatinė paraštė
+
+
+ Centimeters (cm)
+ Centimetrai (cm)
+
+
+ Millimeters (mm)
+ Milimetrai (mm)
+
+
+ Inches (in)
+ Coliai (in)
+
+
+ Points (pt)
+ Taškai (pt)
+
+
+
+ QPluginLoader
+
+ The plugin was not loaded.
+ Papildinys neįkeltas.
+
+
+ Unknown error
+ Nežinoma klaida
+
+
+
+ QPrintDialog
+
+ Print
+ Spausdinimas
+
+
+ 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
+ JAV įprastas #10 vokas
+
+
+ Custom
+ Pasirinktinis
+
+
+ File exists
+ Toks failas jau yra
+
+
+ <qt>Do you want to overwrite it?</qt>
+ <qt>Ar norite jį perrašyti?</qt>
+
+
+ A0 (841 x 1189 mm)
+ A0 (841 × 1189 mm)
+
+
+ A1 (594 x 841 mm)
+ A1 (594 × 841 mm)
+
+
+ A2 (420 x 594 mm)
+ A2 (420 × 594 mm)
+
+
+ A3 (297 x 420 mm)
+ A3 (297 × 420 mm)
+
+
+ A4 (210 x 297 mm, 8.26 x 11.7 inches)
+ A4 (210 × 297 mm; 8,26 × 11,7 colio)
+
+
+ A5 (148 x 210 mm)
+ A5 (148 × 210 mm)
+
+
+ A6 (105 x 148 mm)
+ A6 (105 × 148 mm)
+
+
+ A7 (74 x 105 mm)
+ A7 (74 × 105 mm)
+
+
+ A8 (52 x 74 mm)
+ A8 (52 × 74 mm)
+
+
+ A9 (37 x 52 mm)
+ A9 (37 × 52 mm)
+
+
+ B0 (1000 x 1414 mm)
+ B0 (1000 × 1414 mm)
+
+
+ B1 (707 x 1000 mm)
+ B1 (707 × 1000 mm)
+
+
+ B2 (500 x 707 mm)
+ B2 (500 × 707 mm)
+
+
+ B3 (353 x 500 mm)
+ B3 (353 × 500 mm)
+
+
+ B4 (250 x 353 mm)
+ B4 (250 × 353 mm)
+
+
+ B5 (176 x 250 mm, 6.93 x 9.84 inches)
+ B5 (176 × 250 mm; 6,93 × 9,84 colio)
+
+
+ B6 (125 x 176 mm)
+ B6 (125 × 176 mm)
+
+
+ B7 (88 x 125 mm)
+ B7 (88 × 125 mm)
+
+
+ B8 (62 x 88 mm)
+ B8 (62 × 88 mm)
+
+
+ B9 (44 x 62 mm)
+ B9 (44 × 62 mm)
+
+
+ B10 (31 x 44 mm)
+ B10 (31 × 44 mm)
+
+
+ C5E (163 x 229 mm)
+ C5E (163 × 229 mm)
+
+
+ DLE (110 x 220 mm)
+ DLE (110 × 220 mm)
+
+
+ Executive (7.5 x 10 inches, 191 x 254 mm)
+ Executive (7,5 × 10 colių; 191 × 254 mm)
+
+
+ Folio (210 x 330 mm)
+ Folio (210 × 330 mm)
+
+
+ Ledger (432 x 279 mm)
+ Ledger (432 × 279 mm)
+
+
+ Legal (8.5 x 14 inches, 216 x 356 mm)
+ Legal (8,5 × 14 colių; 216 × 356 mm)
+
+
+ Letter (8.5 x 11 inches, 216 x 279 mm)
+ Letter (8,5 × 11 colių; 216 × 279 mm)
+
+
+ Tabloid (279 x 432 mm)
+ Tabloid (279 × 432 mm)
+
+
+ US Common #10 Envelope (105 x 241 mm)
+ JAV įprastas #10 vokas (105 × 241 mm)
+
+
+ Print all
+ Spausdinti viską
+
+
+ Print selection
+ Spausdinti pažymėtą sritį
+
+
+ Print range
+ Spausdinti rėžį
+
+
+ Print current page
+ Spausdinti šį puslapį
+
+
+ &Options >>
+ &Parinktys >>
+
+
+ &Print
+ &Spausdinti
+
+
+ &Options <<
+ &Parinktys <<
+
+
+ Print to File (PDF)
+ Spausdinti į failą (PDF)
+
+
+ Print to File (Postscript)
+ Spausdinti į failą (PostScript)
+
+
+ Local file
+ vietinis failas
+
+
+ Write %1 file
+ įrašyti %1 failą
+
+
+ Print To File ...
+ Parinkite failą, į kurį norite spausdinti
+
+
+ %1 is a directory.
+Please choose a different file name.
+ „%1“ yra katalogas.
+Pasirinkite kitą failo vardą.
+
+
+ File %1 is not writable.
+Please choose a different file name.
+ Į failą „%1“ rašyti neleidžiama.
+Pasirinkite kitą failo vardą.
+
+
+ %1 already exists.
+Do you want to overwrite it?
+ Failas „%1“ jau yra.
+Ar norite jį perrašyti?
+
+
+ The 'From' value cannot be greater than the 'To' value.
+ Reikšmė „nuo“ negali būti didesnė už reikšmę „iki“.
+
+
+ OK
+ Gerai
+
+
+ locally connected
+ prijungtas prie šio įrenginio
+
+
+ Aliases: %1
+ Alternatyvieji vardai: %1
+
+
+ unknown
+ nežinomas
+
+
+
+ QPrintPreviewDialog
+
+ Page Setup
+ Puslapio parinktys
+
+
+ %1%
+ %1%
+
+
+ Print Preview
+ Spaudinio peržiūra
+
+
+ Next page
+ Kitas puslapis
+
+
+ Previous page
+ Ankstesnis puslapis
+
+
+ First page
+ Pirmas puslapis
+
+
+ Last page
+ Paskutinis puslapis
+
+
+ Fit width
+ Priderinti mastelį prie lapo pločio
+
+
+ Fit page
+ Priderinti mastelį prie lapo dydžio
+
+
+ Zoom in
+ Pritraukti
+
+
+ Zoom out
+ Atitraukti
+
+
+ Portrait
+ Stačias lapas
+
+
+ Landscape
+ Gulsčias lapas
+
+
+ Show single page
+ Rodyti vieną puslapį
+
+
+ Show facing pages
+ Rodyti kaip knygą
+
+
+ Show overview of all pages
+ Rodyti visų puslapių apžvalgą
+
+
+ Print
+ Spausdinti
+
+
+ Page setup
+ Puslapio parinktys
+
+
+ Close
+ Užverti
+
+
+ Export to PDF
+ Eksportuoti PDF formatu
+
+
+ Export to PostScript
+ Eksportuoti „PostScript“ formatu
+
+
+
+ QPrintPropertiesWidget
+
+ Form
+ Forma
+
+
+ Page
+ Puslapis
+
+
+ Advanced
+ Kita
+
+
+
+ QPrintSettingsOutput
+
+ Form
+ Forma
+
+
+ Copies
+ Kopijos
+
+
+ Print range
+ Spaudinio apimtis
+
+
+ Print all
+ Spausdinti viską
+
+
+ Pages from
+ Puslapius nuo
+
+
+ to
+ iki
+
+
+ Current Page
+ Tik šį puslapį
+
+
+ Selection
+ Pažymėtą sritį
+
+
+ Output Settings
+ Išvesties parinktys
+
+
+ Copies:
+ Kopijos:
+
+
+ Collate
+ Sugrupuoti
+
+
+ Reverse
+ Sp. atvirkštine tvarka
+
+
+ Options
+ Parinktys
+
+
+ Color Mode
+ Spalvų pateikimas
+
+
+ Color
+ Spausdinti spalvotai
+
+
+ Grayscale
+ Spausdinti nespalvotai
+
+
+ Duplex Printing
+ Dvipusis spausdinimas
+
+
+ None
+ Nenaudoti
+
+
+ Long side
+ Versti per ilgąją kraštinę
+
+
+ Short side
+ Versti per trumpąją kraštinę
+
+
+
+ QPrintWidget
+
+ Form
+ Forma
+
+
+ Printer
+ Spausdintuvas
+
+
+ &Name:
+ &Vardas:
+
+
+ P&roperties
+ &Nuostatos
+
+
+ Location:
+ Vieta:
+
+
+ Preview
+ Peržiūra
+
+
+ Type:
+ Tipas:
+
+
+ Output &file:
+ Išvesties &failas:
+
+
+ ...
+ …
+
+
+
+ QProcess
+
+ Error reading from process
+ Klaida skaitant iš proceso
+
+
+ Error writing to process
+ Klaida rašant į procesą
+
+
+ Process crashed
+ Procesas užstrigo
+
+
+ No program defined
+ Nenurodyta programa
+
+
+ Could not open input redirection for reading
+ Nepavyko skaitymui atverti įvesties peradresavimo
+
+
+ Could not open output redirection for writing
+ Nepavyko rašymui atverti išvesties peradresavimo
+
+
+ Resource error (fork failure): %1
+ Ištekliaus klaida kuriant vaikinį procesą: %1
+
+
+ Process operation timed out
+ Baigėsi operacijai su procesu skirtas laikas
+
+
+ Process failed to start: %1
+ Proceso paleisti nepavyko: %1
+
+
+
+ QProgressDialog
+
+ Cancel
+ Atsisakyti
+
+
+
+ QPushButton
+
+ Open
+ Atverti
+
+
+
+ QRadioButton
+
+ Check
+ Pažymėti
+
+
+
+ QRegExp
+
+ no error occurred
+ klaidų neaptikta
+
+
+ disabled feature used
+ naudojama išjungta galimybė
+
+
+ bad char class syntax
+ bloga simbolių klasės sintaksė
+
+
+ bad lookahead syntax
+ bloga apžvalgos į priekį sintaksė
+
+
+ bad repetition syntax
+ bloga kartojimo sintaksė
+
+
+ invalid octal value
+ negalima aštuntainė reikšmė
+
+
+ missing left delim
+ trūksta kairiojo skirtuko
+
+
+ unexpected end
+ netikėta pabaiga
+
+
+ met internal limit
+ pasiekta vidinė riba
+
+
+ invalid interval
+ negalimas intervalas
+
+
+ invalid category
+ negalima kategorija
+
+
+
+ QSQLite2Driver
+
+ Error opening database
+ Klaida atveriant duomenų bazę
+
+
+ Unable to begin transaction
+ Nepavyko pradėti transakcijos
+
+
+ Unable to commit transaction
+ Nepavyko užbaigti transakcijos
+
+
+ Unable to rollback transaction
+ Nepavyko anuliuoti transakcijos
+
+
+
+ QSQLite2Result
+
+ Unable to fetch results
+ Nepavyko gauti rezultatų
+
+
+ Unable to execute statement
+ Nepavyko įvykdyti sakinio
+
+
+
+ QSQLiteDriver
+
+ Error opening database
+ Klaida atveriant duomenų bazę
+
+
+ Error closing database
+ Klaida užveriant duomenų bazę
+
+
+ Unable to begin transaction
+ Nepavyko pradėti transakcijos
+
+
+ Unable to commit transaction
+ Nepavyko užbaigti transakcijos
+
+
+ Unable to rollback transaction
+ Nepavyko anuliuoti transakcijos
+
+
+
+ QSQLiteResult
+
+ Unable to fetch row
+ Nepavyko gauti eilutės
+
+
+ No query
+ Nėra užklausos
+
+
+ Unable to execute statement
+ Nepavyko įvykdyti sakinio
+
+
+ Unable to reset statement
+
+
+
+ Unable to bind parameters
+
+
+
+ Parameter count mismatch
+ Nesutampa parametrų skaičius
+
+
+
+ QScriptBreakpointsModel
+
+ ID
+ ID
+
+
+ Location
+ Vieta
+
+
+ Condition
+ Sąlyga
+
+
+ Ignore-count
+
+
+
+ Single-shot
+
+
+
+ Hit-count
+
+
+
+
+ QScriptBreakpointsWidget
+
+ New
+ Naujas
+
+
+ Delete
+ Pašalinti
+
+
+
+ QScriptDebugger
+
+ Go to Line
+ Eiti į eilutę
+
+
+ Line:
+ Eilutė:
+
+
+ Interrupt
+ Pertraukti
+
+
+ Shift+F5
+ Shift+F5
+
+
+ Continue
+ Tęsti
+
+
+ F5
+ F5
+
+
+ Step Into
+ Įžengti
+
+
+ F11
+ F11
+
+
+ Step Over
+ Peržengti
+
+
+ F10
+ F10
+
+
+ Step Out
+ Išžengti
+
+
+ Shift+F11
+ Shift+F11
+
+
+ Run to Cursor
+ Vykdyti iki žymeklio
+
+
+ Ctrl+F10
+ Ctrl+F10
+
+
+ Run to New Script
+ Vykdyti iki naujo scenarijaus
+
+
+ Toggle Breakpoint
+ Įjungti / išjungti stabdos tašką
+
+
+ F9
+ F9
+
+
+ Clear Debug Output
+ Išvalyti derinimo išvestį
+
+
+ Clear Error Log
+ Išvalyti klaidų žurnalą
+
+
+ Clear Console
+ Išvalyti pultą
+
+
+ &Find in Script...
+ &Ieškoti scenarijuje…
+
+
+ Ctrl+F
+ Ctrl+F
+
+
+ Find &Next
+ Ieškoti &toliau
+
+
+ F3
+ F3
+
+
+ Find &Previous
+ Ieškoti &atgal
+
+
+ Shift+F3
+ Shift+F3
+
+
+ Ctrl+G
+ Ctrl+G
+
+
+ Debug
+ Derinimas
+
+
+
+ QScriptDebuggerCodeFinderWidget
+
+ Close
+ Užverti
+
+
+ Previous
+ Ankstesnis
+
+
+ Next
+ Tolesnis
+
+
+ Case Sensitive
+ Skirti didžiąsias ir mažąsias raides
+
+
+ Whole words
+ Ieškoti tik pilnų žodžių
+
+
+ <img src=":/qt/scripttools/debugging/images/wrap.png"> Search wrapped
+ <img src=":/qt/scripttools/debugging/images/wrap.png"> Ieškoti laužyto teksto
+
+
+
+ QScriptDebuggerLocalsModel
+
+ Name
+ Vardas
+
+
+ Value
+ Reikšmė
+
+
+
+ QScriptDebuggerStackModel
+
+ Level
+ Lygmuo
+
+
+ Name
+ Vardas
+
+
+ Location
+ Vieta
+
+
+
+ QScriptEdit
+
+ Toggle Breakpoint
+ Įjungti / išjungti stabdos tašką
+
+
+ Disable Breakpoint
+ Išjungti stabdos tašką
+
+
+ Enable Breakpoint
+ Įjungti stabdos tašką
+
+
+ Breakpoint Condition:
+ Stabdos taško sąlyga:
+
+
+
+ QScriptEngineDebugger
+
+ Loaded Scripts
+ Įkelti scenarijai
+
+
+ Breakpoints
+ Stabdos taškai
+
+
+ Stack
+ Dėklas
+
+
+ Locals
+ Vietiniai kintamieji
+
+
+ Console
+ Pultas
+
+
+ Debug Output
+ Derinimo išvestis
+
+
+ Error Log
+ Klaidų žurnalas
+
+
+ Search
+ Paieška
+
+
+ View
+ Rodymas
+
+
+ Qt Script Debugger
+ „Qt“ scenarijų derintuvė
+
+
+
+ QScriptNewBreakpointWidget
+
+ Close
+ Užverti
+
+
+
+ QScrollBar
+
+ Scroll here
+ Slinkti į čia
+
+
+ Left edge
+ Kairysis kraštas
+
+
+ Top
+ Viršus
+
+
+ Right edge
+ Dešinysis kraštas
+
+
+ Bottom
+ Apačia
+
+
+ Page left
+ Puslapis kairėn
+
+
+ Page up
+ Puslapis aukštyn
+
+
+ Page right
+ Puslapis dešinėn
+
+
+ Page down
+ Puslapis žemyn
+
+
+ Scroll left
+ Slinkti kairėn
+
+
+ Scroll up
+ Slinkti aukštyn
+
+
+ Scroll right
+ Slinkti dešinėn
+
+
+ Scroll down
+ Slinkti žemyn
+
+
+ Line up
+ Eilutė aukštyn
+
+
+ Position
+ Padėtis
+
+
+ Line down
+ Eilutė žemyn
+
+
+
+ QSharedMemory
+
+ %1: unable to set key on lock
+ %1: užrakinant nepavyko nustatyti rakto
+
+
+ %1: create size is less then 0
+ %1: bandomo kurti objekto dydis neigiamas
+
+
+ %1: unable to lock
+ %1: nepavyko užrakinti
+
+
+ %1: unable to unlock
+ %1: nepavyko atrakinti
+
+
+ %1: already exists
+ %1: jau egzistuoja
+
+
+ %1: doesn't exists
+ %1: neegzistuoja
+
+
+ %1: invalid size
+ %1: neleistinas dydis
+
+
+ %1: out of resources
+ %1: pritrūko išteklių
+
+
+ %1: permission denied
+ %1: nepakanka teisių
+
+
+ %1: unknown error %2
+ %1: nežinoma klaida %2
+
+
+ %1: key error
+ %1: rakto klaida
+
+
+ %1: unable to make key
+ %1: rakto sukurti nepavyko
+
+
+ %1: doesn't exist
+ %1: neegzistuoja
+
+
+ %1: key is empty
+ %1: raktas tuščias
+
+
+ %1: UNIX key file doesn't exist
+ %1: UNIX rakto failas neegzistuoja
+
+
+ %1: ftok failed
+ %1: nepavyko ftok()
+
+
+ %1: system-imposed size restrictions
+ %1: dydį ribojama sistema
+
+
+ %1: bad name
+ %1: netinkamas pavadinimas
+
+
+ %1: not attached
+ %1: nesusieta
+
+
+ %1: size query failed
+ %1: dydžio užklausa nepavyko
+
+
+
+ QShortcut
+
+ Space
+ This and all following "incomprehensible" strings in QShortcut context are key names. Please use the localized names appearing on actual keyboards or whatever is commonly used.
+ Tarpas
+
+
+ Esc
+ Gr
+
+
+ Tab
+ Tab
+
+
+ Backtab
+
+
+
+ Backspace
+ Naikinti iš kairės
+
+
+ Return
+ Įvesti
+
+
+ Enter
+ Įvesti
+
+
+ Ins
+ Įterpti
+
+
+ Del
+ Šal
+
+
+ Pause
+ Pauzė
+
+
+ Print
+ Sp
+
+
+ SysReq
+ Sist.
+
+
+ Home
+ Prad
+
+
+ End
+ Pab
+
+
+ Left
+ Kairėn
+
+
+ Up
+ Aukštyn
+
+
+ Right
+ Dešinėn
+
+
+ Down
+ Žemyn
+
+
+ PgUp
+ Psl. aukštyn
+
+
+ PgDown
+ Psl. žemyn
+
+
+ CapsLock
+ Didž
+
+
+ NumLock
+ Skaitm
+
+
+ ScrollLock
+ Slinkti
+
+
+ Menu
+ Meniu
+
+
+ Help
+ Pagalba
+
+
+ Back
+ Atgal
+
+
+ Forward
+ Pirmyn
+
+
+ Stop
+ Stabdyti
+
+
+ Refresh
+ Atsiųsti iš naujo
+
+
+ Volume Down
+ Tyliau
+
+
+ Volume Mute
+ Nutildyti
+
+
+ Volume Up
+ Garsiau
+
+
+ Bass Boost
+
+
+
+ Bass Up
+
+
+
+ Bass Down
+
+
+
+ Treble Up
+
+
+
+ Treble Down
+
+
+
+ Media Play
+
+
+
+ Media Stop
+
+
+
+ Media Previous
+
+
+
+ Media Next
+
+
+
+ Media Record
+
+
+
+ Media Pause
+ Media player pause button
+
+
+
+ Toggle Media Play/Pause
+ Media player button to toggle between playing and paused
+
+
+
+ Home Page
+ Pradžios tinklalapis
+
+
+ Favorites
+ Adresynas
+
+
+ Search
+ Ieškoti
+
+
+ Standby
+
+
+
+ Open URL
+ Atverti URL
+
+
+ Launch Mail
+ Atverti el. paštą
+
+
+ Launch Media
+ Atverti medijos leistuvę
+
+
+ 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)
+
+
+
+ Monitor Brightness Up
+
+
+
+ Monitor Brightness Down
+
+
+
+ Keyboard Light On/Off
+
+
+
+ Keyboard Brightness Up
+
+
+
+ Keyboard Brightness Down
+
+
+
+ Power Off
+ Išjungti
+
+
+ Wake Up
+ Prikelti
+
+
+ Eject
+ Išstumti
+
+
+ Screensaver
+ Ekrano užsklanda
+
+
+ WWW
+ Saitynas
+
+
+ Sleep
+ Užmigdyti
+
+
+ LightBulb
+ Lemputė
+
+
+ Shop
+ Apsipirkti
+
+
+ History
+ Žurnalas
+
+
+ Add Favorite
+ Įtraukti į adresyną
+
+
+ Hot Links
+
+
+
+ Adjust Brightness
+
+
+
+ Finance
+
+
+
+ Community
+
+
+
+ Audio Rewind
+
+
+
+ Back Forward
+
+
+
+ Application Left
+
+
+
+ Application Right
+
+
+
+ Book
+
+
+
+ CD
+ CD
+
+
+ Calculator
+ Skaičiuotuvas
+
+
+ Clear
+ Išvalyti
+
+
+ Clear Grab
+
+
+
+ Close
+ Užverti
+
+
+ Copy
+ Kopijuoti
+
+
+ Cut
+ Iškirpti
+
+
+ Display
+
+
+
+ DOS
+ DOS
+
+
+ Documents
+ Dokumentų rengyklė
+
+
+ Spreadsheet
+ Skaičiuoklė
+
+
+ Browser
+ Naršyklė
+
+
+ Game
+ Žaidimas
+
+
+ Go
+
+
+
+ iTouch
+
+
+
+ Logoff
+
+
+
+ Market
+
+
+
+ Meeting
+
+
+
+ Keyboard Menu
+
+
+
+ Menu PB
+
+
+
+ My Sites
+
+
+
+ News
+
+
+
+ Home Office
+
+
+
+ Option
+
+
+
+ Paste
+ Įdėti
+
+
+ Phone
+
+
+
+ Reply
+
+
+
+ Reload
+ Atsiųsti iš naujo
+
+
+ Rotate Windows
+
+
+
+ Rotation PB
+
+
+
+ Rotation KB
+
+
+
+ Save
+ Įrašyti
+
+
+ Send
+
+
+
+ Spellchecker
+
+
+
+ Split Screen
+
+
+
+ Support
+
+
+
+ Task Panel
+
+
+
+ Terminal
+
+
+
+ Tools
+
+
+
+ Travel
+
+
+
+ Video
+ Video
+
+
+ Word Processor
+ Tekstų rengyklė
+
+
+ XFer
+
+
+
+ Zoom In
+
+
+
+ Zoom Out
+
+
+
+ Away
+
+
+
+ Messenger
+
+
+
+ WebCam
+
+
+
+ Mail Forward
+
+
+
+ Pictures
+
+
+
+ Music
+ Muzika
+
+
+ Battery
+ Baterija
+
+
+ Bluetooth
+ Bluetooth
+
+
+ Wireless
+
+
+
+ Ultra Wide Band
+
+
+
+ Audio Forward
+
+
+
+ Audio Repeat
+
+
+
+ Audio Random Play
+
+
+
+ Subtitle
+
+
+
+ Audio Cycle Track
+
+
+
+ Time
+
+
+
+ Select
+ Rinktis
+
+
+ View
+ Rodymas
+
+
+ Top Menu
+
+
+
+ Suspend
+
+
+
+ Hibernate
+
+
+
+ Print Screen
+ Ekrano spausdinimas
+
+
+ Page Up
+ Ankstesnis puslapis
+
+
+ Page Down
+ Kitas puslapis
+
+
+ Caps Lock
+ Didžiosios raidės
+
+
+ Num Lock
+ Skaitmenys
+
+
+ Number Lock
+ Skaitmenys
+
+
+ Scroll Lock
+ Ekrano slinkimas
+
+
+ Insert
+ Įterpimas
+
+
+ Delete
+ Šalinimas
+
+
+ Escape
+ Grįžimas
+
+
+ System Request
+ Sisteminė užklausa
+
+
+ Yes
+ Taip
+
+
+ No
+ Ne
+
+
+ Context1
+
+
+
+ Context2
+
+
+
+ Context3
+
+
+
+ Context4
+
+
+
+ Call
+ Button to start a call (note: a separate button is used to end the call)
+ Skambinti
+
+
+ Hangup
+ Button to end a call (note: a separate button is used to start the call)
+ Užbaigti skambutį
+
+
+ Toggle Call/Hangup
+ Button that will hang up if we're in call, or make a call if we're not.
+ Skambinti/ užbaigti skambutį
+
+
+ Flip
+
+
+
+ Voice Dial
+ Button to trigger voice dialing
+ Skambinti balsu
+
+
+ Last Number Redial
+ Button to redial the last number called
+ Pakartoti paskiausią skambutį
+
+
+ Camera Shutter
+ Button to trigger the camera shutter (take a picture)
+
+
+
+ Camera Focus
+ Button to focus the camera
+
+
+
+ Kanji
+
+
+
+ Muhenkan
+
+
+
+ Henkan
+
+
+
+ Romaji
+
+
+
+ Hiragana
+
+
+
+ Katakana
+
+
+
+ Hiragana Katakana
+
+
+
+ Zenkaku
+
+
+
+ Hankaku
+
+
+
+ Zenkaku Hankaku
+
+
+
+ Touroku
+
+
+
+ Massyo
+
+
+
+ Kana Lock
+
+
+
+ Kana Shift
+
+
+
+ Eisu Shift
+
+
+
+ Eisu toggle
+
+
+
+ Code input
+
+
+
+ Multiple Candidate
+
+
+
+ Previous Candidate
+
+
+
+ Hangul
+
+
+
+ Hangul Start
+
+
+
+ Hangul End
+
+
+
+ Hangul Hanja
+
+
+
+ Hangul Jamo
+
+
+
+ Hangul Romaja
+
+
+
+ Hangul Jeonja
+
+
+
+ Hangul Banja
+
+
+
+ Hangul PreHanja
+
+
+
+ Hangul PostHanja
+
+
+
+ Hangul Special
+
+
+
+ Ctrl
+ Vald
+
+
+ Shift
+ Lyg2
+
+
+ Alt
+ Alt
+
+
+ Meta
+ Meta
+
+
+ +
+ +
+
+
+ F%1
+ F%1
+
+
+
+ QSlider
+
+ Page left
+ Puslapis kairėn
+
+
+ Page up
+ Puslapis aukštyn
+
+
+ Position
+ Padėtis
+
+
+ Page right
+ Puslapis dešinėn
+
+
+ Page down
+ Puslapis žemyn
+
+
+
+ QSocks5SocketEngine
+
+ Connection to proxy refused
+ Ryšys su įgaliotuoju serveriu atmestas
+
+
+ Connection to proxy closed prematurely
+ Ryšys su įgaliotuoju serveriu netikėtai užbaigtas
+
+
+ Proxy host not found
+ Įgaliotasis serveris nerastas
+
+
+ Connection to proxy timed out
+ Baigėsi ryšiui su įgaliotuoju serveriu skirtas laikas
+
+
+ Proxy authentication failed
+ Tapatumo nustatymas įgaliotajame serveryje nepavyko
+
+
+ Proxy authentication failed: %1
+ Tapatumo nustatymas įgaliotajame serveryje nepavyko: %1
+
+
+ SOCKS version 5 protocol error
+ SOCKSv5 protokolo klaida
+
+
+ General SOCKSv5 server failure
+ Bendrinė SOCKSv5 serverio klaida
+
+
+ Connection not allowed by SOCKSv5 server
+ Ryšį uždraudė SOCKSv5 serveris
+
+
+ TTL expired
+ Baigėsi paketo galiojimo laikas (TTL)
+
+
+ SOCKSv5 command not supported
+ SOCKSv5 komanda nepalaikoma
+
+
+ Address type not supported
+ Adreso tipas nepalaikomas
+
+
+ Unknown SOCKSv5 proxy error code 0x%1
+ Nežinomas SOCKSv5 įgaliotojo serverio klaidos kodas 0x%1
+
+
+ Network operation timed out
+ Baigėsi tinklo operacijai skirtas laikas
+
+
+
+ QSoftKeyManager
+
+ Ok
+ Gerai
+
+
+ OK
+ Gerai
+
+
+ Select
+ Rinktis
+
+
+ Done
+ Baigta
+
+
+ Options
+ Parinktys
+
+
+ Cancel
+ Atsisakyti
+
+
+ Exit
+ Baigti
+
+
+
+ QSpinBox
+
+ More
+ Daugiau
+
+
+ Less
+ Mažiau
+
+
+
+ QSql
+
+ Delete
+ Šalinimas
+
+
+ Delete this record?
+ Pašalinti šį įrašą?
+
+
+ Yes
+ Taip
+
+
+ No
+ Ne
+
+
+ Insert
+ Įterpimas
+
+
+ Update
+ Atnaujinimas
+
+
+ Save edits?
+ Įrašyti pakeitimus?
+
+
+ Cancel
+ Atsisakyti
+
+
+ Confirm
+ Patvirtinimas
+
+
+ Cancel your edits?
+ Atsisakyti atliktų pakeitimų?
+
+
+
+ QSslSocket
+
+ No error
+ Klaidų nėra
+
+
+ The issuer certificate could not be found
+ Liudijimo išdavėjo liudijimas nerastas
+
+
+ The certificate signature could not be decrypted
+ Liudijimo parašo iššifruoti nepavyko
+
+
+ The public key in the certificate could not be read
+ Liudijime esančio viešojo rakto nepavyko perskaityti
+
+
+ The signature of the certificate is invalid
+ Liudijimo parašas negaliojantis
+
+
+ The certificate is not yet valid
+ Liudijimas dar negalioja
+
+
+ The certificate has expired
+ Liudijimo galiojimo laikas pasibaigęs
+
+
+ The certificate's notBefore field contains an invalid time
+ Liudijimo „notBefore“ lauke nurodytas negalimas laikas
+
+
+ The certificate's notAfter field contains an invalid time
+ Liudijimo „notAfter“ lauke nurodytas negalimas laikas
+
+
+ The certificate is self-signed, and untrusted
+ Liudijimas pasirašytas pačiu savimi, todėl juo nepasitikima
+
+
+ The root certificate of the certificate chain is self-signed, and untrusted
+ Liudijimų grandinės šakninis liudijimas pasirašytas pačiu savimi, todėl juo nepasitikima
+
+
+ The issuer certificate of a locally looked up certificate could not be found
+ Lokaliai rasto liudijimo išdavėjo liudijimo nepavyko rasti
+
+
+ No certificates could be verified
+ Liudijimų patikrinti nepavyko
+
+
+ One of the CA certificates is invalid
+ Vienas liudijimų įstaigos liudijimų yra negaliojantis
+
+
+ The basicConstraints path length parameter has been exceeded
+ Viršytas „basicConstraints“ kelio ilgio parametras
+
+
+ The supplied certificate is unsuitable for this purpose
+ Pateikto liudijimo paskirtis netinkama
+
+
+ The root CA certificate is not trusted for this purpose
+ Liudijimų įstaigos šakninio liudijimo paskirtis netinkama
+
+
+ The root CA certificate is marked to reject the specified purpose
+ Liudijimų įstaigos šakniniame liudijime nurodyta atmesti šią paskirtį
+
+
+ The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate
+ Potencialus išdavėjo liudijimas atmestas, nes jo subjekto pavadinimas nesutampa su tikrinamo liudijimo išdavėjo pavadinimu
+
+
+ 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
+ Potencialus išdavėjo liudijimas atmestas, nes jame nurodytas išdavėjo pavadinimas ir serijinis numeris, kurie nesutampa su tikrinamo liudijimo autoriteto rakto identifikatoriumi
+
+
+ The peer did not present any certificate
+ Partnerinis kompiuteris nepateikė jokio liudijimo
+
+
+ The host name did not match any of the valid hosts for this certificate
+ Mazgo vardas nesutampa su nė vienu šiam liudijimui tinkamu mazgo vardu
+
+
+ Unknown error
+ Nežinoma klaida
+
+
+ Error creating SSL context (%1)
+ Klaida sukuriant SSL kontekstą (%1)
+
+
+ Invalid or empty cipher list (%1)
+ Netinkamas arba tuščias šifrų sąrašas (%1)
+
+
+ Cannot provide a certificate with no key, %1
+ Negalima pateikti liudijimo, neturint rakto; %1
+
+
+ Error loading local certificate, %1
+ Klaida įkeliant vietinį liudijimą; %1
+
+
+ Error loading private key, %1
+ Klaida įkeliant privatų raktą; %1
+
+
+ Private key does not certify public key, %1
+ Privatusis raktas netinkamas viešąjam raktui; %1
+
+
+ Error creating SSL session, %1
+ Klaida kuriant SSL sesiją; %1
+
+
+ Error creating SSL session: %1
+ Klaida kuriant SSL sesiją: %1
+
+
+ Unable to write data: %1
+ Nepavyko rašyti duomenų: %1
+
+
+ Unable to decrypt data: %1
+ Nepavyko iššifruoti duomenų: %1
+
+
+ Error while reading: %1
+ Klaida skaitant: %1
+
+
+ Error during SSL handshake: %1
+ Klaida SSL pasisveikinimo metu: %1
+
+
+ The peer certificate is blacklisted
+ Partnerinio kompiuterio liudijimas įtrauktas į juodąjį sąrašą
+
+
+
+ QStateMachine
+
+ Missing initial state in compound state '%1'
+ Sudėtinėje būsenoje „%1“ trūksta pradinės būsenos
+
+
+ Missing default state in history state '%1'
+ Žurnalinėje būsenoje „%1“ trūksta numatytosios būsenos
+
+
+ No common ancestor for targets and source of transition from state '%1'
+ Perėjimo iš būsenos „%1“ šaltinis ir paskirtis neturi bendrų protėvių
+
+
+ Unknown error
+ Nežinoma klaida
+
+
+
+ QSymSQLDriver
+
+ Invalid option:
+
+
+
+ Error opening database
+ Klaida atveriant duomenų bazę
+
+
+ POLICY_DB_DEFAULT must be defined before any other POLICY definitions can be used
+
+
+
+ Unable to begin transaction
+ Nepavyko pradėti transakcijos
+
+
+ Unable to commit transaction
+ Nepavyko užbaigti transakcijos
+
+
+ Unable to rollback transaction
+ Nepavyko anuliuoti transakcijos
+
+
+
+ QSymSQLResult
+
+ Error retrieving column count
+
+
+
+ Error retrieving column name
+
+
+
+ Error retrieving column type
+
+
+
+ Unable to fetch row
+ Nepavyko gauti eilutės
+
+
+ Unable to execute statement
+ Nepavyko įvykdyti sakinio
+
+
+ Statement is not prepared
+
+
+
+ Unable to reset statement
+
+
+
+ Unable to bind parameters
+
+
+
+ Parameter count mismatch
+ Nesutampa parametrų skaičius
+
+
+
+ QSymbianSocketEngine
+
+ Unable to initialize non-blocking socket
+ Nepavyko inicijuoti neblokuojamo lizdo
+
+
+ Unable to initialize broadcast socket
+ Nepavyko inicijuoti lizdo transliavimui
+
+
+ Attempt to use IPv6 socket on a platform with no IPv6 support
+ Bandoma naudoti IPv6 lizdą platformoje, kurioje IPv6 protokolas nepalaikomas
+
+
+ The remote host closed the connection
+ Nutolęs mazgas užbaigė ryšį
+
+
+ Network operation timed out
+ Baigėsi tinklo operacijai skirtas laikas
+
+
+ Out of resources
+ Pritrūko išteklių
+
+
+ Unsupported socket operation
+ Nepalaikoma operacija su lizdu
+
+
+ Protocol type not supported
+ Nepalaikomas protokolo tipas
+
+
+ Invalid socket descriptor
+ Netinkamas lizdo deskriptorius
+
+
+ Host unreachable
+ Mazgas nepasiekiamas
+
+
+ Network unreachable
+ Tinklas nepasiekiamas
+
+
+ Permission denied
+ Nepakanka teisių
+
+
+ Connection timed out
+ Baigėsi ryšiui skirtas laikas
+
+
+ Connection refused
+ Ryšys atmestas
+
+
+ The bound address is already in use
+ Bandomas naudoti adresas jau yra naudojamas
+
+
+ The address is not available
+ Adresas neleidžiamas
+
+
+ The address is protected
+ Adresas apsaugotas
+
+
+ Datagram was too large to send
+ Duomenų paketas per didelis, kad galėtų būti išsiųstas
+
+
+ Unable to send a message
+ Nepavyko išsiųsti pranešimo
+
+
+ Unable to receive a message
+ Nepavyko gauti pranešimo
+
+
+ Unable to write
+ Rašymas nepavyko
+
+
+ Network error
+ Tinklo klaida
+
+
+ Another socket is already listening on the same port
+ Tą patį prievadą klausymui jau naudoja kitas lizdas
+
+
+ Operation on non-socket
+ Operacija ne su lizdu
+
+
+ The proxy type is invalid for this operation
+ Įgaliotojo serverio tipas netinkamas šiai operacijai
+
+
+ The address is invalid for this operation
+ Adresas šiai operacijai netinkamas
+
+
+ The specified network session is not opened
+ Nurodytas tinklo seansas neatvertas
+
+
+ Unknown error
+ Nežinoma klaida
+
+
+
+ QSystemSemaphore
+
+ %1: permission denied
+ %1: nepakanka teisių
+
+
+ %1: already exists
+ %1: jau egzistuoja
+
+
+ %1: does not exist
+ %1: neegzistuoja
+
+
+ %1: out of resources
+ %1: pritrūko išteklių
+
+
+ %1: name error
+ %1: vardo klaida
+
+
+ %1: unknown error %2
+ %1: nežinoma klaida %2
+
+
+
+ QTDSDriver
+
+ Unable to open connection
+ Nepavyko atverti ryšio
+
+
+ Unable to use database
+ Nepavyko naudoti duomenų bazės
+
+
+
+ QTabBar
+
+ Scroll Left
+ Slinkti kairėn
+
+
+ Scroll Right
+ Slinkti dešinėn
+
+
+
+ QTcpServer
+
+ Operation on socket is not supported
+ Operacija su lizdu nepalaikoma
+
+
+
+ QTextControl
+
+ &Undo
+ &Atšaukti
+
+
+ &Redo
+ A&tstatyti
+
+
+ Cu&t
+ Iški&rpti
+
+
+ &Copy
+ &Kopijuoti
+
+
+ Copy &Link Location
+ Kopijuoti &saito adresą
+
+
+ &Paste
+ Į&dėti
+
+
+ Delete
+ Pašalinti
+
+
+ Select All
+ Pažymėti viską
+
+
+
+ QToolButton
+
+ Press
+ Nuspausti
+
+
+ Open
+ Atverti
+
+
+
+ QUdpSocket
+
+ This platform does not support IPv6
+ Šioje platformoje IPv6 protokolas nepalaikomas
+
+
+
+ QUndoGroup
+
+ Undo
+ Atšaukti
+
+
+ Redo
+ Atstatyti
+
+
+ Undo %1
+ Atšaukti „%1“
+
+
+ Undo
+ Default text for undo action
+ Atšaukti
+
+
+ Redo %1
+ Atstatyti „%1“
+
+
+ Redo
+ Default text for redo action
+ Atstatyti
+
+
+
+ QUndoModel
+
+ <empty>
+ <tuščia>
+
+
+
+ QUndoStack
+
+ Undo
+ Atšaukti
+
+
+ Redo
+ Atstatyti
+
+
+ Undo %1
+ Atšaukti „%1“
+
+
+ Undo
+ Default text for undo action
+ Atšaukti
+
+
+ Redo %1
+ Atstatyti „%1“
+
+
+ Redo
+ Default text for redo action
+ Atstatyti
+
+
+
+ QUnicodeControlCharacterMenu
+
+ LRM Left-to-right mark
+ LRM Krypties iš kairės į dešinę ženklas
+
+
+ RLM Right-to-left mark
+ RLM Krypties iš dešinės į kairę ženklas
+
+
+ ZWJ Zero width joiner
+ ZWJ Nulinio pločio jungimo ženklas
+
+
+ ZWNJ Zero width non-joiner
+ ZWNJ Nulinio pločio nejungimo ženklas
+
+
+ ZWSP Zero width space
+ ZWSP Nulinio pločio tarpas
+
+
+ LRE Start of left-to-right embedding
+ LRE Įterpties iš kairės į dešinę pradžia
+
+
+ RLE Start of right-to-left embedding
+ RLE Įterpties iš dešinės į kairę pradžia
+
+
+ LRO Start of left-to-right override
+ LRO Perdengiantis iš kairės į dešinę pradžia
+
+
+ RLO Start of right-to-left override
+ RLO Perdengimo iš dešinės į kairę pradžia
+
+
+ PDF Pop directional formatting
+ PDF Ankstesnės krypties ženklas
+
+
+ Insert Unicode control character
+ Įterpti unikodo valdymo ženklą
+
+
+
+ QWebFrame
+
+ Request cancelled
+ Užklausos atsisakyta
+
+
+ Request canceled
+ Užklausos atsisakyta
+
+
+ Request blocked
+ Užklausa uždrausta
+
+
+ Cannot show URL
+ URL parodyti nepavyko
+
+
+ Frame load interrupted by policy change
+ Kadro įkėlimas nutrauktas dėl politikos pakeitimo
+
+
+ Cannot show mimetype
+ Šio MIME tipo parodyti negalima
+
+
+ File does not exist
+ Failas neegzistuoja
+
+
+ Loading is handled by the media engine
+ Įkėlimą vykdo mediją apdorojantis komponentas
+
+
+
+ QWebPage
+
+ Redirection limit reached
+ Pasiekta peradresavimų kiekio riba
+
+
+ Bad HTTP request
+ Bloga HTTP užklausa
+
+
+ %n file(s)
+ number of chosen file
+
+ %n failas
+ %n failai
+ %n failų
+
+
+
+ Submit
+ default label for Submit buttons in forms on web pages
+ Pateikti
+
+
+ Submit
+ Submit (input element) alt text for <input> elements with no alt, title, or value
+ Pateikti
+
+
+ Reset
+ default label for Reset buttons in forms on web pages
+ Atstatyti
+
+
+ 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'
+ Tai – sąrašas, kuriame galite vykdyti paiešką. Įveskite reikšminius paieškos žodžius:
+
+
+ Choose File
+ title for file button used in HTML forms
+ Parinkti failą
+
+
+ No file selected
+ text to display in file button used in HTML forms when no file is selected
+ Failas nepasirinktas
+
+
+ Details
+ text to display in <details> tag when it has no <summary> child
+ Išsamiau
+
+
+ Open in New Window
+ Open in New Window context menu item
+ Atverti naujame lange
+
+
+ Save Link...
+ Download Linked File context menu item
+ Įrašyti saistomą objektą kaip…
+
+
+ Copy Link
+ Copy Link context menu item
+ Kopijuoti saito adresą
+
+
+ Open Image
+ Open Image in New Window context menu item
+ Atverti paveikslą
+
+
+ Save Image
+ Download Image context menu item
+ Įrašyti paveikslą
+
+
+ Copy Image
+ Copy Link context menu item
+ Kopijuoti paveikslą
+
+
+ Copy Image Address
+ Copy Image Address menu item
+ Kopijuoti paveikslo adresą
+
+
+ Open Video
+ Open Video in New Window
+ Atverti vaizdo įrašą
+
+
+ Open Audio
+ Open Audio in New Window
+ Atverti garso įrašą
+
+
+ Copy Video
+ Copy Video Link Location
+ Kopijuoti vaizdo įrašą
+
+
+ Copy Audio
+ Copy Audio Link Location
+ Kopijuoti garso įrašą
+
+
+ Toggle Controls
+ Toggle Media Controls
+ Rodyti / nerodyti mygtukus
+
+
+ Toggle Loop
+ Toggle Media Loop Playback
+ Įjungti / išjungti kartojimą
+
+
+ Enter Fullscreen
+ Switch Video to Fullscreen
+ Rodyti visame ekrane
+
+
+ Play
+ Play
+ Groti
+
+
+ Pause
+ Pause
+ Pristabdyti
+
+
+ Mute
+ Mute
+ Išjungti garsą
+
+
+ Open Frame
+ Open Frame in New Window context menu item
+ Atverti kadrą
+
+
+ Copy
+ Copy context menu item
+ Kopijuoti
+
+
+ Go Back
+ Back context menu item
+ Grįžti atgal
+
+
+ Go Forward
+ Forward context menu item
+ Eiti pirmyn
+
+
+ Stop
+ Stop context menu item
+ Stabdyti
+
+
+ Reload
+ Reload context menu item
+ Atsiųsti iš naujo
+
+
+ Cut
+ Cut context menu item
+ Iškirpti
+
+
+ Paste
+ Paste context menu item
+ Įdėti
+
+
+ Select All
+ Select All context menu item
+ Pažymėti viską
+
+
+ No Guesses Found
+ No Guesses Found context menu item
+ Pasiūlymų nėra
+
+
+ Ignore
+ Ignore Spelling context menu item
+ Nepaisyti
+
+
+ Add To Dictionary
+ Learn Spelling context menu item
+ Įtraukti į žodyną
+
+
+ Search The Web
+ Search The Web context menu item
+ Ieškoti saityne
+
+
+ Look Up In Dictionary
+ Look Up in Dictionary context menu item
+ Ieškoti žodyne
+
+
+ Open Link
+ Open Link context menu item
+ Atverti saistomą objektą
+
+
+ Ignore
+ Ignore Grammar context menu item
+ Nepaisyti
+
+
+ Spelling
+ Spelling and Grammar context sub-menu item
+ Rašyba
+
+
+ Show Spelling and Grammar
+ menu item title
+ Rodyti rašybą ir gramatiką
+
+
+ Hide Spelling and Grammar
+ menu item title
+ Nerodyti rašybos ir gramatikos
+
+
+ Check Spelling
+ Check spelling context menu item
+ Patikrinti rašybą
+
+
+ Check Spelling While Typing
+ Check spelling while typing context menu item
+ Tikrinti rašybą rašant tekstą
+
+
+ Check Grammar With Spelling
+ Check grammar with spelling context menu item
+ Tikrinti gramatiką kartu su rašyba
+
+
+ Fonts
+ Font context sub-menu item
+ Šriftai
+
+
+ Bold
+ Bold context menu item
+ Pastorintas
+
+
+ Italic
+ Italic context menu item
+ Kursyvas
+
+
+ Underline
+ Underline context menu item
+ Pabrauktas
+
+
+ Outline
+ Outline context menu item
+ Kontūrinis
+
+
+ Direction
+ Writing direction context sub-menu item
+ Kryptis
+
+
+ Text Direction
+ Text direction context sub-menu item
+ Teksto kryptis
+
+
+ Default
+ Default writing direction context menu item
+ Numatytoji
+
+
+ Left to Right
+ Left to Right context menu item
+ Iš kairės į dešinę
+
+
+ Right to Left
+ Right to Left context menu item
+ Iš dešinės į kairę
+
+
+ Inspect
+ Inspect Element context menu item
+ Tirti
+
+
+ No recent searches
+ Label for only item in menu that appears when clicking on the search field image, when no searches have been performed
+ Paskiausių paieškų nėra
+
+
+ Recent searches
+ label for first item in the menu that appears when clicking on the search field image, used as embedded menu title
+ Paskiausios paieškos
+
+
+ Clear recent searches
+ menu item in Recent Searches menu that empties menu's contents
+ Išvalyti paskiausių paieškų sąrašą
+
+
+ Missing Plug-in
+ Label text to be used when a plug-in is missing
+ Trūksta papildinio
+
+
+ Unknown
+ Unknown filesize FTP directory listing item
+ Nežinomas
+
+
+ %1 (%2x%3 pixels)
+ Title string for images
+ %1 (%2×%3 taškų)
+
+
+ Loading...
+ Media controller status message when the media is loading
+ Įkeliama…
+
+
+ Live Broadcast
+ Media controller status message when watching a live broadcast
+ Tiesioginė transliacija
+
+
+ Audio Element
+ Media controller element
+ Audio elementas
+
+
+ Video Element
+ Media controller element
+ Video elementas
+
+
+ Mute Button
+ Media controller element
+ Mygtukas „Išjungti garsą“
+
+
+ Unmute Button
+ Media controller element
+ Mygtukas „Įjungti garsą“
+
+
+ Play Button
+ Media controller element
+ Mygtukas „Leisti“
+
+
+ Pause Button
+ Media controller element
+ Mygtukas „Pristabdyti“
+
+
+ Slider
+ Media controller element
+ Šliaužiklis
+
+
+ Slider Thumb
+ Media controller element
+ Šliaužiklio rankenėlė
+
+
+ Rewind Button
+ Media controller element
+ Mygtukas „Atsukti atgal“
+
+
+ Return to Real-time Button
+ Media controller element
+ Mygtukas „Grįžti į esamą laiką“
+
+
+ Elapsed Time
+ Media controller element
+ Praėjęs laikas
+
+
+ Remaining Time
+ Media controller element
+ Likęs laikas
+
+
+ Status Display
+ Media controller element
+ Būsenos indikatorius
+
+
+ Fullscreen Button
+ Media controller element
+ Mygtukas „Visas ekranas“
+
+
+ Seek Forward Button
+ Media controller element
+ Mygtukas „Ieškoti pirmyn“
+
+
+ Seek Back Button
+ Media controller element
+ Mygtukas „Ieškoti atgal“
+
+
+ Audio element playback controls and status display
+ Media controller element
+ Audio elemento perklausos valdikliai ir būsenos indikatorius
+
+
+ Video element playback controls and status display
+ Media controller element
+ Video elemento peržiūros valdikliai ir būsenos indikatorius
+
+
+ Mute audio tracks
+ Media controller element
+ Išjungti audio takelių garsą
+
+
+ Unmute audio tracks
+ Media controller element
+ Įjungti audio takelių garsą
+
+
+ Begin playback
+ Media controller element
+ Pradėti perklausą
+
+
+ Pause playback
+ Media controller element
+ Pristabdyti perklausą
+
+
+ Movie time scrubber
+ Media controller element
+ Įrašo peržiūros eigos juosta
+
+
+ Movie time scrubber thumb
+ Media controller element
+ Įrašo peržiūros eigos juostos rankenėlė
+
+
+ Rewind movie
+ Media controller element
+ Atsukti įrašą atgal
+
+
+ Return streaming movie to real-time
+ Media controller element
+ Grąžinti transliaciją į esamą laiką
+
+
+ Current movie time
+ Media controller element
+ Praėjęs įrašo laikas
+
+
+ Remaining movie time
+ Media controller element
+ Likęs įrašo laikas
+
+
+ Current movie status
+ Media controller element
+ Dabartinė įrašo būsena
+
+
+ Play movie in full-screen mode
+ Media controller element
+ Rodyti vaizdo įrašą per visą ekraną
+
+
+ Seek quickly back
+ Media controller element
+ Ieškoti atgal
+
+
+ Seek quickly forward
+ Media controller element
+ Ieškoti pirmyn
+
+
+ Indefinite time
+ Media time description
+ Laikas neapibrėžtas
+
+
+ %1 days %2 hours %3 minutes %4 seconds
+ Media time description
+ %1 d. %2 val. %3 min. %4 sek.
+
+
+ %1 hours %2 minutes %3 seconds
+ Media time description
+ %1 val. %2 min. %3 sek.
+
+
+ %1 minutes %2 seconds
+ Media time description
+ %1 min. %2 sek.
+
+
+ %1 seconds
+ Media time description
+ %1 sek.
+
+
+ Scroll here
+ Slinkti čia
+
+
+ Left edge
+ Kairysis kraštas
+
+
+ Top
+ Viršus
+
+
+ Right edge
+ Dešinysis kraštas
+
+
+ Bottom
+ Apačia
+
+
+ Page left
+ Puslapis kairėn
+
+
+ Page up
+ Puslapis aukštyn
+
+
+ Page right
+ Puslapis dešinėn
+
+
+ Page down
+ Puslapis žemyn
+
+
+ Scroll left
+ Slinkti kairėn
+
+
+ Scroll up
+ Slinkti aukštyn
+
+
+ Scroll right
+ Slinkti dešinėn
+
+
+ Scroll down
+ Slinkti žemyn
+
+
+ JavaScript Alert - %1
+ „JavaScript“ įspėjimas – %1
+
+
+ JavaScript Confirm - %1
+ „JavaScript“ patvirtinimas – %1
+
+
+ JavaScript Prompt - %1
+ „JavaScript“ užklausa – %1
+
+
+ JavaScript Problem - %1
+ „JavaScript“ problema – %1
+
+
+ The script on this page appears to have a problem. Do you want to stop the script?
+ Panašu, jog šiame tinklalapyje veikiantis scenarijus susidūrė su problema. Ar norite nutraukti scenarijaus vykdymą?
+
+
+ Move the cursor to the next character
+ Perkelti žymeklį ties tolesniu simboliu
+
+
+ Move the cursor to the previous character
+ Perkelti žymeklį ties ankstesniu simboliu
+
+
+ Move the cursor to the next word
+ Perkelti žymeklį ties tolesniu žodžiu
+
+
+ Move the cursor to the previous word
+ Perkelti žymeklį ties ankstesniu žodžiu
+
+
+ Move the cursor to the next line
+ Perkelti žymeklį į tolesnę eilutę
+
+
+ Move the cursor to the previous line
+ Perkelti žymeklį į ankstesnę eilutę
+
+
+ Move the cursor to the start of the line
+ Perkelti žymeklį į eilutės pradžią
+
+
+ Move the cursor to the end of the line
+ Perkelti žymeklį į eilutės pabaigą
+
+
+ Move the cursor to the start of the block
+ Perkelti žymeklį į bloko pradžią
+
+
+ Move the cursor to the end of the block
+ Perkelti žymeklį į bloko pabaigą
+
+
+ Move the cursor to the start of the document
+ Perkelti žymeklį į dokumento pradžią
+
+
+ Move the cursor to the end of the document
+ Perkelti žymeklį į dokumento pabaigą
+
+
+ Select all
+ Pažymėti viską
+
+
+ Select to the next character
+ Pažymėti iki tolesnio simbolio
+
+
+ Select to the previous character
+ Pažymėti iki ankstesnio simbolio
+
+
+ Select to the next word
+ Pažymėti iki tolesnio žodžio
+
+
+ Select to the previous word
+ Pažymėti iki ankstesnio žodžio
+
+
+ Select to the next line
+ Pažymėti iki tolesnės eilutės
+
+
+ Select to the previous line
+ Pažymėti iki ankstesnės eilutės
+
+
+ Select to the start of the line
+ Pažymėti iki eilutės pradžios
+
+
+ Select to the end of the line
+ Pažymėti iki eilutės pabaigos
+
+
+ Select to the start of the block
+ Pažymėti iki bloko pradžios
+
+
+ Select to the end of the block
+ Pažymėti iki bloko pabaigos
+
+
+ Select to the start of the document
+ Pažymėti iki dokumento pradžios
+
+
+ Select to the end of the document
+ Pažymėti iki dokumento pabaigos
+
+
+ Delete to the start of the word
+ Pašalinti iki žodžio pradžios
+
+
+ Delete to the end of the word
+ Pašalinti iki žodžio pabaigos
+
+
+ Insert a new paragraph
+ Įterpti naują pastraipą
+
+
+ Insert a new line
+ Įterpti naują eilutę
+
+
+ Paste and Match Style
+ Įdėti ir priderinti stilių
+
+
+ Remove formatting
+ Pašalinti formatavimo požymius
+
+
+ Strikethrough
+ Perbraukti
+
+
+ Subscript
+ Apatinis indeksas
+
+
+ Superscript
+ Viršutinis indeksas
+
+
+ Insert Bulleted List
+ Įterpti suženklintąjį sąrašą
+
+
+ Insert Numbered List
+ Įterpti numeruotąjį sąrašą
+
+
+ Indent
+ Didinti įtrauką
+
+
+ Outdent
+ Mažinti įtrauką
+
+
+ Center
+ Centruoti
+
+
+ Justify
+ Lygiuoti abu kraštus
+
+
+ Align Left
+ Lygiuoti dešinįjį kraštą
+
+
+ Align Right
+ Lygiuoti kairįjį kraštą
+
+
+ Web Inspector - %2
+ Saityno tyriklis – %2
+
+
+
+ QWhatsThisAction
+
+ What's This?
+ Kas tai?
+
+
+
+ QWidget
+
+ *
+ *
+
+
+
+ QWizard
+
+ Go Back
+ Grįžti atgal
+
+
+ < &Back
+ < At&gal
+
+
+ Continue
+ Tęsti
+
+
+ &Next
+ &Toliau
+
+
+ &Next >
+ &Toliau >
+
+
+ Commit
+ Pritaikyti
+
+
+ Done
+ Baigta
+
+
+ &Finish
+ &Baigti
+
+
+ Cancel
+ Atsisakyti
+
+
+ Help
+ Žinynas
+
+
+ &Help
+ &Žinynas
+
+
+
+ QWorkspace
+
+ Close
+ Užverti
+
+
+ Minimize
+ Sumažinti
+
+
+ Restore Down
+ Atkurti dydį
+
+
+ &Restore
+ &Atkurti
+
+
+ &Move
+ &Perkelti
+
+
+ &Size
+ &Keisti dydį
+
+
+ Mi&nimize
+ Su&mažinti
+
+
+ Ma&ximize
+ Iš&didinti
+
+
+ &Close
+ &Užverti
+
+
+ Stay on &Top
+ &Visada viršuje
+
+
+ Sh&ade
+ &Suvynioti
+
+
+ %1 - [%2]
+ %1 – [%2]
+
+
+ &Unshade
+ I&švynioti
+
+
+
+ QXml
+
+ no error occurred
+ klaidų neaptikta
+
+
+ error triggered by consumer
+ vartotojo iššaukta klaida
+
+
+ unexpected end of file
+ netikėta failo pabaiga
+
+
+ more than one document type definition
+ daugiau nei viena dokumento tipo apibrėžtis
+
+
+ error occurred while parsing element
+ analizuojant elementą, įvyko klaida
+
+
+ tag mismatch
+ nesutampančios gairės
+
+
+ error occurred while parsing content
+ analizuojant turinį, įvyko klaida
+
+
+ unexpected character
+ netikėtas simbolis
+
+
+ invalid name for processing instruction
+ netinkamas apdorojimo komandos vardas
+
+
+ version expected while reading the XML declaration
+ skaitant XML aprašą, tikėtasi versijos
+
+
+ wrong value for standalone declaration
+ netinkama „standalone“ deklaracijos reikšmė
+
+
+ encoding declaration or standalone declaration expected while reading the XML declaration
+ skaitant XML aprašą, tikėtasi koduotės aprašo arba „standalone“ deklaracijos
+
+
+ standalone declaration expected while reading the XML declaration
+ skaitant XML aprašą, tikėtasi „standalone“ deklaracijos
+
+
+ error occurred while parsing document type definition
+ analizuojant dokumento tipo apibrėžtį, įvyko klaida
+
+
+ letter is expected
+ tikėtasi raidės
+
+
+ error occurred while parsing comment
+ analizuojant komentarą, įvyko klaida
+
+
+ error occurred while parsing reference
+ analizuojant rodyklę, įvyko klaida
+
+
+ internal general entity reference not allowed in DTD
+ nuorodos į vidines bendrines esybes DTD apibrėžtyse neleidžiamos
+
+
+ external parsed general entity reference not allowed in attribute value
+ nuorodos į išorines išanalizuotas bendrines esybes atributų reikšmėse neleidžiamos
+
+
+ external parsed general entity reference not allowed in DTD
+ nuorodos į išorines išanalizuotas bendrines esybes DTD apibrėžtyse neleidžiamos
+
+
+ unparsed entity reference in wrong context
+ nuoroda į neišanalizuotą esybę netinkamame kontekste
+
+
+ recursive entities
+ rekusyvios esybės
+
+
+ error in the text declaration of an external entity
+ klaida išorinės esybės tekstinėje deklaracijoje
+
+
+
+ QXmlPatternistCLI
+
+ Warning in %1, at line %2, column %3: %4
+ Įspėjimas ties failo „%1“ %2 eilutės %3 simboliu: %4
+
+
+ Warning in %1: %2
+ Įspėjimas faile „%1“: %2
+
+
+ Unknown location
+ Nežinoma vieta
+
+
+ Error %1 in %2, at line %3, column %4: %5
+ Klaida %1 ties failo „%2“ %3 eilutės %4 simboliu: %5
+
+
+ Error %1 in %2: %3
+ Klaida %1 faile „%2“: %3
+
+
+
+ QXmlStream
+
+ Extra content at end of document.
+ Papildomas turinys dokumento pabaigoje.
+
+
+ Invalid entity value.
+ Netinkama esybės reikšmė.
+
+
+ Invalid XML character.
+ Neleistinas XML simbolis.
+
+
+ Sequence ']]>' not allowed in content.
+ Simbolių seka „]]>“ turinyje neleidžiama.
+
+
+ Encountered incorrectly encoded content.
+ Aptikta neteisingai užkioduoto turinio.
+
+
+ Namespace prefix '%1' not declared
+ Vardų erdvės prefiksas „%1“ nebuvo deklaruotas
+
+
+ Illegal namespace declaration.
+ Neleistinos vardų erdvės deklaracija.
+
+
+ Attribute redefined.
+ Atributas apibrėžiamas pakartotinai.
+
+
+ Unexpected character '%1' in public id literal.
+
+
+
+ Invalid XML version string.
+ Neleistina XML versijos eilutė.
+
+
+ Unsupported XML version.
+ Nepalaikoma XML versija.
+
+
+ The standalone pseudo attribute must appear after the encoding.
+ Pseudoatributas „standalone“ turi būti įrašomas po koduotės aprašo.
+
+
+ %1 is an invalid encoding name.
+ Koduotės pavadinimas „%1“ yra netinkamas.
+
+
+ Encoding %1 is unsupported
+ Koduotė „%1“ nepalaikoma
+
+
+ Standalone accepts only yes or no.
+ „standalone“ deklaracijos reikšmė gali būti tik „yes“ arba „no“.
+
+
+ Invalid attribute in XML declaration.
+ Neleistinas atributas XML deklaracijoje.
+
+
+ Premature end of document.
+ Netikėta dokumento pabaiga.
+
+
+ Invalid document.
+ Neteisingas dokumentas.
+
+
+ Expected
+ Laukta
+
+
+ , but got '
+ , bet gauta '
+
+
+ Unexpected '
+ Netikėta '
+
+
+ Expected character data.
+ Laukta simbolinių duomenų.
+
+
+ Recursive entity detected.
+ Aptikta rekursyvi esybė.
+
+
+ Start tag expected.
+ Laukta atveriančiosios gairės.
+
+
+ NDATA in parameter entity declaration.
+ NDATA parametro esybės deklaracijoje.
+
+
+ XML declaration not at start of document.
+ XML aprašas ne dokumento pradžioje.
+
+
+ %1 is an invalid processing instruction name.
+ Apdorojimo komandos vardas „%1“ yra netinkamas.
+
+
+ Invalid processing instruction name.
+ Neleistinas apdorojimo komandos vardas.
+
+
+ %1 is an invalid PUBLIC identifier.
+ PUBLIC identifikatorius „%1“ yra netinkamas.
+
+
+ Invalid XML name.
+ Neleistinas XML vardas.
+
+
+ Opening and ending tag mismatch.
+ Nesutampa atveriančioji ir užveriančioji gairės.
+
+
+ Entity '%1' not declared.
+ Esybė „%1“ nedeklaruota.
+
+
+ Reference to unparsed entity '%1'.
+ Nuoroda į neišanalizuotą esybę „%1“.
+
+
+ Reference to external entity '%1' in attribute value.
+ Nuoroda į išorinę esybę „%1“ atributo reikšmėje.
+
+
+ Invalid character reference.
+ Netinkama nuoroda į simbolį.
+
+
+
+ QmlJSDebugger::LiveSelectionTool
+
+ Items
+ Elementai
+
+
+
+ QmlJSDebugger::QmlToolBar
+
+ Inspector Mode
+ Tyrimo veiksena
+
+
+ Play/Pause Animations
+ Pristabdyti / leisti animacijas
+
+
+ Select
+ Žymėti
+
+
+ Select (Marquee)
+ Žymėti (stačiakampį)
+
+
+ Zoom
+ Mastelis
+
+
+ Color Picker
+ Spalvų parinkiklis
+
+
+ Apply Changes to QML Viewer
+ Pritaikyti paketimus QML žiūryklei
+
+
+ Apply Changes to Document
+ Pritaikyti pakeitimus dokumentui
+
+
+ Tools
+ Priemonės
+
+
+ 1x
+ 1x
+
+
+ 0.5x
+ 0,5x
+
+
+ 0.25x
+ 0,25x
+
+
+ 0.125x
+ 0,125x
+
+
+ 0.1x
+ 0,1x
+
+
+
+ QmlJSDebugger::ToolBarColorBox
+
+ Copy Color
+ Kopijuoti spalvą
+
+
+
+ QmlJSDebugger::ZoomTool
+
+ Zoom to &100%
+ &Atstatyti mastelį
+
+
+ Zoom In
+ Padidinti
+
+
+ Zoom Out
+ Sumažinti
+
+
+
+ QtXmlPatterns
+
+ %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.
+
+
+
+ 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.
+
+
+
+ %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.
+
+
+
+ Ambiguous rule match.
+
+
+
+ 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.
+
+
+
+ A comment cannot contain %1
+
+
+
+ A comment cannot end with a %1.
+
+
+
+ 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.
+
+
+
+ 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, %2 is 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
+
+
+
+ The parameter %1 is passed, but no corresponding %2 exists.
+
+
+
+ The parameter %1 is required, but no corresponding %2 is supplied.
+
+
+
+ %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 root node of the second argument to function %1 must be a document node. %2 is not a document node.
+
+
+
+ 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 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.
+
+
+
+ The URI cannot have a fragment
+
+
+
+ Required cardinality is %1; got cardinality %2.
+
+
+
+ The item %1 did not match the required type %2.
+
+
+
+ The variable %1 is unused
+
+
+
+ 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 is an unknown schema type.
+
+
+
+ A template with name %1 has already been declared.
+
+
+
+ %1 is not a valid numeric literal.
+
+
+
+ Only one %1 declaration can occur in the query prolog.
+
+
+
+ The initialization of variable %1 depends on itself
+
+
+
+ No variable with name %1 exists
+
+
+
+ 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.
+
+
+
+ The keyword %1 cannot occur with any other mode name.
+
+
+
+ The value of attribute %1 must be of type %2, which %3 isn't.
+
+
+
+ It is not possible to redeclare prefix %1.
+
+
+
+ The prefix %1 cannot be bound. By default, it is already bound to the namespace %2.
+
+
+
+ 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
+
+
+
+ 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 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 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.
+
+
+
+ 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
+
+
+
+ No function with 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 with 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 a valid name for a processing-instruction.
+
+
+
+ %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.
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ %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
+
+
+
+ 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 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.
+
+
+
+ %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.
+
+
+
+ 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 cannot contain other elements, as it has fixed 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.
+
+
+
+ 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.
+
+
+
+
--
cgit v0.12
From 207fb45ce7bac66ab53a0770d2bfb50d8d1997d8 Mon Sep 17 00:00:00 2001
From: Eskil Abrahamsen Blomfeldt
Date: Tue, 25 Oct 2011 15:58:49 +0200
Subject: Fix possible crash in glyph cache when deleting and creating contexts
The freeResource(), used in the glyph cache as a notifier of when the
owner context of the cache disappears, is never called if the context
is in a group with other contexts that share its resources. This
implements a second notifier function instead which can be used to
invalidate the glyph cache when its context is destroyed.
Task-number: QTBUG-22324
Reviewed-by: Samuel
---
src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h | 4 ++++
src/opengl/qgl.cpp | 11 ++++++++++-
src/opengl/qgl_p.h | 1 +
3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h b/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h
index 83ca06d..1a8bb0b 100644
--- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h
+++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h
@@ -144,6 +144,10 @@ public:
void clear();
+ void contextDeleted(const QGLContext *context) {
+ if (ctx == context)
+ ctx = 0;
+ }
void freeResource(void *) { ctx = 0; }
private:
diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp
index 423fa08..eaaf9a8 100644
--- a/src/opengl/qgl.cpp
+++ b/src/opengl/qgl.cpp
@@ -5722,6 +5722,11 @@ void QGLContextGroupResourceBase::cleanup(const QGLContext *ctx)
}
}
+void QGLContextGroupResourceBase::contextDeleted(const QGLContext *ctx)
+{
+ Q_UNUSED(ctx);
+}
+
void QGLContextGroupResourceBase::cleanup(const QGLContext *ctx, void *value)
{
#ifdef QT_GL_CONTEXT_RESOURCE_DEBUG
@@ -5737,12 +5742,16 @@ void QGLContextGroupResourceBase::cleanup(const QGLContext *ctx, void *value)
void QGLContextGroup::cleanupResources(const QGLContext *context)
{
+ // Notify all resources that a context has been deleted
+ QHash::ConstIterator it;
+ for (it = m_resources.begin(); it != m_resources.end(); ++it)
+ it.key()->contextDeleted(context);
+
// If there are still shares, then no cleanup to be done yet.
if (m_shares.size() > 1)
return;
// Iterate over all resources and free each in turn.
- QHash::ConstIterator it;
for (it = m_resources.begin(); it != m_resources.end(); ++it)
it.key()->cleanup(context, it.value());
}
diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h
index de349a7..b6fc96a 100644
--- a/src/opengl/qgl_p.h
+++ b/src/opengl/qgl_p.h
@@ -725,6 +725,7 @@ public:
void cleanup(const QGLContext *context);
void cleanup(const QGLContext *context, void *value);
virtual void freeResource(void *value) = 0;
+ virtual void contextDeleted(const QGLContext *ctx);
protected:
QList m_groups;
--
cgit v0.12
From c47b2e9c5fc43ef9c55c8ee884e83a33da00ae0b Mon Sep 17 00:00:00 2001
From: Mark Brand
Date: Wed, 26 Oct 2011 12:59:31 +0200
Subject: Update changelog for Qt 4.8
---
dist/changes-4.8.0 | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/dist/changes-4.8.0 b/dist/changes-4.8.0
index 0d494ab..17caec6 100644
--- a/dist/changes-4.8.0
+++ b/dist/changes-4.8.0
@@ -129,6 +129,7 @@ QtGui
- QUndoView: Allow different text for undo actions and items
- QCommonStyle: Fix overrides from the proxy style [QTBUG-20849]
- QWindowsVistaStyle: Draw CE_ProgressBarGroove correctly with PP_TRANSPARENTBAR.
+ - Removed obsolete -qt-gif configure option.
QtNetwork
---------
@@ -175,6 +176,11 @@ QtWebKit
QtSql
-----
- Update sqlite to 3.7.7.1
+ - QSqlField now initializes the type of its QVariant value to its own type.
+ - QSqlField's generated flag now controls generation of SQL insert/update/delete
+ in QSqlDriver::sqlStatement(). QSqlTableModel initializes the flag to false in
+ new edit records and sets it to true when a value is set. Applications can still
+ manipulate generated flags directly to control SQL generation. [QTBUG-13211]
QtSvg
-----
@@ -226,6 +232,7 @@ Qt for Windows
- The small 16x16 version of the default window icon is now being loaded
correctly from the IDI_ICON1 resource.
- Fixed version checking for untested versions of Windows. (QTBUG-20480)
+ - Qt libs on MinGW now come with pkg-config .pc files.
Qt for Mac OS X
---------------
--
cgit v0.12
From cc084a1a05c53035bf401aed2e08e3c30a75e509 Mon Sep 17 00:00:00 2001
From: Martin Jones
Date: Thu, 27 Oct 2011 15:22:45 +1000
Subject: Adding items to a view with no delegate crashes.
If there is no delegate then clear state and return.
Change-Id: I786b9bc4018706797056fbd1ad25d25663102707
Task-number: QTBUG-22379
Reviewed-by: Andrew den Exter
---
src/declarative/graphicsitems/qdeclarativegridview.cpp | 10 ++++++++++
src/declarative/graphicsitems/qdeclarativelistview.cpp | 15 +++++++++++++++
2 files changed, 25 insertions(+)
diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp
index 29c714d..feca6b5 100644
--- a/src/declarative/graphicsitems/qdeclarativegridview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp
@@ -2852,6 +2852,11 @@ void QDeclarativeGridView::itemsInserted(int modelIndex, int count)
addedVisible = true;
}
FxGridItem *item = d->createItem(modelIndex + i);
+ if (!item) {
+ // broken or no delegate
+ d->clear();
+ return;
+ }
d->visibleItems.insert(index, item);
item->setPosition(colPos, rowPos);
added.append(item);
@@ -3042,6 +3047,11 @@ void QDeclarativeGridView::itemsMoved(int from, int to, int count)
FxGridItem *movedItem = moved.take(item->index);
if (!movedItem)
movedItem = d->createItem(item->index);
+ if (!movedItem) {
+ // broken or no delegate
+ d->clear();
+ return;
+ }
it = d->visibleItems.insert(it, movedItem);
if (it == d->visibleItems.begin() && firstItem)
movedItem->setPosition(firstItem->colPos(), firstItem->rowPos());
diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp
index 920b6ae..37c34dc 100644
--- a/src/declarative/graphicsitems/qdeclarativelistview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp
@@ -3283,6 +3283,11 @@ void QDeclarativeListView::itemsInserted(int modelIndex, int count)
addedVisible = true;
}
FxListItem *item = d->createItem(modelIndex + i);
+ if (!item) {
+ // broken or no delegate
+ d->clear();
+ return;
+ }
d->visibleItems.insert(insertionIdx, item);
pos -= item->size() + d->spacing;
item->setPosition(pos);
@@ -3313,6 +3318,11 @@ void QDeclarativeListView::itemsInserted(int modelIndex, int count)
addedVisible = true;
}
FxListItem *item = d->createItem(modelIndex + i);
+ if (!item) {
+ // broken or no delegate
+ d->clear();
+ return;
+ }
d->visibleItems.insert(index, item);
item->setPosition(pos);
added.append(item);
@@ -3516,6 +3526,11 @@ void QDeclarativeListView::itemsMoved(int from, int to, int count)
FxListItem *movedItem = moved.take(item->index);
if (!movedItem)
movedItem = d->createItem(item->index);
+ if (!movedItem) {
+ // broken or no delegate
+ d->clear();
+ return;
+ }
if (item->index <= firstVisible->index)
moveBy -= movedItem->size();
it = d->visibleItems.insert(it, movedItem);
--
cgit v0.12
From e5df3b4eeaf5943f5170dda781c3c589fa35a15a Mon Sep 17 00:00:00 2001
From: Shane Kearns
Date: Thu, 20 Oct 2011 16:55:02 +0100
Subject: QIODevice - disallow setTextMode when not open
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Calling setTextMode() before open() would make the device appear to be
already open and cause later errors.
Added a qWarning and documentation update to prevent this API misuse
Task-number: QTBUG-20905
Change-Id: I2e06cd8e79f4afcf27417ac0eae6ebef980a17aa
Reviewed-by: Thiago Macieira (Intel)
Reviewed-by: João Abecasis
(cherry picked from commit 29c30a20bab4c4ea892b95c08c71bb5f136bb82c)
---
src/corelib/io/qiodevice.cpp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/corelib/io/qiodevice.cpp b/src/corelib/io/qiodevice.cpp
index dae4e82..56fff90 100644
--- a/src/corelib/io/qiodevice.cpp
+++ b/src/corelib/io/qiodevice.cpp
@@ -468,11 +468,17 @@ void QIODevice::setOpenMode(OpenMode openMode)
otherwise the \l Text flag is removed. This feature is useful for classes
that provide custom end-of-line handling on a QIODevice.
+ The IO device should be opened before calling this function.
+
\sa open(), setOpenMode()
*/
void QIODevice::setTextModeEnabled(bool enabled)
{
Q_D(QIODevice);
+ if (!isOpen()) {
+ qWarning("QIODevice::setTextModeEnabled: The device is not open");
+ return;
+ }
if (enabled)
d->openMode |= Text;
else
--
cgit v0.12
From 1b928f5e41888150c4d85ff4df8a9fcab9b06d90 Mon Sep 17 00:00:00 2001
From: John Tapsell
Date: Thu, 27 Oct 2011 20:52:03 +0200
Subject: Harfbuzz shaper: kerning adjustment does not need to be modified by
RTL
Merge-request: 1435
Reviewed-by: Oswald Buddenhagen
---
src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp b/src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp
index 3410782..7f4bb0c 100644
--- a/src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp
+++ b/src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp
@@ -1293,7 +1293,7 @@ HB_Bool HB_OpenTypePosition(HB_ShaperItem *item, int availableGlyphs, HB_Bool do
// (int)(positions[i].x_pos >> 6), (int)(positions[i].y_pos >> 6),
// positions[i].back, positions[i].new_advance);
- HB_Fixed adjustment = (item->item.bidiLevel % 2) ? -positions[i].x_advance : positions[i].x_advance;
+ HB_Fixed adjustment = positions[i].x_advance;
if (!(face->current_flags & HB_ShaperFlag_UseDesignMetrics))
adjustment = HB_FIXED_ROUND(adjustment);
--
cgit v0.12
From 7fe7ec7201891b6dc9e918edfa86ab9bf4ee6e80 Mon Sep 17 00:00:00 2001
From: Joerg Bornemann
Date: Fri, 28 Oct 2011 11:32:26 +0200
Subject: Revert "Fixed deployment problems with MSVC 2005 and 2008 SP1"
This reverts commit ec41d27565ed0b4d517f30563def135d0b4c7a8d.
Adding the define _BIND_TO_CURRENT_VCLIBS_VERSION led to linking problems
for several people. Also, this leads to problems when using the binary
installer for development.
Reviewed-by: Andy Shaw
---
mkspecs/win32-msvc2005/qmake.conf | 2 +-
mkspecs/win32-msvc2008/qmake.conf | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/mkspecs/win32-msvc2005/qmake.conf b/mkspecs/win32-msvc2005/qmake.conf
index a9f725c..5b717e7 100644
--- a/mkspecs/win32-msvc2005/qmake.conf
+++ b/mkspecs/win32-msvc2005/qmake.conf
@@ -8,7 +8,7 @@ MAKEFILE_GENERATOR = MSVC.NET
TEMPLATE = app
CONFIG += qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe
QT += core gui
-DEFINES += UNICODE WIN32 QT_LARGEFILE_SUPPORT _BIND_TO_CURRENT_VCLIBS_VERSION=1
+DEFINES += UNICODE WIN32 QT_LARGEFILE_SUPPORT
QMAKE_COMPILER_DEFINES += _MSC_VER=1400 WIN32
QMAKE_CC = cl
diff --git a/mkspecs/win32-msvc2008/qmake.conf b/mkspecs/win32-msvc2008/qmake.conf
index fd115e7..c765562 100644
--- a/mkspecs/win32-msvc2008/qmake.conf
+++ b/mkspecs/win32-msvc2008/qmake.conf
@@ -8,7 +8,7 @@ MAKEFILE_GENERATOR = MSVC.NET
TEMPLATE = app
CONFIG += qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe
QT += core gui
-DEFINES += UNICODE WIN32 QT_LARGEFILE_SUPPORT _BIND_TO_CURRENT_VCLIBS_VERSION=1
+DEFINES += UNICODE WIN32 QT_LARGEFILE_SUPPORT
QMAKE_COMPILER_DEFINES += _MSC_VER=1500 WIN32
QMAKE_CC = cl
--
cgit v0.12
From 080fb267e54cd17697d0a7dbe00449c17d461a11 Mon Sep 17 00:00:00 2001
From: Shane Kearns
Date: Fri, 28 Oct 2011 11:20:07 +0100
Subject: Symbian - disable memory mapping in QNetworkDiskCache
The implementation of memory mapped files in Open C requires
munmap to be called from the same thread as mmap. As the
QIODevice can be handed off to another thread, this breaks
application code that works on other operating systems.
Task-number: QT-5309
Reviewed-by: Tadaaki Matsumoto
---
src/network/access/qnetworkdiskcache.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/network/access/qnetworkdiskcache.cpp b/src/network/access/qnetworkdiskcache.cpp
index 3b18fe8..9d91a8f 100644
--- a/src/network/access/qnetworkdiskcache.cpp
+++ b/src/network/access/qnetworkdiskcache.cpp
@@ -404,7 +404,7 @@ QIODevice *QNetworkDiskCache::data(const QUrl &url)
// ### verify that QFile uses the fd size and not the file name
qint64 size = file->size() - file->pos();
const uchar *p = 0;
-#ifndef Q_OS_WINCE
+#if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN)
p = file->map(file->pos(), size);
#endif
if (p) {
--
cgit v0.12
From 16f67b49ae5232d4d0fb19e0333f5e2ef2a65449 Mon Sep 17 00:00:00 2001
From: xiechyong
Date: Thu, 27 Oct 2011 21:07:26 -0700
Subject: Fix QFile::copy() returning false but error() being NoError
Calling close() after setError() will unset the error.
Task-number: QTBUG-11982
Merge-request: 2712
Reviewed-by: ossi
---
src/corelib/io/qfile.cpp | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/corelib/io/qfile.cpp b/src/corelib/io/qfile.cpp
index 06c403a..6f24376 100644
--- a/src/corelib/io/qfile.cpp
+++ b/src/corelib/io/qfile.cpp
@@ -918,6 +918,7 @@ QFile::copy(const QString &newName)
#endif
if (error) {
out.close();
+ close();
d->setError(QFile::CopyError, tr("Cannot open for output"));
} else {
char block[4096];
@@ -928,6 +929,7 @@ QFile::copy(const QString &newName)
break;
totalRead += in;
if(in != out.write(block, in)) {
+ close();
d->setError(QFile::CopyError, tr("Failure to write block"));
error = true;
break;
@@ -941,6 +943,7 @@ QFile::copy(const QString &newName)
}
if (!error && !out.rename(newName)) {
error = true;
+ close();
d->setError(QFile::CopyError, tr("Cannot create %1 for output").arg(newName));
}
#ifdef QT_NO_TEMPORARYFILE
@@ -951,10 +954,10 @@ QFile::copy(const QString &newName)
out.setAutoRemove(false);
#endif
}
- close();
}
if(!error) {
QFile::setPermissions(newName, permissions());
+ close();
unsetError();
return true;
}
--
cgit v0.12
From f0637d4c663ccfc45d337412c209fee1789f354d Mon Sep 17 00:00:00 2001
From: Jo Asplin
Date: Mon, 31 Oct 2011 14:43:10 +0100
Subject: Updated changelog for Qt 4.8
Task-number: QTQAINFRA-226
---
dist/changes-4.8.0 | 2 ++
1 file changed, 2 insertions(+)
diff --git a/dist/changes-4.8.0 b/dist/changes-4.8.0
index 56ed764..29e7648 100644
--- a/dist/changes-4.8.0
+++ b/dist/changes-4.8.0
@@ -197,6 +197,8 @@ QtTest
------
- Added -random and -seed options to tests, making the test cases within
a test execute in arbitrary order.
+ - Added -datatags option to list available data tags for each test function.
+ The test case name is also listed.
****************************************************************************
* Database Drivers *
--
cgit v0.12
From 9d5c920bb23b949a0b98f1268679a0a2c06dd1d9 Mon Sep 17 00:00:00 2001
From: Peter Hartmann
Date: Mon, 31 Oct 2011 16:49:46 +0100
Subject: SSL documentation: correct enum name
---
src/network/ssl/qssl.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/network/ssl/qssl.cpp b/src/network/ssl/qssl.cpp
index 08a05ff..b556328 100644
--- a/src/network/ssl/qssl.cpp
+++ b/src/network/ssl/qssl.cpp
@@ -131,7 +131,7 @@ QT_BEGIN_NAMESPACE
fragments into the data when using block ciphers. When enabled, this
prevents some attacks (such as the BEAST attack), however it is
incompatible with some servers.
- \value SslOptionDisableTickets Disables the SSL session ticket
+ \value SslOptionDisableSessionTickets Disables the SSL session ticket
extension. This can cause slower connection setup, however some servers
are not compatible with the extension.
\value SslOptionDisableCompression Disables the SSL compression
--
cgit v0.12