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 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 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 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 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 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 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 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 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 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 208e8e87d338e8956f4dbb7243a7cc5ec6553f13 Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Wed, 26 Jan 2011 14:27:35 +0200 Subject: QComboBox popup incorrectly opened in Sym^3 QCombobox popup opens into incorrect position in Sym^3. This is due to that there is a new layout in use, where softkeys are positioned at the bottom. The current implementation just checks if native stacon component is in use and if not, puts the popup to left/right border of the application area (depending on UI direction). Task-number: QTBUG-16886 Reviewed-by: Miikka Heikkinen --- src/gui/widgets/qcombobox.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp index 3e5f1b3..dbbf49a 100644 --- a/src/gui/widgets/qcombobox.cpp +++ b/src/gui/widgets/qcombobox.cpp @@ -2476,10 +2476,18 @@ void QComboBox::showPopup() listRect.setWidth(listRect.height()); //by default popup is centered on screen in landscape listRect.moveCenter(screen.center()); - if (staConTopRect.IsEmpty() && AknLayoutUtils::CbaLocation() != AknLayoutUtils::EAknCbaLocationBottom) { - // landscape without stacon, menu should be at the right - (opt.direction == Qt::LeftToRight) ? listRect.setRight(screen.right()) : - listRect.setLeft(screen.left()); + if (staConTopRect.IsEmpty()) { + TRect cbaRect = TRect(); + AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EControlPane, cbaRect); + AknLayoutUtils::TAknCbaLocation cbaLocation = AknLayoutUtils::CbaLocation(); + switch (cbaLocation) { + case AknLayoutUtils::EAknCbaLocationRight: + listRect.setRight(screen.right()); + break; + case AknLayoutUtils::EAknCbaLocationLeft: + listRect.setLeft(screen.left()); + break; + } } } #endif -- cgit v0.12 From 121e2b39043a4ffc6583f250aebb9a3a746076c1 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 13 Dec 2010 15:38:47 +0100 Subject: Improve timer ID safety by using a serial counter per ID. The high bits of the counter are not used, so we store a serial counter there. This has nothing to do with the serial counter used in nextFreeTimerId, which is there for ABA protection. Reviewed-by: Bradley T. Hughes --- src/corelib/kernel/qabstracteventdispatcher.cpp | 30 ++++++++++++++++++++----- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/src/corelib/kernel/qabstracteventdispatcher.cpp b/src/corelib/kernel/qabstracteventdispatcher.cpp index e79f87a..cc08f092 100644 --- a/src/corelib/kernel/qabstracteventdispatcher.cpp +++ b/src/corelib/kernel/qabstracteventdispatcher.cpp @@ -137,6 +137,12 @@ void QAbstractEventDispatcherPrivate::init() // free list). As an added protection, we use the cell to store an invalid // (negative) value that we can later check for integrity. // +// ABA prevention simply adds a value to 7 of the top 8 bits when resetting +// nextFreeTimerId. +// +// The extra code is the bucket allocation which allows us to start with a +// very small bucket size and grow as needed. +// // (continues below). int QAbstractEventDispatcherPrivate::allocateTimerId() { @@ -164,6 +170,8 @@ int QAbstractEventDispatcherPrivate::allocateTimerId() newTimerId = prepareNewValueWithSerialNumber(timerId, b[at]); } while (!nextFreeTimerId.testAndSetRelaxed(timerId, newTimerId)); + timerId &= TimerIdMask; + timerId |= b[at] & TimerSerialMask; b[at] = -timerId; return timerId; @@ -174,12 +182,13 @@ int QAbstractEventDispatcherPrivate::allocateTimerId() // X[timerId] = nextFreeTimerId; // then we update nextFreeTimerId to the timer we've just released // -// The extra code in allocateTimerId and releaseTimerId are ABA prevention -// and bucket memory. The buckets are simply to make sure we allocate only -// the necessary number of timers. See above. -// // ABA prevention simply adds a value to 7 of the top 8 bits when resetting // nextFreeTimerId. +// +// In addition to that, we update the same 7 bits in each entry in the bucket +// as a counter. That way, a timer ID allocated and released will always be +// returned with a different ID. This reduces the chances of timers being released +// erroneously by application code. void QAbstractEventDispatcherPrivate::releaseTimerId(int timerId) { int which = timerId & TimerIdMask; @@ -187,12 +196,21 @@ void QAbstractEventDispatcherPrivate::releaseTimerId(int timerId) int at = bucketIndex(bucket, which); int *b = timerIds[bucket]; - Q_ASSERT(b[at] == -timerId); +#ifndef QT_NO_DEBUG + // debug code + Q_ASSERT_X(timerId == -b[at], "QAbstractEventDispatcher::releaseTimerId", "Timer ID was not found, fix application"); +#else + if (timerId != -b[at]) { + // release code + qWarning("Timer ID %d was not found, fix application", timerId); + return; + } +#endif int freeId, newTimerId; do { freeId = nextFreeTimerId;//.loadAcquire(); // ### FIXME Proper memory ordering semantics - b[at] = freeId & TimerIdMask; + b[at] = prepareNewValueWithSerialNumber(-b[at], freeId); newTimerId = prepareNewValueWithSerialNumber(freeId, timerId); } while (!nextFreeTimerId.testAndSetRelease(freeId, newTimerId)); -- cgit v0.12 From 861333040c252fa0f53894b604f7cb768c085281 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 26 Jan 2011 14:06:11 +0100 Subject: Check if the interpolators have already been deleted. During application destruction, the order in which static destructors is run is undetermined. So avoid a null-pointer dereference. Task-number: QTBUG-16855 Reviewed-by: Robin Burchell Patch by task reporter --- src/corelib/animation/qvariantanimation.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/corelib/animation/qvariantanimation.cpp b/src/corelib/animation/qvariantanimation.cpp index 212e85d..c76cb89 100644 --- a/src/corelib/animation/qvariantanimation.cpp +++ b/src/corelib/animation/qvariantanimation.cpp @@ -431,12 +431,17 @@ void QVariantAnimation::registerInterpolator(QVariantAnimation::Interpolator fun { // will override any existing interpolators QInterpolatorVector *interpolators = registeredInterpolators(); + // When built on solaris with GCC, the destructors can be called + // in such an order that we get here with interpolators == NULL, + // to continue causes the app to crash on exit with a SEGV + if (interpolators) { #ifndef QT_NO_THREAD - QMutexLocker locker(QMutexPool::globalInstanceGet(interpolators)); + QMutexLocker locker(QMutexPool::globalInstanceGet(interpolators)); #endif - if (int(interpolationType) >= interpolators->count()) - interpolators->resize(int(interpolationType) + 1); - interpolators->replace(interpolationType, func); + if (int(interpolationType) >= interpolators->count()) + interpolators->resize(int(interpolationType) + 1); + interpolators->replace(interpolationType, func); + } } -- cgit v0.12 From db3d9b67ac543ddfdac649bec2c1287982d50a4e Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 20 Dec 2010 19:38:11 +0100 Subject: Change the D-Bus signal filter to return NOT_YET_HANDLED for signals --- src/dbus/qdbusintegrator.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp index adc3408..2e7b052 100644 --- a/src/dbus/qdbusintegrator.cpp +++ b/src/dbus/qdbusintegrator.cpp @@ -558,8 +558,9 @@ bool QDBusConnectionPrivate::handleMessage(const QDBusMessage &amsg) switch (amsg.type()) { case QDBusMessage::SignalMessage: handleSignal(amsg); - return true; - break; + // if there are any other filters in this DBusConnection, + // let them see the signal too + return false; case QDBusMessage::MethodCallMessage: handleObjectCall(amsg); return true; -- cgit v0.12 From 7012b6697df8472df5d772394edb0fbf7219da42 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 14 Jan 2011 20:15:37 +0100 Subject: QNAM FTP: switch to binary mode before sending a SIZE command With some servers, SIZE is not allowed in ASCII mode or it may return different sizes. Since we transfer in binary anyway, better get the size in binary too. Reviewed-by: Peter Hartmann --- src/network/access/qnetworkaccessftpbackend.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/network/access/qnetworkaccessftpbackend.cpp b/src/network/access/qnetworkaccessftpbackend.cpp index 42d2955..b0303aa 100644 --- a/src/network/access/qnetworkaccessftpbackend.cpp +++ b/src/network/access/qnetworkaccessftpbackend.cpp @@ -307,8 +307,10 @@ void QNetworkAccessFtpBackend::ftpDone() // logged in successfully, send the stat requests (if supported) QString command = url().path(); command.prepend(QLatin1String("%1 ")); - if (supportsSize) + if (supportsSize) { + ftp->rawCommand(QLatin1String("TYPE I")); sizeId = ftp->rawCommand(command.arg(QLatin1String("SIZE"))); // get size + } if (supportsMdtm) mdtmId = ftp->rawCommand(command.arg(QLatin1String("MDTM"))); // get modified time if (!supportsSize && !supportsMdtm) -- cgit v0.12 From b7de076b698a1e0a61c6b1597db860c88dd3ee86 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 21 Jan 2011 23:04:33 +0100 Subject: Fix warning in ODBC driver: passing NULL to non-pointer. Warning was: passing NULL to non-pointer argument 7 of 'SQLRETURN SQLGetDiagRecW(SQLSMALLINT, void*, SQLSMALLINT, SQLWCHAR*, SQLINTEGER*, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*)' --- src/sql/drivers/odbc/qsql_odbc.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sql/drivers/odbc/qsql_odbc.cpp b/src/sql/drivers/odbc/qsql_odbc.cpp index c91aa54..8cff61b 100644 --- a/src/sql/drivers/odbc/qsql_odbc.cpp +++ b/src/sql/drivers/odbc/qsql_odbc.cpp @@ -223,7 +223,7 @@ static QString qWarnODBCHandle(int handleType, SQLHANDLE handle, int *nativeCode state_, &nativeCode_, 0, - NULL, + 0, &msgLen); if ((r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO) && msgLen > 0) description_.resize(msgLen+1); @@ -400,7 +400,7 @@ static QString qGetStringData(SQLHANDLE hStmt, int column, int colSize, bool uni // colSize-1: remove 0 termination when there is more data to fetch int rSize = (r == SQL_SUCCESS_WITH_INFO) ? colSize : lengthIndicator/sizeof(SQLTCHAR); fieldVal += fromSQLTCHAR(buf, rSize); - if (lengthIndicator < (unsigned int)colSize*sizeof(SQLTCHAR)) { + if ((unsigned)lengthIndicator < colSize*sizeof(SQLTCHAR)) { // workaround for Drivermanagers that don't return SQL_NO_DATA break; } -- cgit v0.12 From f34e2b62b03e35015b0eaa6b96dc982caf0f230d Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 21 Jan 2011 23:05:37 +0100 Subject: Fix warnings in PSQL driver: handle VersionUnknown in switch --- src/sql/drivers/psql/qsql_psql.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/sql/drivers/psql/qsql_psql.cpp b/src/sql/drivers/psql/qsql_psql.cpp index 0a7d5bf..a044c7f 100644 --- a/src/sql/drivers/psql/qsql_psql.cpp +++ b/src/sql/drivers/psql/qsql_psql.cpp @@ -1021,6 +1021,9 @@ QSqlIndex QPSQLDriver::primaryIndex(const QString& tablename) const stmt = stmt.arg(QString::fromLatin1("pg_class.relnamespace = (select oid from " "pg_namespace where pg_namespace.nspname = '%1') AND ").arg(schema)); break; + case QPSQLDriver::VersionUnknown: + qFatal("PSQL version is unknown"); + break; } i.exec(stmt.arg(tbl)); @@ -1110,6 +1113,9 @@ QSqlRecord QPSQLDriver::record(const QString& tablename) const stmt = stmt.arg(QString::fromLatin1("pg_class.relnamespace = (select oid from " "pg_namespace where pg_namespace.nspname = '%1')").arg(schema)); break; + case QPSQLDriver::VersionUnknown: + qFatal("PSQL version is unknown"); + break; } QSqlQuery query(createResult()); -- cgit v0.12 From 1d85e1ce92e6df1af97bde7542467f40f7003975 Mon Sep 17 00:00:00 2001 From: Zeno Albisser Date: Thu, 20 Jan 2011 14:54:06 +0100 Subject: Fix: define hotSpot for Gestures on Mac If there is no hotSpot defined for a gesture it cannot be propagated propperly within GraphicsView. Task-number: QTBUG-16618 Reviewed-by: Denis Dzyubenko --- examples/gestures/imagegestures/imagewidget.cpp | 1 + src/gui/kernel/qmacgesturerecognizer_mac.mm | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/examples/gestures/imagegestures/imagewidget.cpp b/examples/gestures/imagegestures/imagewidget.cpp index 12e6216..8bbb965 100644 --- a/examples/gestures/imagegestures/imagewidget.cpp +++ b/examples/gestures/imagegestures/imagewidget.cpp @@ -1,3 +1,4 @@ + /**************************************************************************** ** ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). diff --git a/src/gui/kernel/qmacgesturerecognizer_mac.mm b/src/gui/kernel/qmacgesturerecognizer_mac.mm index 0e432f3..6a4f0bb 100644 --- a/src/gui/kernel/qmacgesturerecognizer_mac.mm +++ b/src/gui/kernel/qmacgesturerecognizer_mac.mm @@ -69,6 +69,7 @@ QMacSwipeGestureRecognizer::recognize(QGesture *gesture, QObject *obj, QEvent *e case QNativeGestureEvent::Swipe: { QSwipeGesture *g = static_cast(gesture); g->setSwipeAngle(ev->angle); + g->setHotSpot(ev->position); return QGestureRecognizer::FinishGesture | QGestureRecognizer::ConsumeEventHint; break; } default: @@ -110,6 +111,7 @@ QMacPinchGestureRecognizer::recognize(QGesture *gesture, QObject *obj, QEvent *e g->setCenterPoint(g->startCenterPoint()); g->setChangeFlags(QPinchGesture::CenterPointChanged); g->setTotalChangeFlags(g->totalChangeFlags() | g->changeFlags()); + g->setHotSpot(ev->position); return QGestureRecognizer::MayBeGesture | QGestureRecognizer::ConsumeEventHint; case QNativeGestureEvent::Rotate: { g->setLastScaleFactor(g->scaleFactor()); @@ -117,6 +119,7 @@ QMacPinchGestureRecognizer::recognize(QGesture *gesture, QObject *obj, QEvent *e g->setRotationAngle(g->rotationAngle() + ev->percentage); g->setChangeFlags(QPinchGesture::RotationAngleChanged); g->setTotalChangeFlags(g->totalChangeFlags() | g->changeFlags()); + g->setHotSpot(ev->position); return QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint; } case QNativeGestureEvent::Zoom: @@ -125,6 +128,7 @@ QMacPinchGestureRecognizer::recognize(QGesture *gesture, QObject *obj, QEvent *e g->setScaleFactor(g->scaleFactor() * (1 + ev->percentage)); g->setChangeFlags(QPinchGesture::ScaleFactorChanged); g->setTotalChangeFlags(g->totalChangeFlags() | g->changeFlags()); + g->setHotSpot(ev->position); return QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint; case QNativeGestureEvent::GestureEnd: return QGestureRecognizer::FinishGesture | QGestureRecognizer::ConsumeEventHint; @@ -221,6 +225,7 @@ QMacPanGestureRecognizer::recognize(QGesture *gesture, QObject *target, QEvent * const QPointF posOffset = p - _startPos; g->setLastOffset(g->offset()); g->setOffset(QPointF(posOffset.x(), posOffset.y())); + g->setHotSpot(_startPos); return QGestureRecognizer::TriggerGesture; } } else if (_panTimer.isActive()) { @@ -239,6 +244,7 @@ QMacPanGestureRecognizer::recognize(QGesture *gesture, QObject *target, QEvent * break; // Begin new pan session! _startPos = QCursor::pos(); + g->setHotSpot(_startPos); return QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint; } break; } -- cgit v0.12