From 3c3745c29d9fbae98b55a88b5ebccb0b29b4eed5 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 4 Sep 2009 13:05:08 +0300 Subject: Fixed symbian-sbsv2 build break in apps using debug_and_release. Skipped addExclusiveBuilds function in debug_and_release.prf for all Symbian platforms, as it doesn't work with Symbian toolchain. Reviewed-by: Janne Anttila --- mkspecs/features/debug_and_release.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkspecs/features/debug_and_release.prf b/mkspecs/features/debug_and_release.prf index 19031ef..ef33789 100644 --- a/mkspecs/features/debug_and_release.prf +++ b/mkspecs/features/debug_and_release.prf @@ -1 +1 @@ -!macx-xcode:!symbian-abld:addExclusiveBuilds(debug, Debug, release, Release) +!macx-xcode:!symbian:addExclusiveBuilds(debug, Debug, release, Release) -- cgit v0.12 From b798fc523446b4b7c7e888f7ef504202730e6cb5 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Mon, 28 Sep 2009 14:56:03 +0200 Subject: Mac: backport efd84105355 to silence visibility warnings Make sure that we build objective c files with visibility hidden as default Reviewed-by: prasanth --- mkspecs/features/mac/objective_c.prf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mkspecs/features/mac/objective_c.prf b/mkspecs/features/mac/objective_c.prf index 0a73af9..0df7013 100644 --- a/mkspecs/features/mac/objective_c.prf +++ b/mkspecs/features/mac/objective_c.prf @@ -1,6 +1,5 @@ isEmpty(QMAKE_OBJECTIVE_CC):QMAKE_OBJECTIVE_CC = $$QMAKE_CC -isEmpty(QMAKE_OBJECTIVE_CFLAGS) { #bootstrap QMAKE_OBJECTIVE_CFLAGS = $$QMAKE_CFLAGS QMAKE_OBJECTIVE_CFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON QMAKE_OBJECTIVE_CFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF @@ -9,7 +8,7 @@ isEmpty(QMAKE_OBJECTIVE_CFLAGS) { #bootstrap QMAKE_OBJECTIVE_CFLAGS_X86 = $$QMAKE_CFLAGS_X86 QMAKE_OBJECTIVE_CFLAGS_PPC = $$QMAKE_CFLAGS_PPC QMAKE_OBJECTIVE_CFLAGS_HIDESYMS = $$QMAKE_CXXFLAGS_HIDESYMS -} + OBJECTIVE_C_OBJECTS_DIR = $$OBJECTS_DIR isEmpty(OBJECTIVE_C_OBJECTS_DIR):OBJECTIVE_C_OBJECTS_DIR = . isEmpty(QMAKE_EXT_OBJECTIVE_C):QMAKE_EXT_OBJECTIVE_C = .mm .m -- cgit v0.12 From 62624c575bd784b36b1d080d32f168e0668ca15b Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Mon, 28 Sep 2009 15:07:24 +0200 Subject: Mac: build issue (autotest stalls build) When building Qt static on Mac, the test included actually stops the build process, prompting the user for 'Promteroo?' The reason is that configure runs qmake on all the tests inside the test/auto directory, including the one that is meant for testing qmake itself. In other words, this test should not be qmake'ed when running configure, only when running the qmake auto test. However, the qmake auto test does not run the prompt test anymore either. So the solution for now is to just comment out the test project as well. Reviewed-by: alexis --- tests/auto/qmake/testdata/prompt/prompt.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qmake/testdata/prompt/prompt.pro b/tests/auto/qmake/testdata/prompt/prompt.pro index 02db4fe..238022c 100644 --- a/tests/auto/qmake/testdata/prompt/prompt.pro +++ b/tests/auto/qmake/testdata/prompt/prompt.pro @@ -1,2 +1,2 @@ -a = $$prompt(Prompteroo) +# a = $$prompt(Prompteroo) -- cgit v0.12 From 6c58b17004d35ed652b5e93316f3f1c9d002d3b6 Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Mon, 28 Sep 2009 15:33:55 +0200 Subject: tst_qnetworkcookiejar: Backported 4.6 changes Reviewed-by: TrustMe --- .../qnetworkcookiejar/tst_qnetworkcookiejar.cpp | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp b/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp index 946f4d3..9b9c56a 100644 --- a/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp +++ b/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp @@ -220,21 +220,21 @@ void tst_QNetworkCookieJar::cookiesForUrl_data() QNetworkCookie cookie; cookie.setName("a"); cookie.setPath("/web"); - cookie.setDomain(".trolltech.com"); + cookie.setDomain(".nokia.com"); allCookies += cookie; QTest::newRow("no-match-1") << allCookies << "http://foo.bar/" << result; QTest::newRow("no-match-2") << allCookies << "http://foo.bar/web" << result; QTest::newRow("no-match-3") << allCookies << "http://foo.bar/web/wiki" << result; - QTest::newRow("no-match-4") << allCookies << "http://trolltech.com" << result; + QTest::newRow("no-match-4") << allCookies << "http://nokia.com" << result; QTest::newRow("no-match-5") << allCookies << "http://qt.nokia.com" << result; - QTest::newRow("no-match-6") << allCookies << "http://trolltech.com/webinar" << result; + QTest::newRow("no-match-6") << allCookies << "http://nokia.com/webinar" << result; QTest::newRow("no-match-7") << allCookies << "http://qt.nokia.com/webinar" << result; result = allCookies; - QTest::newRow("match-1") << allCookies << "http://trolltech.com/web" << result; - QTest::newRow("match-2") << allCookies << "http://trolltech.com/web/" << result; - QTest::newRow("match-3") << allCookies << "http://trolltech.com/web/content" << result; + QTest::newRow("match-1") << allCookies << "http://nokia.com/web" << result; + QTest::newRow("match-2") << allCookies << "http://nokia.com/web/" << result; + QTest::newRow("match-3") << allCookies << "http://nokia.com/web/content" << result; QTest::newRow("match-4") << allCookies << "http://qt.nokia.com/web" << result; QTest::newRow("match-4") << allCookies << "http://qt.nokia.com/web/" << result; QTest::newRow("match-6") << allCookies << "http://qt.nokia.com/web/content" << result; @@ -243,21 +243,21 @@ void tst_QNetworkCookieJar::cookiesForUrl_data() allCookies += cookie; // exact same results as before: - QTest::newRow("one-match-1") << allCookies << "http://trolltech.com/web" << result; - QTest::newRow("one-match-2") << allCookies << "http://trolltech.com/web/" << result; - QTest::newRow("one-match-3") << allCookies << "http://trolltech.com/web/content" << result; + QTest::newRow("one-match-1") << allCookies << "http://nokia.com/web" << result; + QTest::newRow("one-match-2") << allCookies << "http://nokia.com/web/" << result; + QTest::newRow("one-match-3") << allCookies << "http://nokia.com/web/content" << result; QTest::newRow("one-match-4") << allCookies << "http://qt.nokia.com/web" << result; QTest::newRow("one-match-4") << allCookies << "http://qt.nokia.com/web/" << result; QTest::newRow("one-match-6") << allCookies << "http://qt.nokia.com/web/content" << result; result.prepend(cookie); // longer path, it must match first - QTest::newRow("two-matches-1") << allCookies << "http://trolltech.com/web/wiki" << result; + QTest::newRow("two-matches-1") << allCookies << "http://nokia.com/web/wiki" << result; QTest::newRow("two-matches-2") << allCookies << "http://qt.nokia.com/web/wiki" << result; // invert the order; allCookies.clear(); allCookies << result.at(1) << result.at(0); - QTest::newRow("two-matches-3") << allCookies << "http://trolltech.com/web/wiki" << result; + QTest::newRow("two-matches-3") << allCookies << "http://nokia.com/web/wiki" << result; QTest::newRow("two-matches-4") << allCookies << "http://qt.nokia.com/web/wiki" << result; // expired cookie @@ -265,9 +265,9 @@ void tst_QNetworkCookieJar::cookiesForUrl_data() cookie.setExpirationDate(QDateTime::fromString("09-Nov-1999", "dd-MMM-yyyy")); allCookies += cookie; result.clear(); - QTest::newRow("exp-match-1") << allCookies << "http://trolltech.com/web" << result; - QTest::newRow("exp-match-2") << allCookies << "http://trolltech.com/web/" << result; - QTest::newRow("exp-match-3") << allCookies << "http://trolltech.com/web/content" << result; + QTest::newRow("exp-match-1") << allCookies << "http://nokia.com/web" << result; + QTest::newRow("exp-match-2") << allCookies << "http://nokia.com/web/" << result; + QTest::newRow("exp-match-3") << allCookies << "http://nokia.com/web/content" << result; QTest::newRow("exp-match-4") << allCookies << "http://qt.nokia.com/web" << result; QTest::newRow("exp-match-4") << allCookies << "http://qt.nokia.com/web/" << result; QTest::newRow("exp-match-6") << allCookies << "http://qt.nokia.com/web/content" << result; -- cgit v0.12 From 9167aabca46c46dff0630cfc349f777211734219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Mon, 28 Sep 2009 19:26:47 +0200 Subject: Added my 4.5.3 changes to changelog. --- dist/changes-4.5.3 | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/dist/changes-4.5.3 b/dist/changes-4.5.3 index d797b4c..ac5a1f7 100644 --- a/dist/changes-4.5.3 +++ b/dist/changes-4.5.3 @@ -52,6 +52,18 @@ Third party components HTTP request. * [256630] Fix usage of QProgressDialog together with QNetworkReply. +- QPainter + * [254105] Fixed potential segmentation fault when setting empty clip + rectangle. + * [256549] Fixed inconsistent behavior between paint engines when + setting an IntersectClip after doing setClipping(false). + * [254407] Fixed rendering issue with outline drawing using + projective transforms. + * [258776] Fixed rounding bug in drawImage(). + +- QPainterPath + * [251909] Fixed bug in QPainterPath::united() / simplified(). + - QSslCertificate * [256066] Fix loading of a PEM when the length was a multiple of 64. -- cgit v0.12 From 390c40d7d2bbc622e18aa1c096d0b5fee5a04344 Mon Sep 17 00:00:00 2001 From: Anders Bakken Date: Fri, 25 Sep 2009 09:25:22 -0700 Subject: Update changes file for 4.5.3 for DirectFB Reviewed-by: TrustMe --- dist/changes-4.5.3 | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/dist/changes-4.5.3 b/dist/changes-4.5.3 index ac5a1f7..0bec84d 100644 --- a/dist/changes-4.5.3 +++ b/dist/changes-4.5.3 @@ -74,7 +74,7 @@ Third party components **************************************************************************** * Database Drivers * **************************************************************************** -- [QT-353] (ODBC) Fixed issue of forward only datasets failing when not +- [QT-353] (ODBC) Fixed issue of forward only datasets failing when not explicitly set so. - [222678] Fixed QSqlTableModel: trying to delete the wrong row. - (Interbase) Fixed crash when calling numRows on unknown query type. @@ -107,7 +107,7 @@ Qt for Windows Qt for Mac OS X --------------- -[252088] Drag and drop events will now consider the WA_TransparentForMouseEvents +[252088] Drag and drop events will now consider the WA_TransparentForMouseEvents in Cocoa port. [255428] Fixed an an issue when Calling QWidget::raise() on hidden windows making them visible in Cocoa port. @@ -116,7 +116,7 @@ Qt for Mac OS X [258822] Fixed a crash when inserting the same menu twice in a menubar in Cocoa port. - Fixed the wizard background images for Snow Leopard. - + Qt for Embedded Linux --------------------- @@ -179,6 +179,17 @@ Qt for Windows CE * Plugins * **************************************************************************** +- DirectFB + * Make autorepeat work for DirectFB keyboard driver + * Fix a crash when resizing windows + * Fix an off by one when flipping surfaces that could lead to artifacts + * Make painting operations with QRegion clips go to DirectFB rather than + Raster (when possible) + * Make porter duff operations work for blits + * Various optimizations + * Handle more operations in hw + + **************************************************************************** * Important Behavior Changes * -- cgit v0.12 From 5170774f96c87e73f997fb9a9bc856d5f78741ac Mon Sep 17 00:00:00 2001 From: Jason McDonald Date: Tue, 29 Sep 2009 14:58:04 +1000 Subject: Tidy changes file for 4.5.3. Reviewed-by: Trust Me --- dist/changes-4.5.3 | 123 +++++++++++------------------------------------------ 1 file changed, 24 insertions(+), 99 deletions(-) diff --git a/dist/changes-4.5.3 b/dist/changes-4.5.3 index 0bec84d..f3a36d3 100644 --- a/dist/changes-4.5.3 +++ b/dist/changes-4.5.3 @@ -17,34 +17,21 @@ Each of these identifiers can be entered in the task tracker to obtain more information about a particular change. **************************************************************************** -* General * -**************************************************************************** - -General Improvements --------------------- - -- Documentation and Examples - -Third party components ----------------------- - - -**************************************************************************** * Library * **************************************************************************** +- QColorDialog + * [256164] Fixed the setting of alpha values in QColorDialog. + - QDirIterator * [258230] Fixed inconsistencies in value returned from QDirIterator::next(). -- QColorDialog - * [256164] Fixed the setting of alpha values in QColorDialog. - - QDoubleSpinBox * [255019] Fixed a crash when using large value for decimals. - QInputDialog - * [255502] Fixed bug in getDouble() + * [255502] Fixed bug in getDouble(). - QNetworkAccessManager * [256240] Proper handling of HTTP redirect in AlwaysCache mode. @@ -74,15 +61,16 @@ Third party components **************************************************************************** * Database Drivers * **************************************************************************** + - [QT-353] (ODBC) Fixed issue of forward only datasets failing when not - explicitly set so. + explicitly set so. - [222678] Fixed QSqlTableModel: trying to delete the wrong row. - (Interbase) Fixed crash when calling numRows on unknown query type. - Fixed several database autotests. - Fixed determination of end of odbc string on deficient driver. - Fixed formatting of date strings in psql driver. - Fixed mysql queries automatically getting prepared. Now have to explicitly - prepare them if you want that functionality. + prepare them if you want that functionality. - Fixed failure when QSqlTableModel has null fields to update. - Fixed missing isnan/isinf on some platforms (needed for postgres driver) - Fixed ::record for dialect 3 named tables in interbase/firebird. @@ -95,84 +83,27 @@ Third party components Qt for Linux/X11 ---------------- - - Fixed a bug where an empty KDEDIRS variable would bring /share into the icon search path. - [KDE 191759] Plasma spinning in endless loop. -Qt for Windows --------------- - - Qt for Mac OS X --------------- -[252088] Drag and drop events will now consider the WA_TransparentForMouseEvents - in Cocoa port. -[255428] Fixed an an issue when Calling QWidget::raise() on hidden windows making - them visible in Cocoa port. -[256269] Window resize events triggered from QWidget::adjustSize() will now - be sent as non-spontaneous event in the Cocoa port. -[258822] Fixed a crash when inserting the same menu twice in a menubar in Cocoa port. - -- Fixed the wizard background images for Snow Leopard. - - -Qt for Embedded Linux ---------------------- +- [252088] Drag and drop events will now consider the + WA_TransparentForMouseEvents in Cocoa port. +- [255428] Fixed an issue when calling QWidget::raise() on hidden windows + making them visible in Cocoa port. +- [256269] Window resize events triggered from QWidget::adjustSize() will now + be sent as a non-spontaneous event in the Cocoa port. +- [258822] Fixed a crash when inserting the same menu twice in a menubar in + Cocoa port. +- Fixed the wizard background images for Snow Leopard. Qt for Windows CE ----------------- -[260702] Fixed restoring of minimized Windows. - -**************************************************************************** -* Compiler Specific Changes * -**************************************************************************** - - -**************************************************************************** -* Tools * -**************************************************************************** - -- Build System - -- Assistant - - -- Designer - - -- Linguist - - Linguist GUI - - - lupdate - - - lrelease - - -- rcc - - -- moc - - -- uic - - -- uic3 - - -- qmake - - -- configure - - -- qtconfig - - -- qt3to4 +- [260702] Fixed restoring of minimized Windows. **************************************************************************** @@ -180,18 +111,12 @@ Qt for Windows CE **************************************************************************** - DirectFB - * Make autorepeat work for DirectFB keyboard driver - * Fix a crash when resizing windows - * Fix an off by one when flipping surfaces that could lead to artifacts + * Make autorepeat work for DirectFB keyboard driver. + * Fix a crash when resizing windows. + * Fix an off by one when flipping surfaces that could lead to artifacts. * Make painting operations with QRegion clips go to DirectFB rather than - Raster (when possible) - * Make porter duff operations work for blits - * Various optimizations - * Handle more operations in hw - - - -**************************************************************************** -* Important Behavior Changes * -**************************************************************************** + Raster (when possible). + * Make porter duff operations work for blits. + * Various optimizations. + * Handle more operations in hw. -- cgit v0.12 From e9d63b7824e9105074dee9ad624582e5894d9c8b Mon Sep 17 00:00:00 2001 From: Andreas Aardal Hanssen Date: Mon, 28 Sep 2009 16:13:19 +0200 Subject: QGraphicsItem: cached embedded widget item is not repainted when widget is updated When calling QGraphicsItem::update() on a cached item, the cache is meant to be invalidated. In the reported bug, the user had a fixed scene rect set for his scene, and removing an item caused the entire scene to be updated (marked as "all needs to be updated"). In this case, calling update() on the cached item did not cause the item's cache to be invalidated. The item's new appearance didn't show up until the next invalidation, which was the same call to update(), but this time without a preceeding full scene update. The fix is to always invalidate the cache, regardless. But only schedule a repaint of the item in some cases (e.g., in this case the whole scene was marked for update, in which case it's unnessary for this one item to schedule a repaint of itself). It's worth noting that in 4.6, removing an item be delete does not cause the whole scene to be updated, and because of that this error was not exposed. It's there nevertheless. Reviewed-by: bnilsen --- src/gui/graphicsview/qgraphicsitem.cpp | 26 +++++++++------------ tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp | 31 ++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 16 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index 5799fe7..4f77aa8 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -3975,26 +3975,20 @@ void QGraphicsItem::update(const QRectF &rect) return; if (CacheMode(d_ptr->cacheMode) != NoCache) { + // Invalidate cache. QGraphicsItemCache *cache = d_ptr->extraItemCache(); - if (d_ptr->discardUpdateRequest(/* ignoreVisibleBit = */ false, - /* ignoreClipping = */ false, - /* ignoreDirtyBit = */ true)) { - return; + if (!cache->allExposed) { + if (rect.isNull()) { + cache->allExposed = true; + cache->exposed.clear(); + } else { + cache->exposed.append(rect); + } } + } - // Invalidate cache. - if (rect.isNull()) { - cache->allExposed = true; - cache->exposed.clear(); - } else { - cache->exposed.append(rect); - } - // Only invalidate cache; item is already dirty. - if (d_ptr->dirty) - return; - } else if (d_ptr->discardUpdateRequest()) { + if (d_ptr->discardUpdateRequest()) return; - } // Effectively the same as updateHelper(rect); if (rect.isNull()) diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp index 391ccf8..55e9b34 100644 --- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp +++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp @@ -56,6 +56,7 @@ #include #include #include +#include "../../shared/util.h" //TESTED_CLASS= //TESTED_FILES= @@ -230,6 +231,7 @@ private slots: void task240400_clickOnTextItem(); void task243707_addChildBeforeParent(); void task197802_childrenVisibility(); + void QTBUG_4233_updateCachedWithSceneRect(); }; void tst_QGraphicsItem::init() @@ -6454,5 +6456,34 @@ void tst_QGraphicsItem::deviceTransform() QCOMPARE(rect3->deviceTransform(deviceX).map(QPointF(50, 50)), mapResult3); } +void tst_QGraphicsItem::QTBUG_4233_updateCachedWithSceneRect() +{ + EventTester *tester = new EventTester; + tester->setCacheMode(QGraphicsItem::ItemCoordinateCache); + + QGraphicsScene scene; + scene.addItem(tester); + scene.setSceneRect(-100, -100, 200, 200); // contains the tester item + + QGraphicsView view(&scene); + view.show(); + QTRY_COMPARE(QApplication::activeWindow(), (QWidget *)&view); + + QCOMPARE(tester->repaints, 1); + + scene.update(); // triggers "updateAll" optimization + qApp->processEvents(); + qApp->processEvents(); // in 4.6 only one processEvents is necessary + + QCOMPARE(tester->repaints, 1); + + scene.update(); // triggers "updateAll" optimization + tester->update(); + qApp->processEvents(); + qApp->processEvents(); // in 4.6 only one processEvents is necessary + + QCOMPARE(tester->repaints, 2); +} + QTEST_MAIN(tst_QGraphicsItem) #include "tst_qgraphicsitem.moc" -- cgit v0.12 From 36623ef3b5d3804de2ced689af2329c9ab81c265 Mon Sep 17 00:00:00 2001 From: Jason McDonald Date: Tue, 29 Sep 2009 19:07:01 +1000 Subject: Remove mention of QtSW. Reviewed-by: Trust Me --- doc/src/platform-notes.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/platform-notes.qdoc b/doc/src/platform-notes.qdoc index 64749e7..dce7349 100644 --- a/doc/src/platform-notes.qdoc +++ b/doc/src/platform-notes.qdoc @@ -650,7 +650,7 @@ \section1 MIPSpro (IRIX) \bold{IRIX is an unsupported platform. See the \l{Supported Platforms} page - and Qt's Software's online \l{Platform Support Policy} page for details.} + and Qt's online \l{Platform Support Policy} page for details.} Qt 4.4.x requires MIPSpro version 7.4.2m. -- cgit v0.12 From aa65b608b96f0b41e96093e6eb26ccc0f301afc9 Mon Sep 17 00:00:00 2001 From: Jason McDonald Date: Tue, 29 Sep 2009 19:13:30 +1000 Subject: Remove mentions of QtSW. Reviewed-by: Trust Me --- src/3rdparty/webkit/WebKit/qt/Api/qwebpluginfactory.cpp | 4 ++-- src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/simple/main.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpluginfactory.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebpluginfactory.cpp index d2bb124..8e4c581 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpluginfactory.cpp +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpluginfactory.cpp @@ -136,7 +136,7 @@ void QWebPluginFactory::refreshPlugins() For example: \code - + @@ -149,7 +149,7 @@ void QWebPluginFactory::refreshPlugins() \row \o mimeType \o "application/x-pdf" \row \o url - \o "http://qtsoftware.com/document.pdf" + \o "http://www.example.com/document.pdf" \row \o argumentNames \o "showTableOfContents" "hideThumbnails" \row \o argumentVaues diff --git a/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/simple/main.cpp b/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/simple/main.cpp index 82f5b6c..408630e 100644 --- a/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/simple/main.cpp +++ b/src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/simple/main.cpp @@ -27,7 +27,7 @@ int main(int argc, char *argv[]) QWidget *parent = 0; //! [Using QWebView] QWebView *view = new QWebView(parent); - view->load(QUrl("http://qtsoftware.com/")); + view->load(QUrl("http://qt.nokia.com/")); view->show(); //! [Using QWebView] return app.exec(); -- cgit v0.12 From 9a7ca912ce72476bda57f2306b38e5f6e928fbf5 Mon Sep 17 00:00:00 2001 From: Jani Hautakangas Date: Tue, 29 Sep 2009 13:41:33 +0300 Subject: Softkey fixes to QMenu tests. Softkeys add two extra "Select" and "Back" actions to menu by default. First two actions in menu will be "Select" and "Back". Reviewed-by: Janne Anttila --- tests/auto/qactiongroup/tst_qactiongroup.cpp | 14 ++++++++--- tests/auto/qmainwindow/tst_qmainwindow.cpp | 35 +++++++++++++++++----------- tests/auto/qmenu/tst_qmenu.cpp | 12 ++++++++-- 3 files changed, 43 insertions(+), 18 deletions(-) diff --git a/tests/auto/qactiongroup/tst_qactiongroup.cpp b/tests/auto/qactiongroup/tst_qactiongroup.cpp index c290941..2d215a0 100644 --- a/tests/auto/qactiongroup/tst_qactiongroup.cpp +++ b/tests/auto/qactiongroup/tst_qactiongroup.cpp @@ -226,6 +226,14 @@ void tst_QActionGroup::separators() mw.show(); +#ifdef QT_SOFTKEYS_ENABLED + // Softkeys add extra "Select" and "Back" actions to menu by default. + // Two first actions will be Select and Back when softkeys are enabled + int numSoftkeyActions = 2; +#else + int numSoftkeyActions = 0; +#endif + QAction *action = new QAction(&actGroup); action->setText("test one"); @@ -237,13 +245,13 @@ void tst_QActionGroup::separators() while (it.hasNext()) menu.addAction(it.next()); - QCOMPARE((int)menu.actions().size(), 2); + QCOMPARE((int)menu.actions().size(), 2 + numSoftkeyActions); it = QListIterator(actGroup.actions()); while (it.hasNext()) menu.removeAction(it.next()); - QCOMPARE((int)menu.actions().size(), 0); + QCOMPARE((int)menu.actions().size(), 0 + numSoftkeyActions); action = new QAction(&actGroup); action->setText("test two"); @@ -252,7 +260,7 @@ void tst_QActionGroup::separators() while (it.hasNext()) menu.addAction(it.next()); - QCOMPARE((int)menu.actions().size(), 3); + QCOMPARE((int)menu.actions().size(), 3 + numSoftkeyActions); } void tst_QActionGroup::testActionInTwoQActionGroup() diff --git a/tests/auto/qmainwindow/tst_qmainwindow.cpp b/tests/auto/qmainwindow/tst_qmainwindow.cpp index 38d23b6..9615c63 100644 --- a/tests/auto/qmainwindow/tst_qmainwindow.cpp +++ b/tests/auto/qmainwindow/tst_qmainwindow.cpp @@ -1297,18 +1297,27 @@ void tst_QMainWindow::createPopupMenu() mainwindow.addDockWidget(Qt::LeftDockWidgetArea, &dockwidget3); mainwindow.addDockWidget(Qt::LeftDockWidgetArea, &dockwidget4); + +#ifdef QT_SOFTKEYS_ENABLED + // Softkeys add extra "Select" and "Back" actions to menu by default. + // Two first actions will be Select and Back when softkeys are enabled + int numSoftkeyActions = 2; +#else + int numSoftkeyActions = 0; +#endif + QMenu *menu = mainwindow.createPopupMenu(); QVERIFY(menu != 0); QList actions = menu->actions(); - QCOMPARE(actions.size(), 7); + QCOMPARE(actions.size(), 7 + numSoftkeyActions); - QCOMPARE(actions.at(0), dockwidget1.toggleViewAction()); - QCOMPARE(actions.at(1), dockwidget2.toggleViewAction()); - QCOMPARE(actions.at(2), dockwidget3.toggleViewAction()); - QCOMPARE(actions.at(3), dockwidget4.toggleViewAction()); - QVERIFY(actions.at(4)->isSeparator()); - QCOMPARE(actions.at(5), toolbar1.toggleViewAction()); - QCOMPARE(actions.at(6), toolbar2.toggleViewAction()); + QCOMPARE(actions.at(0 + numSoftkeyActions), dockwidget1.toggleViewAction()); + QCOMPARE(actions.at(1 + numSoftkeyActions), dockwidget2.toggleViewAction()); + QCOMPARE(actions.at(2 + numSoftkeyActions), dockwidget3.toggleViewAction()); + QCOMPARE(actions.at(3 + numSoftkeyActions), dockwidget4.toggleViewAction()); + QVERIFY(actions.at(4 + numSoftkeyActions)->isSeparator()); + QCOMPARE(actions.at(5 + numSoftkeyActions), toolbar1.toggleViewAction()); + QCOMPARE(actions.at(6 + numSoftkeyActions), toolbar2.toggleViewAction()); delete menu; @@ -1319,12 +1328,12 @@ void tst_QMainWindow::createPopupMenu() menu = mainwindow.createPopupMenu(); QVERIFY(menu != 0); actions = menu->actions(); - QCOMPARE(actions.size(), 4); + QCOMPARE(actions.size(), 4 + numSoftkeyActions); - QCOMPARE(actions.at(0), dockwidget2.toggleViewAction()); - QCOMPARE(actions.at(1), dockwidget3.toggleViewAction()); - QVERIFY(actions.at(2)->isSeparator()); - QCOMPARE(actions.at(3), toolbar2.toggleViewAction()); + QCOMPARE(actions.at(0 + numSoftkeyActions), dockwidget2.toggleViewAction()); + QCOMPARE(actions.at(1 + numSoftkeyActions), dockwidget3.toggleViewAction()); + QVERIFY(actions.at(2 + numSoftkeyActions)->isSeparator()); + QCOMPARE(actions.at(3 + numSoftkeyActions), toolbar2.toggleViewAction()); delete menu; } diff --git a/tests/auto/qmenu/tst_qmenu.cpp b/tests/auto/qmenu/tst_qmenu.cpp index e467229..726ca55 100644 --- a/tests/auto/qmenu/tst_qmenu.cpp +++ b/tests/auto/qmenu/tst_qmenu.cpp @@ -260,9 +260,17 @@ void tst_QMenu::onStatusMessageChanged(const QString &s) void tst_QMenu::addActionsAndClear() { - QCOMPARE(menus[0]->actions().count(), 0); +#ifdef QT_SOFTKEYS_ENABLED + // Softkeys add extra "Select" and "Back" actions to menu by default. + // Two first actions will be Select and Back when softkeys are enabled + int numSoftkeyActions = 2; +#else + int numSoftkeyActions = 0; +#endif + + QCOMPARE(menus[0]->actions().count(), 0 + numSoftkeyActions); createActions(); - QCOMPARE(menus[0]->actions().count(), 8); + QCOMPARE(menus[0]->actions().count(), 8 + numSoftkeyActions); menus[0]->clear(); QCOMPARE(menus[0]->actions().count(), 0); } -- cgit v0.12 From 381c6c5dd816d7a8921c76b44c7edf607482ebba Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 29 Sep 2009 12:28:03 +0200 Subject: Stabilize tests --- tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp | 92 ++++++++++------------ tests/auto/qprogressbar/tst_qprogressbar.cpp | 2 +- 2 files changed, 42 insertions(+), 52 deletions(-) diff --git a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp index 9045acf..b6750ea 100644 --- a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp +++ b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp @@ -824,7 +824,8 @@ void tst_QGraphicsWidget::initStyleOption() if (underMouse) { view.resize(300, 300); view.show(); - QTest::qWait(125); + QTest::qWaitForWindowShown(&view); + QTest::qWait(20); sendMouseMove(view.viewport(), view.mapFromScene(widget->mapToScene(widget->boundingRect().center()))); } @@ -877,7 +878,7 @@ void tst_QGraphicsWidget::layout() } widget.setLayout(layout); - QTest::qWait(250); + QTest::qWait(25); QCOMPARE(widget.layout(), static_cast(layout)); for (int i = 0; i < children.count(); ++i) { @@ -917,13 +918,13 @@ void tst_QGraphicsWidget::layoutDirection() widget.setLayoutDirection(layoutDirection); QCOMPARE(widget.testAttribute(Qt::WA_SetLayoutDirection), true); view->show(); - QTest::qWait(100); + QTest::qWaitForWindowShown(view); for (int i = 0; i < children.count(); ++i) { QCOMPARE(children[i]->layoutDirection(), layoutDirection); QCOMPARE(children[i]->testAttribute(Qt::WA_SetLayoutDirection), false); view->repaint(); - QTest::qWait(200); - QCOMPARE(children[i]->m_painterLayoutDirection, layoutDirection); + QApplication::processEvents(); + QTRY_COMPARE(children[i]->m_painterLayoutDirection, layoutDirection); } delete view; } @@ -1156,8 +1157,8 @@ void tst_QGraphicsWidget::setTabOrder() if (!children.isEmpty()) { QGraphicsWidget *first = children.first(); view.viewport()->setFocus(); - QTest::qWait(250); - QVERIFY(view.viewport()->hasFocus()); + QApplication::processEvents(); + QTRY_VERIFY(view.viewport()->hasFocus()); first->setFocus(); QVERIFY(first->hasFocus()); QVERIFY(scene.hasFocus()); @@ -1198,11 +1199,8 @@ void tst_QGraphicsWidget::setTabOrderAndReparent() QGraphicsScene scene; QGraphicsView view(&scene); view.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif QApplication::setActiveWindow(&view); - QTest::qWait(25); + QTest::qWaitForWindowShown(&view); QTRY_COMPARE(QApplication::activeWindow(), &view); int i; @@ -1341,11 +1339,8 @@ void tst_QGraphicsWidget::verifyFocusChain() QGraphicsScene scene; QGraphicsView view(&scene); view.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif QApplication::setActiveWindow(&view); - QTest::qWait(25); + QTest::qWaitForWindowShown(&view); QTRY_COMPARE(QApplication::activeWindow(), &view); { @@ -1419,39 +1414,38 @@ void tst_QGraphicsWidget::verifyFocusChain() w1_2->setFocusPolicy(Qt::StrongFocus); scene.addItem(w1_2); window->show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(window); -#endif + QApplication::setActiveWindow(window); + QTest::qWaitForWindowShown(window); lineEdit->setFocus(); - QTest::qWait(250); - QVERIFY(lineEdit->hasFocus()); + QTest::qWait(25); + QTRY_VERIFY(lineEdit->hasFocus()); QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(250); - QVERIFY(w1_1->hasFocus()); + QTest::qWait(25); + QTRY_VERIFY(w1_1->hasFocus()); QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(250); - QVERIFY(w1_2->hasFocus()); + QTest::qWait(25); + QTRY_VERIFY(w1_2->hasFocus()); // remove the tabFocusFirst and insert new item delete w1_1; // calls _q_removeItemLater - QTest::qWait(250); + QTest::qWait(25); SubQGraphicsWidget *w1_3 = new SubQGraphicsWidget; w1_3->setFocusPolicy(Qt::StrongFocus); w1_3->setData(0, "w1_3"); w1_3->setGeometry(50,0,25, 25); scene.addItem(w1_3); - QVERIFY(w1_2->hasFocus()); + QTRY_VERIFY(w1_2->hasFocus()); QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(250); - QVERIFY(lineEdit->hasFocus()); + QTest::qWait(25); + QTRY_VERIFY(lineEdit->hasFocus()); // tabFocusFirst should now point to w1_2 QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(250); - QVERIFY(w1_2->hasFocus()); + QTest::qWait(25); + QTRY_VERIFY(w1_2->hasFocus()); QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(250); - QVERIFY(w1_3->hasFocus()); + QTest::qWait(25); + QTRY_VERIFY(w1_3->hasFocus()); scene.removeItem(w1_2); // does not call _q_removeItemLater delete w1_2; // calls _q_removeItemLater @@ -1460,18 +1454,18 @@ void tst_QGraphicsWidget::verifyFocusChain() w1_4->setData(0, "w1_4"); w1_4->setGeometry(75,0,25, 25); scene.addItem(w1_4); - QVERIFY(w1_3->hasFocus()); - QTest::qWait(250); + QTRY_VERIFY(w1_3->hasFocus()); + QTest::qWait(25); QVERIFY(compareFocusChain(view, QList() << w1_3 << w1_4)); QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(250); - QVERIFY(lineEdit->hasFocus()); + QTest::qWait(25); + QTRY_VERIFY(lineEdit->hasFocus()); // tabFocusFirst should now point to w1_3 QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(250); - QVERIFY(w1_3->hasFocus()); - QTest::qWait(250); - QVERIFY(compareFocusChain(view, QList() << w1_3 << w1_4)); + QTest::qWait(25); + QTRY_VERIFY(w1_3->hasFocus()); + QTest::qWait(25); + QTRY_VERIFY(compareFocusChain(view, QList() << w1_3 << w1_4)); delete window; } } @@ -2353,9 +2347,7 @@ void tst_QGraphicsWidget::painterStateProtectionOnWindowFrame() QGraphicsView view(&scene); scene.addItem(widget); view.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif + QTest::qWaitForWindowShown(&view); QTest::qWait(500); } @@ -2561,14 +2553,11 @@ void tst_QGraphicsWidget::ensureClipping() QGraphicsView view(&scene); view.setOptimizationFlag(QGraphicsView::IndirectPainting); view.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif - QTest::qWait(250); + QTest::qWaitForWindowShown(&view); QList expected; expected << clipWidget << childWidget << childitem; - QVERIFY(scene.drawnItems.contains(clipWidget)); + QTRY_VERIFY(scene.drawnItems.contains(clipWidget)); QVERIFY(scene.drawnItems.contains(childWidget)); QVERIFY(scene.drawnItems.contains(childitem)); } @@ -2630,11 +2619,12 @@ void tst_QGraphicsWidget::respectHFW() view->show(); window->setGeometry(0, 0, 70, 70); + QTest::qWaitForWindowShown(view); { // here we go - simulate a interactive resize of the window - QTest::qWait(200); + QTest::qWait(100); QTest::mouseMove(view, view->mapFromScene(71, 71)); // bottom right corner - QTest::qWait(200); + QTest::qWait(100); QTest::mousePress(view->viewport(), Qt::LeftButton, 0, view->mapFromScene(71, 71), 200); view->grabMouse(); @@ -2648,7 +2638,7 @@ void tst_QGraphicsWidget::respectHFW() QApplication::sendEvent(view->viewport(), &e); view->releaseMouse(); } - QTest::qWait(200); + QTest::qWait(100); const QSizeF winSize = window->size(); qreal minHFW = window->effectiveSizeHint(Qt::MinimumSize, QSizeF(winSize.width(), -1)).height(); QVERIFY(qAbs(minHFW - winSize.height()) < 1); diff --git a/tests/auto/qprogressbar/tst_qprogressbar.cpp b/tests/auto/qprogressbar/tst_qprogressbar.cpp index d86094d..bc4583e 100644 --- a/tests/auto/qprogressbar/tst_qprogressbar.cpp +++ b/tests/auto/qprogressbar/tst_qprogressbar.cpp @@ -175,7 +175,7 @@ void tst_QProgressBar::format() bar.repainted = false; bar.setFormat("%v of %m (%p%)"); QTest::qWait(20); - QVERIFY(bar.repainted); + QTRY_VERIFY(bar.repainted); bar.repainted = false; bar.setFormat("%v of %m (%p%)"); qApp->processEvents(); -- cgit v0.12 From 02989fc21d15dcbf5ceb6a55fc124b5eaf191169 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Tue, 29 Sep 2009 09:45:39 +0200 Subject: Add missing docs for QGraphicsAnchor --- src/gui/graphicsview/qgraphicsanchorlayout.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/gui/graphicsview/qgraphicsanchorlayout.cpp b/src/gui/graphicsview/qgraphicsanchorlayout.cpp index b3ebb2b..baea5d9 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout.cpp @@ -80,6 +80,24 @@ PM_LayoutHorizontalSpacing (or PM_LayoutVerticalSpacing for vertical anchors). */ +/*! + \class QGraphicsAnchor + \brief The QGraphicsAnchor class represents an anchor between two items in a + QGraphicsAnchorLayout. + \since 4.6 + \ingroup appearance + \ingroup geomanagement + \ingroup graphicsview-api + + The graphics anchor provides an API that enables you to query and manipulate the + properties an anchor has. When an anchor is added to the layout with + QGraphicsAnchorLayout::addAnchor(), a QGraphicsAnchor instance is returned where the properties + are initialized to their default values. The properties can then be further changed, and they + will be picked up the next time the layout is activated. + + \sa QGraphicsAnchorLayout::anchor() + +*/ #include "qgraphicsanchorlayout_p.h" QT_BEGIN_NAMESPACE -- cgit v0.12 From cdfcdbacc543bc0b67e615adf7bb8d885285b425 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Tue, 29 Sep 2009 09:46:06 +0200 Subject: After some discussion we decided to remove hasConflicts() from the API. hasConflicts() does only make sense for a tool/editor of the layout, and how this function would help the tool is only guesswork at the moment. We keep the private API though, in order to let the autotests we inherited from Orbit pass. --- src/gui/graphicsview/qgraphicsanchorlayout.cpp | 12 ----- src/gui/graphicsview/qgraphicsanchorlayout.h | 1 - src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 7 +++ src/gui/graphicsview/qgraphicsanchorlayout_p.h | 7 ++- .../tst_qgraphicsanchorlayout.cpp | 52 ++++++++-------------- .../tst_qgraphicsanchorlayout1.cpp | 5 ++- 6 files changed, 35 insertions(+), 49 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsanchorlayout.cpp b/src/gui/graphicsview/qgraphicsanchorlayout.cpp index baea5d9..fdb1708 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout.cpp @@ -306,18 +306,6 @@ void QGraphicsAnchorLayout::addAnchors(QGraphicsLayoutItem *firstItem, } /*! - Returns true if there are no arrangement that satisfies all constraints. - Otherwise returns false. - - \sa addAnchor() -*/ -bool QGraphicsAnchorLayout::hasConflicts() const -{ - Q_D(const QGraphicsAnchorLayout); - return d->hasConflicts(); -} - -/*! Sets the default horizontal spacing for the anchor layout to \a spacing. \sa horizontalSpacing(), setVerticalSpacing(), setSpacing() diff --git a/src/gui/graphicsview/qgraphicsanchorlayout.h b/src/gui/graphicsview/qgraphicsanchorlayout.h index 44074d1..d9a87ba 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout.h +++ b/src/gui/graphicsview/qgraphicsanchorlayout.h @@ -93,7 +93,6 @@ public: QGraphicsLayoutItem *secondItem, Qt::Orientations orientations = Qt::Horizontal | Qt::Vertical); - bool hasConflicts() const; void setHorizontalSpacing(qreal spacing); void setVerticalSpacing(qreal spacing); void setSpacing(qreal spacing); diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp index 49aabf5..f75118b 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp @@ -2287,6 +2287,13 @@ bool QGraphicsAnchorLayoutPrivate::solvePreferred(QList co return feasible; } +/*! + \internal + Returns true if there are no arrangement that satisfies all constraints. + Otherwise returns false. + + \sa addAnchor() +*/ bool QGraphicsAnchorLayoutPrivate::hasConflicts() const { QGraphicsAnchorLayoutPrivate *that = const_cast(this); diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h index 4e1bcd4..c86bfa3 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h @@ -343,7 +343,7 @@ public: QGraphicsAnchorLayout private methods and attributes. */ -class QGraphicsAnchorLayoutPrivate : public QGraphicsLayoutPrivate +class Q_AUTOTEST_EXPORT QGraphicsAnchorLayoutPrivate : public QGraphicsLayoutPrivate { Q_DECLARE_PUBLIC(QGraphicsAnchorLayout) @@ -370,6 +370,11 @@ public: QGraphicsAnchorLayoutPrivate(); + static QGraphicsAnchorLayoutPrivate *get(QGraphicsAnchorLayout *q) + { + return q ? q->d_func() : 0; + } + static Qt::AnchorPoint oppositeEdge( Qt::AnchorPoint edge); diff --git a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp index 2fee98d..9f13aca 100644 --- a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp +++ b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp @@ -40,9 +40,10 @@ ****************************************************************************/ #include -#include -#include -#include +#include +#include +#include +#include #include class tst_QGraphicsAnchorLayout : public QObject { @@ -142,6 +143,11 @@ static bool checkReverseDirection(QGraphicsWidget *w) return true; } +static bool layoutHasConflict(QGraphicsAnchorLayout *l) +{ + return QGraphicsAnchorLayoutPrivate::get(l)->hasConflicts(); +} + void tst_QGraphicsAnchorLayout::simple() { QGraphicsWidget *w1 = createItem(); @@ -154,8 +160,6 @@ void tst_QGraphicsAnchorLayout::simple() QGraphicsWidget p; p.setLayout(l); - QVERIFY(l->hasConflicts() == false); - QCOMPARE(l->count(), 2); } @@ -185,8 +189,6 @@ void tst_QGraphicsAnchorLayout::simple_center() setAnchor(l, b, Qt::AnchorBottom, c, Qt::AnchorTop, 0); setAnchor(l, c, Qt::AnchorBottom, l, Qt::AnchorBottom, 0); - QVERIFY(l->hasConflicts() == false); - QCOMPARE(l->count(), 3); QGraphicsWidget *p = new QGraphicsWidget(0, Qt::Window); @@ -234,8 +236,6 @@ void tst_QGraphicsAnchorLayout::simple_semifloat() setAnchor(l, a, Qt::AnchorBottom, l, Qt::AnchorBottom, 0); setAnchor(l, b, Qt::AnchorBottom, l, Qt::AnchorBottom, 0); - QVERIFY(l->hasConflicts() == false); - QCOMPARE(l->count(), 4); QGraphicsWidget *p = new QGraphicsWidget(0, Qt::Window); @@ -296,7 +296,6 @@ void tst_QGraphicsAnchorLayout::layoutDirection() view->show(); QCOMPARE(checkReverseDirection(p), true); - QVERIFY(l->hasConflicts() == false); delete p; delete view; @@ -340,8 +339,6 @@ void tst_QGraphicsAnchorLayout::diagonal() l->addAnchor(e, Qt::AnchorRight, l, Qt::AnchorRight); l->addAnchor(d, Qt::AnchorRight, e, Qt::AnchorLeft); - QVERIFY(l->hasConflicts() == false); - QCOMPARE(l->count(), 5); QGraphicsWidget p; @@ -391,7 +388,7 @@ void tst_QGraphicsAnchorLayout::diagonal() QCOMPARE(checkReverseDirection(&p), true); c->setMinimumWidth(300); - QVERIFY(l->hasConflicts()); + QVERIFY(layoutHasConflict(l)); } void tst_QGraphicsAnchorLayout::parallel() @@ -484,8 +481,6 @@ void tst_QGraphicsAnchorLayout::parallel() QCOMPARE(e->geometry(), QRectF(375, 400, 175, 100)); QCOMPARE(f->geometry(), QRectF(550, 500, 200, 100)); QCOMPARE(p.size(), layoutMaximumSize); - - QVERIFY(l->hasConflicts() == false); } void tst_QGraphicsAnchorLayout::parallel2() @@ -510,7 +505,6 @@ void tst_QGraphicsAnchorLayout::parallel2() l->addAnchor(l, Qt::AnchorLeft, b, Qt::AnchorLeft); l->addAnchor(b, Qt::AnchorRight, a, Qt::AnchorRight); - QVERIFY(l->hasConflicts() == false); QCOMPARE(l->count(), 2); QGraphicsWidget p; @@ -592,8 +586,6 @@ void tst_QGraphicsAnchorLayout::snake() QCOMPARE(b->geometry(), QRectF(90.0, 100.0, 10.0, 100.0)); QCOMPARE(c->geometry(), QRectF(90.0, 200.0, 100.0, 100.0)); QCOMPARE(p.size(), layoutMaximumSize); - - QVERIFY(l->hasConflicts() == false); } void tst_QGraphicsAnchorLayout::snakeOppositeDirections() @@ -627,7 +619,6 @@ void tst_QGraphicsAnchorLayout::snakeOppositeDirections() l->addAnchor(c, Qt::AnchorRight, l, Qt::AnchorRight); - QVERIFY(l->hasConflicts() == false); QCOMPARE(l->count(), 3); QGraphicsWidget p; @@ -731,8 +722,6 @@ void tst_QGraphicsAnchorLayout::fairDistribution() QCOMPARE(c->geometry(), QRectF(200.0, 200.0, 100.0, 100.0)); QCOMPARE(d->geometry(), QRectF(0.0, 300.0, 300.0, 100.0)); QCOMPARE(p.size(), layoutMaximumSize); - - QVERIFY(l->hasConflicts() == false); } void tst_QGraphicsAnchorLayout::fairDistributionOppositeDirections() @@ -809,8 +798,6 @@ void tst_QGraphicsAnchorLayout::fairDistributionOppositeDirections() QCOMPARE(a->size(), d->size()); QCOMPARE(e->size().width(), 4 * a->size().width()); QCOMPARE(p.size(), layoutMaximumSize); - - QVERIFY(l->hasConflicts() == false); } void tst_QGraphicsAnchorLayout::proportionalPreferred() @@ -873,8 +860,6 @@ void tst_QGraphicsAnchorLayout::proportionalPreferred() QCOMPARE(a->size().width(), 10 * factor); QCOMPARE(c->size().width(), 14 * factor); QCOMPARE(p.size(), QSizeF(12, 400)); - - QVERIFY(l->hasConflicts() == false); } void tst_QGraphicsAnchorLayout::example() @@ -928,7 +913,6 @@ void tst_QGraphicsAnchorLayout::example() l->addAnchor(l, Qt::AnchorLeft, g, Qt::AnchorLeft); l->addAnchor(f, Qt::AnchorRight, g, Qt::AnchorRight); - QVERIFY(l->hasConflicts() == false); QCOMPARE(l->count(), 7); QGraphicsWidget p; @@ -1017,8 +1001,6 @@ void tst_QGraphicsAnchorLayout::setSpacing() QCOMPARE(b->geometry(), QRectF(24, 0, 20, 20)); QCOMPARE(c->geometry(), QRectF(0, 20, 44, 20)); - QVERIFY(l->hasConflicts() == false); - delete p; delete view; } @@ -1103,7 +1085,6 @@ void tst_QGraphicsAnchorLayout::hardComplexS60() QSizeF layoutMaximumSize = l->effectiveSizeHint(Qt::MaximumSize); QCOMPARE(layoutMaximumSize, QSizeF(240, 40)); - QVERIFY(l->hasConflicts() == false); delete p; } @@ -1166,7 +1147,6 @@ void tst_QGraphicsAnchorLayout::delete_anchor() QGraphicsWidget *p = new QGraphicsWidget; p->setLayout(l); - QVERIFY(l->hasConflicts() == false); QCOMPARE(l->count(), 3); scene.addItem(p); @@ -1281,6 +1261,12 @@ void tst_QGraphicsAnchorLayout::sizePolicy() delete view; } +/*! + \internal + + Uses private API. (We have decided to pull hasConflicts() out of the API). However, it also + tests some tight conditions (almost-in-conflict) that we really want to test. +*/ void tst_QGraphicsAnchorLayout::conflicts() { QGraphicsWidget *a = createItem(QSizeF(80,10), QSizeF(90,10), QSizeF(100,10), "a"); @@ -1311,13 +1297,13 @@ void tst_QGraphicsAnchorLayout::conflicts() p->setLayout(l); - QCOMPARE(l->hasConflicts(), true); + QCOMPARE(layoutHasConflict(l), true); a->setMinimumSize(QSizeF(29,10)); - QCOMPARE(l->hasConflicts(), false); + QCOMPARE(layoutHasConflict(l), false); a->setMinimumSize(QSizeF(30,10)); - QCOMPARE(l->hasConflicts(), false); + QCOMPARE(layoutHasConflict(l), false); delete p; } diff --git a/tests/auto/qgraphicsanchorlayout1/tst_qgraphicsanchorlayout1.cpp b/tests/auto/qgraphicsanchorlayout1/tst_qgraphicsanchorlayout1.cpp index a6746db..a521b78 100644 --- a/tests/auto/qgraphicsanchorlayout1/tst_qgraphicsanchorlayout1.cpp +++ b/tests/auto/qgraphicsanchorlayout1/tst_qgraphicsanchorlayout1.cpp @@ -43,7 +43,8 @@ #include #include #include -#include +#include +#include #define TEST_COMPLEX_CASES @@ -60,7 +61,7 @@ public: bool isValid() { - return !hasConflicts(); + return !QGraphicsAnchorLayoutPrivate::get(this)->hasConflicts(); } void setAnchor( -- cgit v0.12 From e9ef0cd651bcfeb85262e877c693f5efe07dff8e Mon Sep 17 00:00:00 2001 From: Jeremy Katz Date: Tue, 29 Sep 2009 13:03:42 +0200 Subject: fix warnings about declarations shadowing class members (autotest reported) Reviewed-by: Olivier --- src/gui/kernel/qevent.h | 2 +- src/gui/math3d/qmatrix4x4.h | 40 ++++++++++++++++++++-------------------- src/gui/math3d/qquaternion.h | 34 +++++++++++++++++----------------- src/gui/math3d/qvector2d.h | 4 ++-- src/gui/math3d/qvector3d.h | 6 +++--- src/gui/math3d/qvector4d.h | 8 ++++---- src/testlib/qtestcoreelement.h | 6 +++--- 7 files changed, 50 insertions(+), 50 deletions(-) diff --git a/src/gui/kernel/qevent.h b/src/gui/kernel/qevent.h index fa2b22f..4396766 100644 --- a/src/gui/kernel/qevent.h +++ b/src/gui/kernel/qevent.h @@ -807,7 +807,7 @@ public: // internal inline void setWidget(QWidget *awidget) { _widget = awidget; } inline void setDeviceType(DeviceType adeviceType) { _deviceType = adeviceType; } - inline void setTouchPointStates(Qt::TouchPointStates touchPointStates) { _touchPointStates = touchPointStates; } + inline void setTouchPointStates(Qt::TouchPointStates aTouchPointStates) { _touchPointStates = aTouchPointStates; } inline void setTouchPoints(const QList &atouchPoints) { _touchPoints = atouchPoints; } protected: diff --git a/src/gui/math3d/qmatrix4x4.h b/src/gui/math3d/qmatrix4x4.h index cfa3f2a..b32e00a 100644 --- a/src/gui/math3d/qmatrix4x4.h +++ b/src/gui/math3d/qmatrix4x4.h @@ -228,14 +228,14 @@ Q_INLINE_TEMPLATE QMatrix4x4::QMatrix4x4 (const QGenericMatrix& matrix) { const qreal *values = matrix.constData(); - for (int col = 0; col < 4; ++col) { - for (int row = 0; row < 4; ++row) { - if (col < N && row < M) - m[col][row] = values[col * M + row]; - else if (col == row) - m[col][row] = 1.0f; + for (int matrixCol = 0; matrixCol < 4; ++matrixCol) { + for (int matrixRow = 0; matrixRow < 4; ++matrixRow) { + if (matrixCol < N && matrixRow < M) + m[matrixCol][matrixRow] = values[matrixCol * M + matrixRow]; + else if (matrixCol == matrixRow) + m[matrixCol][matrixRow] = 1.0f; else - m[col][row] = 0.0f; + m[matrixCol][matrixRow] = 0.0f; } } flagBits = General; @@ -246,14 +246,14 @@ QGenericMatrix QMatrix4x4::toGenericMatrix() const { QGenericMatrix result; qreal *values = result.data(); - for (int col = 0; col < N; ++col) { - for (int row = 0; row < M; ++row) { - if (col < 4 && row < 4) - values[col * M + row] = m[col][row]; - else if (col == row) - values[col * M + row] = 1.0f; + for (int matrixCol = 0; matrixCol < N; ++matrixCol) { + for (int matrixRow = 0; matrixRow < M; ++matrixRow) { + if (matrixCol < 4 && matrixRow < 4) + values[matrixCol * M + matrixRow] = m[matrixCol][matrixRow]; + else if (matrixCol == matrixRow) + values[matrixCol * M + matrixRow] = 1.0f; else - values[col * M + row] = 0.0f; + values[matrixCol * M + matrixRow] = 0.0f; } } return result; @@ -261,17 +261,17 @@ QGenericMatrix QMatrix4x4::toGenericMatrix() const #endif -inline const qreal& QMatrix4x4::operator()(int row, int column) const +inline const qreal& QMatrix4x4::operator()(int aRow, int aColumn) const { - Q_ASSERT(row >= 0 && row < 4 && column >= 0 && column < 4); - return m[column][row]; + Q_ASSERT(aRow >= 0 && aRow < 4 && aColumn >= 0 && aColumn < 4); + return m[aColumn][aRow]; } -inline qreal& QMatrix4x4::operator()(int row, int column) +inline qreal& QMatrix4x4::operator()(int aRow, int aColumn) { - Q_ASSERT(row >= 0 && row < 4 && column >= 0 && column < 4); + Q_ASSERT(aRow >= 0 && aRow < 4 && aColumn >= 0 && aColumn < 4); flagBits = General; - return m[column][row]; + return m[aColumn][aRow]; } inline QVector4D QMatrix4x4::column(int index) const diff --git a/src/gui/math3d/qquaternion.h b/src/gui/math3d/qquaternion.h index dd5dddc..7480a5c 100644 --- a/src/gui/math3d/qquaternion.h +++ b/src/gui/math3d/qquaternion.h @@ -138,7 +138,7 @@ private: inline QQuaternion::QQuaternion() : wp(1.0f), xp(0.0f), yp(0.0f), zp(0.0f) {} -inline QQuaternion::QQuaternion(qreal scalar, qreal xpos, qreal ypos, qreal zpos) : wp(scalar), xp(xpos), yp(ypos), zp(zpos) {} +inline QQuaternion::QQuaternion(qreal aScalar, qreal xpos, qreal ypos, qreal zpos) : wp(aScalar), xp(xpos), yp(ypos), zp(zpos) {} inline bool QQuaternion::isNull() const @@ -156,10 +156,10 @@ inline qreal QQuaternion::y() const { return qreal(yp); } inline qreal QQuaternion::z() const { return qreal(zp); } inline qreal QQuaternion::scalar() const { return qreal(wp); } -inline void QQuaternion::setX(qreal x) { xp = x; } -inline void QQuaternion::setY(qreal y) { yp = y; } -inline void QQuaternion::setZ(qreal z) { zp = z; } -inline void QQuaternion::setScalar(qreal scalar) { wp = scalar; } +inline void QQuaternion::setX(qreal aX) { xp = aX; } +inline void QQuaternion::setY(qreal aY) { yp = aY; } +inline void QQuaternion::setZ(qreal aZ) { zp = aZ; } +inline void QQuaternion::setScalar(qreal aScalar) { wp = aScalar; } inline QQuaternion QQuaternion::conjugate() const { @@ -274,14 +274,14 @@ inline bool qFuzzyCompare(const QQuaternion& q1, const QQuaternion& q2) #ifndef QT_NO_VECTOR3D -inline QQuaternion::QQuaternion(qreal scalar, const QVector3D& vector) - : wp(scalar), xp(vector.x()), yp(vector.y()), zp(vector.z()) {} +inline QQuaternion::QQuaternion(qreal aScalar, const QVector3D& aVector) + : wp(aScalar), xp(aVector.x()), yp(aVector.y()), zp(aVector.z()) {} -inline void QQuaternion::setVector(const QVector3D& vector) +inline void QQuaternion::setVector(const QVector3D& aVector) { - xp = vector.x(); - yp = vector.y(); - zp = vector.z(); + xp = aVector.x(); + yp = aVector.y(); + zp = aVector.z(); } inline QVector3D QQuaternion::vector() const @@ -291,17 +291,17 @@ inline QVector3D QQuaternion::vector() const #endif -inline void QQuaternion::setVector(qreal x, qreal y, qreal z) +inline void QQuaternion::setVector(qreal aX, qreal aY, qreal aZ) { - xp = x; - yp = y; - zp = z; + xp = aX; + yp = aY; + zp = aZ; } #ifndef QT_NO_VECTOR4D -inline QQuaternion::QQuaternion(const QVector4D& vector) - : wp(vector.w()), xp(vector.x()), yp(vector.y()), zp(vector.z()) {} +inline QQuaternion::QQuaternion(const QVector4D& aVector) + : wp(aVector.w()), xp(aVector.x()), yp(aVector.y()), zp(aVector.z()) {} inline QVector4D QQuaternion::toVector4D() const { diff --git a/src/gui/math3d/qvector2d.h b/src/gui/math3d/qvector2d.h index 570e864..cd9a12c 100644 --- a/src/gui/math3d/qvector2d.h +++ b/src/gui/math3d/qvector2d.h @@ -144,8 +144,8 @@ inline bool QVector2D::isNull() const inline qreal QVector2D::x() const { return qreal(xp); } inline qreal QVector2D::y() const { return qreal(yp); } -inline void QVector2D::setX(qreal x) { xp = x; } -inline void QVector2D::setY(qreal y) { yp = y; } +inline void QVector2D::setX(qreal aX) { xp = aX; } +inline void QVector2D::setY(qreal aY) { yp = aY; } inline QVector2D &QVector2D::operator+=(const QVector2D &vector) { diff --git a/src/gui/math3d/qvector3d.h b/src/gui/math3d/qvector3d.h index 1291c96..60bd693 100644 --- a/src/gui/math3d/qvector3d.h +++ b/src/gui/math3d/qvector3d.h @@ -160,9 +160,9 @@ inline qreal QVector3D::x() const { return qreal(xp); } inline qreal QVector3D::y() const { return qreal(yp); } inline qreal QVector3D::z() const { return qreal(zp); } -inline void QVector3D::setX(qreal x) { xp = x; } -inline void QVector3D::setY(qreal y) { yp = y; } -inline void QVector3D::setZ(qreal z) { zp = z; } +inline void QVector3D::setX(qreal aX) { xp = aX; } +inline void QVector3D::setY(qreal aY) { yp = aY; } +inline void QVector3D::setZ(qreal aZ) { zp = aZ; } inline QVector3D &QVector3D::operator+=(const QVector3D &vector) { diff --git a/src/gui/math3d/qvector4d.h b/src/gui/math3d/qvector4d.h index ad0718a..c35b536 100644 --- a/src/gui/math3d/qvector4d.h +++ b/src/gui/math3d/qvector4d.h @@ -158,10 +158,10 @@ inline qreal QVector4D::y() const { return qreal(yp); } inline qreal QVector4D::z() const { return qreal(zp); } inline qreal QVector4D::w() const { return qreal(wp); } -inline void QVector4D::setX(qreal x) { xp = x; } -inline void QVector4D::setY(qreal y) { yp = y; } -inline void QVector4D::setZ(qreal z) { zp = z; } -inline void QVector4D::setW(qreal w) { wp = w; } +inline void QVector4D::setX(qreal aX) { xp = aX; } +inline void QVector4D::setY(qreal aY) { yp = aY; } +inline void QVector4D::setZ(qreal aZ) { zp = aZ; } +inline void QVector4D::setW(qreal aW) { wp = aW; } inline QVector4D &QVector4D::operator+=(const QVector4D &vector) { diff --git a/src/testlib/qtestcoreelement.h b/src/testlib/qtestcoreelement.h index e9691d5..b5e5d0f 100644 --- a/src/testlib/qtestcoreelement.h +++ b/src/testlib/qtestcoreelement.h @@ -93,9 +93,9 @@ void QTestCoreElement::addAttribute(const QTest::AttributeIndex att if (attribute(attributeIndex)) return; - QTestElementAttribute *attribute = new QTestElementAttribute; - attribute->setPair(attributeIndex, value); - attribute->addToList(&listOfAttributes); + QTestElementAttribute *testAttribute = new QTestElementAttribute; + testAttribute->setPair(attributeIndex, value); + testAttribute->addToList(&listOfAttributes); } template -- cgit v0.12 From b31159a4e2ce5383a800b4b2e7210cf5423b418d Mon Sep 17 00:00:00 2001 From: Jocelyn Turcotte Date: Tue, 29 Sep 2009 13:10:54 +0200 Subject: Recorrect formextractor example build break after updating 3rdparty/webkit --- examples/webkit/formextractor/formextractor.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/webkit/formextractor/formextractor.cpp b/examples/webkit/formextractor/formextractor.cpp index 3ce888c..4b181e8 100644 --- a/examples/webkit/formextractor/formextractor.cpp +++ b/examples/webkit/formextractor/formextractor.cpp @@ -67,15 +67,15 @@ void FormExtractor::submit() QWebElement femaleGender = frame->findFirstElement("#genderFemale"); QWebElement updates = frame->findFirstElement("#updates"); - ui.firstNameEdit->setText(firstName.evaluateScript("this.value").toString()); - ui.lastNameEdit->setText(lastName.evaluateScript("this.value").toString()); + ui.firstNameEdit->setText(firstName.evaluateJavaScript("this.value").toString()); + ui.lastNameEdit->setText(lastName.evaluateJavaScript("this.value").toString()); - if (maleGender.evaluateScript("this.checked").toBool()) - ui.genderEdit->setText(maleGender.evaluateScript("this.value").toString()); - else if (femaleGender.evaluateScript("this.checked").toBool()) - ui.genderEdit->setText(femaleGender.evaluateScript("this.value").toString()); + if (maleGender.evaluateJavaScript("this.checked").toBool()) + ui.genderEdit->setText(maleGender.evaluateJavaScript("this.value").toString()); + else if (femaleGender.evaluateJavaScript("this.checked").toBool()) + ui.genderEdit->setText(femaleGender.evaluateJavaScript("this.value").toString()); - if (updates.evaluateScript("this.checked").toBool()) + if (updates.evaluateJavaScript("this.checked").toBool()) ui.updatesEdit->setText("Yes"); else ui.updatesEdit->setText("No"); -- cgit v0.12 From 640ae542541b66a5da85ce76309f9595ed2c8bf3 Mon Sep 17 00:00:00 2001 From: Denis Dzyubenko Date: Tue, 29 Sep 2009 13:18:05 +0200 Subject: added my changes to the changelog Reviewed-by: trustme --- dist/changes-4.5.3 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/dist/changes-4.5.3 b/dist/changes-4.5.3 index f3a36d3..1edacac 100644 --- a/dist/changes-4.5.3 +++ b/dist/changes-4.5.3 @@ -86,6 +86,8 @@ Qt for Linux/X11 - Fixed a bug where an empty KDEDIRS variable would bring /share into the icon search path. - [KDE 191759] Plasma spinning in endless loop. +- QClipboard can copy/paste on all screens in a multiscreen configuration. +- Fixed a bug that prevented QClipboard to work after some time. Qt for Mac OS X @@ -101,11 +103,14 @@ Qt for Mac OS X - Fixed the wizard background images for Snow Leopard. +Qt for Windows +----------------- +- [250188] Fixed size windows will show the maximize button if asked explicitely. + Qt for Windows CE ----------------- - [260702] Fixed restoring of minimized Windows. - **************************************************************************** * Plugins * **************************************************************************** -- cgit v0.12 From 7931a2eda156a4250f4d0283c2b6b0d5434bbecd Mon Sep 17 00:00:00 2001 From: Alexis Menard Date: Tue, 29 Sep 2009 13:21:35 +0200 Subject: Fix typo. Reviewed-by: TrustMe --- src/gui/widgets/qvalidator.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/widgets/qvalidator.h b/src/gui/widgets/qvalidator.h index 268ecaa..a0d9534 100644 --- a/src/gui/widgets/qvalidator.h +++ b/src/gui/widgets/qvalidator.h @@ -61,7 +61,7 @@ class Q_GUI_EXPORT QValidator : public QObject { Q_OBJECT public: - explicit QValidator(QObject * parent=0); + explicit QValidator(QObject * parent = 0); ~QValidator(); enum State { @@ -100,7 +100,7 @@ class Q_GUI_EXPORT QIntValidator : public QValidator Q_PROPERTY(int top READ top WRITE setTop) public: - explicit QIntValidator(QObject * parent=0); + explicit QIntValidator(QObject * parent = 0); QIntValidator(int bottom, int top, QObject * parent); ~QIntValidator(); -- cgit v0.12 From b2d756ff77ff4446499292ffbaede38ab5d0e894 Mon Sep 17 00:00:00 2001 From: Tom Cooksey Date: Tue, 29 Sep 2009 11:09:01 +0200 Subject: Fix EGL/GLX surface leak when using texture-from-pixmap The QScopedPointer changes mean that the pixmap data's reference count is now decremented after the cleanup hooks are called. The hooks should also only be called when the pixmap data gets deleted, so we don't actually have to check the reference count at all. Reviewed-by: TrustMe --- src/opengl/qgl.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp index 0ad6772..1276443 100644 --- a/src/opengl/qgl.cpp +++ b/src/opengl/qgl.cpp @@ -1624,9 +1624,8 @@ void QGLTextureCache::pixmapCleanupHook(QPixmap* pixmap) } #if defined(Q_WS_X11) QPixmapData *pd = pixmap->data_ptr().data(); - // Only need to delete the gl surface if the pixmap is about to be deleted - if (pd->ref == 0) - QGLContextPrivate::destroyGlSurfaceForPixmap(pd); + Q_ASSERT(pd->ref == 1); // Make sure reference counting isn't broken + QGLContextPrivate::destroyGlSurfaceForPixmap(pd); #endif } -- cgit v0.12 From 0140f76b4238f69e0b8886fca24b4afef33f106f Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 29 Sep 2009 13:36:21 +0200 Subject: Disable ECMAScript date test. On slow machines, the time in which the reference and the result are computed may vary by one second. Task-number: QTBUG-4614 Reviewed-by: Kent Hansen --- tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp b/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp index c305221..94f08d9 100644 --- a/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp +++ b/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp @@ -640,6 +640,7 @@ tst_Suite::tst_Suite() addExpectedFailure("ecma_3/Unicode/regress-352044-01.js", "issues with Unicode escape sequences in JavaScript source code", willFixInNextReleaseMessage); addExpectedFailure("ecma_3/Unicode/uc-001.js", "Unicode format-control character test (Category Cf.)", willFixInNextReleaseMessage); + addFileExclusion(".+/15\\.9\\.2\\..+", "unstable on slow machines"); addFileExclusion(".+/15\\.9\\.5\\..+", "too slooow"); addFileExclusion("regress-130451.js", "asserts"); addFileExclusion("regress-322135-01.js", "asserts"); -- cgit v0.12 From 950f80620b56e9ed277240dc16087f3e4b53cc4a Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Tue, 29 Sep 2009 13:55:41 +0200 Subject: Enable QtScript by default on Windows Reviewed-by: Simon Hausmann --- tools/configure/configureapp.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 48d9370..b9f8ed8 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -2025,9 +2025,9 @@ bool Configure::checkAvailability(const QString &part) if (!findFile("msdmo.lib")) cout << "msdmo.lib not found" << endl; if (!findFile("d3d9.h")) cout << "d3d9.h not found" << endl; } - } else if (part == "MULTIMEDIA") { + } else if (part == "MULTIMEDIA" || part == "SCRIPT" || part == "SCRIPTTOOLS") { available = true; - } else if (part == "WEBKIT" || part == "SCRIPT" || part == "SCRIPTTOOLS") { + } else if (part == "WEBKIT") { available = (dictionary.value("QMAKESPEC") == "win32-msvc2005") || (dictionary.value("QMAKESPEC") == "win32-msvc2008") || (dictionary.value("QMAKESPEC") == "win32-g++"); } -- cgit v0.12 From e128abf27b5668bfce7ac471ed283d1fba007499 Mon Sep 17 00:00:00 2001 From: Espen Riskedal Date: Tue, 29 Sep 2009 14:07:29 +0200 Subject: make sure QtWebKit and QtScript are included in the .sis file Task-number: QTBUG-4613 Reviewed-by: Aleksandar Babic --- src/s60installs/s60installs.pro | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro index 62661ed..2bf64e3 100644 --- a/src/s60installs/s60installs.pro +++ b/src/s60installs/s60installs.pro @@ -19,6 +19,7 @@ symbian: { QtXml.dll \ QtGui.dll \ QtNetwork.dll \ + QtScript.dll \ QtTest.dll \ QtSql.dll @@ -86,6 +87,10 @@ symbian: { qtlibraries.sources += Phonon.dll } + contains(QT_CONFIG, webkit): { + qtlibraries.sources += QtWebKit.dll + } + graphicssystems_plugins.path = $$QT_PLUGINS_BASE_DIR/graphicssystems contains(QT_CONFIG, openvg) { qtlibraries.sources = QtOpenVG.dll -- cgit v0.12 From 51a556f7e65f3e9c3c011f309f62a819eec07727 Mon Sep 17 00:00:00 2001 From: Alexis Menard Date: Tue, 29 Sep 2009 14:51:06 +0200 Subject: Fix auto-test failure for QFileSystemModel::sort This test was failing on the farm because the rootPath for the model was invalid. QDir::rootPath on Windows return C:\ but in the farm the temp directory is in E:\ therefore the sort was only triggered on C:\ and this explain the failure. I also make comparaisons a bit more robust. Reviewed-by:TrustMe --- .../auto/qfilesystemmodel/tst_qfilesystemmodel.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp index a388f0a..63bc90c 100644 --- a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp +++ b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp @@ -823,7 +823,7 @@ void tst_QFileSystemModel::sort() out2 << "The magic number is : " << 49 << " but i write some stuff in the file \n"; tempFile2.close(); - myModel->setRootPath(QDir::rootPath()); + myModel->setRootPath(""); myModel->setFilter(QDir::AllEntries | QDir::System | QDir::Hidden); tree->setSortingEnabled(true); tree->setModel(myModel); @@ -846,11 +846,22 @@ void tst_QFileSystemModel::sort() tree->expand(myModel->index(dirPath, 0)); QTest::qWait(500); QModelIndex parent = myModel->index(dirPath, 0); + QList expectedOrder; + expectedOrder << tempFile2.fileName() << tempFile.fileName() << dirPath + QChar('/') + "." << dirPath + QChar('/') + ".."; //File dialog Mode means sub trees are not sorted, only the current root - if (fileDialogMode) - QVERIFY(dirPath + QChar('/') + myModel->index(0, 1, parent).data(QFileSystemModel::FileNameRole).toString() != tempFile2.fileName()); - else - QCOMPARE(dirPath + QChar('/') + myModel->index(0, 1, parent).data(QFileSystemModel::FileNameRole).toString(), tempFile2.fileName()); + if (fileDialogMode) { + QList actualRows; + for(int i = 0; i < myModel->rowCount(parent); ++i) + { + actualRows << dirPath + QChar('/') + myModel->index(i, 1, parent).data(QFileSystemModel::FileNameRole).toString(); + } + QVERIFY(actualRows != expectedOrder); + } else { + for(int i = 0; i < myModel->rowCount(parent); ++i) + { + QVERIFY(dirPath + QChar('/') + myModel->index(i, 1, parent).data(QFileSystemModel::FileNameRole).toString() == expectedOrder.at(i)); + } + } delete tree; delete myModel; -- cgit v0.12 From 1fd189619149c6d3489a35e42c4034d4145237dc Mon Sep 17 00:00:00 2001 From: Jason Barron Date: Tue, 29 Sep 2009 12:42:09 +0200 Subject: Fix bug with posting events from HandleCommandL on Symbian. Increase the loop level counter here because this is a system event entry point. Previously, posting a deferred delete event from this function (or triggering an action that posted this event) would end up with the event not being processed on time. The reason is that these events are only processed when the event loop that posted the event returns. Since the loop counter was not previously incremented, this "nested loop" was not detected so the event would only be processed when the main event loop returned which is typically at the end of the application. Reviewed-by: axis --- src/gui/kernel/qapplication_s60.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 99d188e..0650f6c 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -1457,6 +1457,7 @@ bool QApplication::s60EventFilter(TWsEvent * /* aEvent */) */ void QApplication::symbianHandleCommand(int command) { + QScopedLoopLevelCounter counter(d_func()->threadData); switch (command) { #ifdef Q_WS_S60 case EAknSoftkeyExit: { -- cgit v0.12 From f6a6e30eb16616b90d90fd6e20f9d840da41b9d1 Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Tue, 29 Sep 2009 15:04:09 +0200 Subject: Introduce state machine event priority, make it possible to cancel events The priority specifies whether the event should be posted to what the SCXML spec refers to as the "external" (NormalPriority) queue, or the "internal" (HighPriority) queue. Delayed events are now posted through a separate function, postDelayedEvent(). That function returns an id that can be passed to cancelDelayedEvent() to cancel it. Reviewed-by: Eskil Abrahamsen Blomfeldt --- examples/statemachine/pingpong/main.cpp | 4 +- src/corelib/statemachine/qstatemachine.cpp | 98 +++++++++++++++++++++----- src/corelib/statemachine/qstatemachine.h | 11 ++- tests/auto/qstatemachine/tst_qstatemachine.cpp | 49 +++++++++++-- 4 files changed, 135 insertions(+), 27 deletions(-) diff --git a/examples/statemachine/pingpong/main.cpp b/examples/statemachine/pingpong/main.cpp index 7e3d8b1..358c499 100644 --- a/examples/statemachine/pingpong/main.cpp +++ b/examples/statemachine/pingpong/main.cpp @@ -86,7 +86,7 @@ protected: } virtual void onTransition(QEvent *) { - machine()->postEvent(new PingEvent(), 500); + machine()->postDelayedEvent(new PingEvent(), 500); fprintf(stdout, "ping?\n"); } }; @@ -104,7 +104,7 @@ protected: } virtual void onTransition(QEvent *) { - machine()->postEvent(new PongEvent(), 500); + machine()->postDelayedEvent(new PongEvent(), 500); fprintf(stdout, "pong!\n"); } }; diff --git a/src/corelib/statemachine/qstatemachine.cpp b/src/corelib/statemachine/qstatemachine.cpp index 8d50870c..256763b 100644 --- a/src/corelib/statemachine/qstatemachine.cpp +++ b/src/corelib/statemachine/qstatemachine.cpp @@ -1587,6 +1587,18 @@ QStateMachine::~QStateMachine() { } +/*! + \enum QStateMachine::EventPriority + + This enum type specifies the priority of an event posted to the state + machine using postEvent(). + + Events of high priority are processed before events of normal priority. + + \value NormalPriority The event has normal priority. + \value HighPriority The event has high priority. +*/ + /*! \enum QStateMachine::Error This enum type defines errors that can occur in the state machine at run time. When the state @@ -1798,47 +1810,99 @@ void QStateMachine::stop() } /*! - Posts the given \a event for processing by this state machine, with a delay - of \a delay milliseconds. + Posts the given \a event of the given \a priority for processing by this + state machine. This function returns immediately. The event is added to the state machine's event queue. Events are processed in the order posted. The state machine takes ownership of the event and deletes it once it has been processed. You can only post events when the state machine is running. + + \sa postDelayedEvent() */ -void QStateMachine::postEvent(QEvent *event, int delay) +void QStateMachine::postEvent(QEvent *event, EventPriority priority) { Q_D(QStateMachine); if (d->state != QStateMachinePrivate::Running) { qWarning("QStateMachine::postEvent: cannot post event when the state machine is not running"); return; } + if (!event) { + qWarning("QStateMachine::postEvent: cannot post null event"); + return; + } #ifdef QSTATEMACHINE_DEBUG - qDebug() << this << ": posting external event" << event << "with delay" << delay; + qDebug() << this << ": posting event" << event; #endif - if (delay) { - int tid = startTimer(delay); - d->delayedEvents[tid] = event; - } else { + switch (priority) { + case NormalPriority: d->externalEventQueue.append(event); - d->processEvents(QStateMachinePrivate::QueuedProcessing); + break; + case HighPriority: + d->internalEventQueue.append(event); + break; } + d->processEvents(QStateMachinePrivate::QueuedProcessing); } /*! - \internal + Posts the given \a event for processing by this state machine, with the + given \a delay in milliseconds. Returns an identifier associated with the + delayed event, or -1 if the event could not be posted. + + This function returns immediately. When the delay has expired, the event + will be added to the state machine's event queue for processing. The state + machine takes ownership of the event and deletes it once it has been + processed. + + You can only post events when the state machine is running. - Posts the given internal \a event for processing by this state machine. + \sa cancelDelayedEvent(), postEvent() */ -void QStateMachine::postInternalEvent(QEvent *event) +int QStateMachine::postDelayedEvent(QEvent *event, int delay) { Q_D(QStateMachine); + if (d->state != QStateMachinePrivate::Running) { + qWarning("QStateMachine::postDelayedEvent: cannot post event when the state machine is not running"); + return -1; + } + if (!event) { + qWarning("QStateMachine::postDelayedEvent: cannot post null event"); + return -1; + } + if (delay < 0) { + qWarning("QStateMachine::postDelayedEvent: delay cannot be negative"); + return -1; + } #ifdef QSTATEMACHINE_DEBUG - qDebug() << this << ": posting internal event" << event; + qDebug() << this << ": posting event" << event << "with delay" << delay; #endif - d->internalEventQueue.append(event); - d->processEvents(QStateMachinePrivate::QueuedProcessing); + int tid = startTimer(delay); + d->delayedEvents[tid] = event; + return tid; +} + +/*! + Cancels the delayed event identified by the given \a id. The id should be a + value returned by a call to postDelayedEvent(). Returns true if the event + was successfully cancelled, otherwise returns false. + + \sa postDelayedEvent() +*/ +bool QStateMachine::cancelDelayedEvent(int id) +{ + Q_D(QStateMachine); + if (d->state != QStateMachinePrivate::Running) { + qWarning("QStateMachine::cancelDelayedEvent: the machine is not running"); + return false; + } + QEvent *e = d->delayedEvents.take(id); + if (!e) + return false; + killTimer(id); + delete e; + return true; } /*! @@ -1882,9 +1946,9 @@ bool QStateMachine::event(QEvent *e) if (e->type() == QEvent::Timer) { QTimerEvent *te = static_cast(e); int tid = te->timerId(); - if (d->delayedEvents.contains(tid)) { + QEvent *ee = d->delayedEvents.take(tid); + if (ee != 0) { killTimer(tid); - QEvent *ee = d->delayedEvents.take(tid); d->externalEventQueue.append(ee); d->processEvents(QStateMachinePrivate::DirectProcessing); return true; diff --git a/src/corelib/statemachine/qstatemachine.h b/src/corelib/statemachine/qstatemachine.h index a0b2b14..321a05c 100644 --- a/src/corelib/statemachine/qstatemachine.h +++ b/src/corelib/statemachine/qstatemachine.h @@ -102,6 +102,11 @@ public: QEvent *m_event; }; + enum EventPriority { + NormalPriority, + HighPriority + }; + enum RestorePolicy { DoNotRestoreProperties, RestoreProperties @@ -138,7 +143,9 @@ public: QStateMachine::RestorePolicy globalRestorePolicy() const; void setGlobalRestorePolicy(QStateMachine::RestorePolicy restorePolicy); - void postEvent(QEvent *event, int delay = 0); + void postEvent(QEvent *event, EventPriority priority = NormalPriority); + int postDelayedEvent(QEvent *event, int delay); + bool cancelDelayedEvent(int id); QSet configuration() const; @@ -158,8 +165,6 @@ protected: void onEntry(QEvent *event); void onExit(QEvent *event); - void postInternalEvent(QEvent *event); - virtual void beginSelectTransitions(QEvent *event); virtual void endSelectTransitions(QEvent *event); diff --git a/tests/auto/qstatemachine/tst_qstatemachine.cpp b/tests/auto/qstatemachine/tst_qstatemachine.cpp index 37b34bf..463dbf6 100644 --- a/tests/auto/qstatemachine/tst_qstatemachine.cpp +++ b/tests/auto/qstatemachine/tst_qstatemachine.cpp @@ -119,6 +119,7 @@ private slots: void assignProperty(); void assignPropertyWithAnimation(); void postEvent(); + void cancelDelayedEvent(); void stateFinished(); void parallelStates(); void parallelRootState(); @@ -1543,8 +1544,8 @@ private: class StringEventPoster : public QState { public: - StringEventPoster(QStateMachine *machine, const QString &value, QState *parent = 0) - : QState(parent), m_machine(machine), m_value(value), m_delay(0) {} + StringEventPoster(const QString &value, QState *parent = 0) + : QState(parent), m_value(value), m_delay(-1) {} void setString(const QString &value) { m_value = value; } @@ -1554,12 +1555,14 @@ public: protected: virtual void onEntry(QEvent *) { - m_machine->postEvent(new StringEvent(m_value), m_delay); + if (m_delay == -1) + machine()->postEvent(new StringEvent(m_value)); + else + machine()->postDelayedEvent(new StringEvent(m_value), m_delay); } virtual void onExit(QEvent *) {} private: - QStateMachine *m_machine; QString m_value; int m_delay; }; @@ -1573,7 +1576,7 @@ void tst_QStateMachine::postEvent() QTest::ignoreMessage(QtWarningMsg, "QStateMachine::postEvent: cannot post event when the state machine is not running"); machine.postEvent(&e); } - StringEventPoster *s1 = new StringEventPoster(&machine, "a"); + StringEventPoster *s1 = new StringEventPoster("a"); if (x == 1) s1->setDelay(100); QFinalState *s2 = new QFinalState; @@ -1599,6 +1602,42 @@ void tst_QStateMachine::postEvent() } } +void tst_QStateMachine::cancelDelayedEvent() +{ + QStateMachine machine; + QTest::ignoreMessage(QtWarningMsg, "QStateMachine::cancelDelayedEvent: the machine is not running"); + QVERIFY(!machine.cancelDelayedEvent(-1)); + + QState *s1 = new QState(&machine); + QFinalState *s2 = new QFinalState(&machine); + s1->addTransition(new StringTransition("a", s2)); + machine.setInitialState(s1); + + QSignalSpy startedSpy(&machine, SIGNAL(started())); + machine.start(); + QTRY_COMPARE(startedSpy.count(), 1); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); + + int id1 = machine.postDelayedEvent(new StringEvent("c"), 50000); + QVERIFY(id1 != -1); + int id2 = machine.postDelayedEvent(new StringEvent("b"), 25000); + QVERIFY(id2 != -1); + QVERIFY(id2 != id1); + int id3 = machine.postDelayedEvent(new StringEvent("a"), 100); + QVERIFY(id3 != -1); + QVERIFY(id3 != id2); + QVERIFY(machine.cancelDelayedEvent(id1)); + QVERIFY(!machine.cancelDelayedEvent(id1)); + QVERIFY(machine.cancelDelayedEvent(id2)); + QVERIFY(!machine.cancelDelayedEvent(id2)); + + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + QTRY_COMPARE(finishedSpy.count(), 1); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s2)); +} + void tst_QStateMachine::stateFinished() { QStateMachine machine; -- cgit v0.12 From 75666d254304746ead69892e92fa4ab39d219df1 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 29 Sep 2009 15:43:02 +0200 Subject: Fix tr-Errors/remove QObject::tr(), mainly in ScriptTools Note: Those messages are to be translated in Qt 4.6 for the first time. Reviewed-by: Kent Hansen --- src/gui/kernel/qsoftkeymanager.cpp | 2 +- src/network/kernel/qhostinfo_win.cpp | 2 +- .../debugging/qscriptbreakpointsmodel.cpp | 13 ++--- .../debugging/qscriptbreakpointswidget.cpp | 6 +-- src/scripttools/debugging/qscriptdebugger.cpp | 58 +++++++++++----------- .../debugging/qscriptdebuggercodefinderwidget.cpp | 2 +- .../debugging/qscriptdebuggerlocalsmodel.cpp | 5 +- .../debugging/qscriptdebuggerstackmodel.cpp | 7 +-- src/scripttools/debugging/qscriptedit.cpp | 8 +-- .../debugging/qscriptenginedebugger.cpp | 20 ++++---- 10 files changed, 63 insertions(+), 60 deletions(-) diff --git a/src/gui/kernel/qsoftkeymanager.cpp b/src/gui/kernel/qsoftkeymanager.cpp index 91f4163..45695d9 100644 --- a/src/gui/kernel/qsoftkeymanager.cpp +++ b/src/gui/kernel/qsoftkeymanager.cpp @@ -238,7 +238,7 @@ void QSoftKeyManagerPrivate::updateSoftKeys_sys(const QList &softkeys) } if (needsExitButton) - QT_TRAP_THROWING(nativeContainer->SetCommandL(2, EAknSoftkeyExit, qt_QString2TPtrC(QObject::tr("Exit")))); + QT_TRAP_THROWING(nativeContainer->SetCommandL(2, EAknSoftkeyExit, qt_QString2TPtrC(QSoftKeyManager::tr("Exit")))); nativeContainer->DrawDeferred(); // 3.1 needs an extra invitation } diff --git a/src/network/kernel/qhostinfo_win.cpp b/src/network/kernel/qhostinfo_win.cpp index 55aa77a..d9d7234 100644 --- a/src/network/kernel/qhostinfo_win.cpp +++ b/src/network/kernel/qhostinfo_win.cpp @@ -186,7 +186,7 @@ QHostInfo QHostInfoAgent::fromName(const QString &hostName) results.setHostName(hostName); if (aceHostname.isEmpty()) { results.setError(QHostInfo::HostNotFound); - results.setErrorString(hostName.isEmpty() ? QObject::tr("No host name given") : QObject::tr("Invalid hostname")); + results.setErrorString(hostName.isEmpty() ? tr("No host name given") : tr("Invalid hostname")); return results; } } else { diff --git a/src/scripttools/debugging/qscriptbreakpointsmodel.cpp b/src/scripttools/debugging/qscriptbreakpointsmodel.cpp index 82a7c6a..40acebb 100644 --- a/src/scripttools/debugging/qscriptbreakpointsmodel.cpp +++ b/src/scripttools/debugging/qscriptbreakpointsmodel.cpp @@ -47,6 +47,7 @@ #include "private/qabstractitemmodel_p.h" #include +#include #include #include @@ -451,17 +452,17 @@ QVariant QScriptBreakpointsModel::headerData(int section, Qt::Orientation orient if (orient == Qt::Horizontal) { if (role == Qt::DisplayRole) { if (section == 0) - return QObject::tr("ID"); + return QCoreApplication::translate("QScriptBreakpointsModel", "ID"); else if (section == 1) - return QObject::tr("Location"); + return QCoreApplication::translate("QScriptBreakpointsModel", "Location"); else if (section == 2) - return QObject::tr("Condition"); + return QCoreApplication::translate("QScriptBreakpointsModel", "Condition"); else if (section == 3) - return QObject::tr("Ignore-count"); + return QCoreApplication::translate("QScriptBreakpointsModel", "Ignore-count"); else if (section == 4) - return QObject::tr("Single-shot"); + return QCoreApplication::translate("QScriptBreakpointsModel", "Single-shot"); else if (section == 5) - return QObject::tr("Hit-count"); + return QCoreApplication::translate("QScriptBreakpointsModel", "Hit-count"); } } return QVariant(); diff --git a/src/scripttools/debugging/qscriptbreakpointswidget.cpp b/src/scripttools/debugging/qscriptbreakpointswidget.cpp index 356c6d5..688c7c8 100644 --- a/src/scripttools/debugging/qscriptbreakpointswidget.cpp +++ b/src/scripttools/debugging/qscriptbreakpointswidget.cpp @@ -78,7 +78,7 @@ public: toolClose = new QToolButton(this); toolClose->setIcon(QIcon(QString::fromUtf8(":/qt/scripttools/debugging/images/%1/closetab.png").arg(system))); toolClose->setAutoRaise(true); - toolClose->setText(QObject::tr("Close")); + toolClose->setText(tr("Close")); hboxLayout->addWidget(toolClose); fileNameEdit = new QLineEdit(); @@ -295,13 +295,13 @@ QScriptBreakpointsWidget::QScriptBreakpointsWidget(QWidget *parent) QIcon newBreakpointIcon; newBreakpointIcon.addPixmap(d->pixmap(QString::fromLatin1("new.png")), QIcon::Normal); - QAction *newBreakpointAction = new QAction(newBreakpointIcon, QObject::tr("New"), this); + QAction *newBreakpointAction = new QAction(newBreakpointIcon, tr("New"), this); QObject::connect(newBreakpointAction, SIGNAL(triggered()), this, SLOT(_q_newBreakpoint())); QIcon deleteBreakpointIcon; deleteBreakpointIcon.addPixmap(d->pixmap(QString::fromLatin1("delete.png")), QIcon::Normal); - d->deleteBreakpointAction = new QAction(deleteBreakpointIcon, QObject::tr("Delete"), this); + d->deleteBreakpointAction = new QAction(deleteBreakpointIcon, tr("Delete"), this); d->deleteBreakpointAction->setEnabled(false); QObject::connect(d->deleteBreakpointAction, SIGNAL(triggered()), this, SLOT(_q_deleteBreakpoint())); diff --git a/src/scripttools/debugging/qscriptdebugger.cpp b/src/scripttools/debugging/qscriptdebugger.cpp index c09e494..58d707f 100644 --- a/src/scripttools/debugging/qscriptdebugger.cpp +++ b/src/scripttools/debugging/qscriptdebugger.cpp @@ -882,8 +882,8 @@ void QScriptDebuggerPrivate::_q_goToLine() if (!view) return; bool ok = false; - int lineNumber = QInputDialog::getInteger(0, QObject::tr("Go to Line"), - QObject::tr("Line:"), + int lineNumber = QInputDialog::getInteger(0, QScriptDebugger::tr("Go to Line"), + QScriptDebugger::tr("Line:"), view->cursorLineNumber(), 1, INT_MAX, 1, &ok); if (ok) @@ -1674,9 +1674,9 @@ QAction *QScriptDebugger::interruptAction(QObject *parent) const interruptIcon.addPixmap(d->pixmap(QString::fromLatin1("interrupt.png")), QIcon::Normal); interruptIcon.addPixmap(d->pixmap(QString::fromLatin1("d_interrupt.png")), QIcon::Disabled); QScriptDebugger *that = const_cast(this); - that->d_func()->interruptAction = new QAction(interruptIcon, QObject::tr("Interrupt"), parent); + that->d_func()->interruptAction = new QAction(interruptIcon, QScriptDebugger::tr("Interrupt"), parent); d->interruptAction->setEnabled(!d->interactive); - d->interruptAction->setShortcut(QObject::tr("Shift+F5")); + d->interruptAction->setShortcut(QScriptDebugger::tr("Shift+F5")); QObject::connect(d->interruptAction, SIGNAL(triggered()), that, SLOT(_q_interrupt())); } @@ -1691,9 +1691,9 @@ QAction *QScriptDebugger::continueAction(QObject *parent) const continueIcon.addPixmap(d->pixmap(QString::fromLatin1("play.png")), QIcon::Normal); continueIcon.addPixmap(d->pixmap(QString::fromLatin1("d_play.png")), QIcon::Disabled); QScriptDebugger *that = const_cast(this); - that->d_func()->continueAction = new QAction(continueIcon, QObject::tr("Continue"), parent); + that->d_func()->continueAction = new QAction(continueIcon, QScriptDebugger::tr("Continue"), parent); d->continueAction->setEnabled(d->interactive); - d->continueAction->setShortcut(QObject::tr("F5")); + d->continueAction->setShortcut(QScriptDebugger::tr("F5")); QObject::connect(d->continueAction, SIGNAL(triggered()), that, SLOT(_q_continue())); } @@ -1708,9 +1708,9 @@ QAction *QScriptDebugger::stepIntoAction(QObject *parent) const stepIntoIcon.addPixmap(d->pixmap(QString::fromLatin1("stepinto.png")), QIcon::Normal); stepIntoIcon.addPixmap(d->pixmap(QString::fromLatin1("d_stepinto.png")), QIcon::Disabled); QScriptDebugger *that = const_cast(this); - that->d_func()->stepIntoAction = new QAction(stepIntoIcon, QObject::tr("Step Into"), parent); + that->d_func()->stepIntoAction = new QAction(stepIntoIcon, QScriptDebugger::tr("Step Into"), parent); d->stepIntoAction->setEnabled(d->interactive); - d->stepIntoAction->setShortcut(QObject::tr("F11")); + d->stepIntoAction->setShortcut(QScriptDebugger::tr("F11")); QObject::connect(d->stepIntoAction, SIGNAL(triggered()), that, SLOT(_q_stepInto())); } @@ -1725,9 +1725,9 @@ QAction *QScriptDebugger::stepOverAction(QObject *parent) const stepOverIcon.addPixmap(d->pixmap(QString::fromLatin1("stepover.png")), QIcon::Normal); stepOverIcon.addPixmap(d->pixmap(QString::fromLatin1("d_stepover.png")), QIcon::Disabled); QScriptDebugger *that = const_cast(this); - that->d_func()->stepOverAction = new QAction(stepOverIcon, QObject::tr("Step Over"), parent); + that->d_func()->stepOverAction = new QAction(stepOverIcon, QScriptDebugger::tr("Step Over"), parent); d->stepOverAction->setEnabled(d->interactive); - d->stepOverAction->setShortcut(QObject::tr("F10")); + d->stepOverAction->setShortcut(QScriptDebugger::tr("F10")); QObject::connect(d->stepOverAction, SIGNAL(triggered()), that, SLOT(_q_stepOver())); } @@ -1742,9 +1742,9 @@ QAction *QScriptDebugger::stepOutAction(QObject *parent) const stepOutIcon.addPixmap(d->pixmap(QString::fromLatin1("stepout.png")), QIcon::Normal); stepOutIcon.addPixmap(d->pixmap(QString::fromLatin1("d_stepout.png")), QIcon::Disabled); QScriptDebugger *that = const_cast(this); - that->d_func()->stepOutAction = new QAction(stepOutIcon, QObject::tr("Step Out"), parent); + that->d_func()->stepOutAction = new QAction(stepOutIcon, QScriptDebugger::tr("Step Out"), parent); d->stepOutAction->setEnabled(d->interactive); - d->stepOutAction->setShortcut(QObject::tr("Shift+F11")); + d->stepOutAction->setShortcut(QScriptDebugger::tr("Shift+F11")); QObject::connect(d->stepOutAction, SIGNAL(triggered()), that, SLOT(_q_stepOut())); } @@ -1759,9 +1759,9 @@ QAction *QScriptDebugger::runToCursorAction(QObject *parent) const runToCursorIcon.addPixmap(d->pixmap(QString::fromLatin1("runtocursor.png")), QIcon::Normal); runToCursorIcon.addPixmap(d->pixmap(QString::fromLatin1("d_runtocursor.png")), QIcon::Disabled); QScriptDebugger *that = const_cast(this); - that->d_func()->runToCursorAction = new QAction(runToCursorIcon, QObject::tr("Run to Cursor"), parent); + that->d_func()->runToCursorAction = new QAction(runToCursorIcon, QScriptDebugger::tr("Run to Cursor"), parent); d->runToCursorAction->setEnabled(d->interactive); - d->runToCursorAction->setShortcut(QObject::tr("Ctrl+F10")); + d->runToCursorAction->setShortcut(QScriptDebugger::tr("Ctrl+F10")); QObject::connect(d->runToCursorAction, SIGNAL(triggered()), that, SLOT(_q_runToCursor())); } @@ -1777,7 +1777,7 @@ QAction *QScriptDebugger::runToNewScriptAction(QObject *parent) const runToNewScriptIcon.addPixmap(d->pixmap(QString::fromLatin1("d_breakonscriptload.png")), QIcon::Disabled); QScriptDebugger *that = const_cast(this); that->d_func()->runToNewScriptAction = new QAction(runToNewScriptIcon, - QObject::tr("Run to New Script"), parent); + QScriptDebugger::tr("Run to New Script"), parent); d->runToNewScriptAction->setEnabled(d->interactive); QObject::connect(d->runToNewScriptAction, SIGNAL(triggered()), that, SLOT(_q_runToNewScript())); @@ -1792,8 +1792,8 @@ QAction *QScriptDebugger::toggleBreakpointAction(QObject *parent) const QIcon toggleBreakpointIcon; QScriptDebugger *that = const_cast(this); that->d_func()->toggleBreakpointAction = new QAction(toggleBreakpointIcon, - QObject::tr("Toggle Breakpoint"), parent); - d->toggleBreakpointAction->setShortcut(QObject::tr("F9")); + QScriptDebugger::tr("Toggle Breakpoint"), parent); + d->toggleBreakpointAction->setShortcut(QScriptDebugger::tr("F9")); d->toggleBreakpointAction->setEnabled((d->codeWidget != 0) && (d->codeWidget->currentView() != 0)); QObject::connect(d->toggleBreakpointAction, SIGNAL(triggered()), that, SLOT(_q_toggleBreakpoint())); @@ -1807,7 +1807,7 @@ QAction *QScriptDebugger::clearDebugOutputAction(QObject *parent) const if (!d->clearDebugOutputAction) { QIcon clearDebugOutputIcon; QScriptDebugger *that = const_cast(this); - that->d_func()->clearDebugOutputAction = new QAction(clearDebugOutputIcon, QObject::tr("Clear Debug Output"), parent); + that->d_func()->clearDebugOutputAction = new QAction(clearDebugOutputIcon, QScriptDebugger::tr("Clear Debug Output"), parent); QObject::connect(d->clearDebugOutputAction, SIGNAL(triggered()), that, SLOT(_q_clearDebugOutput())); } @@ -1820,7 +1820,7 @@ QAction *QScriptDebugger::clearErrorLogAction(QObject *parent) const if (!d->clearErrorLogAction) { QIcon clearErrorLogIcon; QScriptDebugger *that = const_cast(this); - that->d_func()->clearErrorLogAction = new QAction(clearErrorLogIcon, QObject::tr("Clear Error Log"), parent); + that->d_func()->clearErrorLogAction = new QAction(clearErrorLogIcon, QScriptDebugger::tr("Clear Error Log"), parent); QObject::connect(d->clearErrorLogAction, SIGNAL(triggered()), that, SLOT(_q_clearErrorLog())); } @@ -1833,7 +1833,7 @@ QAction *QScriptDebugger::clearConsoleAction(QObject *parent) const if (!d->clearConsoleAction) { QIcon clearConsoleIcon; QScriptDebugger *that = const_cast(this); - that->d_func()->clearConsoleAction = new QAction(clearConsoleIcon, QObject::tr("Clear Console"), parent); + that->d_func()->clearConsoleAction = new QAction(clearConsoleIcon, QScriptDebugger::tr("Clear Console"), parent); QObject::connect(d->clearConsoleAction, SIGNAL(triggered()), that, SLOT(_q_clearConsole())); } @@ -1847,8 +1847,8 @@ QAction *QScriptDebugger::findInScriptAction(QObject *parent) const QIcon findInScriptIcon; findInScriptIcon.addPixmap(d->pixmap(QString::fromLatin1("find.png")), QIcon::Normal); QScriptDebugger *that = const_cast(this); - that->d_func()->findInScriptAction = new QAction(findInScriptIcon, QObject::tr("&Find in Script..."), parent); - d->findInScriptAction->setShortcut(QObject::tr("Ctrl+F")); + that->d_func()->findInScriptAction = new QAction(findInScriptIcon, QScriptDebugger::tr("&Find in Script..."), parent); + d->findInScriptAction->setShortcut(QScriptDebugger::tr("Ctrl+F")); d->findInScriptAction->setEnabled( (d->codeFinderWidget != 0) && (d->codeWidget != 0) @@ -1865,9 +1865,9 @@ QAction *QScriptDebugger::findNextInScriptAction(QObject *parent) const if (!d->findNextInScriptAction) { QIcon findNextInScriptIcon; QScriptDebugger *that = const_cast(this); - that->d_func()->findNextInScriptAction = new QAction(findNextInScriptIcon, QObject::tr("Find &Next"), parent); + that->d_func()->findNextInScriptAction = new QAction(findNextInScriptIcon, QScriptDebugger::tr("Find &Next"), parent); d->findNextInScriptAction->setEnabled(d->codeFinderWidget && !d->codeFinderWidget->text().isEmpty()); - d->findNextInScriptAction->setShortcut(QObject::tr("F3")); + d->findNextInScriptAction->setShortcut(QScriptDebugger::tr("F3")); QObject::connect(d->findNextInScriptAction, SIGNAL(triggered()), that, SLOT(_q_findNextInScript())); } @@ -1880,9 +1880,9 @@ QAction *QScriptDebugger::findPreviousInScriptAction(QObject *parent) const if (!d->findPreviousInScriptAction) { QIcon findPreviousInScriptIcon; QScriptDebugger *that = const_cast(this); - that->d_func()->findPreviousInScriptAction = new QAction(findPreviousInScriptIcon, QObject::tr("Find &Previous"), parent); + that->d_func()->findPreviousInScriptAction = new QAction(findPreviousInScriptIcon, QScriptDebugger::tr("Find &Previous"), parent); d->findPreviousInScriptAction->setEnabled(d->codeFinderWidget && !d->codeFinderWidget->text().isEmpty()); - d->findPreviousInScriptAction->setShortcut(QObject::tr("Shift+F3")); + d->findPreviousInScriptAction->setShortcut(QScriptDebugger::tr("Shift+F3")); QObject::connect(d->findPreviousInScriptAction, SIGNAL(triggered()), that, SLOT(_q_findPreviousInScript())); } @@ -1895,8 +1895,8 @@ QAction *QScriptDebugger::goToLineAction(QObject *parent) const if (!d->goToLineAction) { QIcon goToLineIcon; QScriptDebugger *that = const_cast(this); - that->d_func()->goToLineAction = new QAction(goToLineIcon, QObject::tr("Go to Line"), parent); - d->goToLineAction->setShortcut(QObject::tr("Ctrl+G")); + that->d_func()->goToLineAction = new QAction(goToLineIcon, QScriptDebugger::tr("Go to Line"), parent); + d->goToLineAction->setShortcut(QScriptDebugger::tr("Ctrl+G")); d->goToLineAction->setEnabled((d->codeWidget != 0) && (d->codeWidget->currentView() != 0)); QObject::connect(d->goToLineAction, SIGNAL(triggered()), that, SLOT(_q_goToLine())); @@ -1907,7 +1907,7 @@ QAction *QScriptDebugger::goToLineAction(QObject *parent) const QMenu *QScriptDebugger::createStandardMenu(QWidget *widgetParent, QObject *actionParent) { QMenu *menu = new QMenu(widgetParent); - menu->setTitle(QObject::tr("Debug")); + menu->setTitle(QScriptDebugger::tr("Debug")); menu->addAction(action(ContinueAction, actionParent)); menu->addAction(action(InterruptAction, actionParent)); menu->addAction(action(StepIntoAction, actionParent)); diff --git a/src/scripttools/debugging/qscriptdebuggercodefinderwidget.cpp b/src/scripttools/debugging/qscriptdebuggercodefinderwidget.cpp index 5ef5a0c..8ed0aaa 100644 --- a/src/scripttools/debugging/qscriptdebuggercodefinderwidget.cpp +++ b/src/scripttools/debugging/qscriptdebuggercodefinderwidget.cpp @@ -138,7 +138,7 @@ QScriptDebuggerCodeFinderWidget::QScriptDebuggerCodeFinderWidget(QWidget *parent d->toolClose = new QToolButton(this); d->toolClose->setIcon(QIcon(QString::fromUtf8(":/qt/scripttools/debugging/images/%1/closetab.png").arg(system))); d->toolClose->setAutoRaise(true); - d->toolClose->setText(QObject::tr("Close")); + d->toolClose->setText(tr("Close")); hboxLayout->addWidget(d->toolClose); d->editFind = new QLineEdit(this); diff --git a/src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp b/src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp index 15d43f4..9caefce 100644 --- a/src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp +++ b/src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp @@ -53,6 +53,7 @@ #include "private/qabstractitemmodel_p.h" #include +#include #include #include @@ -868,9 +869,9 @@ QVariant QScriptDebuggerLocalsModel::headerData(int section, Qt::Orientation ori if (orient == Qt::Horizontal) { if (role == Qt::DisplayRole) { if (section == 0) - return QObject::tr("Name"); + return QCoreApplication::translate("QScriptDebuggerLocalsModel", "Name"); else if (section == 1) - return QObject::tr("Value"); + return QCoreApplication::translate("QScriptDebuggerLocalsModel", "Value"); } } return QVariant(); diff --git a/src/scripttools/debugging/qscriptdebuggerstackmodel.cpp b/src/scripttools/debugging/qscriptdebuggerstackmodel.cpp index a63ea73..2d56e17 100644 --- a/src/scripttools/debugging/qscriptdebuggerstackmodel.cpp +++ b/src/scripttools/debugging/qscriptdebuggerstackmodel.cpp @@ -45,6 +45,7 @@ #include #include +#include QT_BEGIN_NAMESPACE @@ -157,11 +158,11 @@ QVariant QScriptDebuggerStackModel::headerData(int section, Qt::Orientation orie return QVariant(); if (role == Qt::DisplayRole) { if (section == 0) - return QObject::tr("Level"); + return QCoreApplication::translate("QScriptDebuggerStackModel", "Level"); else if (section == 1) - return QObject::tr("Name"); + return QCoreApplication::translate("QScriptDebuggerStackModel", "Name"); else if (section == 2) - return QObject::tr("Location"); + return QCoreApplication::translate("QScriptDebuggerStackModel", "Location"); } return QVariant(); } diff --git a/src/scripttools/debugging/qscriptedit.cpp b/src/scripttools/debugging/qscriptedit.cpp index 8db9cea..7f0a5e0 100644 --- a/src/scripttools/debugging/qscriptedit.cpp +++ b/src/scripttools/debugging/qscriptedit.cpp @@ -408,14 +408,14 @@ void QScriptEdit::extraAreaMouseEvent(QMouseEvent *e) return; bool has = m_breakpoints.contains(lineNumber); QMenu *popup = new QMenu(); - QAction *toggleAct = new QAction(QObject::tr("Toggle Breakpoint"), popup); + QAction *toggleAct = new QAction(tr("Toggle Breakpoint"), popup); popup->addAction(toggleAct); - QAction *disableAct = new QAction(QObject::tr("Disable Breakpoint"), popup); - QAction *enableAct = new QAction(QObject::tr("Enable Breakpoint"), popup); + QAction *disableAct = new QAction(tr("Disable Breakpoint"), popup); + QAction *enableAct = new QAction(tr("Enable Breakpoint"), popup); QWidget *conditionWidget = new QWidget(); { QHBoxLayout *hbox = new QHBoxLayout(conditionWidget); - hbox->addWidget(new QLabel(QObject::tr("Breakpoint Condition:"))); + hbox->addWidget(new QLabel(tr("Breakpoint Condition:"))); hbox->addWidget(new QLineEdit()); } // QWidgetAction *conditionAct = new QWidgetAction(popup); diff --git a/src/scripttools/debugging/qscriptenginedebugger.cpp b/src/scripttools/debugging/qscriptenginedebugger.cpp index 7456da0..915d511 100644 --- a/src/scripttools/debugging/qscriptenginedebugger.cpp +++ b/src/scripttools/debugging/qscriptenginedebugger.cpp @@ -520,43 +520,43 @@ QMainWindow *QScriptEngineDebugger::standardWindow() const QMainWindow *win = new QMainWindow(); QDockWidget *scriptsDock = new QDockWidget(win); scriptsDock->setObjectName(QLatin1String("qtscriptdebugger_scriptsDockWidget")); - scriptsDock->setWindowTitle(QObject::tr("Loaded Scripts")); + scriptsDock->setWindowTitle(tr("Loaded Scripts")); scriptsDock->setWidget(widget(ScriptsWidget)); win->addDockWidget(Qt::LeftDockWidgetArea, scriptsDock); QDockWidget *breakpointsDock = new QDockWidget(win); breakpointsDock->setObjectName(QLatin1String("qtscriptdebugger_breakpointsDockWidget")); - breakpointsDock->setWindowTitle(QObject::tr("Breakpoints")); + breakpointsDock->setWindowTitle(tr("Breakpoints")); breakpointsDock->setWidget(widget(BreakpointsWidget)); win->addDockWidget(Qt::LeftDockWidgetArea, breakpointsDock); QDockWidget *stackDock = new QDockWidget(win); stackDock->setObjectName(QLatin1String("qtscriptdebugger_stackDockWidget")); - stackDock->setWindowTitle(QObject::tr("Stack")); + stackDock->setWindowTitle(tr("Stack")); stackDock->setWidget(widget(StackWidget)); win->addDockWidget(Qt::RightDockWidgetArea, stackDock); QDockWidget *localsDock = new QDockWidget(win); localsDock->setObjectName(QLatin1String("qtscriptdebugger_localsDockWidget")); - localsDock->setWindowTitle(QObject::tr("Locals")); + localsDock->setWindowTitle(tr("Locals")); localsDock->setWidget(widget(LocalsWidget)); win->addDockWidget(Qt::RightDockWidgetArea, localsDock); QDockWidget *consoleDock = new QDockWidget(win); consoleDock->setObjectName(QLatin1String("qtscriptdebugger_consoleDockWidget")); - consoleDock->setWindowTitle(QObject::tr("Console")); + consoleDock->setWindowTitle(tr("Console")); consoleDock->setWidget(widget(ConsoleWidget)); win->addDockWidget(Qt::BottomDockWidgetArea, consoleDock); QDockWidget *debugOutputDock = new QDockWidget(win); debugOutputDock->setObjectName(QLatin1String("qtscriptdebugger_debugOutputDockWidget")); - debugOutputDock->setWindowTitle(QObject::tr("Debug Output")); + debugOutputDock->setWindowTitle(tr("Debug Output")); debugOutputDock->setWidget(widget(DebugOutputWidget)); win->addDockWidget(Qt::BottomDockWidgetArea, debugOutputDock); QDockWidget *errorLogDock = new QDockWidget(win); errorLogDock->setObjectName(QLatin1String("qtscriptdebugger_errorLogDockWidget")); - errorLogDock->setWindowTitle(QObject::tr("Error Log")); + errorLogDock->setWindowTitle(tr("Error Log")); errorLogDock->setWidget(widget(ErrorLogWidget)); win->addDockWidget(Qt::BottomDockWidgetArea, errorLogDock); @@ -568,14 +568,14 @@ QMainWindow *QScriptEngineDebugger::standardWindow() const #ifndef QT_NO_MENUBAR win->menuBar()->addMenu(that->createStandardMenu(win)); - QMenu *editMenu = win->menuBar()->addMenu(QObject::tr("Search")); + QMenu *editMenu = win->menuBar()->addMenu(tr("Search")); editMenu->addAction(action(FindInScriptAction)); editMenu->addAction(action(FindNextInScriptAction)); editMenu->addAction(action(FindPreviousInScriptAction)); editMenu->addSeparator(); editMenu->addAction(action(GoToLineAction)); - QMenu *viewMenu = win->menuBar()->addMenu(QObject::tr("View")); + QMenu *viewMenu = win->menuBar()->addMenu(tr("View")); viewMenu->addAction(scriptsDock->toggleViewAction()); viewMenu->addAction(breakpointsDock->toggleViewAction()); viewMenu->addAction(stackDock->toggleViewAction()); @@ -593,7 +593,7 @@ QMainWindow *QScriptEngineDebugger::standardWindow() const widget(CodeFinderWidget)->hide(); win->setCentralWidget(central); - win->setWindowTitle(QObject::tr("Qt Script Debugger")); + win->setWindowTitle(tr("Qt Script Debugger")); win->setUnifiedTitleAndToolBarOnMac(true); QSettings settings(QSettings::UserScope, QLatin1String("Trolltech")); -- cgit v0.12 From 0069f50019462a3dd95d1610361d00d91bf4afe1 Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Tue, 29 Sep 2009 16:28:29 -0700 Subject: Rebuild configure.exe Bring it up-to-date with commit 950f80620b56e9ed277240dc16087f3e4b53cc4a. --- configure.exe | Bin 1167872 -> 1168896 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/configure.exe b/configure.exe index 12e8431..aa254f3 100755 Binary files a/configure.exe and b/configure.exe differ -- cgit v0.12 From 86a30b667e189b8659fab384d93022e55a67b81e Mon Sep 17 00:00:00 2001 From: Harald Fernengel Date: Tue, 29 Sep 2009 16:41:48 +0200 Subject: Remove "inline" keyword from unused constructors Found during API review, make the private safety constructors follow the pattern of our Q_DISABLE_COPY macro. Reviewed-by: Robert Griebl --- src/script/api/qscriptvalue.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/script/api/qscriptvalue.h b/src/script/api/qscriptvalue.h index 2bc89bd..32f7a43 100644 --- a/src/script/api/qscriptvalue.h +++ b/src/script/api/qscriptvalue.h @@ -216,9 +216,9 @@ public: private: // force compile error, prevent QScriptValue(bool) to be called - inline QScriptValue(void *); + QScriptValue(void *); // force compile error, prevent QScriptValue(QScriptEngine*, bool) to be called - inline QScriptValue(QScriptEngine *, void *); + QScriptValue(QScriptEngine *, void *); QScriptValue(QScriptValuePrivate*); -- cgit v0.12 From 544f06f1fe29e986cd2b3fd1fd7198d688275969 Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Tue, 29 Sep 2009 16:40:48 +0200 Subject: Make sure delayed events are cancelled when a state machine halts Otherwise the events might creep into the event loop if the state machine is restarted. Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/corelib/statemachine/qstatemachine.cpp | 20 +++++++++++++ src/corelib/statemachine/qstatemachine_p.h | 1 + tests/auto/qstatemachine/tst_qstatemachine.cpp | 39 ++++++++++++++++++++++++++ 3 files changed, 60 insertions(+) diff --git a/src/corelib/statemachine/qstatemachine.cpp b/src/corelib/statemachine/qstatemachine.cpp index 256763b..c7144e4 100644 --- a/src/corelib/statemachine/qstatemachine.cpp +++ b/src/corelib/statemachine/qstatemachine.cpp @@ -1265,11 +1265,13 @@ void QStateMachinePrivate::_q_process() break; case Finished: state = NotRunning; + cancelAllDelayedEvents(); unregisterAllTransitions(); emit q->finished(); break; case Stopped: state = NotRunning; + cancelAllDelayedEvents(); unregisterAllTransitions(); emit q->stopped(); break; @@ -1291,6 +1293,19 @@ void QStateMachinePrivate::processEvents(EventProcessingMode processingMode) } } +void QStateMachinePrivate::cancelAllDelayedEvents() +{ + Q_Q(QStateMachine); + QHash::const_iterator it; + for (it = delayedEvents.constBegin(); it != delayedEvents.constEnd(); ++it) { + int id = it.key(); + QEvent *e = it.value(); + q->killTimer(id); + delete e; + } + delayedEvents.clear(); +} + namespace { class GoToStateTransition : public QAbstractTransition @@ -1946,6 +1961,11 @@ bool QStateMachine::event(QEvent *e) if (e->type() == QEvent::Timer) { QTimerEvent *te = static_cast(e); int tid = te->timerId(); + if (d->state != QStateMachinePrivate::Running) { + // This event has been cancelled already + Q_ASSERT(!d->delayedEvents.contains(tid)); + return true; + } QEvent *ee = d->delayedEvents.take(tid); if (ee != 0) { killTimer(tid); diff --git a/src/corelib/statemachine/qstatemachine_p.h b/src/corelib/statemachine/qstatemachine_p.h index 141bc5c..cf7a073 100644 --- a/src/corelib/statemachine/qstatemachine_p.h +++ b/src/corelib/statemachine/qstatemachine_p.h @@ -160,6 +160,7 @@ public: void handleTransitionSignal(QObject *sender, int signalIndex, void **args); void processEvents(EventProcessingMode processingMode); + void cancelAllDelayedEvents(); #ifndef QT_NO_PROPERTIES typedef QPair RestorableId; diff --git a/tests/auto/qstatemachine/tst_qstatemachine.cpp b/tests/auto/qstatemachine/tst_qstatemachine.cpp index 463dbf6..b808f7f 100644 --- a/tests/auto/qstatemachine/tst_qstatemachine.cpp +++ b/tests/auto/qstatemachine/tst_qstatemachine.cpp @@ -120,6 +120,7 @@ private slots: void assignPropertyWithAnimation(); void postEvent(); void cancelDelayedEvent(); + void postDelayedEventAndStop(); void stateFinished(); void parallelStates(); void parallelRootState(); @@ -1638,6 +1639,44 @@ void tst_QStateMachine::cancelDelayedEvent() QVERIFY(machine.configuration().contains(s2)); } +void tst_QStateMachine::postDelayedEventAndStop() +{ + QStateMachine machine; + QState *s1 = new QState(&machine); + QFinalState *s2 = new QFinalState(&machine); + s1->addTransition(new StringTransition("a", s2)); + machine.setInitialState(s1); + + QSignalSpy startedSpy(&machine, SIGNAL(started())); + machine.start(); + QTRY_COMPARE(startedSpy.count(), 1); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); + + int id1 = machine.postDelayedEvent(new StringEvent("a"), 0); + QVERIFY(id1 != -1); + QSignalSpy stoppedSpy(&machine, SIGNAL(stopped())); + machine.stop(); + QTRY_COMPARE(stoppedSpy.count(), 1); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); + + machine.start(); + QTRY_COMPARE(startedSpy.count(), 2); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); + + int id2 = machine.postDelayedEvent(new StringEvent("a"), 1000); + QVERIFY(id2 != -1); + machine.stop(); + QTRY_COMPARE(stoppedSpy.count(), 2); + machine.start(); + QTRY_COMPARE(startedSpy.count(), 3); + QTestEventLoop::instance().enterLoop(2); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); +} + void tst_QStateMachine::stateFinished() { QStateMachine machine; -- cgit v0.12 From 8eed62921fd4b1ca40bb77fed32f2f7c9bea12e7 Mon Sep 17 00:00:00 2001 From: Alexis Menard Date: Tue, 29 Sep 2009 16:46:24 +0200 Subject: My changelog for 4.5.3. --- dist/changes-4.5.3 | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/dist/changes-4.5.3 b/dist/changes-4.5.3 index 1edacac..189baee 100644 --- a/dist/changes-4.5.3 +++ b/dist/changes-4.5.3 @@ -30,6 +30,19 @@ information about a particular change. - QDoubleSpinBox * [255019] Fixed a crash when using large value for decimals. +- QFileDialog + * [None] Fix a bug when activating HideNameFilterDetails on Windows filedialog. + * [258084] QFileDialog static functions doesn't honor the DontUseNativeDialog flag. + +- QGraphicsItem + * [258956] Fix ancestor flags that are not correctly update when reparenting. + +- QGraphicsView + * [258356] Fix the hand scrolling in QGraphicsView that will stop unexpectedly. + +- QGraphicsWidget + * [257232] Fix regression in clip path calculation for QGraphicsWidget. + - QInputDialog * [255502] Fixed bug in getDouble(). -- cgit v0.12 From 7e979a9a0330a533bbe1693ba68d3737af664a77 Mon Sep 17 00:00:00 2001 From: Ritt Konstantin Date: Tue, 29 Sep 2009 16:55:26 +0200 Subject: minor fixes in Russian translations Merge-request: 1611 Reviewed-by: Oswald Buddenhagen --- translations/qt_help_ru.ts | 6 +++--- translations/qtconfig_ru.ts | 40 ++++++++++++++++++++++++---------------- 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/translations/qt_help_ru.ts b/translations/qt_help_ru.ts index c2dc041..f55dccc 100644 --- a/translations/qt_help_ru.ts +++ b/translations/qt_help_ru.ts @@ -233,17 +233,17 @@ Insert contents... - Добавление Ńодержания... + Добавление оглавления... Cannot insert contents! - Не ŃдалоŃŃŚ добавить Ńодержание! + Не ŃдалоŃŃŚ добавить оглавление! Cannot register contents! - Не ŃдалоŃŃŚ зарегиŃтрировать Ńодержание! + Не ŃдалоŃŃŚ зарегиŃтрировать оглавление! diff --git a/translations/qtconfig_ru.ts b/translations/qtconfig_ru.ts index db71274..33ee556 100644 --- a/translations/qtconfig_ru.ts +++ b/translations/qtconfig_ru.ts @@ -56,18 +56,18 @@ X11 - + X11 Use X11 Overlays - ĐŃпользовать оверлеи X11 + ĐŃпользовать оверлеи X11 OpenGL - + OpenGL @@ -518,7 +518,11 @@ p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://phonon.kde.org"><span style=" text-decoration: underline; color:#0000ff;">http://phonon.kde.org</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://phonon.kde.org"><span style=" text-decoration: underline; color:#0000ff;">http://phonon.kde.org</span></a></p></body></html> @@ -532,7 +536,11 @@ p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://gstreamer.freedesktop.org/"><span style=" text-decoration: underline; color:#0000ff;">http://gstreamer.freedesktop.org/</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://gstreamer.freedesktop.org/"><span style=" text-decoration: underline; color:#0000ff;">http://gstreamer.freedesktop.org/</span></a></p></body></html> @@ -556,7 +564,7 @@ p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: changes to these settings may prevent applications from starting up correctly.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> @@ -845,52 +853,52 @@ p, li { white-space: pre-wrap; } ButtonGroup - + ButtonGroup RadioButton1 - + RadioButton1 RadioButton2 - + RadioButton2 RadioButton3 - + RadioButton3 ButtonGroup2 - + ButtonGroup2 CheckBox1 - + CheckBox1 CheckBox2 - + CheckBox2 LineEdit - + LineEdit ComboBox - + ComboBox PushButton - + PushButton -- cgit v0.12 From cd629a27cfb32ee8b941c436d1a7bba785186317 Mon Sep 17 00:00:00 2001 From: Alexis Menard Date: Tue, 29 Sep 2009 17:14:35 +0200 Subject: The text fit now in the screen. Task-number:QT-739 Reviewed-by:TrustMe --- demos/sub-attaq/textinformationitem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/sub-attaq/textinformationitem.cpp b/demos/sub-attaq/textinformationitem.cpp index 453fd24..1b0c831 100644 --- a/demos/sub-attaq/textinformationitem.cpp +++ b/demos/sub-attaq/textinformationitem.cpp @@ -44,7 +44,7 @@ TextInformationItem::TextInformationItem (QGraphicsItem * parent) : QGraphicsTextItem(parent) { - setFont(QFont("Comic Sans MS", 25)); + setFont(QFont("Comic Sans MS", 15)); } #include void TextInformationItem::setMessage(const QString& text) -- cgit v0.12 From 1c5faed133375d9ab0243e4133bcb86dba7dd40f Mon Sep 17 00:00:00 2001 From: Jure Repinc Date: Tue, 29 Sep 2009 17:02:27 +0200 Subject: Used the correct placeholder for the second argument Merge-request: 1320 Reviewed-by: Oswald Buddenhagen --- src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp b/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp index 10318f1..0980777 100644 --- a/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp +++ b/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp @@ -455,7 +455,7 @@ bool XsdValidatingInstanceReader::validateElement(const XsdElement::Ptr &declara const QString value = attribute(m_xsiNilName); const Boolean::Ptr nil = Boolean::fromLexical(value); if (nil->hasError()) { - error(QtXmlPatterns::tr("attribute %1 contains invalid data: %1").arg(formatKeyword(QLatin1String("nil"))).arg(formatData(value))); + error(QtXmlPatterns::tr("attribute %1 contains invalid data: %2").arg(formatKeyword(QLatin1String("nil"))).arg(formatData(value))); return false; } -- cgit v0.12 From 629496d47b7e4071eca9692b2ca6cdb49f65300e Mon Sep 17 00:00:00 2001 From: Jure Repinc Date: Tue, 29 Sep 2009 17:22:21 +0200 Subject: Add Slovenian translation Merge-request: 1320 Reviewed-by: Oswald Buddenhagen --- tools/designer/translations/translations.pro | 1 + translations/designer_sl.ts | 7031 +++++++++++++++++ translations/qt_sl.ts | 10037 +++++++++++++++++++++++++ translations/translations.pri | 2 +- 4 files changed, 17070 insertions(+), 1 deletion(-) create mode 100644 translations/designer_sl.ts create mode 100644 translations/qt_sl.ts diff --git a/tools/designer/translations/translations.pro b/tools/designer/translations/translations.pro index c8cd76d..fd782b0 100644 --- a/tools/designer/translations/translations.pro +++ b/tools/designer/translations/translations.pro @@ -134,6 +134,7 @@ TRANSLATIONS=$$[QT_INSTALL_TRANSLATIONS]/designer_de.ts \ $$[QT_INSTALL_TRANSLATIONS]/designer_ja.ts \ $$[QT_INSTALL_TRANSLATIONS]/designer_pl.ts \ $$[QT_INSTALL_TRANSLATIONS]/designer_ru.ts \ + $$[QT_INSTALL_TRANSLATIONS]/designer_sl.ts \ $$[QT_INSTALL_TRANSLATIONS]/designer_zh_CN.ts \ $$[QT_INSTALL_TRANSLATIONS]/designer_zh_TW.ts \ $$[QT_INSTALL_TRANSLATIONS]/designer_untranslated.ts diff --git a/translations/designer_sl.ts b/translations/designer_sl.ts new file mode 100644 index 0000000..bfb92bf --- /dev/null +++ b/translations/designer_sl.ts @@ -0,0 +1,7031 @@ + + + + + AbstractFindWidget + + + &Previous + &Predhodni + + + + &Next + &Naslednji + + + + &Case sensitive + O&bÄŤutljiv na velikost ÄŤrk + + + + Whole &words + &Cele besede + + + + <img src=":/trolltech/shared/images/wrap.png">&nbsp;Search wrapped + <img src=":/trolltech/shared/images/wrap.png">&nbsp;Iskanje se nadaljuje na drugem koncu + + + + AddLinkDialog + + + Insert Link + Vstavi povezavo + + + + Title: + Besedilo: + + + + URL: + URL: + + + + AppFontDialog + + + Additional Fonts + Dodatne pisave + + + + AppFontManager + + + '%1' is not a file. + »%1« ni datoteka. + + + + The font file '%1' does not have read permissions. + Datoteka s pisavo »%1« nima dovoljenj za branje. + + + + The font file '%1' is already loaded. + Datoteka s pisavo »%1« je Ĺľe naloĹľena. + + + + The font file '%1' could not be loaded. + Datoteke s pisavo »%1« ni bilo moÄŤ naloĹľiti. + + + + '%1' is not a valid font id. + »%1« ni veljaven ID za pisavo. + + + + There is no loaded font matching the id '%1'. + Ni naloĹľene pisave, ki bi se ujemala z ID-jem »%1«. + + + + The font '%1' (%2) could not be unloaded. + Pisave »%1« (%2) ni bilo moÄŤ odstraniti. + + + + AppFontWidget + + + Fonts + Pisave + + + + Add font files + Dodaj datoteke s pisavami + + + + Remove current font file + Odstrani trenutno datoteko s pisavo + + + + Remove all font files + Odstrani vse datoteke s pisavami + + + + Add Font Files + Dodaj datoteke s pisavami + + + + Font files (*.ttf) + Datoteke s pisavami (*.ttf) + + + + Error Adding Fonts + Napaka pri dodajanju pisav + + + + Error Removing Fonts + Napaka pri odstranjevanju pisav + + + + Remove Fonts + Odstrani pisave + + + + Would you like to remove all fonts? + Ali Ĺľelite odstraniti vse pisave? + + + + AppearanceOptionsWidget + + + Form + Obrazec + + + + User Interface Mode + NaÄŤin uporabniškega vmesnika + + + + AssistantClient + + + Unable to send request: Assistant is not responding. + Ni moÄŤ poslati zahtevka: pomoÄŤnik se ne odziva. + + + + The binary '%1' does not exist. + Program »%1« ne obstaja. + + + + Unable to launch assistant (%1). + Ni moÄŤ zaganti pomoÄŤnika (%1). + + + + BrushPropertyManager + + + No brush + Brez ÄŤopiÄŤa + + + + Solid + Enobarven + + + + Dense 1 + Gost 1 + + + + Dense 2 + Gost 2 + + + + Dense 3 + Gost 3 + + + + Dense 4 + Gost 4 + + + + Dense 5 + Gost 5 + + + + Dense 6 + Gost 6 + + + + Dense 7 + Gost 7 + + + + Horizontal + Vodoraven + + + + Vertical + NavpiÄŤen + + + + Cross + KriĹľ + + + + Backward diagonal + Poševen nazaj + + + + Forward diagonal + Poševen naprej + + + + Crossing diagonal + Poševen prekriĹľan + + + + Style + Slog + + + + Color + Barva + + + + [%1, %2] + [%1, %2] + + + + Command + + + + Change signal + Spremeni signal + + + + + Change slot + Spremeni reĹľo + + + + Change signal-slot connection + Spremeni povezavo signal-reĹľa + + + + Change sender + Spremeni pošiljatelja + + + + Change receiver + Spremeni prejemnika + + + + Add connection + Dodaj povezavo + + + + Adjust connection + Prilagodi povezavo + + + + Delete connections + Zbriši povezave + + + + Change source + Spremeni izvor + + + + Change target + Spremeni cilj + + + + Insert '%1' + Vstavi »%1« + + + + Raise '%1' + Dvigni »%1« + + + + Lower '%1' + Spusti »%1« + + + + Delete '%1' + Zbriši »%1« + + + + Reparent '%1' + Spremeni starša od »%1« + + + + Promote to custom widget + Povišaj v gradnik po meri + + + + Demote from custom widget + PoniĹľaj iz gradnika po meri + + + + Lay out using grid + Razporedi z uporabo mreĹľe + + + + Lay out vertically + Razporedi navpiÄŤno + + + + Lay out horizontally + Razporedi vodoravno + + + + Break layout + Razbij razporeditev + + + + + + Move Page + Premakni stran + + + + + + + Delete Page + Zbriši stran + + + + + Page + Stran + + + + page + stran + + + + + + + Insert Page + Vstavi stran + + + + Change Tab order + Spremeni vrstni red tabulatorke + + + + Create Menu Bar + Ustvari menijsko vrstico + + + + Delete Menu Bar + Zbriši menijsko vrstico + + + + Create Status Bar + Ustvari vrstico stanja + + + + Delete Status Bar + Zbriši vrstico stanja + + + + Add Tool Bar + Dodaj orodjarno + + + + Add Dock Window + Dodaj podokno + + + + Adjust Size of '%1' + Prilagodi velikost za »%1« + + + + Change Form Layout Item Geometry + Spremeni geometrijo razporeditve na obrazcu + + + + Change Layout Item Geometry + Spremeni geometrijo razporeda + + + + Change Table Contents + Spremeni vsebino tabele + + + + Change Tree Contents + Spremeni vsebino drevesa + + + + + Add action + Dodaj dejanje + + + + + Remove action + Odstrani dejanje + + + + Add menu + Dodaj meni + + + + Remove menu + Odstrani meni + + + + Create submenu + Ustvari podmeni + + + + Delete Tool Bar + Zbriši orodjarno + + + + Set action text + Nastavi besedilo dejanja + + + + Insert action + Vstavi dejanje + + + + + Move action + Premakni dejanje + + + + Change Title + Spremeni naslov + + + + Insert Menu + Vstavi meni + + + + Change signals/slots + Spremeni signale/reĹľe + + + + Delete Subwindow + Zbriši podokno + + + + Insert Subwindow + Vstavi podokno + + + + subwindow + podokno + + + + Subwindow + Podokno + + + + Change Z-order of '%1' + Spremeni vrstni red v smeri Z od »%1« + + + + Simplify Grid Layout + Poenostavi razporeditev v mreĹľo + + + + Create button group + Ustvari skupino gumbov + + + + Break button group + Razbij skupino gumbov + + + + Break button group '%1' + Razbij skupino gumbov »%1« + + + + Add buttons to group + Dodaj gumbe v skupino + + + + + Add '%1' to '%2' + Command description for adding buttons to a QButtonGroup + Dodaj »%1« v »%2« + + + + Remove buttons from group + Odstrani gumbe iz te skupine + + + + Remove '%1' from '%2' + Command description for removing buttons from a QButtonGroup + Odstrani »%1« iz »%2« + + + + Morph %1/'%2' into %3 + MorphWidgetCommand description + Pretvori %1/»%2« v %3 + + + + Change layout of '%1' from %2 to %3 + Spremeni razpored od »%1« iz %2 v %3 + + + + Change script + Spremeni skript + + + + Changed '%1' of '%2' + Spremenil »%1« od »%2« + + + + Changed '%1' of %n objects + + Spremenil »%1« od %n objekta + Spremenil »%1« od %n objektov + Spremenil »%1« od %n objektov + Spremenil »%1« od %n objektov + + + + + Reset '%1' of '%2' + Ponastavi »%1« od »%2« + + + + Reset '%1' of %n objects + + Ponastavi »%1« od %n objekta + Ponastavi »%1« od %n objektov + Ponastavi »%1« od %n objektov + Ponastavi »%1« od %n objektov + + + + + Add dynamic property '%1' to '%2' + Dodaj dinamiÄŤno lastnost »%1« k »%2« + + + + Add dynamic property '%1' to %n objects + + Dodaj dinamiÄŤno lastnost »%1« k %n objektu + Dodaj dinamiÄŤno lastnost »%1« k %n objektoma + Dodaj dinamiÄŤno lastnost »%1« k %n objektom + Dodaj dinamiÄŤno lastnost »%1« k %n objektom + + + + + Remove dynamic property '%1' from '%2' + Odstrani dinamiÄŤno lastnost »%1« od »%2« + + + + Remove dynamic property '%1' from %n objects + + Odstrani dinamiÄŤno lastnost »%1« od %n objekta + Odstrani dinamiÄŤno lastnost »%1« od %n objektov + Odstrani dinamiÄŤno lastnost »%1« od %n objektov + Odstrani dinamiÄŤno lastnost »%1« od %n objektov + + + + + ConnectDialog + + + Configure Connection + Nastavi povezavo + + + + GroupBox + Skupina + + + + Edit... + Urejanje ... + + + + Show signals and slots inherited from QWidget + PrikaĹľi signale in reĹľe podedovane od QWidget + + + + ConnectionDelegate + + + <object> + <objekt> + + + + <signal> + <signal> + + + + <slot> + <reĹľa> + + + + DPI_Chooser + + + Standard (96 x 96) + Embedded device standard screen resolution + ObiÄŤajna (96 Ă— 96) + + + + Greenphone (179 x 185) + Embedded device screen resolution + Greenphone (179 Ă— 185) + + + + High (192 x 192) + Embedded device high definition screen resolution + Visoka (192 Ă— 192) + + + + Designer + + + Qt Designer + Qt Designer + + + + This file contains top level spacers.<br>They have <b>NOT</b> been saved into the form. + Ta datoteka vsebuje praznine, ki so na vrhu.<br><b>Niso</b> bile shranjene v ta obrazec. + + + + Perhaps you forgot to create a layout? + Morda ste pozabili ustvariti razpored? + + + + Invalid UI file: The root element <ui> is missing. + Neveljavna datoteka UI: manjka vrhnji element <ui>. + + + + An error has occurred while reading the UI file at line %1, column %2: %3 + Prišlo je do napake med branjem datoteke UI v vrstici %1, stolpcu %2: %3 + + + + This file cannot be read because it was created using %1. + Te datoteke ni moÄŤ prebrati, ker je bila ustvarjena z %1. + + + + This file was created using Designer from Qt-%1 and cannot be read. + Ta datoteka je bila ustvarjena s Qt Designerjem iz Qt %1 in je ni moÄŤ prebrati. + + + + This file cannot be read because the extra info extension failed to load. + Te datoteke ni moÄŤ prebrati, ker je spodletelo nalaganje razširitve za dodatne podatke. + + + + The converted file could not be read. + Pretvorjene datoteke ni bilo moÄŤ prebrati. + + + + This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer. + Ta datoteka je bila ustvarjena s Qt Designerjem iz Qt %1 in bo pretvorjena v novo obliko. + + + + The old form has not been touched, but you will have to save the form under a new name. + Stara oblika ni bila spremenjena, vendar boste novo obliko morali shraniti pod novim imenom. + + + + This file was created using Designer from Qt-%1 and could not be read: +%2 + Ta datoteka je bila ustvarjena s Qt Designerjem iz Qt %1 in je ni bilo moÄŤ prebrati: +%2 + + + + Please run it through <b>uic3&nbsp;-convert</b> to convert it to Qt-4's ui format. + PoĹľenite jo skozi <b>uic3&nbsp;-convert</b> in jo tako pretvorite v zapis UI za Qt 4. + + + + Custom Widgets + Gradniki po meri + + + + Promoted Widgets + Povišani gradniki + + + + Unable to launch %1. + Ni moÄŤ zagnati %1. + + + + %1 timed out. + ÄŚas za %1 je potekel. + + + + DesignerMetaEnum + + + %1 is not a valid enumeration value of '%2'. + %1 ni veljavna vrednost številÄŤenja od »%2«. + + + + '%1' could not be converted to an enumeration value of type '%2'. + »%1« ne more biti pretvorjeno v vrednost številÄŤenja vrste »%2«. + + + + DesignerMetaFlags + + + '%1' could not be converted to a flag value of type '%2'. + »%1« ne more biti pretvorjeno v vrednost zastavice vrste »%2«. + + + + DeviceProfile + + + '%1' is not a number. + Reading a number for an embedded device profile + »%1« ni številka. + + + + An invalid tag <%1> was encountered. + DoseĹľena je bila neveljavna oznaka <%1>. + + + + DeviceProfileDialog + + + &Family + &DruĹľina + + + + &Point Size + &Velikost toÄŤke + + + + Style + Slog + + + + Device DPI + LoÄŤljivost (toÄŤk/palec) + + + + Name + Ime + + + + DeviceSkin + + + The image file '%1' could not be loaded. + Slikovne datoteke »%1« ni bilo moÄŤ naloĹľiti. + + + + The skin directory '%1' does not contain a configuration file. + Mapa s temo »%1« ne vsebuje nastavitvene datoteke. + + + + The skin configuration file '%1' could not be opened. + Nastavitvene datoteke za temo »%1« ni bilo moÄŤ odpreti. + + + + Syntax error: %1 + Skladenjska napaka: %1 + + + + The skin cursor image file '%1' does not exist. + Slikovna datoteka s kazalcem za temo »%1« ne obstaja. + + + + Syntax error in area definition: %1 + Skladenjska napaka pri doloÄŤitvi obmoÄŤja: %1 + + + + Mismatch in number of areas, expected %1, got %2. + Neujemanje v številu obmoÄŤij, priÄŤakovano %1, dobljeno %2. + + + + The skin configuration file '%1' could not be read: %2 + Nastavitvene datoteke za temo »%1« ni bilo moÄŤ prebrati: %2 + + + + The skin "up" image file '%1' does not exist. + Datoteka slike »up« teme »%1« ne obstaja. + + + + The skin "down" image file '%1' does not exist. + Datoteka slike »down« teme »%1« ne obstaja. + + + + The skin "closed" image file '%1' does not exist. + Datoteka slike »closed« teme »%1« ne obstaja. + + + + 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>Pisava</b></td><td>%1, %2</td></tr><tr><td><b>Slog</b></td><td>%3</td></tr><tr><td><b>LoÄŤljivost</b></td><td>%4 Ă— %5</td></tr></table></html> + + + + EmbeddedOptionsPage + + + Embedded Design + Tab in preferences dialog + Vgrajena zasnova + + + + Device Profiles + EmbeddedOptionsControl group box" + Profili naprav + + + + FontPanel + + + Font + Pisava + + + + &Writing system + S&istem pisanja + + + + &Family + &DruĹľina + + + + &Style + &Slog + + + + &Point size + &Velikost toÄŤke + + + + FontPropertyManager + + + PreferDefault + Prednost ima privzeto + + + + NoAntialias + Brez glajenja robov + + + + PreferAntialias + Prednost ima glajenje robov + + + + Antialiasing + Glajenje robov + + + + FormBuilder + + + Invalid stretch value for '%1': '%2' + Parsing layout stretch values + Neveljavna vrednost razširjanja za »%1«: »%2« + + + + Invalid minimum size for '%1': '%2' + Parsing grid layout minimum size values + Neveljavna najmanjša velikost za »%1«: »%2« + + + + FormEditorOptionsPage + + + %1 % + %1 % + + + + Preview Zoom + PoveÄŤava ogleda + + + + Default Zoom + Privzeta poveÄŤava + + + + Forms + Tab in preferences dialog + Obrazci + + + + Default Grid + Privzeta mreĹľa + + + + FormLayoutRowDialog + + + Add Form Layout Row + Dodaj vrstico razporeditve na obrazcu + + + + &Label text: + &Besedilo oznake: + + + + Field &type: + &Vrsta polja: + + + + &Field name: + &Ime polja: + + + + &Buddy: + &Kolega: + + + + &Row: + &Vrstica: + + + + Label &name: + &Ime oznake: + + + + FormWindow + + + Unexpected element <%1> + NepriÄŤakovan element <%1> + + + + Error while pasting clipboard contents at line %1, column %2: %3 + Napaka pri lepljenju vsebine odloĹľišča v vrstici %1, stolpcu %2: %3 + + + + FormWindowSettings + + + Form Settings + Nastavitve obrazca + + + + Layout &Default + &Privzeto za razpored + + + + &Spacing: + &Razmik: + + + + &Margin: + &Rob: + + + + &Layout Function + &Funkcija za razpored + + + + Ma&rgin: + R&ob: + + + + Spa&cing: + R&azmik: + + + + Embedded Design + Vgrajena zasnova + + + + &Author + &Avtor + + + + &Include Hints + Namigi za &vkljuÄŤevanje + + + + &Pixmap Function + F&unkcija za sliÄŤico + + + + Grid + MreĹľa + + + + IconSelector + + + All Pixmaps ( + Vse sliÄŤice ( + + + + ItemPropertyBrowser + + + XX Icon Selected off + Sample string to determinate the width for the first column of the list item property browser + XX Ikona Izbrano izklopljeno + + + + MainWindowBase + + + Main + Not currently used (main tool bar) + Glavna + + + + File + Datoteka + + + + Edit + Urejanje + + + + Tools + Orodja + + + + Form + Obrazec + + + + Qt Designer + Qt Designer + + + + NewForm + + + C&reate + &Ustvari + + + + Recent + Nedavno + + + + &Close + &Zapri + + + + &Open... + &Odpri ... + + + + &Recent Forms + &Nedavni obrazci + + + + Read error + Napaka pri branju + + + + New Form + Nov obrazec + + + + Show this Dialog on Startup + PrikaĹľi to pogovorno okno ob zagonu + + + + A temporary form file could not be created in %1. + ZaÄŤasne datoteke obrazca v %1 ni bilo moÄŤ ustvariti. + + + + The temporary form file %1 could not be written. + V zaÄŤasno datoteko obrazca %1 ni bilo moÄŤ pisati. + + + + ObjectInspectorModel + + + Object + Objekt + + + + Class + Razred + + + + separator + loÄŤitelj + + + + <noname> + <neimenovano> + + + + ObjectNameDialog + + + Change Object Name + Spremeni ime objekta + + + + Object Name + Ime objekta + + + + PluginDialog + + + Plugin Information + Podatki o vstavkih + + + + 1 + 1 + + + + PreferencesDialog + + + Preferences + Nastavitve + + + + PreviewConfigurationWidget + + + Form + Obrazec + + + + Print/Preview Configuration + Nastavitev tiskanja/ogleda + + + + Style + Slog + + + + Style sheet + Slogovna predloga + + + + ... + ... + + + + Device skin + Tema naprave + + + + PromotionModel + + + Not used + Usage of promoted widgets + Ni uporabljeno + + + + Q3WizardContainer + + + + Page + Stran + + + + QAbstractFormBuilder + + + Unexpected element <%1> + NepriÄŤakovan element <%1> + + + + An error has occurred while reading the UI file at line %1, column %2: %3 + Prišlo je do napake med branjem datoteke UI v vrstici %1, stolpcu %2: %3 + + + + Invalid UI file: The root element <ui> is missing. + Neveljavna datoteka UI: manjka vrhnji element <ui>. + + + + The creation of a widget of the class '%1' failed. + Ustvarjanje gradnika razreda »%1« ni uspelo. + + + + Attempt to add child that is not of class QWizardPage to QWizard. + Poskus dodajanja podgradnika, ki ni razreda QWizardPage ali QWizard. + + + + 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. + Poskus dodajanja razporeda gradniku »%1« (%2), ki Ĺľe ima razpored ne-okvirne vrste %3. +To nakazuje na neskladnost v datoteki *.ui. + + + + Empty widget item in %1 '%2'. + Prazna postavka gradnika v %1 »%2«. + + + + Flags property are not supported yet. + Lastnosti z zastavicami še niso podprte. + + + + While applying tab stops: The widget '%1' could not be found. + Med uveljavljanjem postankov tabulatorke: gradnika »%1« ni bilo moÄŤ najti. + + + + Invalid QButtonGroup reference '%1' referenced by '%2'. + Neveljavna referenca »%1« na QButtonGroup od »%2«. + + + + This version of the uitools library is linked without script support. + Ta razliÄŤica knjiĹľnice uitools nima podpore za skripte. + + + + QAxWidgetPlugin + + + ActiveX control + Kontrolnik ActiveX + + + + ActiveX control widget + Gradnik kontrolnika ActiveX + + + + QAxWidgetTaskMenu + + + Set Control + Nastavi kontrolnik + + + + Reset Control + Ponastavi kontrolnik + + + + Licensed Control + Licenciran kontrolnik + + + + The control requires a design-time license + Kontrolnik potrebuje licenco za ÄŤas snovanja + + + + QCoreApplication + + + %1 is not a promoted class. + %1 ni povišan razred. + + + + The base class %1 is invalid. + Osnovni razred %1 ni veljaven. + + + + The class %1 already exists. + Razred %1 Ĺľe obstaja. + + + + Promoted Widgets + Povišani gradniki + + + + The class %1 cannot be removed + Razreda %1 ni moÄŤ odstraniti + + + + The class %1 cannot be removed because it is still referenced. + Razreda %1 ni moÄŤ odstraniti, ker se nanj še vedno nanašajo reference. + + + + The class %1 cannot be renamed + Razreda %1 ni moÄŤ preimenovati + + + + The class %1 cannot be renamed to an empty name. + Razreda %1 ni moÄŤ preimenovati s praznim imenom. + + + + There is already a class named %1. + Razred z imenom %1 Ĺľe obstaja. + + + + Cannot set an empty include file. + Ni moÄŤ nastaviti prazne vkljuÄŤene datoteke. + + + + Exception at line %1: %2 + Izjema v vrstici %1: %2 + + + + Unknown error + Neznana napaka + + + + An error occurred while running the script for %1: %2 +Script: %3 + Prišlo je do napake pri zaganjanju skripta za %1: %2 +Skript: %3 + + + + QDesigner + + + %1 - warning + %1 - opozorilo + + + + Qt Designer + Qt Designer + + + + This application cannot be used for the Console edition of Qt + Programa ni moÄŤ uporabiti za konzolno izdajo Qt + + + + QDesignerActions + + + Edit Widgets + Urejanje gradnikov + + + + &Quit + KonÄŤa&j + + + + &Minimize + Po&manjšaj + + + + Bring All to Front + Prinesi vse v ospredje + + + + Preferences... + Nastavitve ... + + + + Clear &Menu + PoÄŤisti &meni + + + + CTRL+SHIFT+S + CTRL+SHIFT+S + + + + CTRL+R + CTRL+R + + + + CTRL+M + CTRL+M + + + + Qt Designer &Help + P&riroÄŤnik za Qt Designer + + + + Current Widget Help + PomoÄŤ za trenutni gradnik + + + + What's New in Qt Designer? + Kaj je novega v Qt Designerju? + + + + About Plugins + O vstavkih + + + + + About Qt Designer + O Qt Designer + + + + About Qt + O Qt + + + + + Open Form + Odpri obrazec + + + + + + Designer UI files (*.%1);;All Files (*) + Designerjeve datoteke UI (*.%1);;Vse datoteke (*) + + + + %1 already exists. +Do you want to replace it? + %1 Ĺľe obstaja. +Ali jo Ĺľelite nadomestiti? + + + + Saved %1. + Shranil %1. + + + + Additional Fonts... + Dodatne pisave ... + + + + &Recent Forms + N&edavni obrazci + + + + Designer + Qt Designer + + + + Feature not implemented yet! + ZmoĹľnost še ni izdelana. + + + + Read error + Napaka pri branju + + + + %1 +Do you want to update the file location or generate a new form? + %1 +Ali Ĺľelite posodobiti lokacijo datoteke ali ustvariti nov obrazec? + + + + &Update + &Posodobi + + + + &New Form + &Nov obrazec + + + + + Save Form? + Shranim obrazec? + + + + Could not open file + Ni bilo moÄŤ odpreti datoteke + + + + Select New File + Izberite novo datoteko + + + + Could not write file + Ni bilo moÄŤ zapisati datoteke + + + + &Close Preview + &Zapri ogled + + + + Save &Image... + S&hrani sliko ... + + + + &Print... + &Natisni ... + + + + The file %1 could not be opened. +Reason: %2 +Would you like to retry or select a different file? + Datoteke %1 ni bilo moÄŤ odpreti. +Razlog: %2 +Ali Ĺľalite poskusiti znova ali izbrati drugo datoteko? + + + + It was not possible to write the entire file %1 to disk. +Reason:%2 +Would you like to retry? + Celotne datoteke %1 ni bilo moÄŤ zapisati na disk. +Razlog: %2 +Ali Ĺľelite poskusiti znova? + + + + + The backup file %1 could not be written. + Varnostne kopije datoteke %1 ni bilo moÄŤ zapisati. + + + + The backup directory %1 could not be created. + Mape %1 za varnostne kopije ni bilo moÄŤ ustvariti. + + + + The temporary backup directory %1 could not be created. + ZaÄŤasne mape %1 za varnostne kopije ni bilo moÄŤ ustvariti. + + + + Image files (*.%1) + Slikovne datoteke (*.%1) + + + + + Save Image + Shrani sliko + + + + The file %1 could not be written. + Datoteke %1 ni bilo moÄŤ zapisati. + + + + &New... + &Nova ... + + + + &Open... + &Odpri ... + + + + &Save + &Shrani + + + + Save &As... + Shrani &kot ... + + + + Save A&ll + Shrani &vse + + + + Save As &Template... + Shrani kot &predlogo ... + + + + + &Close + &Zapri + + + + View &Code... + PrikaĹľi &kodo ... + + + + + Save Form As + Shrani obrazec kot + + + + Preview failed + Ogled ni uspel + + + + Code generation failed + Ustvarjanje kode ni uspelo + + + + + Assistant + PomoÄŤnik + + + + Saved image %1. + Shranil sliko %1. + + + + Please close all forms to enable the loading of additional fonts. + Da bi omogoÄŤili nalaganje dodatnih pisav zaprite vse obrazce. + + + + Printed %1. + Natisnil %1. + + + + ALT+CTRL+S + ALT+CTRL+S + + + + QDesignerAppearanceOptionsPage + + + Appearance + Tab in preferences dialog + Videz + + + + QDesignerAppearanceOptionsWidget + + + Docked Window + Zasidrana okna + + + + Multiple Top-Level Windows + VeÄŤ loÄŤenih oken + + + + Toolwindow Font + Pisava oken z orodji + + + + QDesignerAxWidget + + + Reset control + Ponastavi kontrolnik + + + + Set control + Nastavi kontrolnik + + + + Control loaded + Kontrolnik je naloĹľen + + + + A COM exception occurred when executing a meta call of type %1, index %2 of "%3". + med izvajanjem meta-klica vrste %1 je prišlo do izjeme COM, indeks %2 od »%3«. + + + + QDesignerFormBuilder + + + Script errors occurred: + Prišlo je do napak v skriptu: + + + + The preview failed to build. + Grajenje ogleda ni uspelo. + + + + Designer + Qt Designer + + + + QDesignerFormWindow + + + %1 - %2[*] + %1 - %2[*] + + + + Save Form? + Shranim obrazec? + + + + Do you want to save the changes to this document before closing? + Ali Ĺľelite pred zaprtjem shraniti spremembe v tem dokumentu? + + + + If you don't save, your changes will be lost. + ÄŚe ne shranite, bodo spremembe izgubljene. + + + + QDesignerMenu + + + Type Here + Pišite sem + + + + Add Separator + Dodaj loÄŤnico + + + + Insert separator + Vstavi loÄŤnico + + + + Remove separator + Odstrani loÄŤnico + + + + Remove action '%1' + Odstrani dejanje »%1« + + + + + Add separator + Dodaj loÄŤnico + + + + Insert action + Vstavi dejanje + + + + QDesignerMenuBar + + + Type Here + Pišite sem + + + + Remove Menu '%1' + Odstrani meni »%1« + + + + Remove Menu Bar + Odstrani menijsko vrstico + + + + Menu + Meni + + + + QDesignerPluginManager + + + An XML error was encountered when parsing the XML of the custom widget %1: %2 + Med razÄŤlenjevanjem datoteke XML gradnika po meri %1 je prišlo do napake XML: %2 + + + + A required attribute ('%1') is missing. + Manjka obvezna lastnost (»%1«). + + + + An invalid property specification ('%1') was encountered. Supported types: %2 + DoseĹľena je bila neveljavna specifikacija lastnosti (»%1«). Podprte vrste: %2 + + + + '%1' is not a valid string property specification. + »%1« ni veljavna specifikacija lastnosti z nizom. + + + + The XML of the custom widget %1 does not contain any of the elements <widget> or <ui>. + XML gradnika po meri »%1« ne vsebuje niti elementa <widget> niti <ui>. + + + + The class attribute for the class %1 is missing. + Manjka razredna lastnost za razred %1. + + + + The class attribute for the class %1 does not match the class name %2. + Razredna lastnost za razred %1 se ne ujema z razredovim imenom %2. + + + + QDesignerPropertySheet + + + Dynamic Properties + DinamiÄŤne lastnosti + + + + QDesignerResource + + + The layout type '%1' is not supported, defaulting to grid. + Vrsta razpored »%1« ni podprta, preklapljam na mreĹľo. + + + + 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. + Ko je bila povprašana po strani št. %5, je razširitev vsebnika gradnika »%1« (%2) vrnila gradnik, s katerim ne upravlja Qt Designer »%3« (%4). +Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml() gradnika po meri. + + + + Unexpected element <%1> + Parsing clipboard contents + NepriÄŤakovan element <%1> + + + + Error while pasting clipboard contents at line %1, column %2: %3 + Parsing clipboard contents + Napaka pri lepljenju vsebine odloĹľišča v vrstici %1, stolpcu %2: %3 + + + + Error while pasting clipboard contents: The root element <ui> is missing. + Parsing clipboard contents + Napaka pri lepljenju vsebine odloĹľišča: manjka vrhnji element <ui>. + + + + QDesignerSharedSettings + + + The template path %1 could not be created. + Poti %1 za predlogo ni bilo moÄŤ ustvariti. + + + + An error has been encountered while parsing device profile XML: %1 + Med razÄŤlenjevanjem XML-a profila naprave je prišlo do napake: %1 + + + + QDesignerToolWindow + + + Property Editor + Urejevalnik lastnosti + + + + Action Editor + Urejevalnik dejanj + + + + Object Inspector + Preiskovalnik objektov + + + + Resource Browser + Brskalnik po virih + + + + Signal/Slot Editor + Urejevalnik signalov/reĹľ + + + + Widget Box + Podokno z gradniki + + + + QDesignerWorkbench + + + &File + &Datoteka + + + + F&orm + &Obrazec + + + + Preview in + Ogled v + + + + &Window + O&kno + + + + &Help + &PomoÄŤ + + + + Edit + Urejanje + + + + Toolbars + Orodjarne + + + + Save Forms? + Shranim obrazce? + + + + &View + &Videz + + + + &Settings + &Nastavitve + + + + Widget Box + Podokno z gradniki + + + + If you do not review your documents, all your changes will be lost. + ÄŚe ne pregledate svojih dokumentov, bodo vse spremembe izgubljene. + + + + Discard Changes + Zavrzi spremembe + + + + Review Changes + Pregled sprememb + + + + Backup Information + Podatki o varnostnih kopijah + + + + The last session of Designer was not terminated correctly. Backup files were left behind. Do you want to load them? + Zadnja seja Qt Designerja ni bila konÄŤana pravilno. Na disku so ostale varnostne kopije datotek. Ali jih Ĺľelite naloĹľiti? + + + + The file <b>%1</b> could not be opened. + Datoteke <b>%1</b> ni bilo moÄŤ odpreti. + + + + The file <b>%1</b> is not a valid Designer UI file. + Datoteka <b>%1</b> ni veljavna Designerjeva datoteka UI. + + + + There are %n forms with unsaved changes. Do you want to review these changes before quitting? + + Odprt je %n obrazec z neshranjenimi spremembami. Ali Ĺľelite pred zaprtjem pregledati te spremembe? + Odprta sta %n obrazca z neshranjenimi spremembami. Ali Ĺľelite pred zaprtjem pregledati te spremembe? + Odprti so %n obrazci z neshranjenimi spremembami. Ali Ĺľelite pred zaprtjem pregledati te spremembe? + Odprtih je %n obrazcev z neshranjenimi spremembami. Ali Ĺľelite pred zaprtjem pregledati te spremembe? + + + + + QFormBuilder + + + An empty class name was passed on to %1 (object name: '%2'). + Empty class name passed to widget factory method + Prazno ime razreda je bilo posredovano do %1 (ime objekta: »%2«). + + + + QFormBuilder was unable to create a custom widget of the class '%1'; defaulting to base class '%2'. + QFormBuilder ni mogel ustvariti gradnika po meri razreda »%1«; uporabljen je bil osnovni razred »%2«. + + + + QFormBuilder was unable to create a widget of the class '%1'. + QFormBuilder ni mogel ustvariti gradnika razreda »%1«. + + + + The layout type `%1' is not supported. + Vrsta razporeda »%1« ni podprta. + + + + The set-type property %1 could not be read. + Lastnosti %1 z vrsto mnoĹľice ni bilo moÄŤ prebrati. + + + + The enumeration-type property %1 could not be read. + Lastnosti %1 z vrsto naštevanja ni bilo moÄŤ prebrati. + + + + Reading properties of the type %1 is not supported yet. + Branje lastnosti vrste %1 še ni podprto. + + + + The property %1 could not be written. The type %2 is not supported yet. + Lastnosti %1 ni bilo moÄŤ zapisati. Vrsta %2 še ni podprta. + + + + QStackedWidgetEventFilter + + + Previous Page + Predhodna stran + + + + Next Page + Naslednja stran + + + + Delete + Zbriši + + + + Before Current Page + Pred trenutno stran + + + + After Current Page + Za trenutno stran + + + + Change Page Order... + Spremeni vrstni red strani ... + + + + Change Page Order + Spremeni vrstni red strani + + + + Page %1 of %2 + Stran %1 od %2 + + + + + Insert Page + Vstavi stran + + + + QStackedWidgetPreviewEventFilter + + + Go to previous page of %1 '%2' (%3/%4). + Pojdi na predhodno stran od %1 »%2« (%3/%4). + + + + Go to next page of %1 '%2' (%3/%4). + Pojdi na naslednjo stran od %1 »%2« (%3/%4). + + + + QTabWidgetEventFilter + + + Delete + Zbriši + + + + Before Current Page + Pred trenutno stran + + + + After Current Page + Za trenutno stran + + + + Page %1 of %2 + Stran %1 od %2 + + + + + Insert Page + Vstavi stran + + + + QToolBoxHelper + + + Delete Page + Zbriši stran + + + + Before Current Page + Pred trenutno stran + + + + After Current Page + Za trenutno stran + + + + Change Page Order... + Spremeni vrsti red strani ... + + + + Change Page Order + Spremeni vrstni red strani + + + + Page %1 of %2 + Stran %1 od %2 + + + + Insert Page + Vstavi stran + + + + QtBoolEdit + + + + + True + Pravilno + + + + + False + NapaÄŤno + + + + QtBoolPropertyManager + + + True + Pravilno + + + + False + NapaÄŤno + + + + QtCharEdit + + + Clear Char + PoÄŤisti znak + + + + QtColorEditWidget + + + ... + ... + + + + QtColorPropertyManager + + + Red + RdeÄŤa + + + + Green + Zelena + + + + Blue + Modra + + + + Alpha + Alfa + + + + QtCursorDatabase + + + Arrow + Puščica + + + + Up Arrow + Puščica navzgor + + + + Cross + KriĹľec + + + + Wait + ÄŚakanje + + + + IBeam + ÄŚrtica | + + + + Size Vertical + Velikost navpiÄŤno + + + + Size Horizontal + Velikost vodoravno + + + + Size Backslash + Velikost poševno nazaj + + + + Size Slash + Velikost poševno + + + + Size All + Velikost v vse smeri + + + + Blank + Prazno + + + + Split Vertical + Razdelitev navpiÄŤno + + + + Split Horizontal + Razdelitev vodoravno + + + + Pointing Hand + Roka, ki kaĹľe + + + + Forbidden + Prepovedano + + + + Open Hand + Odprta dlan + + + + Closed Hand + Zaprta dlan + + + + What's This + Kaj je to + + + + Busy + Zasedeno + + + + QtFontEditWidget + + + ... + ... + + + + Select Font + Izberite pisavo + + + + QtFontPropertyManager + + + Family + DruĹľina + + + + Point Size + Velikost toÄŤke + + + + Bold + Polkrepko + + + + Italic + LeĹľeÄŤe + + + + Underline + PodÄŤrtano + + + + Strikeout + PreÄŤrtano + + + + Kerning + Spodsekavanje + + + + QtGradientDialog + + + Edit Gradient + Uredi preliv + + + + QtGradientEditor + + + Start X + ZaÄŤetni X + + + + Start Y + ZaÄŤetni Y + + + + Final X + KonÄŤni X + + + + Final Y + KonÄŤni Y + + + + + Central X + Središčni X + + + + + Central Y + Središčni Y + + + + Focal X + Ĺ˝ariščni X + + + + Focal Y + Ĺ˝ariščni Y + + + + Radius + Polmer + + + + Angle + Kot + + + + Linear + Linearen + + + + Radial + Radialen + + + + Conical + Stožčast + + + + Pad + Zapolni + + + + Repeat + Ponovi + + + + Reflect + Odbij + + + + Form + Obrazec + + + + Gradient Editor + Urejevalnik preliva + + + + 1 + 1 + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + 5 + 5 + + + + Gradient Stops Editor + Urejevalnik postankov preliva + + + + 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. + To obmoÄŤje vam omogoÄŤa urejanje postankov preliva. Da podvojite obstojeÄŤo roÄŤko postanka dvokliknite nanjo. Za ustvaritev novega postanka dvokliknite izven obstojeÄŤih roÄŤic postankov. Da spremenite poloĹľaj postanka povlecite in spustite njegovo roÄŤko. ÄŚe kliknete z desnim gumbom miške, se bo pojavil priroÄŤni meni z dodatnimi dejanji. + + + + Zoom + PoveÄŤava + + + + Position + PoloĹľaj + + + + Hue + Odtenek + + + + H + H + + + + Saturation + ZasiÄŤenost + + + + S + S + + + + Sat + Zas. + + + + Value + Vrednost + + + + V + V + + + + Val + Vre. + + + + Alpha + Alfa + + + + A + A + + + + Type + Vrsta + + + + Spread + Razširitev + + + + Color + Barva + + + + Current stop's color + Barva trenutnega postanka + + + + HSV + HSV + + + + RGB + RGB + + + + Current stop's position + PoloĹľaj trenutnega postanka + + + + % + % + + + + Zoom In + PoveÄŤaj + + + + Zoom Out + Zmanjšaj + + + + Toggle details extension + Preklopi prikaz podrobnosti + + + + > + > + + + + Linear Type + Linearna vrsta + + + + ... + ... + + + + Radial Type + Radialna vrsta + + + + Conical Type + Stožčasta vrsta + + + + Pad Spread + Razširitev z zapolnitvijo + + + + Repeat Spread + Razširitev s ponovitvijo + + + + Reflect Spread + Razširitev z odbojem + + + + 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. + To obmoÄŤje prikazuje ogled urejevanega preliva. OmogoÄŤa vam tudi urejanje parametrov, ki so specifiÄŤni za vrsto preliva, na primer zaÄŤetna in konÄŤna toÄŤka, polmer in podobno. Za to uporabite vleÄŤenje in spuščanje. + + + + Show HSV specification + PrikaĹľi specifikacijo HSV + + + + Show RGB specification + PrikaĹľi specifikacijo RGB + + + + Reset Zoom + Ponastavi poveÄŤavo + + + + QtGradientStopsWidget + + + New Stop + Nov postanek + + + + Delete + Zbriši + + + + Flip All + Obrni vse + + + + Select All + Izberi vse + + + + Zoom In + PoveÄŤaj + + + + Zoom Out + Zmanjšaj + + + + Reset Zoom + Ponastavi poveÄŤavo + + + + QtGradientView + + + Grad + Preliv + + + + Remove Gradient + Odstrani preliv + + + + Are you sure you want to remove the selected gradient? + Ali res Ĺľelite odstraniti izbrani preliv? + + + + + New... + Nov ... + + + + + Edit... + Urejanje ... + + + + + Rename + Preimenuj + + + + + Remove + Odstrani + + + + Gradient View + Prikaz preliva + + + + QtGradientViewDialog + + + Select Gradient + Izberite preliv + + + + QtKeySequenceEdit + + + Clear Shortcut + PoÄŤisti bliĹľnjico + + + + QtLocalePropertyManager + + + %1, %2 + %1, %2 + + + + Language + Jezik + + + + Country + DrĹľava + + + + QtPointFPropertyManager + + + (%1, %2) + (%1, %2) + + + + X + X + + + + Y + Y + + + + QtPointPropertyManager + + + (%1, %2) + (%1, %2) + + + + X + X + + + + Y + Y + + + + QtPropertyBrowserUtils + + + [%1, %2, %3] (%4) + [%1, %2, %3] (%4) + + + + [%1, %2] + [%1, %2] + + + + QtRectFPropertyManager + + + [(%1, %2), %3 x %4] + [(%1, %2), %3 Ă— %4] + + + + X + X + + + + Y + Y + + + + Width + Ĺ irina + + + + Height + Višina + + + + QtRectPropertyManager + + + [(%1, %2), %3 x %4] + [(%1, %2), %3 Ă— %4] + + + + X + X + + + + Y + Y + + + + Width + Ĺ irina + + + + Height + Višina + + + + QtResourceEditorDialog + + + %1 already exists. +Do you want to replace it? + %1 Ĺľe obstaja. +Ali jo Ĺľelite nadomestiti? + + + + The file does not appear to be a resource file; element '%1' was found where '%2' was expected. + Kot kaĹľe datoteka ni datoteka z viri. Najden je bil element »%1«, priÄŤakovan pa element »%2«. + + + + %1 [read-only] + %1 [samo za branje] + + + + + %1 [missing] + %1 [manjka] + + + + <no prefix> + <brez predpone> + + + + + New Resource File + Nova datoteka z viri + + + + + Resource files (*.qrc) + Datoteke z viri (*.qrc) + + + + Import Resource File + Uvozi datoteko z viri + + + + newPrefix + novaPredpona + + + + Add Files + Dodaj datoteke + + + + Incorrect Path + Nepravilna pot + + + + + + + Copy + Skopiraj + + + + Copy As... + Skopiraj kot ... + + + + Keep + ObdrĹľi + + + + Skip + PreskoÄŤi + + + + Clone Prefix + Kloniraj predpono + + + + 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". + Vnesite pripono, ki jo Ĺľelite dodati imenom kloniranih datotek. +To bi, na primer, lahko bila pripona jezika kot je »_sl«. + + + + + Copy As + Skopiraj kot + + + + <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>Izbrana datoteka:</p><p>%1</p><p>je izven mape trenutne datoteke z viri:</p><p>%2</p><p>Izberite drugo pot znotraj te mape.<p> + + + + Could not overwrite %1. + Ni bilo moÄŤ nadomestiti %1. + + + + <p><b>Warning:</b> The file</p><p>%1</p><p>is outside of the current resource file's parent directory.</p> + <p><b>Opozorilo:</b> Datoteka</p><p>%1</p><p>je izven matiÄŤne mape trenutne datoteke z viri.</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>Da razrešite teĹľavo, kliknite:</p><table><tr><th align="left">Skopiraj</th><td>da skopirate datoteko v matiÄŤno mapo datoteke z viri</td></tr><tr><th align="left">Skopiraj kot ...</th><td>da skopirate datoteko v podmapo matiÄŤne mape datoteke z viri</td></tr><tr><th align="left">ObdrĹľi</th><td>da uporabite trenutno lokacijo</td></tr></table> + + + + Could not copy +%1 +to +%2 + Ni bilo moÄŤ skopirati +%1 +v +%2 + + + + A parse error occurred at line %1, column %2 of %3: +%4 + Prišlo je do napake razÄŤlenjevanja v vrstici %1, stolpcu %2 v %3: +%4 + + + + Save Resource File + Shrani datoteko z viri + + + + Edit Resources + Urejanje virov + + + + New... + Nova ... + + + + Open... + Odpri ... + + + + + Remove + Odstrani + + + + + Move Up + Premakni gor + + + + + Move Down + Pomakni dol + + + + + Add Prefix + Dodaj predpono + + + + Add Files... + Dodaj datoteke ... + + + + Change Prefix + Spremeni predpono + + + + Change Language + Spremeni jezik + + + + Change Alias + Spremeni drugo ime + + + + Clone Prefix... + Kloniraj predpono ... + + + + Prefix / Path + Predpona / pot + + + + Language / Alias + Jezik / drugo ime + + + + <html><p><b>Warning:</b> There have been problems while reloading the resources:</p><pre>%1</pre></html> + <html><p><b>Opozorilo:</b> Med ponovnim nalaganjem virov je prišlo do teĹľav:</p><pre>%1</pre></html> + + + + Resource Warning + Opozorilo o virih + + + + Dialog + Pogovorno okno + + + + New File + Nova datoteka + + + + N + N + + + + Remove File + Odstrani datoteko + + + + R + R + + + + I + I + + + + New Resource + Nov vir + + + + A + A + + + + Remove Resource or File + Odstrani vir ali datoteko + + + + Could not write %1: %2 + Ni moÄŤ zapisati %1: %2 + + + + Open Resource File + Odpri datoteko z viri + + + + QtResourceView + + + Size: %1 x %2 +%3 + Velikost: %1 Ă— %2 +%3 + + + + Edit Resources... + Urejanje virov ... + + + + Reload + Znova naloĹľi + + + + Copy Path + Skopiraj pot + + + + QtResourceViewDialog + + + Select Resource + Izberite vir + + + + QtSizeFPropertyManager + + + %1 x %2 + %1 Ă— %2 + + + + Width + Ĺ irina + + + + Height + Višina + + + + QtSizePolicyPropertyManager + + + + <Invalid> + <neveljavno> + + + + [%1, %2, %3, %4] + [%1, %2, %3, %4] + + + + Horizontal Policy + Vodoravna politika + + + + Vertical Policy + NavpiÄŤna politika + + + + Horizontal Stretch + Vodoravna praznina + + + + Vertical Stretch + NavpiÄŤna praznina + + + + QtSizePropertyManager + + + %1 x %2 + %1 Ă— %2 + + + + Width + Ĺ irina + + + + Height + Višina + + + + QtToolBarDialog + + + < S E P A R A T O R > + < L O ÄŚ I T E L J > + + + + Customize Toolbars + Prilagodi orodjarne + + + + 1 + 1 + + + + Actions + Dejanja + + + + Toolbars + Orodjarne + + + + New + Novo + + + + Remove + Odstrani + + + + Rename + Preimenuj + + + + Up + Gor + + + + <- + <- + + + + -> + -> + + + + Down + Dol + + + + Current Toolbar Actions + Trenutna dejanja v orodjarni + + + + Custom Toolbar + Orodjarna po meri + + + + Add new toolbar + Dodaj novo orodjarno + + + + Remove selected toolbar + Odstrani izbrano orodjarno + + + + Rename toolbar + Preimenuj orodjarno + + + + Move action up + Premakni dejanje gor + + + + Remove action from toolbar + Odstrani dejanje iz orodjarne + + + + Add action to toolbar + Dodaj dejanje v orodjarno + + + + Move action down + Premakni dejanje dol + + + + QtTreePropertyBrowser + + + Property + Lastnost + + + + Value + Vrednost + + + + SaveFormAsTemplate + + + Add path... + Dodaj pot ... + + + + Template Exists + Predloga obstaja + + + + A template with the name %1 already exists. +Do you want overwrite the template? + Predloga z imenom %1 Ĺľe obstaja. +Ali Ĺľelite nadomestiti predlogo? + + + + Overwrite Template + Nadomesti predlogo + + + + Open Error + Napaka pri odpiranju + + + + There was an error opening template %1 for writing. Reason: %2 + Prišlo je do napake pri odpiranju predloge %1 za pisanje. Razlog: %2 + + + + Write Error + Napaka pri pisanju + + + + There was an error writing the template %1 to disk. Reason: %2 + Prišlo je do napake pri pisanju predloge %1 na disk. Razlog: %2 + + + + Pick a directory to save templates in + Izberite mapo za shranjevanje predlog + + + + Save Form As Template + Shranjevanje obrazca kot predloge + + + + &Category: + &Kategorija: + + + + &Name: + &Ime: + + + + ScriptErrorDialog + + + An error occurred while running the scripts for "%1": + + Prišlo je do napake med poganjanjem skriptov za »%1«: + + + + + SelectSignalDialog + + + Go to slot + Pojdi na reĹľo + + + + Select signal + Izbiranje signala + + + + signal + signal + + + + class + razred + + + + SignalSlotConnection + + + SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4) + POĹ ILJATELJ(%1), SIGNAL(%2), PREJEMNIK (%3), REĹ˝A(%4) + + + + SignalSlotDialogClass + + + Signals and slots + Signali in reĹľe + + + + Slots + ReĹľe + + + + ... + ... + + + + Signals + Signali + + + + Add + Dodaj + + + + Delete + Zbriši + + + + Spacer + + + Horizontal Spacer '%1', %2 x %3 + Vodoravni loÄŤitelj »%1«, %2 x %3 + + + + Vertical Spacer '%1', %2 x %3 + NavpiÄŤni loÄŤitelj »%1«, %2 x %3 + + + + TemplateOptionsPage + + + Template Paths + Tab in preferences dialog + Poti za predloge + + + + ToolBarManager + + + Configure Toolbars... + Nastavi orodjarne ... + + + + Window + Okno + + + + Help + PomoÄŤ + + + + Style + Slog + + + + Dock views + Podokna + + + + Toolbars + Orodjarne + + + + VersionDialog + + + <h3>%1</h3><br/><br/>Version %2 + <h3>%1</h3><br/><br/>RazliÄŤica %2 + + + + Qt Designer + Qt Designer + + + + <br/>Qt Designer is a graphical user interface designer for Qt applications.<br/> + <br/>Qt Designer je snovalnik grafiÄŤnih uporabniških vmesnikov za Qt programe.<br/> + + + + %1<br/>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). + %1<br/>Avtorske pravice © 2009 Nokia Corporation in/ali njene podruĹľnice. + + + + 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. + Datoteka vsebuje gradnik po meri »%1«, katerega osnovni razred (%2) se razlikuje od trenutnega vnosa v podatkovni zbirki gradnikov (%3). Podatkovna zbirka gradnikov je ostala nespremenjena. + + + + qdesigner_internal::ActionEditor + + + Actions + Dejanja + + + + New... + Novo ... + + + + Delete + Zbriši + + + + New action + Novo dejanje + + + + Edit action + Uredi dejanje + + + + Edit... + Uredi ... + + + + Go to slot... + Pojdi na reĹľo ... + + + + Copy + Skopiraj + + + + Cut + IzreĹľi + + + + Paste + Prilepi + + + + Select all + Izberi vse + + + + Icon View + Prikaz ikon + + + + Detailed View + Prikaz podrobnosti + + + + Remove actions + Odstrani dejanja + + + + Remove action '%1' + Odstrani dejanje »%1« + + + + Used In + Uporabljeno v + + + + Configure Action Editor + Nastavi urejevalnik dejanj + + + + qdesigner_internal::ActionModel + + + Name + Ime + + + + Used + Uporabljeno + + + + Text + Besedilo + + + + Shortcut + BliĹľnjica + + + + Checkable + Stikalo + + + + ToolTip + Namig + + + + qdesigner_internal::BrushManagerProxy + + + The element '%1' is missing the required attribute '%2'. + Elementu »%1« manjka obvezna lastnost »%2«. + + + + Empty brush name encountered. + DoseĹľeno je bilo prazno ime ÄŤopiÄŤa. + + + + An unexpected element '%1' was encountered. + DoseĹľen je bil nepriÄŤakovan element »%1«. + + + + An error occurred when reading the brush definition file '%1' at line line %2, column %3: %4 + Prišlo je do napake pri branju datoteke z definicijo ÄŤopiÄŤa »%1«, v vrstici %2 in stolpcu %3: %4 + + + + An error occurred when reading the resource file '%1' at line %2, column %3: %4 + Prišlo je do napake pri branju datoteke z viri »%1«, v vrstici %2 in stolpcu %3: %4 + + + + qdesigner_internal::BuddyEditor + + + Add buddy + Dodaj kolega + + + + Remove buddies + Odstrani kolege + + + + Remove %n buddies + + Odstrani %n kolega + Odstrani %n kolega + Odstrani %n kolege + Odstrani %n kolegov + + + + + Add %n buddies + + Dodaj %n kolega + Dodaj %n kolega + Dodaj %n kolege + Dodaj %n kolegov + + + + + Set automatically + Nastavi samodejno + + + + qdesigner_internal::BuddyEditorPlugin + + + Edit Buddies + Urejanje kolegov + + + + qdesigner_internal::BuddyEditorTool + + + Edit Buddies + Urejanje kolegov + + + + qdesigner_internal::ButtonGroupMenu + + + Select members + Izberi ÄŤlane + + + + Break + Razbij + + + + qdesigner_internal::ButtonTaskMenu + + + Assign to button group + Dodeli skupini gumbov + + + + Button group + Skupina gumbov + + + + New button group + Novi skupini gumbov + + + + Change text... + Spremeni besedilo ... + + + + None + Nobeni + + + + Button group '%1' + Skupina gumbov »%1« + + + + qdesigner_internal::CodeDialog + + + Save... + Shrani ... + + + + Copy All + Skopiraj vse + + + + &Find in Text... + &Najdi v besedilu ... + + + + A temporary form file could not be created in %1. + ZaÄŤasne datoteke obrazca v %1 ni bilo moÄŤ ustvariti. + + + + The temporary form file %1 could not be written. + V zaÄŤasno datoteko obrazca %1 ni bilo moÄŤ pisati. + + + + %1 - [Code] + %1 - [koda] + + + + Save Code + Shrani kodo + + + + Header Files (*.%1) + Datoteke z glavo (*.%1) + + + + The file %1 could not be opened: %2 + Datoteke »%1« ni bilo moÄŤ odpreti: %2 + + + + The file %1 could not be written: %2 + Datoteke »%1« ni bilo moÄŤ zapisati: %2 + + + + %1 - Error + %1 - napaka + + + + qdesigner_internal::ColorAction + + + Text Color + Barva besedila + + + + qdesigner_internal::ComboBoxTaskMenu + + + Edit Items... + Uredi postavke ... + + + + Change Combobox Contents + Spreminjanje vsebine spustnega seznama + + + + qdesigner_internal::CommandLinkButtonTaskMenu + + + Change description... + Spremeni opis ... + + + + qdesigner_internal::ConnectionEdit + + + Select All + Izberi vse + + + + Deselect All + Odizberi vse + + + + Delete + Zbriši + + + + qdesigner_internal::ConnectionModel + + + Sender + Pošiljatelj + + + + Signal + Signal + + + + Receiver + Prejemnik + + + + Slot + ReĹľa + + + + <sender> + <pošiljatelj> + + + + <signal> + <signal> + + + + <receiver> + <prejemnik> + + + + <slot> + <reĹľa> + + + + Signal and Slot Editor + Urejevalnik signalov in reĹľ + + + + The connection already exists!<br>%1 + Povezava Ĺľe obstaja!<br>%1 + + + + qdesigner_internal::ContainerWidgetTaskMenu + + + Insert Page Before Current Page + Vstavi stran pred trenutno stran + + + + Insert Page After Current Page + Vstavi stran za trenutno stran + + + + Add Subwindow + Dodaj podokno + + + + Delete + Zbriši + + + + Insert + Vstavi + + + + Subwindow + Podokno + + + + Page + Stran %1 + + + + Page %1 of %2 + Stran %1 od %2 + + + + qdesigner_internal::DPI_Chooser + + + System (%1 x %2) + System resolution + Sistemska (%1 x %2) + + + + User defined + Uporabniško doloÄŤena + + + + x + DPI X/Y separator + x + + + + qdesigner_internal::DesignerPropertyManager + + + + AlignLeft + Poravnaj levo + + + + AlignHCenter + Poravnaj sredinsko (vodoravno) + + + + AlignRight + Poravnaj desno + + + + AlignJustify + Poravnaj obojestransko + + + + AlignTop + Poravnaj na vrh + + + + + AlignVCenter + Poravnaj sredinsko (navpiÄŤno) + + + + AlignBottom + Poravnaj na dno + + + + %1, %2 + %1, %2 + + + + Customized (%n roles) + + Po meri (%n vloga) + Po meri (%n vlogi) + Po meri (%n vloge) + Po meri (%n vlog) + + + + + Inherited + Podedovano + + + + Horizontal + Vodoravno + + + + Vertical + NavpiÄŤno + + + + Normal Off + Normalna in izkljuÄŤena + + + + Normal On + Normalna in vkljuÄŤena + + + + Disabled Off + OnemogoÄŤena in izkljuÄŤena + + + + Disabled On + OnemogoÄŤena in vkljuÄŤena + + + + Active Off + Aktivna in izkljuÄŤena + + + + Active On + Aktivna in vkljuÄŤena + + + + Selected Off + Izbrana in izkljuÄŤena + + + + Selected On + Izbrana in vkljuÄŤena + + + + + translatable + prevedljivo + + + + + disambiguation + razloÄŤitev + + + + + comment + komentar + + + + qdesigner_internal::DeviceProfileDialog + + + Device Profiles (*.%1) + Profili naprav (*.%1) + + + + Default + Privzeti + + + + Save Profile + Shrani profil + + + + Save Profile - Error + Shranjevanje profila - napaka + + + + Unable to open the file '%1' for writing: %2 + Datoteke »%1« ni moÄŤ odpreti za pisanje: %2 + + + + Open profile + Odpri profil + + + + + Open Profile - Error + Odpiranje profila - napaka + + + + Unable to open the file '%1' for reading: %2 + Datoteke »%1« ni moÄŤ odpreti za branje: %2 + + + + '%1' is not a valid profile: %2 + »%1« ni veljaven profil: %2 + + + + qdesigner_internal::Dialog + + + Dialog + PogovornoOkno + + + + StringList + SeznamNizov + + + + New String + Nov niz + + + + &New + &Nov + + + + Delete String + Z&briši niz + + + + &Delete + &Zbriši + + + + &Value: + &Vrednost: + + + + Move String Up + Premakni niz gor + + + + Up + Gor + + + + Move String Down + Premakni niz dol + + + + Down + Dol + + + + qdesigner_internal::EmbeddedOptionsControl + + + None + Noben + + + + Add a profile + Dodaj profil + + + + Edit the selected profile + Uredi izbrani profil + + + + Delete the selected profile + Zbriši izbrani profil + + + + Add Profile + Dodaj profil + + + + New profile + Nov profil + + + + Edit Profile + Uredi profil + + + + Delete Profile + Zbriši profil + + + + Would you like to delete the profile '%1'? + Ali Ĺľelite zbrisati profil »%1«? + + + + Default + Privzeti + + + + qdesigner_internal::FilterWidget + + + <Filter> + <filter> + + + + qdesigner_internal::FormEditor + + + Resource File Changed + Datoteka z viri je bila spremenjena + + + + The file "%1" has changed outside Designer. Do you want to reload it? + Datoteka »%1« je bila spremenjena izven Qt Designerja. Ali jo Ĺľelite naloĹľiti znova? + + + + qdesigner_internal::FormLayoutMenu + + + Add form layout row... + Dodaj vrstico razporeditve na obrazcu ... + + + + qdesigner_internal::FormWindow + + + Edit contents + Uredi vsebino + + + + F2 + F2 + + + + Resize + Spremeni velikost + + + + + Key Move + Premik s tipko + + + + Cannot paste widgets. Designer could not find a container without a layout to paste into. + Ni moÄŤ prilepiti gradnikov. Qt Designer ni mogel najti vsebnika brez razporeditve, v katerega bi prilepil. + + + + Break the layout of the container you want to paste into, select this container and then paste again. + Razbijte razporeditev za vsebnik, v katerega Ĺľelite prilepiti, nato izberite vsebnik in prilepite znova. + + + + Paste error + Napaka prilepljanja + + + + Lay out + Razporedi + + + + + Drop widget + Spusti gradnik + + + + Paste %n action(s) + + Prilepi %n dejanje + Prilepi %n dejanji + Prilepi %n dejanja + Prilepi %n dejanj + + + + + Insert widget '%1' + Vstavi gradnik »%1« + + + + Paste %n widget(s) + + Prilepi %n gradnik + Prilepi %n gradnika + Prilepi %n gradnike + Prilepi %n gradnikov + + + + + Paste (%1 widgets, %2 actions) + Prilepi (gradnikov: %1, dejanj: %2) + + + + Select Ancestor + Izberi predhodnika + + + + A QMainWindow-based form does not contain a central widget. + Obrazec temeljeÄŤ na QMainWindow ne vsebuje osrednjega gradnika. + + + + Raise widgets + Dvigni gradnike + + + + Lower widgets + Spusti gradnike + + + + qdesigner_internal::FormWindowBase + + + Delete + Zbriši + + + + Delete '%1' + Zbriši »%1« + + + + qdesigner_internal::FormWindowManager + + + Cu&t + &IzreĹľi + + + + Cuts the selected widgets and puts them on the clipboard + IzreĹľe izbrane gradnike in jih odloĹľi na odloĹľišče + + + + &Copy + S&kopiraj + + + + Copies the selected widgets to the clipboard + Skopira izbrane gradnike na odloĹľišče + + + + &Paste + Pri&lepi + + + + Pastes the clipboard's contents + Prilepi vsebino odloĹľišča + + + + &Delete + &Zbriši + + + + Deletes the selected widgets + Zbriše izbrane gradnike + + + + Select &All + Izberi &vse + + + + Selects all widgets + Izbere vse gradnike + + + + Bring to &Front + Prinesi v o&spredje + + + + + Raises the selected widgets + Dvigne izbrane gradnike + + + + Send to &Back + Pošlji v &ozadje + + + + + Lowers the selected widgets + Spusti izbrane gradnike + + + + Adjust &Size + Prilagodi ve&likost + + + + Adjusts the size of the selected widget + Prilagodi velikost izbranega gradnika + + + + Lay Out &Horizontally + Razporedi &vodoravno + + + + Lays out the selected widgets horizontally + Izbrane gradnike razporedi vodoravno + + + + Lay Out &Vertically + Razporedi &navpiÄŤno + + + + Lays out the selected widgets vertically + Izbrane gradnike razporedi navpiÄŤno + + + + Lay Out in a &Grid + Razporedi v &mreĹľo + + + + Lays out the selected widgets in a grid + Razporedi izbrane gradnike v mreĹľo + + + + Lay Out Horizontally in S&plitter + Razporedi vodoravno v ra&zdelilnik + + + + Lays out the selected widgets horizontally in a splitter + Izbrane gradnike razporedi vodoravno v razdelilnik + + + + Lay Out Vertically in Sp&litter + Razporedi navpiÄŤno v raz&delilnik + + + + Lays out the selected widgets vertically in a splitter + Izbrane gradnike razporedi navpiÄŤno v razdelilnik + + + + &Break Layout + &Razbij razporeditev + + + + Breaks the selected layout + Razbij izbrano razporeditev + + + + &Preview... + PrikaĹľi &ogled ... + + + + Preview current form + PrikaĹľe ogled trenutnega obrazca + + + + Form &Settings... + &Nastavi obrazec ... + + + + Break Layout + Razbij razporeditev + + + + Adjust Size + Prilagodi velikost + + + + Could not create form preview + Title of warning message box + Ni bilo moÄŤ ustvariti ogleda obrazca + + + + Form Settings - %1 + Nastavitve obrazca - %1 + + + + Removes empty columns and rows + Odstrani prazne stolpce in vrstice + + + + Lay Out in a &Form Layout + Razporedi v razporeditev na &obrazcu + + + + Lays out the selected widgets in a form layout + Razporedi izbrane gradnike v razporeditev na obrazcu + + + + Si&mplify Grid Layout + Po&enostavi razporeditev v mreĹľo + + + + qdesigner_internal::FormWindowSettings + + + None + Noben + + + + Device Profile: %1 + Profil naprave: %1 + + + + qdesigner_internal::GridPanel + + + Form + Obrazec + + + + Grid + MreĹľa + + + + Visible + Vidna + + + + Grid &X + MreĹľa &X + + + + Snap + Pripni + + + + Reset + Ponastavi + + + + Grid &Y + MreĹľa &Y + + + + qdesigner_internal::GroupBoxTaskMenu + + + Change title... + Spremeni naslov ... + + + + qdesigner_internal::HtmlTextEdit + + + Insert HTML entity + Vstavi entiteto HTML + + + + qdesigner_internal::IconSelector + + + The pixmap file '%1' cannot be read. + Datoteke s sliÄŤico »%1« ni moÄŤ prebrati. + + + + The file '%1' does not appear to be a valid pixmap file: %2 + Kot kaĹľe »%1« ni veljavna datoteka s sliÄŤico: %2 + + + + The file '%1' could not be read: %2 + Datoteke »%1« ni bilo moÄŤ prebrati: %2 + + + + Pixmap Read Error + Napaka pri branju sliÄŤice + + + + ... + ... + + + + Normal Off + Normalna in izkljuÄŤena + + + + Normal On + Normalna in vkljuÄŤena + + + + Disabled Off + OnemogoÄŤena in izkljuÄŤena + + + + Disabled On + OnemogoÄŤena in vkljuÄŤena + + + + Active Off + Aktivna in izkljuÄŤena + + + + Active On + Aktivna in vkljuÄŤena + + + + Selected Off + Izbrana in izkljuÄŤena + + + + Selected On + Izbrana in vkljuÄŤena + + + + Choose Resource... + Izberi vir ... + + + + Choose File... + Izberi datoteko ... + + + + Reset + Ponastavi + + + + Reset All + Ponastavi vse + + + + Choose a Pixmap + Izbiranje sliÄŤice + + + + qdesigner_internal::ItemListEditor + + + Properties &<< + Lastnosti &<< + + + + + Properties &>> + Lastnosti &>> + + + + Items List + Seznam postavk + + + + New Item + Nova postavka + + + + &New + &Nova + + + + Delete Item + Zbriši postavko + + + + &Delete + &Zbriši + + + + Move Item Up + Premakni postavko gor + + + + U + G + + + + Move Item Down + Premakni postavko dol + + + + D + D + + + + qdesigner_internal::LabelTaskMenu + + + Change rich text... + Spremeni bogato besedilo ... + + + + Change plain text... + Spremeni navadno besedilo ... + + + + qdesigner_internal::LanguageResourceDialog + + + Choose Resource + Izberite vir + + + + qdesigner_internal::LineEditTaskMenu + + + Change text... + Spremeni besedilo ... + + + + qdesigner_internal::ListWidgetEditor + + + Edit List Widget + Urejanje gradnika s seznamom + + + + Edit Combobox + Urejanje spustnega seznama + + + + New Item + Nova postavka + + + + qdesigner_internal::ListWidgetTaskMenu + + + Edit Items... + Uredi postavke ... + + + + Change List Contents + Spreminjanje vsebine seznama + + + + qdesigner_internal::MdiContainerWidgetTaskMenu + + + Next Subwindow + Naslednje podokno + + + + Previous Subwindow + Predhodno podokno + + + + Tile + Tlakuj + + + + Cascade + V kaskado + + + + qdesigner_internal::MenuTaskMenu + + + Remove + Odstrani + + + + qdesigner_internal::MorphMenu + + + Morph into + Pretvori v + + + + qdesigner_internal::NewActionDialog + + + New Action... + Novo dejanje ... + + + + &Text: + &Besedilo: + + + + &Icon: + &Ikona: + + + + Shortcut: + BliĹľnjica: + + + + Checkable: + Stikalo: + + + + ToolTip: + Namig: + + + + ... + ... + + + + Object &name: + &Ime objekta: + + + + qdesigner_internal::NewDynamicPropertyDialog + + + Set Property Name + Nastavi ime lastnosti + + + + The current object already has a property named '%1'. +Please select another, unique one. + Trenutni objekt Ĺľe ima lastnost z imenom »%1«.Izberite drugo, edinstveno ime + + + + Create Dynamic Property + Ustvari dinamiÄŤno lastnost + + + + Property Name + Ime lastnosti + + + + Property Type + Vrsta lastnosti + + + + The '_q_' prefix is reserved for the Qt library. +Please select another name. + Predpona »_q_« je rezervirana za knjiĹľnico Qt.Izberite drugo ime. + + + + horizontalSpacer + vodoravnaPraznina + + + + qdesigner_internal::NewFormWidget + + + Default size + Privzeta velikost + + + + QVGA portrait (240x320) + QVGA, pokonÄŤno (240x320) + + + + QVGA landscape (320x240) + QVGA, leĹľeÄŤe (320x240) + + + + VGA portrait (480x640) + VGA, pokonÄŤno (480x640) + + + + VGA landscape (640x480) + VGA, leĹľeÄŤe (640x480) + + + + Widgets + New Form Dialog Categories + Gradniki + + + + Custom Widgets + Gradniki po meri + + + + None + Nobena + + + + Error loading form + Napaka pri nalaganju obrazca + + + + Unable to open the form template file '%1': %2 + Ni moÄŤ odpreti datoteke s predlogo obrazca »%1«: %2 + + + + Internal error: No template selected. + Notranja napaka: izbrane ni nobene predloge. + + + + 0 + 0 + + + + Choose a template for a preview + Izberite predlogo za ogled + + + + Embedded Design + Vgrajena zasnova + + + + Device: + Naprava: + + + + Screen Size: + Velikost zaslona + + + + qdesigner_internal::NewPromotedClassPanel + + + Add + Dodaj + + + + New Promoted Class + Nov povišan razred + + + + Base class name: + Ime osnovnega razreda: + + + + Promoted class name: + Ime povišanega razreda: + + + + Header file: + Datoteka z glavo: + + + + Global include + Globalna vkljuÄŤitev + + + + Reset + Ponastavi + + + + qdesigner_internal::ObjectInspector + + + &Find in Text... + &Najdi v besedilu ... + + + + qdesigner_internal::ObjectInspector::ObjectInspectorPrivate + + + Change Current Page + Spreminjanje trenutne strani + + + + qdesigner_internal::OrderDialog + + + Index %1 (%2) + Indeks %1 (%2) + + + + Change Page Order + Spreminjanje vrstnega reda strani + + + + Page Order + Vrstni red strani + + + + Move page up + Premakni stran gor + + + + Move page down + Premakni stran dol + + + + %1 %2 + %1 %2 + + + + qdesigner_internal::PaletteEditor + + + Edit Palette + Urejanje palete + + + + Tune Palette + Nastavitev palete + + + + Show Details + PrikaĹľi podrobnosti + + + + Compute Details + izraÄŤunaj podrobnosti + + + + Quick + Hitro + + + + Preview + Ogled + + + + Disabled + OnemogoÄŤeno + + + + Inactive + Neaktivno + + + + Active + Aktivno + + + + qdesigner_internal::PaletteEditorButton + + + Change Palette + Spremeni paleto + + + + qdesigner_internal::PaletteModel + + + Color Role + Vloga barve + + + + Active + Aktivno + + + + Inactive + Neaktivno + + + + Disabled + OnemogoÄŤeno + + + + qdesigner_internal::PixmapEditor + + + Copy Path + Skopiraj pot + + + + Paste Path + Prilepi pot + + + + Choose Resource... + Izberi vir ... + + + + Choose File... + Izberi datoteko ... + + + + + ... + ... + + + + qdesigner_internal::PlainTextEditorDialog + + + Edit text + Uredi besedilo + + + + qdesigner_internal::PluginDialog + + + Components + Komponente + + + + Plugin Information + Podatki o vstavkih + + + + Refresh + OsveĹľi + + + + Scan for newly installed custom widget plugins. + Preveri razpoloĹľljivost na novo nameščenih vstavkov za gradnike po meri. + + + + Qt Designer couldn't find any plugins + Qt Designer ni našel nobenega vstavka + + + + Qt Designer found the following plugins + Qt Designer je našel naslednje vstavke + + + + New custom widget plugins have been found. + Najdeni so bili vstavki za nove gradnike po meri. + + + + qdesigner_internal::PreviewActionGroup + + + %1 Style + Slog %1 + + + + qdesigner_internal::PreviewConfigurationWidget + + + Default + Privzeto + + + + None + Brez + + + + Browse... + Brskaj ... + + + + qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate + + + Load Custom Device Skin + NaloĹľi temo za napravo po meri + + + + All QVFB Skins (*.%1) + Vse teme za QVFB (*.%1) + + + + %1 - Duplicate Skin + %1 - podvojena tema + + + + The skin '%1' already exists. + Tema »%1« Ĺľe obstaja. + + + + %1 - Error + %1 - napaka + + + + %1 is not a valid skin directory: +%2 + %1 ni veljavna mapa s temo: +%2 + + + + qdesigner_internal::PreviewDeviceSkin + + + &Portrait + &PokonÄŤno + + + + Landscape (&CCW) + Rotate form preview counter-clockwise + L&eĹľeÄŤe (v nasprotni smeri ure) + + + + &Landscape (CW) + Rotate form preview clockwise + &LeĹľeÄŤe (v smeri ure) + + + + &Close + &Zapri + + + + qdesigner_internal::PreviewManager + + + %1 - [Preview] + %1 - [ogled] + + + + qdesigner_internal::PreviewMdiArea + + + The moose in the noose +ate the goose who was loose. + Palette editor background + Ĺ erif bo za vajo spet +skuhal domaÄŤe Ĺľgance. + + + + qdesigner_internal::PreviewWidget + + + Preview Window + Okno ogleda + + + + LineEdit + UrejevalnaVrstica + + + + ComboBox + SpustniSeznam + + + + PushButton + Gumb + + + + ButtonGroup2 + SkupinaGumbov2 + + + + CheckBox1 + PotrditvenoPolje1 + + + + CheckBox2 + PotrditvenoPolje2 + + + + ButtonGroup + SkupinaGumbov + + + + RadioButton1 + IzbirniGumb1 + + + + RadioButton2 + IzbirniGumb2 + + + + RadioButton3 + IzbirniGumb3 + + + + qdesigner_internal::PromotionModel + + + Name + Ime + + + + Header file + Datoteka z glavo + + + + Global include + Globalna vkljuÄŤitev + + + + Usage + Uporaba + + + + qdesigner_internal::PromotionTaskMenu + + + Promoted widgets... + Povišani gradniki ... + + + + Promote to ... + Povišaj v ... + + + + Promote to + Povišaj v + + + + Demote to %1 + PoniĹľaj v %1 + + + + Change signals/slots... + Spremeni signale/reĹľe ... + + + + qdesigner_internal::PropertyEditor + + + Add Dynamic Property... + Dodaj dinamiÄŤno lastnost ... + + + + Remove Dynamic Property + Odstrani dinamiÄŤno lastnost + + + + Tree View + Drevesni prikaz + + + + Drop Down Button View + Gumb s spustim seznamom za prikaz + + + + Object: %1 +Class: %2 + Objekt: %1 +Razred: %2 + + + + Sorting + Razvrsti + + + + Color Groups + Obarvaj skupine + + + + Configure Property Editor + Nastavi urejevalnik lastnosti + + + + String... + Niz ... + + + + Bool... + Bool ... + + + + Other... + Drugo ... + + + + qdesigner_internal::PropertyLineEdit + + + Insert line break + Vstavi prelom vrstice + + + + qdesigner_internal::QDesignerPromotionDialog + + + Promoted Widgets + Povišani gradniki + + + + Promoted Classes + Povišani razredi + + + + Promote + Povišaj + + + + %1 - Error + %1 - napaka + + + + Change signals/slots... + Spremeni signale/reĹľe ... + + + + qdesigner_internal::QDesignerResource + + + Loading qrc file + Nalaganje datoteke *.qrc + + + + The specified qrc file <p><b>%1</b></p><p>could not be found. Do you want to update the file location?</p> + Podane datoteke *.qrc <p><b>%1</b></p><p>ni bilo moÄŤ najti. Ali Ĺľelite posodobiti lokacijo datoteke?</p> + + + + New location for %1 + Nova lokacija za %1 + + + + Resource files (*.qrc) + Datoteke z viri (*.qrc) + + + + qdesigner_internal::QDesignerTaskMenu + + + Set size constraint on %n widget(s) + + Nastavi omejitev velikosti za %n gradnik + Nastavi omejitev velikosti za %n gradnika + Nastavi omejitev velikosti za %n gradnike + Nastavi omejitev velikosti za %n gradnikov + + + + + Change objectName... + Spremeni ime objekta ... + + + + Change toolTip... + Spremeni namig ... + + + + Change whatsThis... + Spremeni KajJeTo ... + + + + Change styleSheet... + Spremeni slogovno predlogo ... + + + + Create Menu Bar + Ustvari menijsko vrstico + + + + Add Tool Bar + Dodaj orodjarno + + + + Create Status Bar + Ustvari vrstico stanja + + + + Remove Status Bar + Odstrani vrstico stanja + + + + Change script... + Spremeni skript ... + + + + Change signals/slots... + Spremeni signale/reĹľe ... + + + + Go to slot... + Pojdi na reĹľo ... + + + + Size Constraints + Omejitve velikosti + + + + Set Minimum Width + Nastavi najmanjšo širino + + + + Set Minimum Height + Nastavi najmanjšo višino + + + + Set Minimum Size + Nastavi najmanjšo velikost + + + + Set Maximum Width + Nastavi najveÄŤjo širino + + + + Set Maximum Height + Nastavi najveÄŤjo višino + + + + Set Maximum Size + Nastavi najveÄŤjo velikost + + + + Edit ToolTip + Uredi namig + + + + Edit WhatsThis + Uredi KajJeTo + + + + no signals available + na voljo ni nobenega signala + + + + qdesigner_internal::QDesignerWidgetBox + + + + Unexpected element <%1> + NepriÄŤakovan element <%1> + + + + A parse error occurred at line %1, column %2 of the XML code specified for the widget %3: %4 +%5 + Prišlo je do napake razÄŤlenjevanja v vrstici %1, stolpcu %2 kode XML za gradnik %3: %4 + +%5 + + + + The XML code specified for the widget %1 does not contain any widget elements. +%2 + Koda XML za gradnik %1 ne vsebuje nobenega elementa gradnika. +%2 + + + + An error has been encountered at line %1 of %2: %3 + Prišlo je do napake v vrstici %1 v %2: %3 + + + + Unexpected element <%1> encountered when parsing for <widget> or <ui> + Med razÄŤlenjevanjem za <widget> ali <ui> je bil doseĹľen nepriÄŤakovan element <%1>. + + + + Unexpected end of file encountered when parsing widgets. + Med razÄŤlenjevanjem gradnikov je bil doseĹľen nepriÄŤakovan konec datoteke. + + + + A widget element could not be found. + Ni bilo moÄŤ najti elementa gradnika. + + + + qdesigner_internal::QtGradientStopsController + + + H + H + + + + S + S + + + + V + V + + + + + Hue + Odtenek + + + + Sat + ZasiÄŤenost + + + + Val + Vrednost + + + + Saturation + ZasiÄŤenost + + + + Value + Vrednost + + + + R + R + + + + G + G + + + + B + B + + + + Red + RdeÄŤa + + + + Green + Zelena + + + + Blue + Modra + + + + qdesigner_internal::RichTextEditorDialog + + + Edit text + Uredi besedilo + + + + &OK + &V redu + + + + &Cancel + &PrekliÄŤi + + + + Rich Text + Bogato besedilo + + + + Source + Izvorna koda + + + + qdesigner_internal::RichTextEditorToolBar + + + Bold + Polkrepko + + + + CTRL+B + Ctrl+B + + + + Italic + LeĹľeÄŤe + + + + CTRL+I + CTRL+I + + + + Underline + PodÄŤrtano + + + + CTRL+U + CTRL+U + + + + Left Align + Poravnaj levo + + + + Center + Na sredino + + + + Right Align + Poravnaj desno + + + + Justify + Obojestransko + + + + Superscript + Nadpisano + + + + Subscript + Podpisano + + + + Insert &Link + Vstavi &povezavo + + + + Insert &Image + Vstavi &sliko + + + + qdesigner_internal::ScriptDialog + + + Edit script + Uredi skript + + + + <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>Vnesite delÄŤek Qt Scripta, ki bo izveden med nalaganjem obrazca.<br>Gradnik in njegovi podgradniki so dostopni prek spremenljivk <i>widget</i> in <i>childWidgets</i>. + + + + Syntax error + Skladenjska napaka + + + + qdesigner_internal::ScriptErrorDialog + + + Script errors + Napake v skriptu + + + + qdesigner_internal::SignalSlotDialog + + + There is already a slot with the signature '%1'. + ReĹľa z odtisom »%1« Ĺľe obstaja. + + + + There is already a signal with the signature '%1'. + Signal z odtisom »%1« Ĺľe obstaja. + + + + %1 - Duplicate Signature + %1 - podvojen odtis + + + + + Signals/Slots of %1 + Signali/reĹľe od %1 + + + + qdesigner_internal::SignalSlotEditorPlugin + + + Edit Signals/Slots + Urejanje signalov/reĹľ + + + + F4 + F4 + + + + qdesigner_internal::SignalSlotEditorTool + + + Edit Signals/Slots + Urejanje signalov/reĹľ + + + + qdesigner_internal::StatusBarTaskMenu + + + Remove + Odstrani + + + + qdesigner_internal::StringListEditorButton + + + Change String List + Spreminjanje seznama nizov + + + + qdesigner_internal::StyleSheetEditorDialog + + + Edit Style Sheet + Urejanje slogovne predloge + + + + + Valid Style Sheet + Veljavna slogovna predloga + + + + Add Resource... + Dodaj vir ... + + + + Add Gradient... + Dodaj preliv ... + + + + Add Color... + Dodaj barvo ... + + + + Add Font... + Dodaj pisavo ... + + + + Invalid Style Sheet + Neveljavna slogovna predloga + + + + qdesigner_internal::TabOrderEditor + + + Start from Here + ZaÄŤni od tu + + + + Restart + ZaÄŤni znova + + + + Tab Order List... + Seznam vrstnega reda tabulatorke ... + + + + Tab Order List + Seznam vrstnega reda tabulatorke + + + + Tab Order + Vrstni red tabulatorke + + + + qdesigner_internal::TabOrderEditorPlugin + + + Edit Tab Order + Urejanje vrstnega reda tabulatorke + + + + qdesigner_internal::TabOrderEditorTool + + + Edit Tab Order + Urejanja vrstnega reda tabulatorke + + + + qdesigner_internal::TableWidgetEditor + + + New Column + Nov stolpec + + + + New Row + Nova vrstica + + + + &Columns + &Stolpci + + + + &Rows + &Vrstice + + + + Properties &<< + Lastnosti &<< + + + + + Properties &>> + Lastnosti &>> + + + + Edit Table Widget + Urejanje gradnika s tabelo + + + + &Items + &Postavke + + + + Table Items + Postavke v tabeli + + + + qdesigner_internal::TableWidgetTaskMenu + + + Edit Items... + Uredi postavke ... + + + + qdesigner_internal::TemplateOptionsWidget + + + Pick a directory to save templates in + Izberite mapo za shranjevanje predlog + + + + Form + Obrazec + + + + Additional Template Paths + Dodatne poti za predloge + + + + ... + ... + + + + qdesigner_internal::TextEditTaskMenu + + + Change HTML... + Spremeni HTML ... + + + + Edit HTML + Urejanje HTML-ja + + + + Edit Text + Urejanje besedila + + + + Change Plain Text... + Spremeni navadno besedilo ... + + + + qdesigner_internal::TextEditor + + + Choose Resource... + Izberi vir ... + + + + Choose File... + Izberi datoteko ... + + + + Choose a File + Izbiranje datoteke + + + + ... + ... + + + + qdesigner_internal::ToolBarEventFilter + + + Insert Separator + Vstavi loÄŤitelja + + + + Remove action '%1' + Odstrani dejanje »%1« + + + + Remove Toolbar '%1' + Odstrani orodjarno »%1« + + + + Insert Separator before '%1' + Vstavi loÄŤitelja pred »%1« + + + + Append Separator + Dodaj loÄŤitelja + + + + qdesigner_internal::TreeWidgetEditor + + + &Columns + &Stolpci + + + + Per column properties + Lastnosti za stolpec + + + + Common properties + Skupne lastnosti + + + + + New Item + Nova postavka + + + + Properties &<< + Lastnosti &<< + + + + + Properties &>> + Lastnosti &>> + + + + New Column + Nov stolpec + + + + Edit Tree Widget + Urejanje gradnika z drevesom + + + + &Items + &Postavke + + + + Tree Items + Postavke v drevesu + + + + + New Subitem + Nova podpostavka + + + + New &Subitem + Nova &podpostavka + + + + Delete Item + Zbriši postavko + + + + Move Item Left (before Parent Item) + Premakni postavko levo (pred matiÄŤno postavko) + + + + L + L + + + + Move Item Right (as a First Subitem of the Next Sibling Item) + Premakni postavko desno (kot prvo podpostavko sledeÄŤe postavke) + + + + R + E + + + + Move Item Up + Premakni postavko gor + + + + U + G + + + + Move Item Down + Premakni postavko dol + + + + D + D + + + + 1 + 1 + + + + &New + &Nova + + + + &Delete + &Zbriši + + + + qdesigner_internal::TreeWidgetTaskMenu + + + Edit Items... + Uredi postavke ... + + + + qdesigner_internal::WidgetBox + + + Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML. + Opozorilo: ustvarjanje gradnika v podoknu z gradniki ni uspelo. Za to je morda kriv neveljaven XML gradnika po meri. + + + + qdesigner_internal::WidgetBoxTreeWidget + + + Scratchpad + BeleĹľnica + + + + Custom Widgets + Gradniki po meri + + + + Expand all + Razširi vse + + + + Collapse all + SkrÄŤi vse + + + + List View + Prikaz seznama + + + + Icon View + Prikaz ikon + + + + Remove + Odstrani + + + + Edit name + Urejanje imena + + + + qdesigner_internal::WidgetDataBase + + + A custom widget plugin whose class name (%1) matches that of an existing class has been found. + Najden je bil vstavek gradnika po meri, katerega ime (%1) je enako imenu obstojeÄŤega razreda. + + + + qdesigner_internal::WidgetEditorTool + + + Edit Widgets + Urejanje gradnikov + + + + qdesigner_internal::WidgetFactory + + + The custom widget factory registered for widgets of class %1 returned 0. + Tovarna gradnikov po meri, ki je registrirana za gradnike razreda %1, je vrnila 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. + Med ustvarjanjem gradnika z uporabo tovarne gradnikov po meri, ki je registrirana za gradnike razreda %1, je prišlo do neujemanja v imenu razreda. Tovarna je vrnila gradnik razreda %2. + + + + %1 Widget + Gradnik %1 + + + + 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. + Trenutne strani vsebnika »%1« (%2) med dodajanjem razporeda ni bilo moÄŤ doloÄŤiti. To nakazuje na neskladnost v datoteki *.ui. Verjetno je na vsebovalnem gradniku zgrajen razpored. + + + + 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. + Poskus dodajanja razporeda gradniku »%1« (%2), ki Ĺľe ima neupravljan razpored vrste %3. +To nakazuje na neskladnost v datoteki *.ui. + + + + Cannot create style '%1'. + Ni moÄŤ ustvariti sloga »%1«. + + + + qdesigner_internal::WizardContainerWidgetTaskMenu + + + Next + Naprej + + + + Back + Nazaj + + + + qdesigner_internal::ZoomMenu + + + %1 % + Zoom factor + %1 % + + + + qdesigner_internal::ZoomablePreviewDeviceSkin + + + &Zoom + &PoveÄŤava + + + diff --git a/translations/qt_sl.ts b/translations/qt_sl.ts new file mode 100644 index 0000000..517ce71 --- /dev/null +++ b/translations/qt_sl.ts @@ -0,0 +1,10037 @@ + + + + + CloseButton + + + Close Tab + Zapri zavihek + + + + FakeReply + + + Fake error ! + LaĹľna napaka. + + + + Invalid URL + Neveljaven URL + + + + InputPrivate + + + PUSH: read in bytes = %1 (frames=%2) + + + + + Phonon:: + + + Notifications + Obvestila + + + + Music + Glasba + + + + Video + Video + + + + Communication + Komunikacija + + + + Games + Igre + + + + Accessibility + Dostopnost + + + + Phonon::AudioOutput + + + <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> + <html>Naprava za predvajanje zvoka <b>%1</b> ne deluje.<br/>Preklapljanje na <b>%2</b>.</html> + + + + <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> + <html>Preklapljanje na napravo za predvajanje zvoka <b>%1</b>,<br/>ki je ravnokar postala dostopna in ima višjo preferenco.</html> + + + + Revert back to device '%1' + Povrni nazaj na napravo »%1« + + + + Phonon::Gstreamer::Backend + + + Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. + Some video features have been disabled. + Opozorilo: kot kaĹľe paket gstreamer0.10-plugins-good ni nameščen. + Nekatere moĹľnosti predvajanja videa so onemogoÄŤene. + + + + Warning: You do not seem to have the base GStreamer plugins installed. + All audio and video support has been disabled + Opozorilo: kot kaĹľe osnovni vstavki za GStreamer niso nameščeni. + Vsa podpora za zvok in video je onemogoÄŤena. + + + + Phonon::Gstreamer::MediaObject + + + Cannot start playback. + +Check your Gstreamer installation and make sure you +have libgstreamer-plugins-base installed. + Ni moÄŤ zaÄŤeti predvajanja. + +Preverite namestitev GStreamerja in se prepriÄŤajte, +da je nameščen paket libgstreamer-plugins-base. + + + + A required codec is missing. You need to install the following codec(s) to play this content: %0 + Manjka potreben kodek. Za predvajanje te vsebine morate namestiti sledeÄŤe kodeke: %0 + + + + + + + + + + + Could not open media source. + Ni moÄŤ odpreti veÄŤpredstavnostnega vira. + + + + Invalid source type. + Neveljavna vrsta vira. + + + + Could not locate media source. + Ni moÄŤ najti veÄŤpredstavnostnega vira. + + + + Could not open audio device. The device is already in use. + Ni moÄŤ odpreti zvoÄŤne naprave. Naprava je Ĺľe v uporabi. + + + + Could not decode media source. + Ni moÄŤ dekodirati veÄŤpredstavnostnega vira. + + + + Phonon::MMF::AudioEqualizer + + + Frequency band, %1 Hz + + + + + Phonon::VolumeSlider + + + + + + Volume: %1% + Glasnost: %1 % + + + + + + Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% + Uporabite ta drsnik, da nastavite glasnost. Skrajno levi poloĹľaj je 0 %, skrajno desni pa %1 %. + + + + Muted + Utišan + + + + Q3Accel + + + %1, %2 not defined + %1, %2 ni definiran + + + + Ambiguous %1 not handled + Brez rokovanja z dvoumnim %1 + + + + Q3DataTable + + + True + Pravilno + + + + False + NapaÄŤno + + + + Insert + Vstavi + + + + Update + Posodobi + + + + Delete + Izbriši + + + + Q3FileDialog + + + Copy or Move a File + Skopiraj ali premakni datoteko + + + + Read: %1 + Branje: %1 + + + + + Write: %1 + Pisanje: %1 + + + + + Cancel + PrekliÄŤi + + + + + + + All Files (*) + Vse datoteke (*) + + + + Name + Ime + + + + Size + Velikost + + + + Type + Vrsta + + + + Date + Datum + + + + Attributes + Lastnosti + + + + + &OK + &V redu + + + + Look &in: + Išči &v: + + + + + + File &name: + Ime &datoteke: + + + + File &type: + &Vrsta datoteke: + + + + Back + Nazaj + + + + One directory up + Za eno mapo navzgor + + + + Create New Folder + Ustvari novo mapo + + + + List View + Prikaz seznama + + + + Detail View + Prikaz podrobnosti + + + + Preview File Info + Podatki ogleda datoteke + + + + Preview File Contents + Vsebina ogleda datoteke + + + + Read-write + Branje in pisanje + + + + Read-only + Samo za branje + + + + Write-only + Samo za pisanje + + + + Inaccessible + Nedostopno + + + + Symlink to File + Simbolna povezava do datoteke + + + + Symlink to Directory + Simbolna povezava do mape + + + + Symlink to Special + Simbolna povezava do posebnega + + + + File + Datoteka + + + + Dir + Mapa + + + + Special + Posebno + + + + + + Open + Odpri + + + + + Save As + Shrani kot + + + + + + &Open + &Odpri + + + + + &Save + &Shrani + + + + &Rename + Pre&imenuj + + + + &Delete + &Izbriši + + + + R&eload + &Znova naloĹľi + + + + Sort by &Name + Razvrsti po &imenu + + + + Sort by &Size + Razvrsti po &velikosti + + + + Sort by &Date + Razvrsti po &datumu + + + + &Unsorted + &Brez razvrščanja + + + + Sort + Razvrsti + + + + Show &hidden files + PrikaĹľi &skrite datoteke + + + + the file + datoteko + + + + the directory + mapo + + + + the symlink + simbolno povezavo + + + + Delete %1 + Izbriši %1 + + + + <qt>Are you sure you wish to delete %1 "%2"?</qt> + <qt>Ali res Ĺľelite izbrisati %1 »%2«?</qt> + + + + &Yes + &Da + + + + &No + &Ne + + + + New Folder 1 + Nova mapa 1 + + + + New Folder + Nova mapa + + + + New Folder %1 + Nova mapa %1 + + + + Find Directory + Najdi mapo + + + + + Directories + Mape + + + + Directory: + Mapa: + + + + + Error + Napaka + + + + %1 +File not found. +Check path and filename. + %1 +Datoteke ni moÄŤ najti. +Preverite pot in ime datoteke. + + + + All Files (*.*) + Vse datoteke (*.*) + + + + Open + Odpri + + + + Select a Directory + Izberite mapo + + + + Q3LocalFs + + + + Could not read directory +%1 + Ni bilo moÄŤ brati mape +%1 + + + + Could not create directory +%1 + Ni bilo moÄŤ ustvariti mape +%1 + + + + Could not remove file or directory +%1 + Ni bilo moÄŤ odstraniti datoteke ali mape +%1 + + + + Could not rename +%1 +to +%2 + Ni bilo moÄŤ preimenovati +%1 +v +%2 + + + + Could not open +%1 + Ni moÄŤ odpreti +%1 + + + + Could not write +%1 + Ni bilo moÄŤ zapisati +%1 + + + + Q3MainWindow + + + Line up + V vrsto + + + + Customize... + Prilagodi ... + + + + Q3NetworkProtocol + + + Operation stopped by the user + Dejanje zaustavil uporabnik + + + + Q3ProgressDialog + + + + Cancel + PrekliÄŤi + + + + Q3TabDialog + + + + OK + V redu + + + + Apply + Uveljavi + + + + Help + PomoÄŤ + + + + Defaults + Privzetosti + + + + Cancel + PrekliÄŤi + + + + Q3TextEdit + + + &Undo + &Razveljavi + + + + &Redo + &Uveljavi + + + + Cu&t + &IzreĹľi + + + + &Copy + S&kopiraj + + + + &Paste + Pri&lepi + + + + Clear + PoÄŤisti + + + + + Select All + Izberi vse + + + + Q3TitleBar + + + System + Sistem + + + + Restore up + Obnovi + + + + Minimize + Pomanjšaj + + + + Restore down + Obnovi + + + + Maximize + Razpni + + + + Close + Zapri + + + + Contains commands to manipulate the window + Vsebuje ukaze za upravljanje z oknom + + + + Puts a minimized window back to normal + Obnovi pomanjšano okno na obiÄŤajno velikost + + + + Moves the window out of the way + Umakne okno, da ni v napoto + + + + Puts a maximized window back to normal + Obnovi razpeto okno + + + + Makes the window full screen + Razpne okno ÄŤez ves zaslon + + + + Closes the window + Zapre okno + + + + Displays the name of the window and contains controls to manipulate it + Prikazuje ime okna in vsebuje gumbe za nadzor okna + + + + Q3ToolBar + + + More... + VeÄŤ ... + + + + Q3UrlOperator + + + + + The protocol `%1' is not supported + Protokol »%1« ni podprt. + + + + The protocol `%1' does not support listing directories + Protokol »%1« ne podpira izpisa seznama map. + + + + The protocol `%1' does not support creating new directories + Protokol »%1« ne podpira ustvarjanja novih map. + + + + The protocol `%1' does not support removing files or directories + Protokol »%1« ne podpira odstranjevanja datotek ali map. + + + + The protocol `%1' does not support renaming files or directories + Protokol »%1« ne podpira preimenovanja datotek ali map. + + + + The protocol `%1' does not support getting files + Protokol »%1« ne podpira prejemanja datotek. + + + + The protocol `%1' does not support putting files + Protokol »%1« ne podpira pošiljanja datotek. + + + + + The protocol `%1' does not support copying or moving files or directories + Protokol »%1« ne podpira kopiranja ali premikanja datotek ali map. + + + + + (unknown) + (neznano) + + + + Q3Wizard + + + &Cancel + &PrekliÄŤi + + + + < &Back + < Na&zaj + + + + &Next > + &Naprej > + + + + &Finish + &KonÄŤaj + + + + &Help + &PomoÄŤ + + + + QAbstractSocket + + + + + + Host not found + Ni moÄŤ najti gostitelja + + + + + + Connection refused + Povezava je zavrnjena + + + + Connection timed out + ÄŚas za povezavo je potekel + + + + + + Operation on socket is not supported + Dejanje na vtiÄŤnici ni podprto + + + + Socket operation timed out + ÄŚas za dejanje na vtiÄŤnici je potekel + + + + Socket is not connected + VtiÄŤnica ni povezana. + + + + Network unreachable + OmreĹľje ni dosegljivo + + + + QAbstractSpinBox + + + &Step up + Korak &gor + + + + Step &down + Korak &dol + + + + &Select All + Izberi &vse + + + + QApplication + + + Activate + Aktiviraj + + + + Executable '%1' requires Qt %2, found Qt %3. + Izvršljiva datoteka »%1« potrebuje Qt %2, najden pa je bil Qt %3. + + + + Incompatible Qt Library Error + Napaka nezdruĹľljivosti knjiĹľnice Qt + + + + 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 + + + + Activates the program's main window + Aktivira glavno okno programa + + + + QAudioInputPrivate + + + QAudioInput: snd_pcm_hw_params_any: err = %1 + + + + + QAudioInput: snd_pcm_hw_params_set_rate_resample: err = %1 + + + + + QAudioInput: snd_pcm_hw_params_set_access: err = %1 + + + + + QAudioInput: snd_pcm_hw_params_set_format: err = %1 + + + + + QAudioInput: snd_pcm_hw_params_set_channels: err = %1 + + + + + QAudioInput: snd_pcm_hw_params_set_rate_near: err = %1 + + + + + QAudioInput: snd_pcm_hw_params_set_buffer_time_near: err = %1 + + + + + QAudioInput: snd_pcm_hw_params_set_period_time_near: err = %1 + + + + + QAudioInput: snd_pcm_hw_params_set_periods_near: err = %1 + + + + + QAudioInput: snd_pcm_hw_params: err = %1 + + + + + PULL: read in bytes = %1 (frames=%2) + + + + + QAudioOutputPrivate + + + QAudioOutput: snd_pcm_hw_params_any: err = %1 + + + + + QAudioOutput: snd_pcm_hw_params_set_rate_resample: err = %1 + + + + + QAudioOutput: snd_pcm_hw_params_set_access: err = %1 + + + + + QAudioOutput: snd_pcm_hw_params_set_format: err = %1 + + + + + QAudioOutput: snd_pcm_hw_params_set_channels: err = %1 + + + + + QAudioOutput: snd_pcm_hw_params_set_rate_near: err = %1 + + + + + QAudioOutput: snd_pcm_hw_params_set_buffer_time_near: err = %1 + + + + + QAudioOutput: snd_pcm_hw_params_set_period_time_near: err = %1 + + + + + QAudioOutput: snd_pcm_hw_params_set_periods_near: err = %1 + + + + + QAudioOutput: snd_pcm_hw_params: err = %1 + + + + + QAxSelect + + + Select ActiveX Control + Izberite kontrolnik ActiveX + + + + OK + V redu + + + + &Cancel + &PrekliÄŤi + + + + COM &Object: + &Objekt COM: + + + + QCheckBox + + + Uncheck + OdznaÄŤi + + + + Check + OznaÄŤi + + + + Toggle + Preklopi + + + + QColorDialog + + + Hu&e: + &Odtenek: + + + + &Sat: + &ZasiÄŤenost: + + + + &Val: + &Vrednost: + + + + &Red: + &RdeÄŤa: + + + + &Green: + &Zelena: + + + + Bl&ue: + &Modra: + + + + A&lpha channel: + Kanal &alfa: + + + + Select Color + Izberite barvo + + + + &Basic colors + &Osnovne barve + + + + &Custom colors + Barve po &meri + + + + &Add to Custom Colors + &Dodaj lastnim barvam + + + + QComboBox + + + + Open + Odpri + + + + False + NapaÄŤno + + + + True + Pravilno + + + + Close + Zapri + + + + QCoreApplication + + + %1: key is empty + QSystemSemaphore + %1: kljuÄŤ je prazen + + + + %1: unable to make key + QSystemSemaphore + %1: ni moÄŤ ustvariti kljuÄŤa + + + + %1: ftok failed + QSystemSemaphore + %1: funkcija ftok ni uspela + + + + %1: already exists + QSystemSemaphore + %1: Ĺľe obstaja + + + + %1: does not exist + QSystemSemaphore + %1: ne obstaja + + + + %1: out of resources + QSystemSemaphore + %1: zmanjkalo je virov + + + + %1: unknown error %2 + QSystemSemaphore + %1: neznana napaka %2 + + + + QDB2Driver + + + Unable to connect + Ni moÄŤ vzpostaviti povezave + + + + Unable to commit transaction + Ni moÄŤ udejaniti transakcije + + + + Unable to rollback transaction + Ni moÄŤ razveljaviti transakcije + + + + Unable to set autocommit + Ni moÄŤ nastaviti samodejnega udejanjanja + + + + QDB2Result + + + + Unable to execute statement + Ni moÄŤ izvesti izjave + + + + Unable to prepare statement + Ni moÄŤ pripraviti izjave + + + + Unable to bind variable + Ni moÄŤ prikleniti spremenljivke + + + + Unable to fetch record %1 + Ni moÄŤ pridobiti zapisa %1 + + + + Unable to fetch next + Ni moÄŤ pridobiti sledeÄŤega + + + + Unable to fetch first + Ni moÄŤ pridobiti prvega + + + + QDateTimeEdit + + + AM + dop. + + + + am + dop. + + + + PM + pop. + + + + pm + pop. + + + + QDial + + + QDial + QDial + + + + SpeedoMeter + SpeedoMeter + + + + SliderHandle + SliderHandle + + + + QDialog + + + What's This? + Kaj je to? + + + + Done + Opravljeno + + + + QDialogButtonBox + + + + + OK + V redu + + + + &OK + &V redu + + + + &Save + &Shrani + + + + Save + Shrani + + + + Open + Odpri + + + + &Cancel + &PrekliÄŤi + + + + Cancel + PrekliÄŤi + + + + &Close + &Zapri + + + + Close + Zapri + + + + Apply + Uveljavi + + + + Reset + Ponastavi + + + + Help + PomoÄŤ + + + + Don't Save + Ne shrani + + + + Discard + Zavrzi + + + + &Yes + &Da + + + + Yes to &All + Da za &vse + + + + &No + &Ne + + + + N&o to All + N&e za vse + + + + Save All + Shrani vse + + + + Abort + Prekini + + + + Retry + Poskusi znova + + + + Ignore + Spreglej + + + + Restore Defaults + Obnovi privzete vrednosti + + + + Close without Saving + Zapri brez shranjevanja + + + + QDirModel + + + Name + Ime + + + + Size + Velikost + + + + Kind + Match OS X Finder + Vrste + + + + Type + All other platforms + Vrsta + + + + Date Modified + Datum spremembe + + + + QDockWidget + + + Close + Zapri + + + + Dock + Zasidraj + + + + Float + Naj lebdi + + + + QDoubleSpinBox + + + More + VeÄŤ + + + + Less + Manj + + + + QErrorMessage + + + Debug Message: + SporoÄŤilo razhroščevanja: + + + + Warning: + Opozorilo: + + + + Fatal Error: + Usodna napaka: + + + + &Show this message again + &To sporoÄŤilo naslednjiÄŤ spet prikaĹľi + + + + &OK + &V redu + + + + QFile + + + + Destination file exists + Ciljna datoteka obstaja + + + + Will not rename sequential file using block copy + + + + + Cannot remove source file + Ni moÄŤ odstraniti izvorne datoteke + + + + Cannot open %1 for input + Ni moÄŤ odpreti %1 za vhod + + + + Cannot open for output + Ni moÄŤ odpreti za izhod + + + + Failure to write block + Neuspeh pri zapisovanju bloka + + + + Cannot create %1 for output + Ni moÄŤ ustvariti %1 za izhod + + + + QFileDialog + + + + All Files (*) + Vse datoteke (*) + + + + Directories + Mape + + + + + + &Open + &Odpri + + + + + &Save + &Shrani + + + + Open + Odpri + + + + %1 already exists. +Do you want to replace it? + %1 Ĺľe obstaja. +Ali jo Ĺľelite nadomestiti? + + + + %1 +File not found. +Please verify the correct file name was given. + %1 +Datoteka ni bila najdena. +Preverite, ali je bilo podano pravilno ime datoteke. + + + + My Computer + Moj raÄŤunalnik + + + + &Rename + Pre&imenuj + + + + &Delete + &Izbriši + + + + Show &hidden files + PrikaĹľi &skrite datoteke + + + + + Back + Nazaj + + + + + Parent Directory + MatiÄŤna mapa + + + + + List View + Prikaz seznama + + + + + Detail View + Prikaz podrobnosti + + + + + Files of type: + Datoteke vrste: + + + + + Directory: + Mapa: + + + + + %1 +Directory not found. +Please verify the correct directory name was given. + %1 +Mapa ni bila najdena. +Preverite, ali je bilo podano pravilno ime mape. + + + + '%1' is write protected. +Do you want to delete it anyway? + »%1« je zaščitena pred pisanjem. +Ali jo kljub temu Ĺľelite izbrisati? + + + + Are sure you want to delete '%1'? + Ali res Ĺľelite izbrisati »%1«? + + + + Could not delete directory. + Ni bilo moÄŤ izbrisati mape. + + + + Recent Places + Nedavna mesta + + + + All Files (*.*) + Vse datoteke (*.*) + + + + Save As + Shrani kot + + + + Drive + Pogon + + + + + File + Datoteka + + + + File Folder + Match Windows Explorer + Mapa z datotekami + + + + Folder + All other platforms + Mapa + + + + Alias + Mac OS X Finder + Drugo ime + + + + Shortcut + All other platforms + BliĹľnjica + + + + Unknown + Neznano + + + + Find Directory + Najdi mapo + + + + Show + PrikaĹľi + + + + + Forward + Naprej + + + + New Folder + Nova mapa + + + + &New Folder + &Nova mapa + + + + + &Choose + Iz&berite + + + + Remove + Odstrani + + + + + File &name: + Ime &datoteke: + + + + + Look in: + Išči v: + + + + + Create New Folder + Ustvari novo mapo + + + + QFileSystemModel + + + Invalid filename + NapaÄŤno ime datoteke + + + + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + <b>Imena »%1« ne morete uporabiti.</b><p>Poskusite z drugim imenom, ki vsebuje manj znakov ali pa ne vsebuje loÄŤil. + + + + Name + Ime + + + + Size + Velikost + + + + Kind + Match OS X Finder + Vrste + + + + Type + All other platforms + Vrsta + + + + Date Modified + Datum spremembe + + + + My Computer + Moj raÄŤunalnik + + + + Computer + RaÄŤunalnik + + + + + %1 TB + %1 TiB + + + + + %1 GB + %1 GiB + + + + + %1 MB + %1 MiB + + + + + %1 KB + %1 KiB + + + + + %1 bytes + %1 B + + + + QFontDatabase + + + + Normal + Normalno + + + + + + Bold + Polkrepko + + + + + Demi Bold + + + + + + + Black + ÄŚrni + + + + Demi + + + + + + Light + Lahko + + + + + Italic + LeĹľeÄŤe + + + + + Oblique + Nagnjeno + + + + Any + Katerikoli + + + + Latin + Latinska + + + + Greek + Grška + + + + Cyrillic + Cirilica + + + + Armenian + Armenska + + + + Hebrew + Hebrejska + + + + Arabic + Arabska + + + + Syriac + Sirijska + + + + Thaana + Thaana + + + + Devanagari + Devanagari + + + + Bengali + Bengalska + + + + Gurmukhi + Gurmukhi + + + + Gujarati + Gujarati + + + + Oriya + oriya + + + + Tamil + Tamilska + + + + Telugu + Teluška + + + + Kannada + kannada + + + + Malayalam + malayalam + + + + Sinhala + Sinhala + + + + Thai + Tajski + + + + Lao + Laoška + + + + Tibetan + tibetansko + + + + Myanmar + Mjanmar + + + + Georgian + gruzijsko + + + + Khmer + Kmersko + + + + Simplified Chinese + Poenostavljena kitajska + + + + Traditional Chinese + Tradicionalna kitajska + + + + Japanese + Japonska + + + + Korean + Korejska + + + + Vietnamese + Vietnamska + + + + Symbol + Znak + + + + Ogham + Oghamska + + + + Runic + Runska + + + + QFontDialog + + + &Font + &Pisava + + + + Font st&yle + &Slog pisave + + + + &Size + &Velikost + + + + Effects + UÄŤinki + + + + Stri&keout + P&reÄŤrtaj + + + + &Underline + Po&dÄŤrtaj + + + + Sample + Vzorec + + + + Wr&iting System + S&istem pisanja + + + + + Select Font + Izberite pisavo + + + + QFtp + + + + Not connected + Brez povezave + + + + + Host %1 not found + Gostitelj %1 ni bil najden + + + + + Connection refused to host %1 + Povezava z gostiteljem %1 je bila zavrnjena + + + + Connection timed out to host %1 + ÄŚas za povezavo z gostiteljem %1 je potekel + + + + + + Connected to host %1 + Povezan z gostiteljem %1 + + + + + Connection refused for data connection + Podatkovna povezava je bila zavrnjena + + + + + + + Unknown error + Neznana napaka + + + + + Connecting to host failed: +%1 + Povezovanje z gostiteljem %1 ni uspelo: +%1 + + + + + Login failed: +%1 + Prijava ni uspela: +%1 + + + + + Listing directory failed: +%1 + Izpis seznama map ni uspel: +%1 + + + + + Changing directory failed: +%1 + Spreminjanje mape ni uspelo: +%1 + + + + + Downloading file failed: +%1 + Prejemanje datoteke ni uspelo: +%1 + + + + + Uploading file failed: +%1 + Pošiljanje datoteke ni uspelo: +%1 + + + + + Removing file failed: +%1 + Odstranjevanje datoteke ni uspelo: +%1 + + + + + Creating directory failed: +%1 + Ustvarjanje mape ni uspelo: +%1 + + + + + Removing directory failed: +%1 + Odstranjevanje mape ni uspelo: +%1 + + + + + + Connection closed + Povezava je bila prekinjena + + + + Host %1 found + Gostitelj %1 je bil najden + + + + Connection to %1 closed + Povezava s %1 je bila prekinjena + + + + Host found + Gostitelj je bil najden + + + + Connected to host + Povezan z gostiteljem + + + + QHostInfo + + + Unknown error + Neznana napaka + + + + QHostInfoAgent + + + + + + + + + + Host not found + Ni moÄŤ najti gostitelja + + + + + + + Unknown address type + Neznana vrsta naslova + + + + + + Unknown error + Neznana napaka + + + + No host name given + Podano ni bilo nobeno ime gostitelja + + + + Invalid hostname + Neveljavno ime gostitelja + + + + QHttp + + + + + + Unknown error + Neznana napaka + + + + + Request aborted + Zahteva prekinjena + + + + + No server set to connect to + StreĹľnik za povezavo ni nastavljen + + + + + Wrong content length + NapaÄŤna dolĹľina vsebine + + + + + Server closed connection unexpectedly + StreĹľnik je nepriÄŤakovano prekinil povezavo + + + + Unknown authentication method + Neznan naÄŤin overjanja + + + + Error writing response to device + Napaka pri pisanju odziva na napravo + + + + + Connection refused + Povezava je zavrnjena + + + + + + Host %1 not found + Gostitelj %1 ni bil najden + + + + + + + HTTP request failed + Zahtevek HTTP ni uspel + + + + + Invalid HTTP response header + Neveljavna glava odgovora HTTP + + + + + + + Invalid HTTP chunked body + Neveljavno razdeljeno telo HTTP + + + + Host %1 found + Gostitelj %1 je bil najden + + + + Connected to host %1 + Povezan z gostiteljem %1 + + + + Connection to %1 closed + Povezava s %1 je bila prekinjena + + + + Host found + Gostitelj je bil najden + + + + Connected to host + Povezan z gostiteljem + + + + + Connection closed + Povezava je bila prekinjena + + + + Proxy authentication required + Potrebna je overitev pri posredniku + + + + Authentication required + Potrebna je overitev + + + + Connection refused (or timed out) + Povezava je bila zavrnjena (ali pa je potekel ÄŤas) + + + + Proxy requires authentication + Posrednik zahteva overitev + + + + Host requires authentication + Gostitelj zahteva overitev + + + + Data corrupted + Podatki so okvarjeni + + + + Unknown protocol specified + Naveden je bil neznan protokol + + + + SSL handshake failed + Rokovanje SSL ni uspelo + + + + HTTPS connection requested but SSL support not compiled in + Zahtevana je bila povezava HTTPS, a podpora za SSL ni bila vgrajena + + + + QHttpSocketEngine + + + Did not receive HTTP response from proxy + Od posrednika ni bil prejet odgovor HTTP + + + + Error parsing authentication request from proxy + Napaka pri razÄŤlenjevanju overitvenega zahtevka od posrednika + + + + Authentication required + Potrebna je overitev + + + + Proxy denied connection + Posrednik je zavrnil povezavo + + + + Error communicating with HTTP proxy + Napaka pri komunikaciji s posrednikom HTTP + + + + Proxy server not found + Posredniški streĹľnik ni bil najden + + + + Proxy connection refused + Povezava s posrednikom je bila zavrnjena + + + + Proxy server connection timed out + ÄŚas za povezavo s posredniškim streĹľnikom je potekel + + + + Proxy connection closed prematurely + Povezava s posrednikom je bila prekinjena predÄŤasno + + + + QIBaseDriver + + + Error opening database + Napaka pri odpiranju podatkovne zbirke + + + + Could not start transaction + Ni bilo moÄŤ zaÄŤeti transakcije + + + + Unable to commit transaction + Ni moÄŤ udejaniti transakcije + + + + Unable to rollback transaction + Ni moÄŤ razveljaviti transakcije + + + + QIBaseResult + + + Unable to create BLOB + Ni moÄŤ ustvariti BLOB-a + + + + Unable to write BLOB + Ni moÄŤ zapisati BLOB-a + + + + Unable to open BLOB + Ni moÄŤ odpreti BLOB-a + + + + Unable to read BLOB + Ni moÄŤ prebrati BLOB-a + + + + + Could not find array + Ni bilo moÄŤ najti polja + + + + Could not get array data + Ni bilo moÄŤ pridobiti podatkov iz polja + + + + Could not get query info + Ni bilo moÄŤ pridobiti podatkov o poizvedbi + + + + Could not start transaction + Ni bilo moÄŤ zaÄŤeti transakcije + + + + Unable to commit transaction + Ni moÄŤ udejaniti transakcije + + + + Could not allocate statement + Ni bilo moÄŤ dodeliti prostora za izjavo + + + + Could not prepare statement + Ni bilo moÄŤ pripraviti izjave + + + + + Could not describe input statement + Ni bilo moÄŤ opisati vhodne izjave + + + + Could not describe statement + Ni bilo moÄŤ opisati izjave + + + + Unable to close statement + Ni moÄŤ zakljuÄŤiti izjave + + + + Unable to execute query + Ni moÄŤ izvesti poizvedbe + + + + Could not fetch next item + Ni bilo moÄŤ pridobiti sledeÄŤe postavke + + + + Could not get statement info + Ni bilo moÄŤ pridobiti podatkov o izjavi + + + + QIODevice + + + Permission denied + Nimate dovoljenja + + + + Too many open files + PreveÄŤ odprtih datotek + + + + No such file or directory + Ta datoteka ali mapa ne obstaja + + + + No space left on device + Ni prostora na napravi + + + + Unknown error + Neznana napaka + + + + QInputContext + + + XIM + XIM + + + + FEP + FEP + + + + XIM input method + NaÄŤin za vnašanje XIM + + + + Windows input method + NaÄŤin za vnašanje Windows + + + + Mac OS X input method + NaÄŤin za vnašanje Mac OS X + + + + S60 FEP input method + NaÄŤin za vnašanje S60 FEP + + + + QInputDialog + + + Enter a value: + Vnesite vrednost: + + + + QLibrary + + + Could not mmap '%1': %2 + Ni bilo moÄŤ izvesti funkcije mmap za »%1«: %2 + + + + Plugin verification data mismatch in '%1' + Neujemanje podatkov za potrjevanje vstavkov v »%1« + + + + Could not unmap '%1': %2 + Ni bilo moÄŤ izvesti funkcije unmap za »%1«: %2 + + + + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + Vstavek »%1« uporablja nezdruĹľljivo knjiĹľnico Qt. (%2.%3.%4) [%5] + + + + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + Vstavek »%1« uporablja nezdruĹľljivo knjiĹľnico Qt. PriÄŤakovan je bil kljuÄŤ gradnje »%2«, dobljen je bil »%3« + + + + Unknown error + Neznana napaka + + + + + The shared library was not found. + Deljena knjiĹľnica ni bila najdena. + + + + The file '%1' is not a valid Qt plugin. + Datoteka »%1« ni veljaven vstavek Qt. + + + + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + Vstavek »%1« uporablja nezdruĹľljivo knjiĹľnico Qt. (Ni moÄŤ mešati knjiĹľnic za razhroščevanje in izdajo.) + + + + + Cannot load library %1: %2 + Ni moÄŤ naloĹľiti knjiĹľnice %1: %2 + + + + + Cannot unload library %1: %2 + Ni moÄŤ odstraniti knjiĹľnice %1: %2 + + + + + Cannot resolve symbol "%1" in %2: %3 + Ni moÄŤ razrešiti simbola »%1« v %2: %3 + + + + QLineEdit + + + &Undo + &Razveljavi + + + + &Redo + &Uveljavi + + + + Cu&t + &IzreĹľi + + + + &Copy + S&kopiraj + + + + &Paste + Pri&lepi + + + + Delete + Izbriši + + + + Select All + Izberi vse + + + + QLocalServer + + + + %1: Name error + %1: napaka v imenu + + + + %1: Permission denied + %1: nimate dovoljenja + + + + %1: Address in use + %1: naslov je Ĺľe v uporabi + + + + %1: Unknown error %2 + %1: neznana napaka %2 + + + + QLocalSocket + + + + %1: Connection refused + %1: povezava je bila zavrnjena + + + + + %1: Remote closed + %1: oddaljeni je prekinil + + + + + + + %1: Invalid name + %1: neveljavno ime + + + + + %1: Socket access error + %1: napaka pri dostopu do vtiÄŤnice + + + + + %1: Socket resource error + %1: napaka vira vtiÄŤnice + + + + + %1: Socket operation timed out + %1: ÄŤas za dejanje na vtiÄŤnici je potekel + + + + + %1: Datagram too large + %1: datagram je prevelik + + + + + + %1: Connection error + %1: napaka povezave + + + + + %1: The socket operation is not supported + %1: dejanje na vtiÄŤnici ni podprto + + + + %1: Unknown error + %1: neznana napaka + + + + + %1: Unknown error %2 + %1: neznana napaka %2 + + + + QMYSQLDriver + + + Unable to open database ' + Ni moÄŤ odpreti podatkovne zbirke » + + + + Unable to connect + Ni moÄŤ vzpostaviti povezave + + + + Unable to begin transaction + Ni moÄŤ zaÄŤeti transakcije + + + + Unable to commit transaction + Ni moÄŤ udejaniti transakcije + + + + Unable to rollback transaction + Ni moÄŤ razveljaviti transakcije + + + + QMYSQLResult + + + Unable to fetch data + Ni moÄŤ pridobiti podatkov + + + + Unable to execute query + Ni moÄŤ izvesti poizvedbe + + + + Unable to store result + Ni moÄŤ shraniti rezultata + + + + + Unable to prepare statement + Ni moÄŤ pripraviti izjave + + + + Unable to reset statement + Ni moÄŤ ponastaviti izjave + + + + Unable to bind value + Ni moÄŤ prikleniti vrednosti + + + + Unable to execute statement + Ni moÄŤ izvesti izjave + + + + + Unable to bind outvalues + Ni moÄŤ prikleniti izhodnih vrednosti + + + + Unable to store statement results + Ni moÄŤ shraniti rezultatov izjave + + + + Unable to execute next query + Ni moÄŤ izvesti sledeÄŤe poizvedbe + + + + Unable to store next result + Ni moÄŤ shraniti sledeÄŤega rezultata + + + + QMdiArea + + + (Untitled) + (neimenovano) + + + + QMdiSubWindow + + + %1 - [%2] + %1 - [%2] + + + + Close + Zapri + + + + Minimize + Pomanjšaj + + + + Restore Down + Obnovi navzdol + + + + &Restore + &Obnovi + + + + &Move + &Premakni + + + + &Size + &Velikost + + + + Mi&nimize + Po&manjšaj + + + + Ma&ximize + &Razpni + + + + Stay on &Top + Ostani na &vrhu + + + + &Close + &Zapri + + + + - [%1] + - [%1] + + + + Maximize + Razpni + + + + Unshade + Razvij + + + + Shade + Zvij + + + + Restore + Obnovi + + + + Help + PomoÄŤ + + + + Menu + Meni + + + + QMenu + + + + Close + Zapri + + + + + Open + Odpri + + + + + + Execute + Izvedi + + + + QMenuBar + + + Actions + Dejanja + + + + QMessageBox + + + Help + PomoÄŤ + + + + + + + OK + V redu + + + + <h3>About Qt</h3><p>This program uses Qt version %1.</p> + <h3>O Qt</h3><p>Ta program uporablja Qt razliÄŤice %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 skupek gradnikov C++ za razvoj programov, ki teÄŤejo na veÄŤ platformah.</p><p>Qt omogoÄŤa isto kodo prenašati med platformami Linux, Mac&nbsp;OS&nbsp;X, Windows in vsemi veÄŤjimi variantami UNIX-a. Qt je na voljo tudi za vgrajene naprave in sicer kot Qt for Embedded Linux in Qt for Windows CE.</p><p>Qt je na voljo pod tremi moĹľnimi licenÄŤnimi pogoji, ki ustrezajo razliÄŤnim Ĺľeljam uporabnikov.</p><p>Qt pod licenco GNU General Public License razliÄŤice 3.0 (<a href="http://www.gnu.org/licenses/gpl-3.0.html">GPLv3.0</a>) je primeren za razvoj programov Qt, ki so povsem <a href="http://www.gnu.org/philosophy/free-sw.html">prosti in odprto-kodni</a>. S to licenco se uporabnikom programa zagotovijo vse pravice in svoboščine, kot jih je imel izdelovalec programa.</p><p>Qt pod licenco GNU Lesser General Public License razliÄŤice 2.1 (<a href="http://www.gnu.org/licenses/lgpl-2.1.html">LGPLv2.1</a>) omogoÄŤa tudi razvoj programov, ki uporabnikom ne zagotavljajo vseh pravic in svoboščin, kot jih je imel izdelovalec. OmogoÄŤa na primer tudi razvoj zaprto-kodnih programov.</p><p>Qt pod posebno komercialno licenco je namenjen razvoju lastniških in zaprto-kodnih programov, kjer izdelovalec z uporabniki noÄŤe deliti niÄŤ izvorne kode ter pravic in svoboščin, ali pa ne more ustreÄŤi pogojem licenc GPLv3.0 ali LGPLv2.1.</p><p>Za pregled licenÄŤnih moĹľnosti si oglejte spletno stran <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a>.</p><p>Avtorske pravice © 2009 Nokia Corporation in/ali podruĹľnice ter zunanji prispevajoÄŤi.</p><p>Qt je proizvod podjetja Nokia. Za dodatne podatke si oglejte <a href="http://qt.nokia.com/">qt.nokia.com</a>.</p> + + + + About Qt + O Qt + + + + Show Details... + PrikaĹľi podrobnosti ... + + + + Hide Details... + Skrij podrobnosti ... + + + + QMultiInputContext + + + Select IM + Izberite naÄŤin vnašanja + + + + QMultiInputContextPlugin + + + Multiple input method switcher + Orodje za preklop med naÄŤini vnašanja + + + + Multiple input method switcher that uses the context menu of the text widgets + Orodje za preklop med veÄŤ naÄŤini vnašanja, ki uporablja priroÄŤni meni besedilnih gradnikov + + + + QNativeSocketEngine + + + The remote host closed the connection + Oddaljen gostitelj je prekinil povezavo + + + + Network operation timed out + ÄŚas za omreĹľni postopek je potekel + + + + Out of resources + Zmanjkalo je virov + + + + Unsupported socket operation + Nepodprto dejanje za vtiÄŤnico + + + + Protocol type not supported + Vrsta protokola ni podprta + + + + Invalid socket descriptor + Neveljaven opisnik vtiÄŤnice + + + + Network unreachable + OmreĹľje ni dosegljivo + + + + Permission denied + Nimate dovoljenja + + + + Connection timed out + ÄŚas za povezavo je potekel + + + + Connection refused + Povezava je zavrnjena + + + + The bound address is already in use + Naslov za vezavo je Ĺľe v uporabi + + + + The address is not available + Naslov ni na voljo + + + + The address is protected + Naslov je zaščiten + + + + Unable to send a message + Ni moÄŤ poslati sporoÄŤila + + + + Unable to receive a message + Ni moÄŤ prejeti sporoÄŤila + + + + Unable to write + Ni moÄŤ zapisovati + + + + Network error + Napaka v omreĹľju + + + + Another socket is already listening on the same port + Druga vtiÄŤnica Ĺľe posluša na istih vratih + + + + Unable to initialize non-blocking socket + Ni moÄŤ inicializirati ne-blokirne vtiÄŤnice + + + + Unable to initialize broadcast socket + Ni moÄŤ inicializirati vtiÄŤnice za oddajanje + + + + Attempt to use IPv6 socket on a platform with no IPv6 support + Poskus uporabe vtiÄŤnice IPv6 na platformi brez podpore za IPv6 + + + + Host unreachable + Gostitelj ni dosegljiv + + + + Datagram was too large to send + Datagram je bil prevelik za pošiljanje + + + + Operation on non-socket + Dejanje na ne-vtiÄŤnici + + + + Unknown error + Neznana napaka + + + + The proxy type is invalid for this operation + Vrsta posrednika za to dejanje ni veljavna + + + + QNetworkAccessCacheBackend + + + Error opening %1 + Napaka pri odpiranju %1 + + + + QNetworkAccessDebugPipeBackend + + + Write error writing to %1: %2 + Napaka pri zapisovanju v %1: %2 + + + + QNetworkAccessFileBackend + + + Request for opening non-local file %1 + Zahtevek za odprtje ne-krajevne datoteke %1 + + + + Error opening %1: %2 + Napaka pri odpiranju %1: %2 + + + + Write error writing to %1: %2 + Napaka pri zapisovanju v %1: %2 + + + + Cannot open %1: Path is a directory + Ni moÄŤ odpreti %1: pot je mapa + + + + Read error reading from %1: %2 + Napaka pri branju iz %1: %2 + + + + QNetworkAccessFtpBackend + + + No suitable proxy found + Najden ni bil noben primeren posrednik + + + + Cannot open %1: is a directory + Ni moÄŤ odpreti %1: to je mapa + + + + Logging in to %1 failed: authentication required + Prijava v %1 ni uspela: potrebna je overitev + + + + Error while downloading %1: %2 + Napaka med prejemanjem %1: %2 + + + + Error while uploading %1: %2 + Napaka med pošiljanjem %1: %2 + + + + QNetworkAccessHttpBackend + + + No suitable proxy found + Najden ni bil noben primeren posrednik + + + + QNetworkReply + + + Error downloading %1 - server replied: %2 + Napaka med prejemanjem %1 - streĹľnikov odgovor: %2 + + + + Protocol "%1" is unknown + Neznan protokol »%1« + + + + QNetworkReplyImpl + + + + Operation canceled + Postopek je bil preklican + + + + QOCIDriver + + + Unable to logon + Ni se moÄŤ prijaviti + + + + Unable to initialize + QOCIDriver + Ni moÄŤ inicializirati + + + + Unable to begin transaction + Ni moÄŤ zaÄŤeti transakcije + + + + Unable to commit transaction + Ni moÄŤ udejaniti transakcije + + + + Unable to rollback transaction + Ni moÄŤ razveljaviti transakcije + + + + QOCIResult + + + + + Unable to bind column for batch execute + Ni moÄŤ prikleniti stolpca za paketno izvršitev + + + + Unable to execute batch statement + Ni moÄŤ izvesti paketne izjave + + + + Unable to goto next + Ni se moÄŤ prestaviti na naslednjega + + + + Unable to alloc statement + + + + + Unable to prepare statement + Ni moÄŤ pripraviti izjave + + + + Unable to get statement type + Ni moÄŤ pridobiti vrste izjave + + + + Unable to bind value + Ni moÄŤ prikleniti vrednosti + + + + Unable to execute statement + Ni moÄŤ izvesti izjave + + + + QODBCDriver + + + Unable to connect + Ni moÄŤ vzpostaviti povezave + + + + Unable to disable autocommit + Ni moÄŤ onemogoÄŤiti samodejnega udejanjanja + + + + Unable to commit transaction + Ni moÄŤ udejaniti transakcije + + + + Unable to rollback transaction + Ni moÄŤ razveljaviti transakcije + + + + Unable to enable autocommit + Ni moÄŤ omogoÄŤiti samodejnega udejanjanja + + + + Unable to connect - Driver doesn't support all functionality required + Ni se moÄŤ povezati - gonilnik ne podpira vseh potrebnih zmoĹľnosti + + + + QODBCResult + + + + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + QODBCResult::reset: ni moÄŤ nastaviti 'SQL_CURSOR_STATIC' kot lastnosti izjave. Preverite nastavitve gonilnika ODBC + + + + + Unable to execute statement + Ni moÄŤ izvesti izjave + + + + Unable to fetch next + Ni moÄŤ pridobiti sledeÄŤega + + + + Unable to prepare statement + Ni moÄŤ pripraviti izjave + + + + Unable to bind variable + Ni moÄŤ prikleniti spremenljivke + + + + + + Unable to fetch last + Ni moÄŤ pridobiti zadnjega + + + + Unable to fetch + Ni moÄŤ pridobiti + + + + Unable to fetch first + Ni moÄŤ pridobiti prvega + + + + Unable to fetch previous + Ni moÄŤ pridobiti predhodnega + + + + QObject + + + Invalid hostname + Neveljavno ime gostitelja + + + + Operation not supported on %1 + Dejanje na %1 ni podprto + + + + Invalid URI: %1 + Neveljaven URI: %1 + + + + Socket error on %1: %2 + Napaka vtiÄŤnice na %1: %2 + + + + Remote host closed the connection prematurely on %1 + Oddaljen gostitelj je predÄŤasno prekinil povezavo na %1 + + + + + No host name given + Podano ni bilo nobeno ime gostitelja + + + + audio equalizer + + + + + Bass boost + + + + + Distance Attenuation + + + + + + Environmental Reverb + + + + + Loudness + + + + + Source Orientation + + + + + Stereo Widening + + + + + QPPDOptionsModel + + + Name + Ime + + + + Value + Vrednost + + + + QPSQLDriver + + + Unable to connect + Ni moÄŤ vzpostaviti povezave + + + + Could not begin transaction + Ni bilo moÄŤ zaÄŤeti transakcije + + + + Could not commit transaction + Ni bilo moÄŤ udejaniti transakcije + + + + Could not rollback transaction + Ni bilo moÄŤ razveljaviti transakcije + + + + Unable to subscribe + Ni se moÄŤ naroÄŤiti + + + + Unable to unsubscribe + Ni moÄŤ preklicati naroÄŤnine + + + + QPSQLResult + + + Unable to create query + Ni moÄŤ ustvariti poizvedbe + + + + Unable to prepare statement + Ni moÄŤ pripraviti izjave + + + + QPageSetupWidget + + + Centimeters (cm) + Centimetri (cm) + + + + Millimeters (mm) + Milimetri (mm) + + + + Inches (in) + Palci (in) + + + + Points (pt) + Pike (pt) + + + + Form + Obrazec + + + + Paper + Papir + + + + Page size: + Velikost strani: + + + + Width: + Ĺ irina: + + + + Height: + Višina: + + + + Paper source: + Vir papirja: + + + + Orientation + Usmeritev + + + + Portrait + PokonÄŤno + + + + Landscape + LeĹľeÄŤe + + + + Reverse landscape + Obrnjeno leĹľeÄŤe + + + + Reverse portrait + Obrnjeno pokonÄŤno + + + + Margins + Robovi + + + + top margin + vrhnji rob + + + + left margin + levi rob + + + + right margin + desni rob + + + + bottom margin + spodnji rob + + + + QPluginLoader + + + Unknown error + Neznana napaka + + + + The plugin was not loaded. + Vstavek ni bil naloĹľen. + + + + QPrintDialog + + + locally connected + krajevno povezan + + + + + Aliases: %1 + Vzdevki: %1 + + + + + unknown + neznano + + + + A0 (841 x 1189 mm) + A0 (841 x 1189 mm) + + + + A1 (594 x 841 mm) + A1 (594 x 841 mm) + + + + A2 (420 x 594 mm) + A2 (420 x 594 mm) + + + + A3 (297 x 420 mm) + A3 (297 x 420 mm) + + + + A4 (210 x 297 mm, 8.26 x 11.7 inches) + A4 (210 x 297 mm, 8,26 x 11,7 palcev) + + + + A5 (148 x 210 mm) + A5 (148 x 210 mm) + + + + A6 (105 x 148 mm) + A6 (105 x 148 mm) + + + + A7 (74 x 105 mm) + A7 (74 x 105 mm) + + + + A8 (52 x 74 mm) + A8 (52 x 74 mm) + + + + A9 (37 x 52 mm) + A9 (37 x 52 mm) + + + + B0 (1000 x 1414 mm) + B0 (1000 x 1414 mm) + + + + B1 (707 x 1000 mm) + B1 (707 x 1000 mm) + + + + B2 (500 x 707 mm) + B2 (500 x 707 mm) + + + + B3 (353 x 500 mm) + B3 (353 x 500 mm) + + + + B4 (250 x 353 mm) + B4 (250 x 353 mm) + + + + B5 (176 x 250 mm, 6.93 x 9.84 inches) + B5 (176 x 250 mm, 6,93 x 9,84 palcev) + + + + B6 (125 x 176 mm) + B6 (125 x 176 mm) + + + + B7 (88 x 125 mm) + B7 (88 x 125 mm) + + + + B8 (62 x 88 mm) + B8 (62 x 88 mm) + + + + B9 (44 x 62 mm) + B9 (44 x 62 mm) + + + + B10 (31 x 44 mm) + B10 (31 x 44 mm) + + + + C5E (163 x 229 mm) + C5E (163 x 229 mm) + + + + DLE (110 x 220 mm) + DLE (110 x 220 mm) + + + + Executive (7.5 x 10 inches, 191 x 254 mm) + Executive (7,5 x 10 palcev, 191 x 254 mm) + + + + Folio (210 x 330 mm) + Folio (210 x 330 mm) + + + + Ledger (432 x 279 mm) + Ledger (432 x 279 mm) + + + + Legal (8.5 x 14 inches, 216 x 356 mm) + Legal (8,5 x 14 palcev, 216 x 356 mm) + + + + Letter (8.5 x 11 inches, 216 x 279 mm) + Letter (8,5 x 11 palcev, 216 x 279 mm) + + + + Tabloid (279 x 432 mm) + Tabloid (279 x 432 mm) + + + + US Common #10 Envelope (105 x 241 mm) + US Common #10 Envelope (105 x 241 mm) + + + + OK + V redu + + + + + + Print + Natisni + + + + Print To File ... + Natisni v datoteko ... + + + + Print range + Natisni obseg + + + + Print all + Natisni vse + + + + File %1 is not writable. +Please choose a different file name. + V datoteko %1 ni moÄŤ pisati. +Izberite drugo ime datoteke. + + + + %1 already exists. +Do you want to overwrite it? + %1 Ĺľe obstaja. +Ali jo Ĺľelite nadomestiti? + + + + File exists + Datoteka obstaja + + + + <qt>Do you want to overwrite it?</qt> + <qt>Ali jo Ĺľelite nadomestiti?</qt> + + + + Print selection + Natisni izbor + + + + %1 is a directory. +Please choose a different file name. + %1 je mapa. +Izberite drugo ime datoteke. + + + + A0 + A0 + + + + A1 + A1 + + + + A2 + A2 + + + + A3 + A3 + + + + A4 + A4 + + + + A5 + A5 + + + + A6 + A6 + + + + A7 + A7 + + + + A8 + A8 + + + + A9 + A9 + + + + B0 + B0 + + + + B1 + B1 + + + + B2 + B2 + + + + B3 + B3 + + + + B4 + B4 + + + + B5 + B5 + + + + B6 + B6 + + + + B7 + B7 + + + + B8 + B8 + + + + B9 + B9 + + + + B10 + B10 + + + + C5E + C5E + + + + DLE + DLE + + + + Executive + Executive + + + + Folio + Folio + + + + Ledger + Ledger + + + + Legal + Legal + + + + Letter + Letter + + + + Tabloid + Tabloid + + + + US Common #10 Envelope + US Common #10 Envelope + + + + Custom + Po meri + + + + + &Options >> + &MoĹľnosti » + + + + &Print + Na&tisni + + + + &Options << + &MoĹľnosti « + + + + Print to File (PDF) + Natisni v datoteko (PDF) + + + + Print to File (Postscript) + Natisni v datoteko (PostScript) + + + + Local file + Krajevna datoteka + + + + Write %1 file + Zapiši datoteko %1 + + + + The 'From' value cannot be greater than the 'To' value. + Vrednost »Od« ne more biti veÄŤja od vrednosti »Do«. + + + + QPrintPreviewDialog + + + + Page Setup + Nastavitve strani + + + + %1% + %1 % + + + + Print Preview + Ogled tiskanja + + + + Next page + Naslednja stran + + + + Previous page + Predhodna stran + + + + First page + &Prva stran + + + + Last page + &Zadnja stran + + + + Fit width + Prilagodi &širini + + + + Fit page + Prilagodi strani + + + + Zoom in + PoveÄŤaj + + + + Zoom out + Zmanjšaj + + + + Portrait + PokonÄŤno + + + + Landscape + LeĹľeÄŤe + + + + Show single page + PrikaĹľi enojno stran + + + + Show facing pages + PrikaĹľi dve strani + + + + Show overview of all pages + PrikaĹľi ogled vseh strani + + + + Print + Natisni + + + + Page setup + Nastavitve strani + + + + Export to PDF + Izvozi v PDF + + + + Export to PostScript + Izvozi v PostScript + + + + QPrintPropertiesWidget + + + Form + Obrazec + + + + Page + Stran + + + + Advanced + Napredno + + + + QPrintSettingsOutput + + + Form + Obrazec + + + + Copies + Izvodi + + + + Print range + Obseg tiskanja + + + + Print all + Natisni vse + + + + Pages from + Strani od + + + + to + do + + + + Selection + Izbor + + + + Output Settings + Nastavitve izpisa + + + + Copies: + Izvodi: + + + + Collate + ZdruĹľi + + + + Reverse + V nasprotno smer + + + + Options + MoĹľnosti + + + + Color Mode + Barvni naÄŤin + + + + Color + Barva + + + + Grayscale + Sivinsko + + + + Duplex Printing + Dvostransko tiskanje + + + + None + Brez + + + + Long side + Dolga stranica + + + + Short side + Kratka stranica + + + + QPrintWidget + + + Form + Obrazec + + + + Printer + Tiskalnik + + + + &Name: + &Ime: + + + + P&roperties + &Lastnosti ... + + + + Location: + Lokacija: + + + + Preview + Ogled + + + + Type: + Vrsta: + + + + Output &file: + Izhodna d&atoteka: + + + + ... + ... + + + + QProcess + + + + Could not open input redirection for reading + Preusmeritve vhoda ni bilo moÄŤ odpreti za branje + + + + + Could not open output redirection for writing + Preusmeritve izhoda ni bilo moÄŤ odpreti za pisanje + + + + Resource error (fork failure): %1 + Napaka vira (spodletela odcepitev): %1 + + + + + + + + + + + + Process operation timed out + ÄŚas za dejanje procesa je potekel + + + + + + + Error reading from process + Napaka pri branju iz procesa + + + + + + Error writing to process + Napak pri pisanju v proces + + + + Process crashed + Program se je sesul + + + + No program defined + DoloÄŤenega ni nobenega programa + + + + Process failed to start: %1 + Proces se ni uspel zagnati: %1 + + + + QProgressDialog + + + Cancel + PrekliÄŤi + + + + QPushButton + + + Open + Odpri + + + + QRadioButton + + + Check + OznaÄŤi + + + + QRegExp + + + no error occurred + ni nobene napake + + + + disabled feature used + uporabljena onemogoÄŤena zmoĹľnost + + + + bad char class syntax + napaÄŤna sintaksa znakovnega razreda + + + + bad lookahead syntax + napaÄŤna sintaksa pogleda naprej + + + + bad repetition syntax + napaÄŤna sintaksa ponavljanja + + + + invalid octal value + neveljavna osmiška vrednost + + + + missing left delim + manjkajoÄŤ levi razmejitelj + + + + unexpected end + nepriÄŤakovan konece + + + + met internal limit + doseĹľena notranja omejitev + + + + invalid interval + neveljaven interval + + + + invalid category + neveljavna kategorija + + + + QSQLite2Driver + + + Error opening database + Napaka pri odpiranju podatkovne zbirke + + + + Unable to begin transaction + Ni moÄŤ zaÄŤeti transakcije + + + + Unable to commit transaction + Ni moÄŤ udejaniti transakcije + + + + Unable to rollback transaction + Ni moÄŤ razveljaviti transakcije + + + + QSQLite2Result + + + Unable to fetch results + Ni moÄŤ pridobiti rezultatov + + + + Unable to execute statement + Ni moÄŤ izvesti izjave + + + + QSQLiteDriver + + + Error opening database + Napaka pri odpiranju podatkovne zbirke + + + + Error closing database + Napaka pri zapiranju podatkovne zbirke + + + + Unable to begin transaction + Ni moÄŤ zaÄŤeti transakcije + + + + Unable to commit transaction + Ni moÄŤ udejaniti transakcije + + + + Unable to rollback transaction + Ni moÄŤ razveljaviti transakcije + + + + QSQLiteResult + + + + + Unable to fetch row + Ni moÄŤ pridobiti vrstice + + + + Unable to execute statement + Ni moÄŤ izvesti izjave + + + + Unable to reset statement + Ni moÄŤ ponastaviti izjave + + + + Unable to bind parameters + Ni moÄŤ prikleniti parametrov + + + + Parameter count mismatch + Neujemanje v številu parametrov + + + + No query + Brez poizvedbe + + + + QScriptBreakpointsModel + + + ID + + + + + Location + + + + + Condition + + + + + Ignore-count + + + + + Single-shot + + + + + Hit-count + + + + + QScriptBreakpointsWidget + + + New + + + + + Delete + Izbriši + + + + QScriptDebugger + + + + Go to Line + + + + + Line: + + + + + Interrupt + + + + + Shift+F5 + + + + + Continue + Nadaljuj + + + + F5 + + + + + Step Into + + + + + F11 + + + + + Step Over + + + + + F10 + + + + + Step Out + + + + + Shift+F11 + + + + + Run to Cursor + + + + + Ctrl+F10 + + + + + Run to New Script + + + + + Toggle Breakpoint + + + + + F9 + + + + + Clear Debug Output + + + + + Clear Error Log + + + + + Clear Console + + + + + &Find in Script... + + + + + Ctrl+F + + + + + Find &Next + + + + + F3 + + + + + Find &Previous + + + + + Shift+F3 + + + + + Ctrl+G + + + + + Debug + + + + + QScriptDebuggerCodeFinderWidget + + + Close + Zapri + + + + Previous + + + + + Next + + + + + Case Sensitive + + + + + Whole words + + + + + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped + + + + + QScriptDebuggerLocalsModel + + + Name + Ime + + + + Value + Vrednost + + + + QScriptDebuggerStackModel + + + Level + + + + + Name + Ime + + + + Location + + + + + QScriptEdit + + + Toggle Breakpoint + + + + + Disable Breakpoint + + + + + Enable Breakpoint + + + + + Breakpoint Condition: + + + + + QScriptEngineDebugger + + + Loaded Scripts + + + + + Breakpoints + + + + + Stack + + + + + Locals + + + + + Console + + + + + Debug Output + + + + + Error Log + + + + + Search + Išči + + + + View + + + + + Qt Script Debugger + + + + + QScriptNewBreakpointWidget + + + Close + Zapri + + + + QScrollBar + + + Scroll here + Premakni sem + + + + Left edge + Levi rob + + + + Top + Vrh + + + + Right edge + Desni rob + + + + Bottom + Dno + + + + Page left + Za stran levo + + + + + Page up + Za stran gor + + + + Page right + Za stran desno + + + + + Page down + Za stran dol + + + + Scroll left + Premakni levo + + + + Scroll up + Premakni gor + + + + Scroll right + Premakni desno + + + + Scroll down + Premakni dol + + + + Line up + V vrsto + + + + Position + PoloĹľaj + + + + Line down + Za vrstico dol + + + + QSharedMemory + + + %1: unable to set key on lock + %1: ni moÄŤ nastaviti kljuÄŤa na zaklep + + + + %1: create size is less then 0 + %1: velikost je manjša od 0 + + + + + %1: unable to lock + %1: ni moÄŤ zakleniti + + + + %1: unable to unlock + %1: ni moÄŤ odkleniti + + + + + + %1: permission denied + %1: nimate dovoljenja + + + + + + %1: already exists + %1: Ĺľe obstaja + + + + %1: doesn't exists + %1: ne obstaja + + + + + + %1: out of resources + %1: zmanjkalo je virov + + + + + + %1: unknown error %2 + %1: neznana napaka %2 + + + + %1: key is empty + %1: kljuÄŤ je prazen + + + + %1: ftok failed + %1: funkcija ftok ni uspela + + + + + + %1: unable to make key + %1: ni moÄŤ ustvariti kljuÄŤa + + + + + %1: doesn't exist + %1: ne obstaja + + + + %1: UNIX key file doesn't exist + %1: UNIX-ova zaklepna datoteka ne obstaja + + + + %1: system-imposed size restrictions + %1: sistemsko vsiljene omejitve velikosti + + + + %1: not attached + %1: ni pripeto + + + + + %1: invalid size + %1: neveljavna velikost + + + + + %1: key error + %1: napaka kljuÄŤa + + + + %1: size query failed + %1: poizvedba po velikosti ni uspela + + + + QShortcut + + + Space + Preslednica + + + + Esc + Esc + + + + Tab + Tabulator + + + + Backtab + + + + + Backspace + VraÄŤalka + + + + Return + Return + + + + Enter + Vnesi + + + + Ins + Ins + + + + Del + Del + + + + Pause + Premor + + + + Print + Natisni + + + + SysReq + SysReq + + + + Home + ZaÄŤetek + + + + End + Konec + + + + Left + Levo + + + + Up + Gor + + + + Right + Desno + + + + Down + Dol + + + + PgUp + PgUp + + + + PgDown + PgDown + + + + CapsLock + CapsLock + + + + NumLock + NumLock + + + + ScrollLock + ScrollLock + + + + Menu + Meni + + + + Help + PomoÄŤ + + + + Back + Predhodna + + + + Forward + Naslednja + + + + Stop + Ustavi + + + + Refresh + OsveĹľi + + + + Volume Down + Tiše + + + + Volume Mute + Tiho + + + + Volume Up + Glasneje + + + + Bass Boost + + + + + Bass Up + VeÄŤ basov + + + + Bass Down + Manj basov + + + + Treble Up + + + + + Treble Down + + + + + Media Play + Predvajaj veÄŤpredstavnost + + + + Media Stop + Ustavi veÄŤpredstavnost + + + + Media Previous + Predhodna veÄŤpredstavnost + + + + Media Next + Naslednja veÄŤpredstavnost + + + + Media Record + Snemaj veÄŤpredstavnost + + + + Favorites + Priljubljeno + + + + Search + Išči + + + + Standby + V pripravljenost + + + + Open URL + Odpri URL + + + + Launch Mail + ZaĹľeni pošto + + + + Launch Media + ZaĹľeni veÄŤpredstavnost + + + + Launch (0) + ZaĹľeni (0) + + + + Launch (1) + ZaĹľeni (1) + + + + Launch (2) + ZaĹľeni (2) + + + + Launch (3) + ZaĹľeni (3) + + + + Launch (4) + ZaĹľeni (4) + + + + Launch (5) + ZaĹľeni (5) + + + + Launch (6) + ZaĹľeni (6) + + + + Launch (7) + ZaĹľeni (7) + + + + Launch (8) + ZaĹľeni (8) + + + + Launch (9) + ZaĹľeni (9) + + + + Launch (A) + ZaĹľeni (A) + + + + Launch (B) + ZaĹľeni (B) + + + + Launch (C) + ZaĹľeni (C) + + + + Launch (D) + ZaĹľeni (D) + + + + Launch (E) + ZaĹľeni (E) + + + + Launch (F) + ZaĹľeni (F) + + + + Print Screen + Natisni zaslon + + + + Page Up + Za stran gor + + + + Page Down + Za stran dol + + + + Caps Lock + Caps Lock + + + + Num Lock + Num Lock + + + + Number Lock + + + + + Scroll Lock + + + + + Insert + Vstavi + + + + Delete + Izbriši + + + + Escape + Escape + + + + System Request + Sistemska zahteva + + + + Select + Izberi + + + + Yes + Da + + + + No + Ne + + + + Context1 + Kontekst1 + + + + Context2 + Kontekst2 + + + + Context3 + Kontekst3 + + + + Context4 + Kontekst4 + + + + Call + PokliÄŤi + + + + Hangup + OdloĹľi + + + + Flip + Obrni + + + + + Ctrl + Ctrl + + + + + Shift + Shift + + + + + Alt + Alt + + + + + Meta + Meta + + + + + + + + + + + F%1 + F%1 + + + + Home Page + DomaÄŤa stran + + + + QSlider + + + Page left + Za stran levo + + + + Page up + Za stran gor + + + + Position + PoloĹľaj + + + + Page right + Za stran desno + + + + Page down + Za stran dol + + + + QSocks5SocketEngine + + + Connection to proxy refused + Povezava s posrednikom je bila zavrnjena + + + + Connection to proxy closed prematurely + Povezava s posrednikom je bila prekinjena predÄŤasno + + + + Proxy host not found + Ni moÄŤ najti gostitelja posrednika + + + + Connection to proxy timed out + ÄŚas za povezavo s posrednikom je potekel + + + + Proxy authentication failed + Neuspešno overjanje posrednika + + + + Proxy authentication failed: %1 + Neuspešno overjanje posrednika: %1 + + + + SOCKS version 5 protocol error + Napaka protokola SOCKS razliÄŤice 5 + + + + General SOCKSv5 server failure + Splošna napaka streĹľnika SOCKSv5 + + + + Connection not allowed by SOCKSv5 server + StreĹľnik SOCKSv5 ne dovoljuje povezave + + + + TTL expired + TTL je zapadel + + + + SOCKSv5 command not supported + Ukaz SOCKSv5 ni podprt + + + + Address type not supported + Vrsta naslova ni podprta + + + + Unknown SOCKSv5 proxy error code 0x%1 + Neznana koda napake posrednika SOCKSv5: 0x%1 + + + + Network operation timed out + ÄŚas za omreĹľni postopek je potekel + + + + QSoftKeyManager + + + Ok + V redu + + + + Select + Izbor + + + + Done + Opravljeno + + + + Options + MoĹľnosti + + + + Cancel + PrekliÄŤi + + + + Exit + KonÄŤaj + + + + QSpinBox + + + More + VeÄŤ + + + + Less + Manj + + + + QSql + + + Delete + Izbriši + + + + Delete this record? + Ali izbrišem ta zapis? + + + + + + Yes + Da + + + + + + No + Ne + + + + Insert + Vstavi + + + + Update + Posodobi + + + + Save edits? + &Shranmi urejan?. + + + + Cancel + PrekliÄŤi + + + + Confirm + Potrdi + + + + Cancel your edits? + Ali Ĺľelite preklicati urejanja? + + + + QSslSocket + + + Unable to write data: %1 + Ni moÄŤ zapisati podatkov: %1 + + + + Error while reading: %1 + Napaka med branjem: %1 + + + + Error during SSL handshake: %1 + Napaka med rokovanjem SSL: %1 + + + + Error creating SSL context (%1) + Napaka pri ustvarjanju konteksta SSL (%1) + + + + Invalid or empty cipher list (%1) + Neveljaven ali prazen seznam šifer (%1) + + + + Error creating SSL session, %1 + Napaka pri ustvarjanju seje SSL: %1 + + + + Error creating SSL session: %1 + Napaka pri ustvarjanju seje SSL: %1 + + + + Cannot provide a certificate with no key, %1 + Ni moÄŤ priskrbeti potrdila brez kljuÄŤa, %1 + + + + Error loading local certificate, %1 + Napaka pri nalaganju krajevnega potrdila, %1 + + + + Error loading private key, %1 + Napaka pri nalaganju zasebnega kljuÄŤa, %1 + + + + Private key does not certificate public key, %1 + Zasebni kljuÄŤ ne potrjuje javnega kljuÄŤa, %1 + + + + QStateMachine + + + Missing initial state in compound state '%1' + V sestavljenem stanju »%1« manjka zaÄŤetno stanje + + + + Missing default state in history state '%1' + V zgodovinskem stanju »%1« manjka privzeto stanje + + + + No common ancestor for targets and source of transition from state '%1' + Za cilje in zaÄŤetek prehoda iz stanja »%1« ni skupnega prednika + + + + Unknown error + Neznana napaka + + + + QSystemSemaphore + + + + %1: out of resources + %1: zmanjkalo je virov + + + + + %1: permission denied + %1: nimate dovoljenja + + + + %1: already exists + %1: Ĺľe obstaja + + + + %1: does not exist + %1: ne obstaja + + + + + %1: unknown error %2 + %1: neznana napaka %2 + + + + QTDSDriver + + + Unable to open connection + Ni moÄŤ vzpostaviti povezave + + + + Unable to use database + Podatkovne zbirke ni moÄŤ uporabljati + + + + QTabBar + + + Scroll Left + Premakni levo + + + + Scroll Right + Premakni desno + + + + QTcpServer + + + Operation on socket is not supported + Dejanje na vtiÄŤnici ni podprto + + + + QTextControl + + + &Undo + &Razveljavi + + + + &Redo + &Uveljavi + + + + Cu&t + &IzreĹľi + + + + &Copy + S&kopiraj + + + + Copy &Link Location + Skopiraj &povezavo do lokacije + + + + &Paste + Pri&lepi + + + + Delete + Izbriši + + + + Select All + Izberi vse + + + + QToolButton + + + + Press + Pritisni + + + + + Open + Odpri + + + + QUdpSocket + + + This platform does not support IPv6 + Ta platforma ne podpira IPv6 + + + + QUndoGroup + + + Undo + Razveljavi + + + + Redo + Uveljavi + + + + QUndoModel + + + <empty> + <prazno> + + + + QUndoStack + + + Undo + Razveljavi + + + + Redo + Uveljavi + + + + QUnicodeControlCharacterMenu + + + LRM Left-to-right mark + LRM (oznaka z-leve-na-desno) + + + + RLM Right-to-left mark + RLM (oznaka z-desne-na-levo) + + + + ZWJ Zero width joiner + ZWJ (zdruĹľevalec s širino niÄŤ) + + + + ZWNJ Zero width non-joiner + ZWNJ (ne-zdruĹľevalec s širino niÄŤ) + + + + ZWSP Zero width space + ZWSP (presledek s širino niÄŤ) + + + + LRE Start of left-to-right embedding + LRE (zaÄŤetek vgrajevanja z leve na desno) + + + + RLE Start of right-to-left embedding + RLE (zaÄŤetek vgrajevanja z desne na levo) + + + + LRO Start of left-to-right override + LRO (zaÄŤetek nadomeščanja z leve na desno) + + + + RLO Start of right-to-left override + RLO (zaÄŤetek nadomeščanja z desne na levo) + + + + PDF Pop directional formatting + PDF (odstrani oblikovanje usmerjenosti) + + + + Insert Unicode control character + Vstavi kontrolni znak Unicode + + + + QWebFrame + + + Request cancelled + Zahtevek je bil preklican + + + + Request blocked + Zahtevek je bil blokiran + + + + Cannot show URL + Lokacije ni moÄŤ prikazati + + + + Frame load interrupted by policy change + Nalaganje okvirja je bilo prekinjeno zaradi spremembe pravil + + + + Cannot show mimetype + Vrste MIME ni moÄŤ prikazati + + + + File does not exist + Datoteka ne obstaja + + + + QWebPage + + + Bad HTTP request + NapaÄŤen zahtevek HTTP + + + + Submit + default label for Submit buttons in forms on web pages + Pošlji + + + + Submit + Submit (input element) alt text for <input> elements with no alt, title, or value + Pošlji + + + + Reset + default label for Reset buttons in forms on web pages + Ponastavi + + + + This is a searchable index. Enter search keywords: + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + To je stvarno kazalo z iskanjem. Vnesite iskane besede: + + + + Choose File + title for file button used in HTML forms + Izberite datoteko + + + + No file selected + text to display in file button used in HTML forms when no file is selected + Datoteka ni izbrana + + + + Open in New Window + Open in New Window context menu item + Odpri v novem oknu + + + + Save Link... + Download Linked File context menu item + Shrani povezavo ... + + + + Copy Link + Copy Link context menu item + Skopiraj povezavo + + + + Open Image + Open Image in New Window context menu item + Odpri sliko + + + + Save Image + Download Image context menu item + Shrani sliko + + + + Copy Image + Copy Link context menu item + Kopiraj sliko + + + + Open Frame + Open Frame in New Window context menu item + Odpri okvir + + + + Copy + Copy context menu item + Skopiraj + + + + Go Back + Back context menu item + Pojdi nazaj + + + + Go Forward + Forward context menu item + Pojdi naprej + + + + Stop + Stop context menu item + Ustavi + + + + Reload + Reload context menu item + Znova naloĹľi + + + + Cut + Cut context menu item + IzreĹľi + + + + Paste + Paste context menu item + Prilepi + + + + No Guesses Found + No Guesses Found context menu item + Najdenega ni nobenega ugibanja + + + + Ignore + Ignore Spelling context menu item + Prezri + + + + Add To Dictionary + Learn Spelling context menu item + Dodaj v slovar + + + + Search The Web + Search The Web context menu item + Iščite po spletu + + + + Look Up In Dictionary + Look Up in Dictionary context menu item + Poišči v slovarju + + + + Open Link + Open Link context menu item + Odpri povezavo + + + + Ignore + Ignore Grammar context menu item + Prezri + + + + Spelling + Spelling and Grammar context sub-menu item + ÄŚrkovanje + + + + Show Spelling and Grammar + menu item title + PrikaĹľi ÄŤrkovanje in slovnico + + + + Hide Spelling and Grammar + menu item title + Skrij ÄŤrkovanje in slovnico + + + + Check Spelling + Check spelling context menu item + Preveri ÄŤrkovanje + + + + Check Spelling While Typing + Check spelling while typing context menu item + Preveri ÄŤrkovanje med tipkanjem + + + + Check Grammar With Spelling + Check grammar with spelling context menu item + Preveri slovnico in ÄŤrkovanje + + + + Fonts + Font context sub-menu item + Pisave + + + + Bold + Bold context menu item + Polkrepko + + + + Italic + Italic context menu item + LeĹľeÄŤe + + + + Underline + Underline context menu item + PodÄŤrtano + + + + Outline + Outline context menu item + Obris + + + + Direction + Writing direction context sub-menu item + Smer + + + + Text Direction + Text direction context sub-menu item + Smer besedila + + + + Default + Default writing direction context menu item + Privzeta + + + + Left to Right + Left to Right context menu item + Z leve na desno + + + + Right to Left + Right to Left context menu item + Z desne na levo + + + + Loading... + Media controller status message when the media is loading + Nalaganje ... + + + + Live Broadcast + Media controller status message when watching a live broadcast + Prenos v Ĺľivo + + + + Audio Element + Media controller element + ZvoÄŤni element + + + + Video Element + Media controller element + Video element + + + + Mute Button + Media controller element + Gumb za utišanje + + + + Unmute Button + Media controller element + Gumb za preklic utišanja + + + + Play Button + Media controller element + Gumb za predvajanje + + + + Pause Button + Media controller element + Gumb za premor + + + + Slider + Media controller element + Drsnik + + + + Slider Thumb + Media controller element + RoÄŤka na drsniku + + + + Rewind Button + Media controller element + Gumb za previjanje + + + + Return to Real-time Button + Media controller element + Gumb za vrnitev na resniÄŤni ÄŤas + + + + Elapsed Time + Media controller element + PreteÄŤeni ÄŤas + + + + Remaining Time + Media controller element + Preostali ÄŤas + + + + Status Display + Media controller element + Prikaz stanja + + + + Fullscreen Button + Media controller element + Gumb za cel zaslon + + + + Seek Forward Button + Media controller element + Gumb za pomik naprej + + + + Seek Back Button + Media controller element + Gumb za pomik nazaj + + + + Audio element playback controls and status display + Media controller element + Nadzor in prikaz stanja elementa za predvajanje zvoka + + + + Video element playback controls and status display + Media controller element + Nadzor in prikaz stanja elementa za predvajanje videa + + + + Mute audio tracks + Media controller element + Utišaj zvoÄŤne sledi + + + + Unmute audio tracks + Media controller element + PrekliÄŤi utišanje zvoÄŤnih sledi + + + + Begin playback + Media controller element + ZaÄŤni predvajanje + + + + Pause playback + Media controller element + Prekini predvajanje + + + + Movie time scrubber + Media controller element + + + + + Movie time scrubber thumb + Media controller element + + + + + Rewind movie + Media controller element + Previj film + + + + Return streaming movie to real-time + Media controller element + Povrni film na resniÄŤni ÄŤas + + + + Current movie time + Media controller element + Trenutni ÄŤas filma + + + + Remaining move time + Media controller element + Preostali ÄŤas filma + + + + Current movie status + Media controller element + Trenutno stanje filma + + + + Play movie in full-screen mode + Media controller element + Predvajaj film ÄŤez ves zaslon + + + + Seek quickly back + Media controller element + Hitro se pomakni nazaj + + + + Seek quickly forward + Media controller element + Hitro se pomakni naprej + + + + Indefinite time + Media time description + NedoloÄŤen ÄŤas + + + + %1 days %2 hours %3 minutes %4 seconds + Media time description + %1 dni %2 ur %3 minut %4 sekund + + + + %1 hours %2 minutes %3 seconds + Media time description + %1 ur %2 minut %3 sekund + + + + %1 minutes %2 seconds + Media time description + %1 minut %2 sekund + + + + %1 seconds + Media time description + %1 sekund + + + + Inspect + Inspect Element context menu item + Preglej. + + + + No recent searches + Label for only item in menu that appears when clicking on the search field image, when no searches have been performed + Ni nedavnih iskanj + + + + Recent searches + label for first item in the menu that appears when clicking on the search field image, used as embedded menu title + Nedavna iskanja + + + + Clear recent searches + menu item in Recent Searches menu that empties menu's contents + PoÄŤisti nedavna iskanja + + + + Unknown + Unknown filesize FTP directory listing item + Neznana + + + + %1 (%2x%3 pixels) + Title string for images + %1 (%2Ă—%3 pik) + + + + Web Inspector - %2 + Web Inspector - %2 + + + + Scroll here + Premakni sem + + + + Left edge + Levi rob + + + + Top + Vrh + + + + Right edge + Desni rob + + + + Bottom + Dno + + + + Page left + Za stran levo + + + + Page up + Za stran gor + + + + Page right + Za stran desno + + + + Page down + Za stran dol + + + + Scroll left + Premakni levo + + + + Scroll up + Premakni gor + + + + Scroll right + Premakni desno + + + + Scroll down + Premakni dol + + + + %n file(s) + number of chosen file + + %n datotek + %n datotek + %n datotek + %n datotek + + + + + JavaScript Alert - %1 + Opozorilo JavaScript - %1 + + + + JavaScript Confirm - %1 + Potrditev JavaScript - %1 + + + + JavaScript Prompt - %1 + Poziv JavaScript - %1 + + + + JavaScript Problem - %1 + TeĹľava JavaScript - %1 + + + + The script on this page appears to have a problem. Do you want to stop the script? + Kot kaĹľe ima skript na tej strani teĹľavo. Ali Ĺľelite ustaviti skript? + + + + Move the cursor to the next character + Premakni kazalec na naslednji znak + + + + Move the cursor to the previous character + Premakni kazalec na prejšnji znak + + + + Move the cursor to the next word + Premakni kazalec v naslednjo besedo + + + + Move the cursor to the previous word + Premakni kazalec v prejšnjo besedo + + + + Move the cursor to the next line + Premakni kazalec v naslednjo vrstico + + + + Move the cursor to the previous line + Premakni kazalec v prejšnjo vrstico + + + + Move the cursor to the start of the line + Premakni kazalec na zaÄŤetek vrstice + + + + Move the cursor to the end of the line + Premakni kazalec na konec vrstice + + + + Move the cursor to the start of the block + Premakni kazalec na zaÄŤetek bloka + + + + Move the cursor to the end of the block + Premakni kazalec na konec bloka + + + + Move the cursor to the start of the document + Premakni kazalec na zaÄŤetek dokumenta + + + + Move the cursor to the end of the document + Premakni kazalec na konec dokumenta + + + + Select all + Izberi vse + + + + Select to the next character + Izberi do naslednjega znaka + + + + Select to the previous character + Izberi do prejšnjega znaka + + + + Select to the next word + Izberi do naslednje besede + + + + Select to the previous word + Izberi do prejšnje besede + + + + Select to the next line + Izberi do naslednje vrstice + + + + Select to the previous line + Izberi do prejšnje vrstice + + + + Select to the start of the line + Izberi do zaÄŤetka vrstice + + + + Select to the end of the line + Izberi do konca vrstice + + + + Select to the start of the block + Izberi do zaÄŤetka bloka + + + + Select to the end of the block + Izberi do konca bloka + + + + Select to the start of the document + Izberi do zaÄŤetka dokumenta + + + + Select to the end of the document + Izberi do konca dokumenta + + + + Delete to the start of the word + Izbriši do zaÄŤetka besede + + + + Delete to the end of the word + Izbriši do konca besede + + + + Insert a new paragraph + Vstavi nov odstavek + + + + Insert a new line + Vstavi novo vrstico + + + + Paste and Match Style + Prilepi in uskladi slog + + + + Remove formatting + Odstrani oblikovanje + + + + Strikethrough + PreÄŤrtano + + + + Subscript + Podpisano + + + + Superscript + Nadpisano + + + + Insert Bulleted List + Vstavi navadni seznam + + + + Insert Numbered List + Vstavi oštevilÄŤeni seznam + + + + Indent + Zamakni + + + + Outdent + Odzamakni + + + + Center + Sredinsko + + + + Justify + Obojestransko + + + + Align Left + Poravnaj levo + + + + Align Right + Poravnaj desno + + + + QWhatsThisAction + + + What's This? + Kaj je to? + + + + QWidget + + + * + * + + + + QWizard + + + Go Back + Pojdi nazaj + + + + Continue + Nadaljuj + + + + Commit + Uveljavi + + + + Done + Opravljeno + + + + Help + PomoÄŤ + + + + < &Back + < Na&zaj + + + + &Finish + &ZakljuÄŤi + + + + Cancel + PrekliÄŤi + + + + &Help + &PomoÄŤ + + + + &Next + &Naprej + + + + &Next > + &Naprej > + + + + QWorkspace + + + &Restore + &Obnovi + + + + &Move + &Premakni + + + + &Size + &Velikost + + + + Mi&nimize + Po&manjšaj + + + + Ma&ximize + &Razpni + + + + &Close + &Zapri + + + + Stay on &Top + Ostani na &vrhu + + + + + Sh&ade + Zvi&j + + + + + %1 - [%2] + %1 - [%2] + + + + Minimize + Pomanjšaj + + + + Restore Down + Obnovi navzdol + + + + Close + Zapri + + + + &Unshade + Razv&ij + + + + QXml + + + no error occurred + ni nobene napake + + + + error triggered by consumer + napako povzroÄŤil uporabnik + + + + unexpected end of file + nepriÄŤakovan konec datoteke + + + + more than one document type definition + veÄŤ kot ena definicija vrste dokumenta + + + + error occurred while parsing element + napaka med analiziranjem elementa + + + + tag mismatch + neprimerna oznaka + + + + error occurred while parsing content + napaka med analiziranje vsebine + + + + unexpected character + nepriÄŤakovan znak + + + + invalid name for processing instruction + nepravilno ime za ukaz obdelave + + + + version expected while reading the XML declaration + priÄŤakovana razliÄŤica med branjem deklaracije XML + + + + wrong value for standalone declaration + napaÄŤna vrednost za samostojno deklaracijo + + + + encoding declaration or standalone declaration expected while reading the XML declaration + deklaracija kodiranja ali samostojna deklaracija je bila priÄŤakovana med branjem deklaracije XML + + + + standalone declaration expected while reading the XML declaration + samostojna deklaracija priÄŤakovana med branjem deklaracije XML + + + + error occurred while parsing document type definition + napaka med analiziranjem vrste definicije dokumenta + + + + letter is expected + priÄŤakovana je ÄŤrka + + + + error occurred while parsing comment + napaka med analiziranjem komentarja + + + + error occurred while parsing reference + napaka med analiziranjem reference + + + + internal general entity reference not allowed in DTD + referenca notranje splošne entitete ni dovoljena v DTD + + + + external parsed general entity reference not allowed in attribute value + referenca zunanje analizirane splošne entitete ni dovoljena v vrednosti atributa + + + + external parsed general entity reference not allowed in DTD + referenca zunanje analizirane splošne entitete ni dovoljena v DTD + + + + unparsed entity reference in wrong context + referenca neanalizirane entitete v napaÄŤnem kontekstu + + + + recursive entities + rekurzivne entitete + + + + error in the text declaration of an external entity + napaka v besedilni deklaraciji zunanje entitete + + + + QXmlStream + + + + Extra content at end of document. + Dodatna vsebina na koncu dokumenta. + + + + Invalid entity value. + Neveljavna vrednost entitete. + + + + Invalid XML character. + Neveljaven znak XML. + + + + Sequence ']]>' not allowed in content. + Zaporedje »]]>« v vsebini ni dovoljeno. + + + + Namespace prefix '%1' not declared + Predpona imenskega prostora »%1« ni deklarirana + + + + Attribute redefined. + Atribut je redefiniran. + + + + Unexpected character '%1' in public id literal. + + + + + Invalid XML version string. + Neveljaven niz razliÄŤice XML. + + + + Unsupported XML version. + Nepodprta razliÄŤica XML. + + + + %1 is an invalid encoding name. + %1 ni veljavno ime kodiranja. + + + + Encoding %1 is unsupported + Kodiranje %1 ni podprto + + + + Standalone accepts only yes or no. + + + + + Invalid attribute in XML declaration. + Neveljaven atribut v deklaraciji XML. + + + + Premature end of document. + PredÄŤasen konec dokumenta. + + + + Invalid document. + Neveljaven dokument.. + + + + Expected + PriÄŤakovan + + + + , but got ' + , vendar prejel ' + + + + Unexpected ' + NepriÄŤakovan ' + + + + Expected character data. + PriÄŤakoval znakovne podatke. + + + + Recursive entity detected. + Zaznana je bila rekurzivna entiteta. + + + + Start tag expected. + PriÄŤakovana je bila zaÄŤetna oznaka. + + + + XML declaration not at start of document. + Deklaracija XML ni na zaÄŤetku dokumenta. + + + + NDATA in parameter entity declaration. + + + + + %1 is an invalid processing instruction name. + %1 ni veljavno ime ukaza obdelave. + + + + Invalid processing instruction name. + Neveljavno ime ukaza obdelave. + + + + + + + Illegal namespace declaration. + Neveljavna deklaracija imenskega prostora. + + + + Invalid XML name. + Neveljavno ime XML. + + + + Opening and ending tag mismatch. + ZaÄŤetni in zakljuÄŤni oznaki se ne ujemata. + + + + Reference to unparsed entity '%1'. + Referenca na nerazÄŤlenjeno entiteto »%1«. + + + + + + Entity '%1' not declared. + Entiteta »%1« ni deklarirana. + + + + Reference to external entity '%1' in attribute value. + Referenca na zunanjo entiteto »%1« v vrednosti lastnosti. + + + + Invalid character reference. + Neveljavna znakovna referenca. + + + + + Encountered incorrectly encoded content. + Naletel na napaÄŤno zakodirano vsebino. + + + + The standalone pseudo attribute must appear after the encoding. + Samostojni psevdo-atribut se mora pojaviti za kodiranjem. + + + + %1 is an invalid PUBLIC identifier. + + + + + QtXmlPatterns + + + Network timeout. + ÄŚas za omreĹľje je potekel. + + + + Element %1 can't be serialized because it appears outside the document element. + + + + + Year %1 is invalid because it begins with %2. + Leto %1 ni veljavno, ker se zaÄŤne z %2. + + + + Day %1 is outside the range %2..%3. + Dan %1 je izven obsega %2..%3. + + + + Month %1 is outside the range %2..%3. + Mesec %1 je izven obsega %2..%3. + + + + Overflow: Can't represent date %1. + PrekoraÄŤitev: ni moÄŤ predstaviti datuma %1. + + + + Day %1 is invalid for month %2. + Dan %1 za mesec %2 ni veljaven. + + + + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + ÄŚas 24:%1:%2.%3 ni veljaven. Ura je 24, vendar minute, sekunde in milisekunde niso vse 0; + + + + Time %1:%2:%3.%4 is invalid. + ÄŚas %1:%2:%3.%4 ni veljaven. + + + + Overflow: Date can't be represented. + PrekoraÄŤitev: datuma ni moÄŤ predstaviti. + + + + + At least one component must be present. + Prisotna mora biti vsaj ena komponenta. + + + + At least one time component must appear after the %1-delimiter. + Za razmejiteljem %1 se mora pojaviti vsaj ena ÄŤasovna komponenta. + + + + %1 is not a valid value of type %2. + %1 ni veljavna vrednost vrste %2. + + + + When casting to %1 from %2, the source value cannot be %3. + + + + + Integer division (%1) by zero (%2) is undefined. + Deljenje celega števila (%1) z niÄŤ (%2) ni doloÄŤeno. + + + + Division (%1) by zero (%2) is undefined. + Deljenje (%1) z niÄŤ (%2) ni doloÄŤeno. + + + + Modulus division (%1) by zero (%2) is undefined. + Ostanek deljenja (%1) z niÄŤ (%2) ni doloÄŤen. + + + + + Dividing a value of type %1 by %2 (not-a-number) is not allowed. + Deljenje vrednosti vrste %1 z %2 (ni število) ni dovoljeno. + + + + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + Deljenje vrednosti vrste %1 z %2 ali %3 (pozitivna ali negativna niÄŤ) ni dovoljeno. + + + + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + MnoĹľenje vrednosti vrste %1 z %2 ali %3 (pozitivna ali negativna neskonÄŤnost) ni dovoljeno. + + + + A value of type %1 cannot have an Effective Boolean Value. + Vrednost vrste %1 ne more imeti dejanske logiÄŤne vrednosti. + + + + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + Dejanske logiÄŤne vrednosti ni moÄŤ izraÄŤunati za zaporedje, ki vsebuje dve ali veÄŤ atomiÄŤnih vrednosti. + + + + Value %1 of type %2 exceeds maximum (%3). + Vrednost %1 vrste %2 presega maksimum (%3). + + + + Value %1 of type %2 is below minimum (%3). + Vrednost %1 vrste %2 je pod minimumom (%3). + + + + A value of type %1 must contain an even number of digits. The value %2 does not. + Vrednost vrste %1 mora vsebovati sodo število števk. Vrednost %2 temu ne zadošča. + + + + %1 is not valid as a value of type %2. + %1 ni veljavna kot vrednost vrste %2. + + + + Operator %1 cannot be used on type %2. + Operatorja %1 ni moÄŤ uporabiti na vrsti %2. + + + + Operator %1 cannot be used on atomic values of type %2 and %3. + Operatorja %1 ni moÄŤ uporabiti na atomiÄŤnih vrednostih vrst %2 in %3. + + + + The namespace URI in the name for a computed attribute cannot be %1. + URI imenskega prostora v imenu izraÄŤunane lastnosti ne more biti %1. + + + + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + Ime izraÄŤunane lastnosti ne more imeti URI-ja imenskega prostora %1 s krajevnim imenom %2. + + + + Type error in cast, expected %1, received %2. + + + + + When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. + + + + + A comment cannot contain %1 + Komentar ne more vsebovati %1 + + + + A comment cannot end with a %1. + Komentar se ne more konÄŤati z %1. + + + + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + + + + + A library module cannot be evaluated directly. It must be imported from a main module. + Modula knjiĹľnice ni moÄŤ ovrednotiti neposredno. Uvoziti ga je potrebno iz glavnega modula. + + + + No template by name %1 exists. + Predloga z imenom %1 ne obstaja. + + + + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + + + + + A positional predicate must evaluate to a single numeric value. + + + + + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid. + + + + + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + + + + + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + + + + + The data of a processing instruction cannot contain the string %1 + Podatki ukaza za obdelavo ne morejo vsebovati niza %1 + + + + No namespace binding exists for the prefix %1 + + + + + No namespace binding exists for the prefix %1 in %2 + + + + + + %1 is an invalid %2 + %1 ni veljaven %2 + + + + %1 takes at most %n argument(s). %2 is therefore invalid. + + %1 potrebuje najveÄŤ %n argumentov. %2 zato ni veljavno. + + + + + + + + %1 requires at least %n argument(s). %2 is therefore invalid. + + %1 potrebuje najmanj %n argumentov. %2 zato ni veljavno. + + + + + + + + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + Prvi argument za %1 ne more biti vrste %2. Mora biti številÄŤne vrste, xs:yearMonthDuration ali xs:dayTimeDuration. + + + + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + Prvi argument za %1 ne more biti vrste %2. Mora biti vrste %3, %4 ali %5. + + + + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + Drugi argument za %1 ne more biti vrste %2. Mora biti vrste %3, %4 ali %5. + + + + %1 is not a valid XML 1.0 character. + %1 ni veljaven znak XML 1.0. + + + + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + + + + + %1 was called. + %1 je bila klicana. + + + + %1 must be followed by %2 or %3, not at the end of the replacement string. + + + + + In the replacement string, %1 must be followed by at least one digit when not escaped. + + + + + In the replacement string, %1 can only be used to escape itself or %2, not %3 + + + + + %1 matches newline characters + %1 se ujema z znaki za novo vrstico + + + + %1 and %2 match the start and end of a line. + %1 in %2 se ujemata z zaÄŤetkom in koncem vrstice. + + + + Matches are case insensitive + Ujemanja niso obÄŤutljiva na velikost ÄŤrk + + + + Whitespace characters are removed, except when they appear in character classes + Znaki za presledke so odstranjeni, razen ko se pojavijo v znakovnih razredih + + + + %1 is an invalid regular expression pattern: %2 + %1 ni veljaven vzorec regularnega izraza: %2 + + + + %1 is an invalid flag for regular expressions. Valid flags are: + + + + + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + ÄŚe je prvi argument prazno zaporedje, ali pa niz z dolĹľino niÄŤ (brez imenskega prostora), predpone ni moÄŤ doloÄŤiti. DoloÄŤena je bila predpona %1. + + + + It will not be possible to retrieve %1. + %1 ne bo moĹľno pridobiti. + + + + The root node of the second argument to function %1 must be a document node. %2 is not a document node. + + + + + The default collection is undefined + Privzeta zbirka ni doloÄŤena. + + + + %1 cannot be retrieved + %1 ni moÄŤ pridobiti + + + + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + + + + + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + + + + + %1 is not a whole number of minutes. + + + + + Required cardinality is %1; got cardinality %2. + + + + + The item %1 did not match the required type %2. + Postavka %1 se ne ujema z zahtevano vrsto %2. + + + + + %1 is an unknown schema type. + %1 ni znana vrsta sheme. + + + + Only one %1 declaration can occur in the query prolog. + + + + + The initialization of variable %1 depends on itself + Inicializacija spremenljivke %1 je odvisna od same sebe. + + + + No variable by name %1 exists + Spremenljivka z imenom %1 ne obstaja + + + + The variable %1 is unused + Spremenljivka %1 ni uporabljena + + + + Version %1 is not supported. The supported XQuery version is 1.0. + RazliÄŤica %1 ni podprta. Podpra razliÄŤica XQuery je 1.0. + + + + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + Kodiranje %1 ni veljavno. Vsebovati mora le znake latinske abecede, ne sme vsebovati presledkov in se mora ujemati z regularnim izrazom %2. + + + + No function with signature %1 is available + Na voljo ni nobene funkcije s podpisom %1 + + + + + A default namespace declaration must occur before function, variable, and option declarations. + Deklaracije privzetega imenskega prostora se mora pojaviti pred deklaracijami funkcij, spremenljivk in moĹľnosti. + + + + Namespace declarations must occur before function, variable, and option declarations. + Deklaracije imenskih prostorov se morajo pojaviti pred deklaracijami funkcij, spremenljivk in moĹľnosti. + + + + Module imports must occur before function, variable, and option declarations. + Uvozi modulov se morajo pojaviti pred deklaracijami funkcij, spremenljivk in moĹľnosti. + + + + It is not possible to redeclare prefix %1. + Predpone %1 ni moÄŤ znova deklarirati. + + + + Prefix %1 is already declared in the prolog. + + + + + The name of an option must have a prefix. There is no default namespace for options. + Ime moĹľnosti mora vsebovati predpono. Privzeti imenski prostor za moĹľnosti ne obstaja. + + + + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + + + + + The target namespace of a %1 cannot be empty. + Ciljni imenski prostor za %1 ne sme biti prazen. + + + + The module import feature is not supported + ZmoĹľnost uvaĹľanja modulov ni podprta + + + + No value is available for the external variable by name %1. + Za zunanjo spremenljivko z imenom %1 ni na voljo nobene vrednosti. + + + + A template by name %1 has already been declared. + Predloga z imenom %1 je Ĺľe bila deklarirana. + + + + The keyword %1 cannot occur with any other mode name. + + + + + The value of attribute %1 must of type %2, which %3 isn't. + Vrednost lastnosti %1 mora biti vrste %2, %3 pa to ni. + + + + The prefix %1 can not be bound. By default, it is already bound to the namespace %2. + + + + + A variable by name %1 has already been declared. + Spremenljivka z imenom %1 je Ĺľe bila deklarirana. + + + + A stylesheet function must have a prefixed name. + + + + + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + Imenski prostor za uporabniško doloÄŤeno funkcijo ne sme biti prazen (poskusite z vnaprej doloÄŤeno predpono %1, ki obstaja za take primere) + + + + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + Imenski prostor %1 je rezerviran, zato ga uporabniško doloÄŤene funkcije ne smejo uporabiti. Poskusite z vnaprej doloÄŤeno predpono %2, ki obstaja za take primere. + + + + 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 + Imenski prostor uporabniško doloÄŤene funkcije v modulu knjiĹľnice mora biti enak imenskemu prostoru modula. Z drugimi besedami, moral bi biti %1, namesto %2. + + + + A function already exists with the signature %1. + Funkcija s podpisom %1 Ĺľe obstaja. + + + + No external functions are supported. All supported functions can be used directly, without first declaring them as external + Zunanje funkcije niso podprte. Vse podprte funkcije je moÄŤ uporabiti neposredno, brez da bi jih najprej deklarirali kot zunanje. + + + + An argument by name %1 has already been declared. Every argument name must be unique. + Argument z imenom %1 je Ĺľe bil deklariran. Vsako ime argumenta mora biti edinstveno. + + + + When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. + + + + + In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. + + + + + In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. + + + + + In an XSL-T pattern, function %1 cannot have a third argument. + V XSL-T vzorcu funkcija %1 ne more imeti tretjega argumenta. + + + + In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. + + + + + In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. + + + + + %1 is an invalid template mode name. + + + + + The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + Ime spremenljivke priklenjene v izrazu »for« se mora razlikovati od spremenljivke poloĹľaja. Spremenljivki z imenom %1 zato trÄŤita. + + + + The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + + + + + None of the pragma expressions are supported. Therefore, a fallback expression must be present + + + + + Each name of a template parameter must be unique; %1 is duplicated. + + + + + The %1-axis is unsupported in XQuery + Os %1 v XQuery ni podprta + + + + %1 is not a valid name for a processing-instruction. + + + + + %1 is not a valid numeric literal. + + + + + W3C XML Schema identity constraint selector + + + + + W3C XML Schema identity constraint field + + + + + A construct was encountered which is disallowed in the current language(%1). + + + + + No function by name %1 is available. + Na voljo ni nobene funkcije z imenom %1. + + + + The namespace URI cannot be the empty string when binding to a prefix, %1. + + + + + %1 is an invalid namespace URI. + %1 ni veljaven URI imenskega prostora. + + + + It is not possible to bind to the prefix %1 + + + + + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + Imenski prostor %1 je lahko navezan le na %2 (in je, v vsakem primeru, preddeklariran) + + + + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + Predpona %1 je lahko navezana le na %2 (in je, v vsakem primeru, preddeklarirana) + + + + Two namespace declaration attributes have the same name: %1. + Dva atributa deklaracije imenskega prostora imata isto ime: %1 + + + + The namespace URI must be a constant and cannot use enclosed expressions. + + + + + An attribute by name %1 has already appeared on this element. + Atribut z imenom %1 se je v tem elementu Ĺľe pojavil. + + + + A direct element constructor is not well-formed. %1 is ended with %2. + + + + + The name %1 does not refer to any schema type. + Ime %1 se ne nanaša na nobeno vrsto sheme. + + + + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + + + + + %1 is not an atomic type. Casting is only possible to atomic types. + + + + + + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + + + + + The name of an extension expression must be in a namespace. + Ime razširitvenega izraza mora biti v imenskem prostoru. + + + + empty + prazno + + + + zero or one + niÄŤ ali en + + + + exactly one + toÄŤno en + + + + one or more + en ali veÄŤ + + + + zero or more + niÄŤ ali veÄŤ + + + + Required type is %1, but %2 was found. + Zahtevana vrsta je %1, najdena pa je bila %2. + + + + Promoting %1 to %2 may cause loss of precision. + Povišanje %1 v %2 lahko povzroÄŤi izgubo natanÄŤnosti. + + + + The focus is undefined. + Fokus ni definiran. + + + + It's not possible to add attributes after any other kind of node. + + + + + An attribute by name %1 has already been created. + Atribut z imenom %1 je Ĺľe bil ustvarjen. + + + + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + + + + + Attribute %1 can't be serialized because it appears at the top level. + + + + + %1 is an unsupported encoding. + %1 ni podprto kodiranje. + + + + %1 contains octets which are disallowed in the requested encoding %2. + + + + + The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. + + + + + Ambiguous rule match. + Dvoumno ujemanje s pravilom. + + + + In a namespace constructor, the value for a namespace cannot be an empty string. + + + + + The prefix must be a valid %1, which %2 is not. + + + + + The prefix %1 cannot be bound. + Predpone %1 ni moÄŤ navezati. + + + + Only the prefix %1 can be bound to %2 and vice versa. + Na %2 je lahko navezana le predpona %1 in obratno. + + + + The parameter %1 is required, but no corresponding %2 is supplied. + Potreben je parameter %1, vendar ustrezen %2 ni bil podan. + + + + The parameter %1 is passed, but no corresponding %2 exists. + Podan je bil parameter %1, vendar ustrezen %2 ne obstaja. + + + + The URI cannot have a fragment + + + + + Element %1 is not allowed at this location. + Element %1 na tej lokaciji ni dovoljen. + + + + Text nodes are not allowed at this location. + Besedilna vozlišča na tej lokaciji niso dovoljena. + + + + Parse error: %1 + Napaka pri razÄŤlenjevanju: %1 + + + + The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. + Vrednost lastnosti razliÄŤice XSL-T mora biti vrednost vrste %1, %2 pa to ni. + + + + Running an XSL-T 1.0 stylesheet with a 2.0 processor. + + + + + Unknown XSL-T attribute %1. + Neznana XSL-T lastnost %1. + + + + Attribute %1 and %2 are mutually exclusive. + Lastnosti %1 in %2 sta medsebojno izkljuÄŤujoÄŤi. + + + + In a simplified stylesheet module, attribute %1 must be present. + + + + + If element %1 has no attribute %2, it cannot have attribute %3 or %4. + ÄŚe element %1 nima lastnosti %2, ne more imeti lastnosti %3 ali %4. + + + + Element %1 must have at least one of the attributes %2 or %3. + Element %1 mora imeti vsaj eno izmed lastnosti %2 in %3. + + + + At least one mode must be specified in the %1-attribute on element %2. + + + + + Element %1 must come last. + Element %1 mora biti zadnji. + + + + At least one %1-element must occur before %2. + + + + + Only one %1-element can appear. + + + + + At least one %1-element must occur inside %2. + + + + + When attribute %1 is present on %2, a sequence constructor cannot be used. + + + + + Element %1 must have either a %2-attribute or a sequence constructor. + + + + + When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. + + + + + Element %1 cannot have children. + Element %1 ne more imeti podelementov. + + + + Element %1 cannot have a sequence constructor. + + + + + + The attribute %1 cannot appear on %2, when it is a child of %3. + + + + + A parameter in a function cannot be declared to be a tunnel. + + + + + This processor is not Schema-aware and therefore %1 cannot be used. + + + + + Top level stylesheet elements must be in a non-null namespace, which %1 isn't. + + + + + The value for attribute %1 on element %2 must either be %3 or %4, not %5. + Vrednost lastnosti %1 elementa %2 mora biti %3 ali %4 in ne %5. + + + + Attribute %1 cannot have the value %2. + Lastnost %1 ne more imeti vrednosti %2. + + + + The attribute %1 can only appear on the first %2 element. + Lastnost %1 se lahko pojavi le pri prvem elementu %2. + + + + At least one %1 element must appear as child of %2. + + + + + empty particle cannot be derived from non-empty particle + + + + + derived particle is missing element %1 + + + + + derived element %1 is missing value constraint as defined in base particle + + + + + derived element %1 has weaker value constraint than base particle + + + + + fixed value constraint of element %1 differs from value constraint in base particle + + + + + derived element %1 cannot be nillable as base element is not nillable + + + + + block constraints of derived element %1 must not be more weaker than in the base element + + + + + simple type of derived element %1 cannot be validly derived from base element + + + + + complex type of derived element %1 cannot be validly derived from base element + + + + + element %1 is missing in derived particle + + + + + element %1 does not match namespace constraint of wildcard in base particle + + + + + wildcard in derived particle is not a valid subset of wildcard in base particle + + + + + processContent of wildcard in derived particle is weaker than wildcard in base particle + + + + + derived particle allows content that is not allowed in the base particle + + + + + %1 has inheritance loop in its base type %2 + + + + + + circular inheritance of base type %1 + + + + + circular inheritance of union %1 + + + + + %1 is not allowed to derive from %2 by restriction as the latter defines it as final + + + + + %1 is not allowed to derive from %2 by extension as the latter defines it as final + + + + + base type of simple type %1 cannot be complex type %2 + + + + + simple type %1 cannot have direct base type %2 + + + + + + simple type %1 is not allowed to have base type %2 + + + + + simple type %1 can only have simple atomic type as base type + + + + + simple type %1 cannot derive from %2 as the latter defines restriction as final + + + + + + variety of item type of %1 must be either atomic or union + + + + + + variety of member types of %1 must be atomic + + + + + + %1 is not allowed to derive from %2 by list as the latter defines it as final + + + + + simple type %1 is only allowed to have %2 facet + + + + + base type of simple type %1 must have variety of type list + + + + + base type of simple type %1 has defined derivation by restriction as final + + + + + item type of base type does not match item type of %1 + + + + + + simple type %1 contains not allowed facet type %2 + + + + + + %1 is not allowed to derive from %2 by union as the latter defines it as final + + + + + %1 is not allowed to have any facets + + + + + base type %1 of simple type %2 must have variety of union + + + + + base type %1 of simple type %2 is not allowed to have restriction in %3 attribute + + + + + member type %1 cannot be derived from member type %2 of %3's base type %4 + + + + + derivation method of %1 must be extension because the base type %2 is a simple type + + + + + complex type %1 has duplicated element %2 in its content model + + + + + complex type %1 has non-deterministic content + + + + + attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3 + + + + + content model of complex type %1 is not a valid extension of content model of %2 + + + + + complex type %1 must have simple content + + + + + complex type %1 must have the same simple type as its base class %2 + + + + + complex type %1 cannot be derived from base type %2%3 + + + + + attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3 + + + + + complex type %1 with simple content cannot be derived from complex base type %2 + + + + + item type of simple type %1 cannot be a complex type + + + + + member type of simple type %1 cannot be a complex type + + + + + %1 is not allowed to have a member type with the same name as itself + + + + + + + %1 facet collides with %2 facet + + + + + %1 facet must have the same value as %2 facet of base type + + + + + %1 facet must be equal or greater than %2 facet of base type + + + + + + + + + + + + %1 facet must be less than or equal to %2 facet of base type + + + + + %1 facet contains invalid regular expression + + + + + unknown notation %1 used in %2 facet + + + + + %1 facet contains invalid value %2: %3 + + + + + %1 facet cannot be %2 or %3 if %4 facet of base type is %5 + + + + + %1 facet cannot be %2 if %3 facet of base type is %4 + + + + + + + %1 facet must be less than or equal to %2 facet + + + + + + + %1 facet must be less than %2 facet of base type + + + + + + %1 facet and %2 facet cannot appear together + + + + + + + %1 facet must be greater than %2 facet of base type + + + + + + %1 facet must be less than %2 facet + + + + + + %1 facet must be greater than or equal to %2 facet of base type + + + + + simple type contains not allowed facet %1 + + + + + %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list + + + + + only %1 and %2 facets are allowed when derived by union + + + + + + %1 contains %2 facet with invalid data: %3 + + + + + attribute group %1 contains attribute %2 twice + skupina lastnosti %1 dvakrat vsebuje lastnost %2 + + + + attribute group %1 contains two different attributes that both have types derived from %2 + + + + + attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3 + + + + + complex type %1 contains attribute %2 twice + kompleksna vrsta %1 dvakrat vsebuje lastnost %2 + + + + complex type %1 contains two different attributes that both have types derived from %2 + + + + + complex type %1 contains attribute %2 that has value constraint but type that inherits from %3 + + + + + element %1 is not allowed to have a value constraint if its base type is complex + + + + + element %1 is not allowed to have a value constraint if its type is derived from %2 + + + + + + value constraint of element %1 is not of elements type: %2 + + + + + element %1 is not allowed to have substitution group affiliation as it is no global element + + + + + type of element %1 cannot be derived from type of substitution group affiliation + + + + + value constraint of attribute %1 is not of attributes type: %2 + + + + + attribute %1 has value constraint but has type derived from %2 + + + + + %1 attribute in derived complex type must be %2 like in base type + + + + + attribute %1 in derived complex type must have %2 value constraint like in base type + + + + + attribute %1 in derived complex type must have the same %2 value constraint like in base type + + + + + attribute %1 in derived complex type must have %2 value constraint + + + + + processContent of base wildcard must be weaker than derived wildcard + + + + + + element %1 exists twice with different types + element %1 obstaja dvakrat, z razliÄŤnima vrstama + + + + particle contains non-deterministic wildcards + + + + + + base attribute %1 is required but derived attribute is not + + + + + type of derived attribute %1 cannot be validly derived from type of base attribute + + + + + value constraint of derived attribute %1 does not match value constraint of base attribute + + + + + derived attribute %1 does not exists in the base definition + + + + + derived attribute %1 does not match the wildcard in the base definition + + + + + base attribute %1 is required but missing in derived definition + + + + + derived definition contains an %1 element that does not exists in the base definition + + + + + derived wildcard is not a subset of the base wildcard + + + + + %1 of derived wildcard is not a valid restriction of %2 of base wildcard + + + + + attribute %1 from base type is missing in derived type + + + + + type of derived attribute %1 differs from type of base attribute + + + + + base definition contains an %1 element that is missing in the derived definition + + + + + can not process unknown element %1, expected elements are: %2 + ni moÄŤ obdelati neznanega elementa %1, priÄŤakovani elementi so: %2 + + + + element %1 is not allowed in this scope, possible elements are: %2 + element %1 v tem obsegu ni dovoljen, moĹľni elementi so: %2 + + + + child element is missing in that scope, possible child elements are: %1 + v tem obsegu manjka podelement, moĹľni podelementi so: %1 + + + + document is not a XML schema + dokument ni shema XML + + + + %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4 + lastnost %1 elementa %2 vsebuje neveljavno vsebino: {%3} ni vrednost vrste %4 + + + + %1 attribute of %2 element contains invalid content: {%3} + lastnost %1 elementa %2 vsebuje neveljavno vsebino: {%3} + + + + target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema + + + + + + target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema + + + + + %1 element is not allowed to have the same %2 attribute value as the target namespace %3 + + + + + %1 element without %2 attribute is not allowed inside schema without target namespace + + + + + + %1 element is not allowed inside %2 element if %3 attribute is present + element %1 znotraj elementa %2 ni dovoljen, ÄŤe je prisotna lastnost %3 + + + + + + %1 element has neither %2 attribute nor %3 child element + element %1 nima niti lastnosti %2 niti podelementa %3 + + + + + + + + + + + + + + + + + %1 element with %2 child element must not have a %3 attribute + element %1 s podelementom %2 ne sme imeti lastnosti %3 + + + + %1 attribute of %2 element must be %3 or %4 + lastnost %1 elementa %2 mora biti %3 ali %4 + + + + %1 attribute of %2 element must have a value of %3 + lastnost %1 elementa %2 mora imeti vrednost %3 + + + + + %1 attribute of %2 element must have a value of %3 or %4 + lastnost %1 elementa %2 mora imeti vrednost %3 ali %4 + + + + + + + + + + + + + + + + + %1 element must not have %2 and %3 attribute together + element %1 hkrati ne sme imeti lastnosti %2 in %3 + + + + + content of %1 attribute of %2 element must not be from namespace %3 + vsebina lastnosti %1 elementa %2 ne sme biti iz imenskega prostora %3 + + + + + %1 attribute of %2 element must not be %3 + lastnost %1 elementa %2 ne sme biti %3 + + + + %1 attribute of %2 element must have the value %3 because the %4 attribute is set + + + + + specifying use='prohibited' inside an attribute group has no effect + + + + + %1 element must have either %2 or %3 attribute + element %1 mora imeti lastnost %2 ali %3 + + + + %1 element must have either %2 attribute or %3 or %4 as child element + + + + + %1 element requires either %2 or %3 attribute + element %1 potrebuje vsaj lastnost %2 ali %3 + + + + text or entity references not allowed inside %1 element + + + + + + %1 attribute of %2 element must contain %3, %4 or a list of URIs + + + + + %1 element is not allowed in this context + element %1 v tem kontekstu ni dovoljen + + + + %1 attribute of %2 element has larger value than %3 attribute + + + + + prefix of qualified name %1 is not defined + + + + + + %1 attribute of %2 element must either contain %3 or the other values + + + + + component with id %1 has been defined previously + komponenta z ID-jem %1 je Ĺľe bila definirana + + + + element %1 already defined + element %1 je Ĺľe definiran + + + + attribute %1 already defined + lastnost %1 je Ĺľe definirana + + + + type %1 already defined + vrsta %1 je Ĺľe definirana + + + + attribute group %1 already defined + skupina lastnosti %1 je Ĺľe definirana + + + + element group %1 already defined + skupina elementov %1 je Ĺľe definirana + + + + notation %1 already defined + zapis %1 je Ĺľe definiran + + + + identity constraint %1 already defined + + + + + duplicated facets in simple type %1 + + + + + %1 references unknown %2 or %3 element %4 + + + + + %1 references identity constraint %2 that is no %3 or %4 element + + + + + %1 has a different number of fields from the identity constraint %2 that it references + + + + + base type %1 of %2 element cannot be resolved + + + + + item type %1 of %2 element cannot be resolved + + + + + member type %1 of %2 element cannot be resolved + + + + + + + type %1 of %2 element cannot be resolved + + + + + base type %1 of complex type cannot be resolved + + + + + %1 cannot have complex base type that has a %2 + + + + + content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type + + + + + complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model + + + + + type of %1 element must be a simple type, %2 is not + vrsta elementa %1 mora biti preprosta, %2 to ni + + + + substitution group %1 of %2 element cannot be resolved + + + + + substitution group %1 has circular definition + + + + + + duplicated element names %1 in %2 element + podvojeni imeni elementov %1 v elementu %2 + + + + + + + reference %1 of %2 element cannot be resolved + + + + + circular group reference for %1 + + + + + %1 element is not allowed in this scope + element %1 v tem obsegu ni dovoljen + + + + %1 element cannot have %2 attribute with value other than %3 + + + + + %1 element cannot have %2 attribute with value other than %3 or %4 + + + + + %1 or %2 attribute of reference %3 does not match with the attribute declaration %4 + + + + + attribute group %1 has circular reference + + + + + %1 attribute in %2 must have %3 use like in base type %4 + + + + + attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2 + + + + + %1 has attribute wildcard but its base type %2 has not + + + + + union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible + + + + + enumeration facet contains invalid content: {%1} is not a value of type %2 + + + + + namespace prefix of qualified name %1 is not defined + + + + + + %1 element %2 is not a valid restriction of the %3 element it redefines: %4 + + + + + + + %1 is not valid according to %2 + %1 glede na %2 ni veljaven + + + + string content does not match the length facet + + + + + string content does not match the minLength facet + + + + + string content does not match the maxLength facet + + + + + string content does not match pattern facet + + + + + string content is not listed in the enumeration facet + + + + + signed integer content does not match the maxInclusive facet + + + + + signed integer content does not match the maxExclusive facet + + + + + signed integer content does not match the minInclusive facet + + + + + signed integer content does not match the minExclusive facet + + + + + signed integer content is not listed in the enumeration facet + + + + + signed integer content does not match pattern facet + + + + + signed integer content does not match in the totalDigits facet + + + + + unsigned integer content does not match the maxInclusive facet + + + + + unsigned integer content does not match the maxExclusive facet + + + + + unsigned integer content does not match the minInclusive facet + + + + + unsigned integer content does not match the minExclusive facet + + + + + unsigned integer content is not listed in the enumeration facet + + + + + unsigned integer content does not match pattern facet + + + + + unsigned integer content does not match in the totalDigits facet + + + + + double content does not match the maxInclusive facet + + + + + double content does not match the maxExclusive facet + + + + + double content does not match the minInclusive facet + + + + + double content does not match the minExclusive facet + + + + + double content is not listed in the enumeration facet + + + + + double content does not match pattern facet + + + + + decimal content does not match in the fractionDigits facet + + + + + decimal content does not match in the totalDigits facet + + + + + date time content does not match the maxInclusive facet + + + + + date time content does not match the maxExclusive facet + + + + + date time content does not match the minInclusive facet + + + + + date time content does not match the minExclusive facet + + + + + date time content is not listed in the enumeration facet + + + + + date time content does not match pattern facet + + + + + duration content does not match the maxInclusive facet + + + + + duration content does not match the maxExclusive facet + + + + + duration content does not match the minInclusive facet + + + + + duration content does not match the minExclusive facet + + + + + duration content is not listed in the enumeration facet + + + + + duration content does not match pattern facet + + + + + boolean content does not match pattern facet + + + + + binary content does not match the length facet + + + + + binary content does not match the minLength facet + + + + + binary content does not match the maxLength facet + + + + + binary content is not listed in the enumeration facet + + + + + invalid QName content: %1 + neveljavna vsebina QName: %1 + + + + QName content is not listed in the enumeration facet + + + + + QName content does not match pattern facet + + + + + notation content is not listed in the enumeration facet + + + + + list content does not match length facet + + + + + list content does not match minLength facet + + + + + list content does not match maxLength facet + + + + + list content is not listed in the enumeration facet + + + + + list content does not match pattern facet + + + + + union content is not listed in the enumeration facet + + + + + union content does not match pattern facet + + + + + data of type %1 are not allowed to be empty + podatki vrste %1 ne smejo biti prazni + + + + element %1 is missing child element + elementu %1 manjka podelement + + + + there is one IDREF value with no corresponding ID: %1 + + + + + loaded schema file is invalid + + + + + %1 contains invalid data + %1 vsebuje neveljavne podatke + + + + xsi:schemaLocation namespace %1 has already appeared earlier in the instance document + + + + + xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute + + + + + no schema defined for validation + + + + + no definition for element %1 available + definicija za element %1 ni na voljo + + + + + + specified type %1 is not known to the schema + + + + + element %1 is not defined in this scope + element %1 v tem obsegu ni definiran + + + + declaration for element %1 does not exist + deklaracija elementa %1 ne obstaja + + + + element %1 contains invalid content + element %1 vsebuje neveljavno vsebino + + + + element %1 is declared as abstract + element %1 je deklariran kot abstrakten + + + + element %1 is not nillable + + + + + attribute %1 contains invalid data: %2 + + + + + element contains content although it is nillable + + + + + fixed value constrained not allowed if element is nillable + + + + + specified type %1 is not validly substitutable with element type %2 + + + + + complex type %1 is not allowed to be abstract + kompleksna vrsta %1 ne sme biti abstraktna + + + + element %1 contains not allowed attributes + element %1 vsebuje nedovoljene lastnosti + + + + + element %1 contains not allowed child element + element %1 vsebuje nedovoljen podelement + + + + + content of element %1 does not match its type definition: %2 + vsebina elementa %1 ne ustreza zanj doloÄŤeni vrsti: %2 + + + + + + content of element %1 does not match defined value constraint + + + + + element %1 contains not allowed child content + element %1 vsebuje nedovoljeno vsebino v podelementih + + + + element %1 contains not allowed text content + element %1 vsebuje nedovoljeno besedilno vsebino + + + + element %1 can not contain other elements, as it has a fixed content + element %1 ne more vsebovati drugih elementov, ker ima fiksno vsebino + + + + element %1 is missing required attribute %2 + elementu %1 manjka obvezna lastnost %2 + + + + attribute %1 does not match the attribute wildcard + + + + + declaration for attribute %1 does not exist + deklaracija lastnosti %1 ne obstaja + + + + element %1 contains two attributes of type %2 + element %1 vsebuje dve lastnosti vrste %2 + + + + attribute %1 contains invalid content + lastnost %1 vsebuje neveljavno vsebino + + + + element %1 contains unknown attribute %2 + element %1 vsebuje neznano lastnost %2 + + + + + content of attribute %1 does not match its type definition: %2 + + + + + + content of attribute %1 does not match defined value constraint + + + + + non-unique value found for constraint %1 + + + + + key constraint %1 contains absent fields + + + + + key constraint %1 contains references nillable element %2 + + + + + no referenced value found for key reference %1 + + + + + more than one value found for field %1 + za polje %1 je bila najdena veÄŤ kot ena vrednost + + + + field %1 has no simple type + polje %1 nima preproste vrste + + + + ID value '%1' is not unique + Vrednost ID »%1« ni edinstvena + + + + '%1' attribute contains invalid QName content: %2 + Lastnost »%1« vsebuje neveljavno vsebino QName: %2 + + + diff --git a/translations/translations.pri b/translations/translations.pri index 8ddf01b..fae0f7e 100644 --- a/translations/translations.pri +++ b/translations/translations.pri @@ -21,7 +21,7 @@ LRELEASE = $$fixPath($$QT_BUILD_TREE/bin/lrelease) ###### Qt Libraries -QT_TS = de fr zh_CN untranslated ar es iw ja_JP pl pt ru sk sv uk zh_TW da +QT_TS = de fr zh_CN untranslated ar es iw ja_JP pl pt ru sk sl sv uk zh_TW da ts-qt.commands = (cd $$QT_SOURCE_TREE/src && $$LUPDATE \ -I../include -I../include/Qt \ -- cgit v0.12 From c97b576a184a6ad57bf6bf043fa8b4b0be046730 Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Tue, 29 Sep 2009 17:38:08 +0200 Subject: mark test as expected failure only when JIT is enabled With the interpreter it works. --- tests/auto/qscriptvalue/tst_qscriptvalue.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/auto/qscriptvalue/tst_qscriptvalue.cpp b/tests/auto/qscriptvalue/tst_qscriptvalue.cpp index 6792ebf..2148980 100644 --- a/tests/auto/qscriptvalue/tst_qscriptvalue.cpp +++ b/tests/auto/qscriptvalue/tst_qscriptvalue.cpp @@ -51,6 +51,10 @@ //TESTED_CLASS= //TESTED_FILES= +QT_BEGIN_NAMESPACE +extern bool qt_script_isJITEnabled(); +QT_END_NAMESPACE + class tst_QScriptValue : public QObject { Q_OBJECT @@ -2886,7 +2890,8 @@ void tst_QScriptValue::equals() { QScriptValue ret = compareFun.call(QScriptValue(), QScriptValueList() << qobj1 << qobj2); QVERIFY(ret.isBool()); - QEXPECT_FAIL("", "In JSC back-end, == on QObject wrappers doesn't work", Continue); + if (QT_PREPEND_NAMESPACE(qt_script_isJITEnabled())) + QEXPECT_FAIL("", "With JIT enabled, == on QObject wrappers doesn't work", Continue); QVERIFY(ret.toBool()); ret = compareFun.call(QScriptValue(), QScriptValueList() << qobj1 << qobj3); QVERIFY(ret.isBool()); @@ -2906,7 +2911,8 @@ void tst_QScriptValue::equals() { QScriptValue ret = compareFun.call(QScriptValue(), QScriptValueList() << var1 << var2); QVERIFY(ret.isBool()); - QEXPECT_FAIL("", "In JSC back-end, == on QVariant wrappers doesn't work", Continue); + if (QT_PREPEND_NAMESPACE(qt_script_isJITEnabled())) + QEXPECT_FAIL("", "With JIT enabled, == on QVariant wrappers doesn't work", Continue); QVERIFY(ret.toBool()); } } -- cgit v0.12 From dbe294cdf383d8c8c0da21730be155c5291541d8 Mon Sep 17 00:00:00 2001 From: Jocelyn Turcotte Date: Tue, 29 Sep 2009 18:00:40 +0200 Subject: Adds QUrl::fromUserInput, gathered from QWebView::guessUrlFromString. Reviewed-by: Thiago Macieira --- src/corelib/io/qurl.cpp | 75 ++++++++++++++++++++++++++++++++++++++++++++ src/corelib/io/qurl.h | 2 ++ tests/auto/qurl/tst_qurl.cpp | 65 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 142 insertions(+) diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp index face923..c9a4cf1 100644 --- a/src/corelib/io/qurl.cpp +++ b/src/corelib/io/qurl.cpp @@ -172,6 +172,8 @@ #include "private/qunicodetables_p.h" #include "qatomic.h" #include "qbytearray.h" +#include "qdir.h" +#include "qfile.h" #include "qlist.h" #ifndef QT_NO_REGEXP #include "qregexp.h" @@ -5547,6 +5549,79 @@ QUrl QUrl::fromEncoded(const QByteArray &input, ParsingMode parsingMode) } /*! + Returns a valid URL from a user supplied \a userInput string if one can be + deducted. In the case that is not possible, an invalid QUrl() is returned. + + \since 4.6 + + Most applications that can browse the web, allow the user to input a URL + in the form of a plain string. This string can be manually typed into + a location bar, obtained from the clipboard, or passed in via command + line arguments. + + When the string is not already a valid URL, a best guess is performed, + making various web related assumptions. + + In the case the string corresponds to a valid file path on the system, + a file:// URL is constructed, using QUrl::fromLocalFile(). + + If that is not the case, an attempt is made to turn the string into a + http:// or ftp:// URL. The latter in the case the string starts with + 'ftp'. The result is then passed through QUrl's tolerant parser, and + in the case or success, a valid QUrl is returned, or else a QUrl(). + + \section1 Examples: + + \list + \o qt.nokia.com becomes http://qt.nokia.com + \o ftp.qt.nokia.com becomes ftp://ftp.qt.nokia.com + \o localhost becomes http://localhost + \o /home/user/test.html becomes file:///home/user/test.html (if exists) + \endlist + + \section2 Tips to avoid erroneous character conversion when dealing with + URLs and strings: + + \list + \o When creating an URL QString from a QByteArray or a char*, always use + QString::fromUtf8(). + \o Favor the use of QUrl::fromEncoded() and QUrl::toEncoded() instead of + QUrl(string) and QUrl::toString() when converting QUrl to/from string. + \endlist +*/ +QUrl QUrl::fromUserInput(const QString &userInput) +{ + QString trimmedString = userInput.trimmed(); + + // Absolute files + if (QDir::isAbsolutePath(trimmedString)) + return QUrl::fromLocalFile(trimmedString); + + // Check the most common case of a valid url with scheme and host first + QUrl url = QUrl::fromEncoded(trimmedString.toUtf8(), QUrl::TolerantMode); + if (url.isValid() && !url.scheme().isEmpty() && !url.host().isEmpty()) + return url; + + // If the string is missing the scheme or the scheme is not valid, prepend a scheme + QString scheme = url.scheme(); + if (scheme.isEmpty() || scheme.contains(QLatin1Char('.')) || scheme == QLatin1String("localhost")) { + // Do not do anything for strings such as "foo", only "foo.com" + int dotIndex = trimmedString.indexOf(QLatin1Char('.')); + if (dotIndex != -1 || trimmedString.startsWith(QLatin1String("localhost"))) { + const QString hostscheme = trimmedString.left(dotIndex).toLower(); + QByteArray scheme = (hostscheme == QLatin1String("ftp")) ? "ftp" : "http"; + trimmedString = QLatin1String(scheme) + QLatin1String("://") + trimmedString; + } + url = QUrl::fromEncoded(trimmedString.toUtf8(), QUrl::TolerantMode); + } + + if (url.isValid()) + return url; + + return QUrl(); +} + +/*! Returns a decoded copy of \a input. \a input is first decoded from percent encoding, then converted from UTF-8 to unicode. */ diff --git a/src/corelib/io/qurl.h b/src/corelib/io/qurl.h index b00074a..f76d345 100644 --- a/src/corelib/io/qurl.h +++ b/src/corelib/io/qurl.h @@ -189,6 +189,8 @@ public: static QUrl fromEncoded(const QByteArray &url, ParsingMode mode); // ### Qt 5: merge the two fromEncoded() functions, with mode = TolerantMode + static QUrl fromUserInput(const QString &userInput); + void detach(); bool isDetached() const; diff --git a/tests/auto/qurl/tst_qurl.cpp b/tests/auto/qurl/tst_qurl.cpp index 8899176..fb3cf0e 100644 --- a/tests/auto/qurl/tst_qurl.cpp +++ b/tests/auto/qurl/tst_qurl.cpp @@ -186,6 +186,8 @@ private slots: void resolvedWithAbsoluteSchemes_data() const; void binaryData_data(); void binaryData(); + void fromUserInput_data(); + void fromUserInput(); void task_199967(); void task_240612(); @@ -3637,6 +3639,69 @@ void tst_QUrl::binaryData() QCOMPARE(url2, url); } +void tst_QUrl::fromUserInput_data() +{ + QTest::addColumn("string"); + QTest::addColumn("url"); + + // Null + QTest::newRow("null") << QString() << QUrl(); + + // File + QDirIterator it(QDir::homePath()); + QString fileString; + int c = 0; + while (it.hasNext()) { + it.next(); + QTest::newRow(QString("file-%1").arg(c++).toLatin1()) << it.filePath() << QUrl::fromLocalFile(it.filePath()); + } + + // basic latin1 + QTest::newRow("unicode-0") << QString::fromUtf8("\xC3\xA5.com/") << QUrl::fromEncoded(QString::fromUtf8("http://\xC3\xA5.com/").toUtf8(), QUrl::TolerantMode); + // unicode + QTest::newRow("unicode-1") << QString::fromUtf8("\xCE\xBB.com/") << QUrl::fromEncoded(QString::fromUtf8("http://\xCE\xBB.com/").toUtf8(), QUrl::TolerantMode); + + // no scheme + QTest::newRow("add scheme-0") << "webkit.org" << QUrl("http://webkit.org"); + QTest::newRow("add scheme-1") << "www.webkit.org" << QUrl("http://www.webkit.org"); + QTest::newRow("add scheme-2") << "ftp.webkit.org" << QUrl("ftp://ftp.webkit.org"); + QTest::newRow("add scheme-3") << "webkit" << QUrl("webkit"); + + // QUrl's tolerant parser should already handle this + QTest::newRow("not-encoded-0") << "http://webkit.org/test page.html" << QUrl("http://webkit.org/test%20page.html"); + + // Make sure the :80, i.e. port doesn't screw anything up + QUrl portUrl("http://webkit.org"); + portUrl.setPort(80); + QTest::newRow("port-0") << "webkit.org:80" << portUrl; + QTest::newRow("port-1") << "http://webkit.org:80" << portUrl; + + // mailto doesn't have a ://, but is valid + QUrl mailto("somebody@somewhere.net"); + mailto.setScheme("mailto"); + QTest::newRow("mailto") << "mailto:somebody@somewhere.net" << mailto; + + // misc + QTest::newRow("localhost-0") << "localhost" << QUrl("http://localhost"); + QTest::newRow("localhost-1") << "localhost:80" << QUrl("http://localhost:80"); + QTest::newRow("spaces-0") << " http://webkit.org/test page.html " << QUrl("http://webkit.org/test%20page.html"); + QTest::newRow("trash-0") << "webkit.org/test?someData=42%&someOtherData=abcde#anchor" << QUrl::fromEncoded("http://webkit.org/test?someData=42%25&someOtherData=abcde#anchor"); + + // FYI: The scheme in the resulting url user + QUrl authUrl("user:pass@domain.com"); + QTest::newRow("misc-1") << "user:pass@domain.com" << authUrl; +} + +// public static QUrl guessUrlFromString(QString const& string) +void tst_QUrl::fromUserInput() +{ + QFETCH(QString, string); + QFETCH(QUrl, url); + + QUrl guessedUrl = QUrl::fromUserInput(string); + QCOMPARE(guessedUrl, url); +} + void tst_QUrl::task_199967() { { -- cgit v0.12 From d4a8d1e3e41d5b064a5248d94680aa741ea6166a Mon Sep 17 00:00:00 2001 From: Aleksandar Sasha Babic Date: Tue, 29 Sep 2009 09:08:44 +0200 Subject: Restoring cases that have been lost. Due to bad merge some of the cases were removed. They have been restored now. Some adaptation for Symbian platform was needed as well. We must not forget that local socket implementation is based on RSocket, and therefore similar to having TCP_SOCKET as basckend. So, in soe places it we had to give some time for events to propagate by introducing qTest::wait() lines. --- tests/auto/qlocalsocket/lackey/lackey.pro | 2 +- tests/auto/qlocalsocket/tst_qlocalsocket.cpp | 114 ++++++++++++++++++++++++++- 2 files changed, 113 insertions(+), 3 deletions(-) diff --git a/tests/auto/qlocalsocket/lackey/lackey.pro b/tests/auto/qlocalsocket/lackey/lackey.pro index efb2f52..8182394 100644 --- a/tests/auto/qlocalsocket/lackey/lackey.pro +++ b/tests/auto/qlocalsocket/lackey/lackey.pro @@ -1,4 +1,4 @@ -include(../src/src.pri) +#include(../src/src.pri) QT = core script network diff --git a/tests/auto/qlocalsocket/tst_qlocalsocket.cpp b/tests/auto/qlocalsocket/tst_qlocalsocket.cpp index 1180d4d..be39d00 100644 --- a/tests/auto/qlocalsocket/tst_qlocalsocket.cpp +++ b/tests/auto/qlocalsocket/tst_qlocalsocket.cpp @@ -87,6 +87,8 @@ private slots: void sendData_data(); void sendData(); + void readBufferOverflow(); + void fullPath(); void hitMaximumConnections_data(); @@ -102,13 +104,15 @@ private slots: void longPath(); void waitForDisconnect(); + void waitForDisconnectByServer(); void removeServer(); void recycleServer(); + void multiConnect(); + void writeOnlySocket(); void writeToClientAndDisconnect(); - void debug(); void bytesWrittenSignal(); @@ -151,7 +155,13 @@ public: LocalServer() : QLocalServer() { connect(this, SIGNAL(newConnection()), this, SLOT(slotNewConnection())); - }; + } + + bool listen(const QString &name) + { + removeServer(name); + return QLocalServer::listen(name); + } QList hits; @@ -553,6 +563,40 @@ void tst_QLocalSocket::sendData() QCOMPARE(spy.count(), (canListen ? 1 : 0)); } +void tst_QLocalSocket::readBufferOverflow() +{ + const int readBufferSize = 128; + const int dataBufferSize = readBufferSize * 2; + const QString serverName = QLatin1String("myPreciousTestServer"); + LocalServer server; + server.listen(serverName); + QVERIFY(server.isListening()); + + LocalSocket client; + client.setReadBufferSize(readBufferSize); + client.connectToServer(serverName); + + bool timedOut = true; + QVERIFY(server.waitForNewConnection(3000, &timedOut)); + QVERIFY(!timedOut); + + QCOMPARE(client.state(), QLocalSocket::ConnectedState); + QVERIFY(server.hasPendingConnections()); + + QLocalSocket* serverSocket = server.nextPendingConnection(); + char buffer[dataBufferSize]; + memset(buffer, 0, dataBufferSize); + serverSocket->write(buffer, dataBufferSize); + serverSocket->flush(); + + QVERIFY(client.waitForReadyRead()); + QCOMPARE(client.read(buffer, readBufferSize), qint64(readBufferSize)); +#if defined(QT_LOCALSOCKET_TCP) || defined(Q_OS_SYMBIAN) + QTest::qWait(250); +#endif + QCOMPARE(client.read(buffer, readBufferSize), qint64(readBufferSize)); +} + // QLocalSocket/Server can take a name or path, check that it works as expected void tst_QLocalSocket::fullPath() { @@ -833,6 +877,25 @@ void tst_QLocalSocket::waitForDisconnect() QVERIFY(timer.elapsed() < 2000); } +void tst_QLocalSocket::waitForDisconnectByServer() +{ + QString name = "tst_localsocket"; + LocalServer server; + QVERIFY(server.listen(name)); + LocalSocket socket; + QSignalSpy spy(&socket, SIGNAL(disconnected())); + QVERIFY(spy.isValid()); + socket.connectToServer(name); + QVERIFY(socket.waitForConnected(3000)); + QVERIFY(server.waitForNewConnection(3000)); + QLocalSocket *serverSocket = server.nextPendingConnection(); + QVERIFY(serverSocket); + serverSocket->close(); + QVERIFY(serverSocket->state() == QLocalSocket::UnconnectedState); + QVERIFY(socket.waitForDisconnected(3000)); + QCOMPARE(spy.count(), 1); +} + void tst_QLocalSocket::removeServer() { // this is a hostile takeover, but recovering from a crash results in the same @@ -874,6 +937,53 @@ void tst_QLocalSocket::recycleServer() QVERIFY(server.nextPendingConnection() != 0); } +void tst_QLocalSocket::multiConnect() +{ + QLocalServer server; + QLocalSocket client1; + QLocalSocket client2; + QLocalSocket client3; + + QVERIFY(server.listen("multiconnect")); + + client1.connectToServer("multiconnect"); + client2.connectToServer("multiconnect"); + client3.connectToServer("multiconnect"); + + QVERIFY(client1.waitForConnected(201)); + QVERIFY(client2.waitForConnected(202)); + QVERIFY(client3.waitForConnected(203)); + + QVERIFY(server.waitForNewConnection(201)); + QVERIFY(server.nextPendingConnection() != 0); + QVERIFY(server.waitForNewConnection(202)); + QVERIFY(server.nextPendingConnection() != 0); + QVERIFY(server.waitForNewConnection(203)); + QVERIFY(server.nextPendingConnection() != 0); +} + +void tst_QLocalSocket::writeOnlySocket() +{ + QLocalServer server; +#ifdef Q_OS_SYMBIAN + unlink("writeOnlySocket"); +#endif + QVERIFY(server.listen("writeOnlySocket")); + + QLocalSocket client; + client.connectToServer("writeOnlySocket", QIODevice::WriteOnly); + QVERIFY(client.waitForConnected()); +#if defined(Q_OS_SYMBIAN) + QTest::qWait(250); +#endif + QVERIFY(server.waitForNewConnection()); + QLocalSocket* serverSocket = server.nextPendingConnection(); + QVERIFY(serverSocket); + + QCOMPARE(client.bytesAvailable(), qint64(0)); + QCOMPARE(client.state(), QLocalSocket::ConnectedState); +} + void tst_QLocalSocket::writeToClientAndDisconnect() { #ifdef Q_OS_SYMBIAN -- cgit v0.12 From b0c5873f1b34fb67be5c552dcbee9c0fb72bb74e Mon Sep 17 00:00:00 2001 From: Aleksandar Sasha Babic Date: Tue, 29 Sep 2009 18:28:02 +0200 Subject: Skipping two test cases due to Open C bug. In Open C 1.6 release there is a bug in mmap(...) function. The bug has been reported. --- tests/auto/qnetworkdiskcache/tst_qnetworkdiskcache.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/auto/qnetworkdiskcache/tst_qnetworkdiskcache.cpp b/tests/auto/qnetworkdiskcache/tst_qnetworkdiskcache.cpp index 86a04d0..cc5104a 100644 --- a/tests/auto/qnetworkdiskcache/tst_qnetworkdiskcache.cpp +++ b/tests/auto/qnetworkdiskcache/tst_qnetworkdiskcache.cpp @@ -259,6 +259,9 @@ void tst_QNetworkDiskCache::data_data() // public QIODevice* data(QUrl const& url) void tst_QNetworkDiskCache::data() { +#ifdef Q_OS_SYMBIAN + QSKIP("Due to mmap(...) bug in Open C [Temtrack DEF142242]", SkipAll); +#endif QFETCH(QNetworkCacheMetaData, data); SubQNetworkDiskCache cache; QUrl url(EXAMPLE_URL); @@ -335,6 +338,9 @@ void tst_QNetworkDiskCache::setCacheDirectory() // public void updateMetaData(QNetworkCacheMetaData const& metaData) void tst_QNetworkDiskCache::updateMetaData() { +#ifdef Q_OS_SYMBIAN + QSKIP("Due to mmap(...) bug in Open C [Temtrack DEF142242]", SkipAll); +#endif QUrl url(EXAMPLE_URL); SubQNetworkDiskCache cache; cache.setupWithOne(url); -- cgit v0.12 From 315df20f0e2e79f1c42396d5bd6146484dcb95d3 Mon Sep 17 00:00:00 2001 From: Espen Riskedal Date: Tue, 29 Sep 2009 18:38:42 +0200 Subject: Fix compile of anomaly for S60 3.1 SDK It seems that for 3.1 we need to explicitly link with insock.dll as well Reviewed-by: Aleksandar Babic --- demos/embedded/anomaly/anomaly.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/embedded/anomaly/anomaly.pro b/demos/embedded/anomaly/anomaly.pro index 8fb1265..f7c11b6 100644 --- a/demos/embedded/anomaly/anomaly.pro +++ b/demos/embedded/anomaly/anomaly.pro @@ -24,7 +24,7 @@ RESOURCES += src/anomaly.qrc symbian { include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) HEADERS += $$QT_SOURCE_TREE/examples/network/ftp/sym_iap_util.h - LIBS += -lesock -lconnmon + LIBS += -lesock -linsock -lconnmon TARGET.CAPABILITY = NetworkServices TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 TARGET.UID3 = 0xA000CF71 -- cgit v0.12 From 2627469a875bff1bb1c753d18fbe5138873dc6c4 Mon Sep 17 00:00:00 2001 From: Anders Bakken Date: Tue, 29 Sep 2009 11:11:22 -0700 Subject: QString(" => QString::fromLatin1(" Prevent qWarning when building with QT_DIRECTFB_WARN_ON_RASTERFALLBACKS Reviewed-by: Donald Carr --- src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp index 043189e..a9ae72c 100644 --- a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp +++ b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp @@ -1249,7 +1249,7 @@ static void rasterFallbackWarn(const char *msg, const char *func, const device * dbg << dev << "of type" << dev->devType(); } - dbg << QString("transformationType 0x%1").arg(transformationType, 3, 16, QLatin1Char('0')) + dbg << QString::fromLatin1("transformationType 0x%1").arg(transformationType, 3, 16, QLatin1Char('0')) << "simplePen" << simplePen << "clipType" << clipType << "compositionModeStatus" << compositionModeStatus; -- cgit v0.12 From 47333d0dccfb39a05027536e5d10901cf8741788 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Tue, 29 Sep 2009 21:53:17 +0200 Subject: Added standard dialogs to keypad navigation test. QFileDialog::getOpenFileName(), QFileDialog::getSaveFileName(), QFileDialog::getExistingDirectory(), etc... Reviewed-By: TrustMe --- tests/manual/keypadnavigation/keypadnavigation.ui | 105 ++++++++++++++++++-- tests/manual/keypadnavigation/main.cpp | 114 ++++++++++++++++++---- 2 files changed, 191 insertions(+), 28 deletions(-) diff --git a/tests/manual/keypadnavigation/keypadnavigation.ui b/tests/manual/keypadnavigation/keypadnavigation.ui index e0db662..6b11ae0 100644 --- a/tests/manual/keypadnavigation/keypadnavigation.ui +++ b/tests/manual/keypadnavigation/keypadnavigation.ui @@ -1058,6 +1058,79 @@ As a reward you can try out the QDial, below. + + + + + + QFileDialog::getOpenFileName() + + + + + + + QFileDialog::getSaveFileName() + + + + + + + QFileDialog::getExistingDirectory() + + + + + + + QColorDialog::getColor() + + + + + + + QFontDialog::getFont() + + + + + + + QMessageBox::question() + + + + + + + QMessageBox::aboutQt() + + + + + + + QInputDialog::getItem() + + + + + + + Qt::Vertical + + + + 20 + 104 + + + + + + @@ -1080,6 +1153,7 @@ As a reward you can try out the QDial, below. + @@ -1144,14 +1218,22 @@ As a reward you can try out the QDial, below. CursorForceVisible + + + Dialogs + + + m_actionLayoutDialogs + + - lineEdit - horizontalSlider - lineEdit_4 - horizontalSlider_2 - dateEdit + m_buttonGetOpenFileName + m_buttonGetSaveFileName + m_buttonGetExistingDirectory + m_buttonGetColor + m_buttonGetFont comboBox plainTextEdit pushButton @@ -1169,7 +1251,6 @@ As a reward you can try out the QDial, below. toolButton_3 horizontalSlider_6 horizontalSlider_5 - scrollArea_3 lineEdit_13 toolButton_31 lineEdit_14 @@ -1202,7 +1283,17 @@ As a reward you can try out the QDial, below. toolButton_16 tabWidget scrollArea_2 - scrollArea + horizontalSlider_4 + horizontalSlider_3 + tabWidget_2 + toolButton_2 + toolButton_7 + toolButton_13 + lineEdit_4 + lineEdit + horizontalSlider + horizontalSlider_2 + dateEdit diff --git a/tests/manual/keypadnavigation/main.cpp b/tests/manual/keypadnavigation/main.cpp index 0e4bf31..d1cc8a7 100644 --- a/tests/manual/keypadnavigation/main.cpp +++ b/tests/manual/keypadnavigation/main.cpp @@ -53,29 +53,57 @@ public: { ui->setupUi(this); - connect(ui->m_actionLayoutVerticalSimple, SIGNAL(triggered()), &m_layoutSignalMapper, SLOT(map())); - m_layoutSignalMapper.setMapping(ui->m_actionLayoutVerticalSimple, ui->m_pageVerticalSimple); - connect(ui->m_actionLayoutVerticalComplex, SIGNAL(triggered()), &m_layoutSignalMapper, SLOT(map())); - m_layoutSignalMapper.setMapping(ui->m_actionLayoutVerticalComplex, ui->m_pageVerticalComplex); - connect(ui->m_actionLayoutTwoDimensional, SIGNAL(triggered()), &m_layoutSignalMapper, SLOT(map())); - m_layoutSignalMapper.setMapping(ui->m_actionLayoutTwoDimensional, ui->m_pageTwoDimensional); - connect(ui->m_actionLayoutSliderMagic, SIGNAL(triggered()), &m_layoutSignalMapper, SLOT(map())); - m_layoutSignalMapper.setMapping(ui->m_actionLayoutSliderMagic, ui->m_pageSliderMagic); - connect(ui->m_actionLayoutChaos, SIGNAL(triggered()), &m_layoutSignalMapper, SLOT(map())); - m_layoutSignalMapper.setMapping(ui->m_actionLayoutChaos, ui->m_pageChaos); + const struct { + QObject *action; + QWidget *page; + } layoutMappings[] = { + {ui->m_actionLayoutVerticalSimple, ui->m_pageVerticalSimple}, + {ui->m_actionLayoutVerticalComplex, ui->m_pageVerticalComplex}, + {ui->m_actionLayoutTwoDimensional, ui->m_pageTwoDimensional}, + {ui->m_actionLayoutSliderMagic, ui->m_pageSliderMagic}, + {ui->m_actionLayoutChaos, ui->m_pageChaos}, + {ui->m_actionLayoutDialogs, ui->m_pageDialogs} + }; + for (int i = 0; i < int(sizeof layoutMappings / sizeof layoutMappings[0]); ++i) { + connect(layoutMappings[i].action, SIGNAL(triggered()), &m_layoutSignalMapper, SLOT(map())); + m_layoutSignalMapper.setMapping(layoutMappings[i].action, layoutMappings[i].page); + } connect(&m_layoutSignalMapper, SIGNAL(mapped(QWidget*)), ui->m_stackWidget, SLOT(setCurrentWidget(QWidget*))); - connect(ui->m_actionModeNone, SIGNAL(triggered()), &m_modeSignalMapper, SLOT(map())); - m_modeSignalMapper.setMapping(ui->m_actionModeNone, int(Qt::NavigationModeNone)); - connect(ui->m_actionModeKeypadTabOrder, SIGNAL(triggered()), &m_modeSignalMapper, SLOT(map())); - m_modeSignalMapper.setMapping(ui->m_actionModeKeypadTabOrder, int(Qt::NavigationModeKeypadTabOrder)); - connect(ui->m_actionModeKeypadDirectional, SIGNAL(triggered()), &m_modeSignalMapper, SLOT(map())); - m_modeSignalMapper.setMapping(ui->m_actionModeKeypadDirectional, int(Qt::NavigationModeKeypadDirectional)); - connect(ui->m_actionModeCursorAuto, SIGNAL(triggered()), &m_modeSignalMapper, SLOT(map())); - m_modeSignalMapper.setMapping(ui->m_actionModeCursorAuto, int(Qt::NavigationModeCursorAuto)); - connect(ui->m_actionModeCursorForceVisible, SIGNAL(triggered()), &m_modeSignalMapper, SLOT(map())); - m_modeSignalMapper.setMapping(ui->m_actionModeCursorForceVisible, int(Qt::NavigationModeCursorForceVisible)); + const struct { + QObject *action; + Qt::NavigationMode mode; + } modeMappings[] = { + {ui->m_actionModeNone, Qt::NavigationModeNone}, + {ui->m_actionModeKeypadTabOrder, Qt::NavigationModeKeypadTabOrder}, + {ui->m_actionModeKeypadDirectional, Qt::NavigationModeKeypadDirectional}, + {ui->m_actionModeCursorAuto, Qt::NavigationModeCursorAuto}, + {ui->m_actionModeCursorForceVisible, Qt::NavigationModeCursorForceVisible} + }; + for (int i = 0; i < int(sizeof modeMappings / sizeof modeMappings[0]); ++i) { + connect(modeMappings[i].action, SIGNAL(triggered()), &m_modeSignalMapper, SLOT(map())); + m_modeSignalMapper.setMapping(modeMappings[i].action, int(modeMappings[i].mode)); + } connect(&m_modeSignalMapper, SIGNAL(mapped(int)), SLOT(setNavigationMode(int))); + + const struct { + QObject *button; + Dialog dialog; + } openDialogMappings[] = { + {ui->m_buttonGetOpenFileName, DialogGetOpenFileName}, + {ui->m_buttonGetSaveFileName, DialogGetSaveFileName}, + {ui->m_buttonGetExistingDirectory, DialogGetExistingDirectory}, + {ui->m_buttonGetColor, DialogGetColor}, + {ui->m_buttonGetFont, DialogGetFont}, + {ui->m_buttonQuestion, DialogQuestion}, + {ui->m_buttonAboutQt, DialogAboutQt}, + {ui->m_buttonGetItem, DialogGetItem} + }; + for (int i = 0; i < int(sizeof openDialogMappings / sizeof openDialogMappings[0]); ++i) { + connect(openDialogMappings[i].button, SIGNAL(clicked()), &m_dialogSignalMapper, SLOT(map())); + m_dialogSignalMapper.setMapping(openDialogMappings[i].button, int(openDialogMappings[i].dialog)); + } + connect(&m_dialogSignalMapper, SIGNAL(mapped(int)), SLOT(openDialog(int))); } ~KeypadNavigation() @@ -83,16 +111,60 @@ public: delete ui; } -public slots: +protected slots: void setNavigationMode(int mode) { QApplication::setNavigationMode(Qt::NavigationMode(mode)); } + void openDialog(int dialog) + { + switch (Dialog(dialog)) { + case DialogGetOpenFileName: + QFileDialog::getOpenFileName(this, QLatin1String("getOpenFileName")); + break; + case DialogGetSaveFileName: + QFileDialog::getSaveFileName(this, QLatin1String("getSaveFileName")); + break; + case DialogGetExistingDirectory: + QFileDialog::getExistingDirectory(this, QLatin1String("getExistingDirectory")); + break; + case DialogGetColor: + QColorDialog::getColor(QColor(Qt::green), this, QLatin1String("getColor")); + break; + case DialogGetFont: + QFontDialog::getFont(0, this); + break; + case DialogQuestion: + QMessageBox::question(this, QLatin1String("question"), QLatin1String("żHola, que tal?")); + break; + case DialogAboutQt: + QMessageBox::aboutQt(this); + break; + case DialogGetItem: + QInputDialog::getItem(this, QLatin1String("getItem"), QLatin1String("Choose a color"), QColor::colorNames()); + break; + default: + break; + } + } + private: + enum Dialog { + DialogGetOpenFileName, + DialogGetSaveFileName, + DialogGetExistingDirectory, + DialogGetColor, + DialogGetFont, + DialogQuestion, + DialogAboutQt, + DialogGetItem + }; + Ui_KeypadNavigation *ui; QSignalMapper m_layoutSignalMapper; QSignalMapper m_modeSignalMapper; + QSignalMapper m_dialogSignalMapper; }; int main(int argc, char *argv[]) -- cgit v0.12 From dd78eeb6aa6fa9da45c72e2c4e2cb0d80bb55f7f Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Tue, 29 Sep 2009 22:04:47 +0200 Subject: Shorter button texts. They do not fit into landscape smallscreen. Reviewed-By: TrustMe --- tests/manual/keypadnavigation/keypadnavigation.ui | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/manual/keypadnavigation/keypadnavigation.ui b/tests/manual/keypadnavigation/keypadnavigation.ui index 6b11ae0..039889b 100644 --- a/tests/manual/keypadnavigation/keypadnavigation.ui +++ b/tests/manual/keypadnavigation/keypadnavigation.ui @@ -1063,56 +1063,56 @@ As a reward you can try out the QDial, below. - QFileDialog::getOpenFileName() + getOpenFileName() - QFileDialog::getSaveFileName() + getSaveFileName() - QFileDialog::getExistingDirectory() + getExistingDirectory() - QColorDialog::getColor() + getColor() - QFontDialog::getFont() + getFont() - QMessageBox::question() + question() - QMessageBox::aboutQt() + aboutQt() - QInputDialog::getItem() + getItem() -- cgit v0.12 From 8c3bf71e6fcbcfb21b9574e25cfdb00614a0c68d Mon Sep 17 00:00:00 2001 From: Kurt Korbatits Date: Wed, 30 Sep 2009 08:05:28 +1000 Subject: Changed internal tr()'s to be QString::fromLatin1() in alsa builtin. Internal strings don't need translations, changed to use fromLatin1 instead. Reviewed-by:TrustMe --- src/multimedia/audio/qaudioinput_alsa_p.cpp | 24 ++++++++++++------------ src/multimedia/audio/qaudiooutput_alsa_p.cpp | 20 ++++++++++---------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/multimedia/audio/qaudioinput_alsa_p.cpp b/src/multimedia/audio/qaudioinput_alsa_p.cpp index f36ffc8..0192468 100644 --- a/src/multimedia/audio/qaudioinput_alsa_p.cpp +++ b/src/multimedia/audio/qaudioinput_alsa_p.cpp @@ -283,69 +283,69 @@ bool QAudioInputPrivate::open() err = snd_pcm_hw_params_any( handle, hwparams ); if ( err < 0 ) { fatal = true; - errMessage = QString(tr("QAudioInput: snd_pcm_hw_params_any: err = %1")).arg(err); + errMessage = QString::fromLatin1("QAudioInput: snd_pcm_hw_params_any: err = %1").arg(err); } if ( !fatal ) { err = snd_pcm_hw_params_set_rate_resample( handle, hwparams, 1 ); if ( err < 0 ) { fatal = true; - errMessage = QString(tr("QAudioInput: snd_pcm_hw_params_set_rate_resample: err = %1")).arg(err); + errMessage = QString::fromLatin1("QAudioInput: snd_pcm_hw_params_set_rate_resample: err = %1").arg(err); } } if ( !fatal ) { err = snd_pcm_hw_params_set_access( handle, hwparams, access ); if ( err < 0 ) { fatal = true; - errMessage = QString(tr("QAudioInput: snd_pcm_hw_params_set_access: err = %1")).arg(err); + errMessage = QString::fromLatin1("QAudioInput: snd_pcm_hw_params_set_access: err = %1").arg(err); } } if ( !fatal ) { err = setFormat(); if ( err < 0 ) { fatal = true; - errMessage = QString(tr("QAudioInput: snd_pcm_hw_params_set_format: err = %1")).arg(err); + errMessage = QString::fromLatin1("QAudioInput: snd_pcm_hw_params_set_format: err = %1").arg(err); } } if ( !fatal ) { err = snd_pcm_hw_params_set_channels( handle, hwparams, (unsigned int)settings.channels() ); if ( err < 0 ) { fatal = true; - errMessage = QString(tr("QAudioInput: snd_pcm_hw_params_set_channels: err = %1")).arg(err); + errMessage = QString::fromLatin1("QAudioInput: snd_pcm_hw_params_set_channels: err = %1").arg(err); } } if ( !fatal ) { err = snd_pcm_hw_params_set_rate_near( handle, hwparams, &freakuency, 0 ); if ( err < 0 ) { fatal = true; - errMessage = QString(tr("QAudioInput: snd_pcm_hw_params_set_rate_near: err = %1")).arg(err); + errMessage = QString::fromLatin1("QAudioInput: snd_pcm_hw_params_set_rate_near: err = %1").arg(err); } } if ( !fatal ) { err = snd_pcm_hw_params_set_buffer_time_near(handle, hwparams, &buffer_time, &dir); if ( err < 0 ) { fatal = true; - errMessage = QString(tr("QAudioInput: snd_pcm_hw_params_set_buffer_time_near: err = %1")).arg(err); + errMessage = QString::fromLatin1("QAudioInput: snd_pcm_hw_params_set_buffer_time_near: err = %1").arg(err); } } if ( !fatal ) { err = snd_pcm_hw_params_set_period_time_near(handle, hwparams, &period_time, &dir); if ( err < 0 ) { fatal = true; - errMessage = QString(tr("QAudioInput: snd_pcm_hw_params_set_period_time_near: err = %1")).arg(err); + errMessage = QString::fromLatin1("QAudioInput: snd_pcm_hw_params_set_period_time_near: err = %1").arg(err); } } if ( !fatal ) { err = snd_pcm_hw_params_set_periods_near(handle, hwparams, &chunks, &dir); if ( err < 0 ) { fatal = true; - errMessage = QString(tr("QAudioInput: snd_pcm_hw_params_set_periods_near: err = %1")).arg(err); + errMessage = QString::fromLatin1("QAudioInput: snd_pcm_hw_params_set_periods_near: err = %1").arg(err); } } if ( !fatal ) { err = snd_pcm_hw_params(handle, hwparams); if ( err < 0 ) { fatal = true; - errMessage = QString(tr("QAudioInput: snd_pcm_hw_params: err = %1")).arg(err); + errMessage = QString::fromLatin1("QAudioInput: snd_pcm_hw_params: err = %1").arg(err); } } if( err < 0) { @@ -443,7 +443,7 @@ qint64 QAudioInputPrivate::read(char* data, qint64 len) if (readFrames >= 0) { err = snd_pcm_frames_to_bytes(handle, readFrames); #ifdef DEBUG_AUDIO - qDebug()<= 0) { err = snd_pcm_frames_to_bytes(audioDevice->handle, readFrames); #ifdef DEBUG_AUDIO - qDebug()< Date: Wed, 30 Sep 2009 08:37:09 +1000 Subject: Make QPF's implementation of alphaMapForGlyph() consistent. The QPF implementation of alphaMapForGlyph() was returning color values of RGBA = (a, a, a, 255) instead of (0, 0, 0, a), which was inconsistent with all the other font engines. This inconsistency caused some QPF-specific workarounds in the OpenGL and OpenVG paint engines. This change removes the workarounds and makes QPF generate the right colors from the start. Paint engines that ignore the color table or which don't use the alphaMapForGlyph() function (e.g. raster) are not affected. Reviewed-by: Paul --- src/gui/text/qfontengine_qpf.cpp | 4 ++-- src/gui/text/qfontengine_qws.cpp | 4 +++- src/opengl/qpaintengine_opengl.cpp | 16 ---------------- src/openvg/qpaintengine_vg.cpp | 14 -------------- 4 files changed, 5 insertions(+), 33 deletions(-) diff --git a/src/gui/text/qfontengine_qpf.cpp b/src/gui/text/qfontengine_qpf.cpp index 996e471..ef3f2ae 100644 --- a/src/gui/text/qfontengine_qpf.cpp +++ b/src/gui/text/qfontengine_qpf.cpp @@ -628,13 +628,13 @@ QImage QFontEngineQPF::alphaMapForGlyph(glyph_t g) { const Glyph *glyph = findGlyph(g); if (!glyph) - QImage(); + return QImage(); const uchar *bits = ((const uchar *) glyph) + sizeof(Glyph); QImage image(glyph->width, glyph->height, QImage::Format_Indexed8); for (int j=0; j<256; ++j) - image.setColor(j, 0xff000000 | j | (j<<8) | (j<<16)); + image.setColor(j, qRgba(0, 0, 0, j)); for (int i=0; iheight; ++i) { memcpy(image.scanLine(i), bits, glyph->bytesPerLine); diff --git a/src/gui/text/qfontengine_qws.cpp b/src/gui/text/qfontengine_qws.cpp index 888e1be..de8028c 100644 --- a/src/gui/text/qfontengine_qws.cpp +++ b/src/gui/text/qfontengine_qws.cpp @@ -528,10 +528,12 @@ QImage QFontEngineQPF1::alphaMapForGlyph(glyph_t g) QImage image; if (mono) { image = QImage((glyph->metrics->width+7)&~7, glyph->metrics->height, QImage::Format_Mono); + image.setColor(0, qRgba(0, 0, 0, 0)); + image.setColor(1, qRgba(0, 0, 0, 255)); } else { image = QImage(glyph->metrics->width, glyph->metrics->height, QImage::Format_Indexed8); for (int j=0; j<256; ++j) - image.setColor(j, 0xff000000 | j | (j<<8) | (j<<16)); + image.setColor(j, qRgba(0, 0, 0, j)); } for (int i=0; imetrics->height; ++i) { memcpy(image.scanLine(i), bits, glyph->metrics->linestep); diff --git a/src/opengl/qpaintengine_opengl.cpp b/src/opengl/qpaintengine_opengl.cpp index bd3883a..a904064 100644 --- a/src/opengl/qpaintengine_opengl.cpp +++ b/src/opengl/qpaintengine_opengl.cpp @@ -4791,22 +4791,6 @@ void QGLGlyphCache::cacheGlyphs(QGLContext *context, const QTextItemInt &ti, } QImage glyph_im(ti.fontEngine->alphaMapForGlyph(glyphs[i])); - - // The QPF implementation of alphaMapForGlyph() uses the color - // RGBA = (value, value, value, 255) instead of the color - // RGBA = (0, 0, 0, value) that the other font engines use. - // We modify the image colors to rectify this situation. - QFontEngine::Type type = ti.fontEngine->type(); - if (type == QFontEngine::QPF1 || type == QFontEngine::QPF2) { - if (glyph_im.format() == QImage::Format_Indexed8) { - for (int i = 0; i < 256; ++i) - glyph_im.setColor(i, qRgba(0, 0, 0, i)); - } else if (glyph_im.format() == QImage::Format_Mono) { - glyph_im.setColor(0, qRgba(0, 0, 0, 0)); - glyph_im.setColor(1, qRgba(0, 0, 0, 255)); - } - } - glyph_im = glyph_im.convertToFormat(QImage::Format_Indexed8); glyph_width = glyph_im.width(); Q_ASSERT(glyph_width >= 0); diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp index 3558c28..b129164 100644 --- a/src/openvg/qpaintengine_vg.cpp +++ b/src/openvg/qpaintengine_vg.cpp @@ -3023,20 +3023,6 @@ void QVGFontGlyphCache::cacheGlyphs VGImage vgImage = VG_INVALID_HANDLE; metrics = ti.fontEngine->boundingBox(glyph); if (!scaledImage.isNull()) { // Not a space character - // The QPF implementation of alphaMapForGlyph() uses the color - // RGBA = (value, value, value, 255) instead of the color - // RGBA = (0, 0, 0, value) that the other font engines use. - // We modify the image colors to rectify this situation. - QFontEngine::Type type = ti.fontEngine->type(); - if (type == QFontEngine::QPF1 || type == QFontEngine::QPF2) { - if (scaledImage.format() == QImage::Format_Indexed8) { - for (int i = 0; i < 256; ++i) - scaledImage.setColor(i, qRgba(0, 0, 0, i)); - } else if (scaledImage.format() == QImage::Format_Mono) { - scaledImage.setColor(0, qRgba(0, 0, 0, 0)); - scaledImage.setColor(1, qRgba(0, 0, 0, 255)); - } - } if (scaledImage.format() == QImage::Format_Indexed8) { vgImage = vgCreateImage(VG_A_8, scaledImage.width(), scaledImage.height(), VG_IMAGE_QUALITY_FASTER); vgImageSubData(vgImage, scaledImage.bits(), scaledImage.bytesPerLine(), VG_A_8, 0, 0, scaledImage.width(), scaledImage.height()); -- cgit v0.12 From ebb0b5901a93350db4447c86aba6d9c075762f7a Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Wed, 30 Sep 2009 10:27:01 +1000 Subject: Convert OpenGL convolution filter to OpenGL2 paint engine The convolution filter was still using the old-style OpenGL1 method for interfacing to the paint engine. Reviewed-by: trustme --- src/opengl/qglpixmapfilter.cpp | 179 ++++++++++++++--------------------------- 1 file changed, 59 insertions(+), 120 deletions(-) diff --git a/src/opengl/qglpixmapfilter.cpp b/src/opengl/qglpixmapfilter.cpp index bb3cb5d..15714c2 100644 --- a/src/opengl/qglpixmapfilter.cpp +++ b/src/opengl/qglpixmapfilter.cpp @@ -79,30 +79,24 @@ protected: bool processGL(QPainter *painter, const QPointF &pos, const QPixmap &pixmap, const QRectF &srcRect) const; }; -#ifndef QT_OPENGL_ES_2 - -class QGLPixmapConvolutionFilter: public QGLPixmapFilter +class QGLPixmapConvolutionFilter: public QGLCustomShaderStage, public QGLPixmapFilter { public: QGLPixmapConvolutionFilter(); ~QGLPixmapConvolutionFilter(); + void setUniforms(QGLShaderProgram *program); + protected: bool processGL(QPainter *painter, const QPointF &pos, const QPixmap &src, const QRectF &srcRect) const; private: QByteArray generateConvolutionShader() const; - mutable QGLShaderProgram *m_program; - mutable int m_scaleUniform; - mutable int m_matrixUniform; - - mutable int m_kernelWidth; - mutable int m_kernelHeight; + mutable QSize m_srcSize; + mutable int m_prevKernelSize; }; -#endif - class QGLPixmapBlurFilter : public QGLCustomShaderStage, public QGLPixmapFilter { public: @@ -147,57 +141,16 @@ QPixmapFilter *QGL2PaintEngineEx::pixmapFilter(int type, const QPixmapFilter *pr return d->blurFilter.data(); } -#ifndef QT_OPENGL_ES_2 case QPixmapFilter::ConvolutionFilter: if (!d->convolutionFilter) d->convolutionFilter.reset(new QGLPixmapConvolutionFilter); return d->convolutionFilter.data(); -#endif default: break; } return QPaintEngineEx::pixmapFilter(type, prototype); } -#ifndef QT_OPENGL_ES_2 // XXX: needs to be ported - -extern void qt_add_rect_to_array(const QRectF &r, q_vertexType *array); -extern void qt_add_texcoords_to_array(qreal x1, qreal y1, qreal x2, qreal y2, q_vertexType *array); - -static void qgl_drawTexture(const QRectF &rect, int tx_width, int tx_height, const QRectF & src) -{ -#ifndef QT_OPENGL_ES - glPushAttrib(GL_CURRENT_BIT); -#endif - qreal x1, x2, y1, y2; - - x1 = src.x() / tx_width; - x2 = x1 + src.width() / tx_width; - y1 = 1.0 - ((src.y() / tx_height) + (src.height() / tx_height)); - y2 = 1.0 - (src.y() / tx_height); - - q_vertexType vertexArray[4*2]; - q_vertexType texCoordArray[4*2]; - - qt_add_rect_to_array(rect, vertexArray); - qt_add_texcoords_to_array(x1, y2, x2, y1, texCoordArray); - - glVertexPointer(2, q_vertexTypeEnum, 0, vertexArray); - glTexCoordPointer(2, q_vertexTypeEnum, 0, texCoordArray); - - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glDrawArrays(GL_TRIANGLE_FAN, 0, 4); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); - glDisableClientState(GL_VERTEX_ARRAY); - -#ifndef QT_OPENGL_ES - glPopAttrib(); -#endif -} - -#endif // !QT_OPENGL_ES_2 - static const char *qt_gl_colorize_filter = "uniform lowp vec4 colorizeColor;" "uniform lowp float colorizeStrength;" @@ -231,102 +184,88 @@ void QGLPixmapColorizeFilter::setUniforms(QGLShaderProgram *program) program->setUniformValue("colorizeStrength", float(strength())); } -#ifndef QT_OPENGL_ES_2 +void QGLPixmapConvolutionFilter::setUniforms(QGLShaderProgram *program) +{ + const qreal *kernel = convolutionKernel(); + int kernelWidth = columns(); + int kernelHeight = rows(); + int kernelSize = kernelWidth * kernelHeight; + + QVarLengthArray matrix(kernelSize); + QVarLengthArray offset(kernelSize * 2); + + for(int i = 0; i < kernelSize; ++i) + matrix[i] = kernel[i]; + + for(int y = 0; y < kernelHeight; ++y) { + for(int x = 0; x < kernelWidth; ++x) { + offset[(y * kernelWidth + x) * 2] = x - (kernelWidth / 2); + offset[(y * kernelWidth + x) * 2 + 1] = (kernelHeight / 2) - y; + } + } + + const qreal iw = 1.0 / m_srcSize.width(); + const qreal ih = 1.0 / m_srcSize.height(); + program->setUniformValue("inv_texture_size", iw, ih); + program->setUniformValueArray("matrix", matrix.constData(), kernelSize, 1); + program->setUniformValueArray("offset", offset.constData(), kernelSize, 2); +} // generates convolution filter code for arbitrary sized kernel QByteArray QGLPixmapConvolutionFilter::generateConvolutionShader() const { QByteArray code; - code.append("uniform sampler2D texture;\n" - "uniform vec2 inv_texture_size;\n" - "uniform float matrix["); - code.append(QByteArray::number(m_kernelWidth * m_kernelHeight)); - code.append("];\n" - "vec2 offset["); - code.append(QByteArray::number(m_kernelWidth*m_kernelHeight)); + int kernelWidth = columns(); + int kernelHeight = rows(); + int kernelSize = kernelWidth * kernelHeight; + code.append("uniform highp vec2 inv_texture_size;\n" + "uniform mediump float matrix["); + code.append(QByteArray::number(kernelSize)); code.append("];\n" - "void main(void) {\n"); - - for(int y = 0; y < m_kernelHeight; y++) { - for(int x = 0; x < m_kernelWidth; x++) { - code.append(" offset["); - code.append(QByteArray::number(y * m_kernelWidth + x)); - code.append("] = vec2(inv_texture_size.x * "); - code.append(QByteArray::number(x-(int)(m_kernelWidth/2))); - code.append(".0, inv_texture_size.y * "); - code.append(QByteArray::number((int)(m_kernelHeight/2)-y)); - code.append(".0);\n"); - } - } + "uniform highp vec2 offset["); + code.append(QByteArray::number(kernelSize)); + code.append("];\n"); + code.append("lowp vec4 customShader(lowp sampler2D src, highp vec2 srcCoords) {\n"); code.append(" int i = 0;\n" - " vec2 coords = gl_TexCoord[0].st;\n" - " vec4 sum = vec4(0.0);\n" + " lowp vec4 sum = vec4(0.0);\n" " for (i = 0; i < "); - code.append(QByteArray::number(m_kernelWidth * m_kernelHeight)); + code.append(QByteArray::number(kernelSize)); code.append("; i++) {\n" - " vec4 tmp = texture2D(texture,coords+offset[i]);\n" - " sum += matrix[i] * tmp;\n" + " sum += matrix[i] * texture2D(src,srcCoords+inv_texture_size*offset[i]);\n" " }\n" - " gl_FragColor = sum;\n" + " return sum;\n" "}"); return code; } QGLPixmapConvolutionFilter::QGLPixmapConvolutionFilter() - : m_program(0) - , m_scaleUniform(0) - , m_matrixUniform(0) - , m_kernelWidth(0) - , m_kernelHeight(0) + : m_prevKernelSize(-1) { } QGLPixmapConvolutionFilter::~QGLPixmapConvolutionFilter() { - delete m_program; } -bool QGLPixmapConvolutionFilter::processGL(QPainter *, const QPointF &pos, const QPixmap &src, const QRectF &srcRect) const +bool QGLPixmapConvolutionFilter::processGL(QPainter *painter, const QPointF &pos, const QPixmap &src, const QRectF &srcRect) const { - QRectF target = (srcRect.isNull() ? QRectF(src.rect()) : srcRect).translated(pos); - - bindTexture(src); -#ifdef GL_CLAMP - glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); - glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); -#endif - if (!m_program || m_kernelWidth != columns() || m_kernelHeight != rows()) { - delete m_program; - - m_kernelWidth = columns(); - m_kernelHeight = rows(); - - QByteArray code = generateConvolutionShader(); - m_program = new QGLShaderProgram(); - m_program->addShader(QGLShader::FragmentShader, code); - m_program->link(); - m_scaleUniform = m_program->uniformLocation("inv_texture_size"); - m_matrixUniform = m_program->uniformLocation("matrix"); + QGLPixmapConvolutionFilter *filter = const_cast(this); + + m_srcSize = src.size(); + + int kernelSize = rows() * columns(); + if (m_prevKernelSize == -1 || m_prevKernelSize != kernelSize) { + filter->setSource(generateConvolutionShader()); + m_prevKernelSize = kernelSize; } - const qreal *kernel = convolutionKernel(); - GLfloat *conv = new GLfloat[m_kernelWidth * m_kernelHeight]; - for(int i = 0; i < m_kernelWidth * m_kernelHeight; ++i) - conv[i] = kernel[i]; - - const qreal iw = 1.0 / src.width(); - const qreal ih = 1.0 / src.height(); - m_program->enable(); - m_program->setUniformValue(m_scaleUniform, iw, ih); - m_program->setUniformValueArray(m_matrixUniform, conv, m_kernelWidth * m_kernelHeight, 1); - - qgl_drawTexture(target, src.width(), src.height(), boundingRectFor(srcRect)); - m_program->disable(); + filter->setOnPainter(painter); + painter->drawPixmap(pos, src, srcRect); + filter->removeFromPainter(painter); + return true; } -#endif // !QT_OPENGL_ES_2 - static const char *qt_gl_blur_filter_fast = "const int samples = 9;" "uniform mediump vec2 delta;" -- cgit v0.12 From d6bbfac77ac5b9fa0933f07d803248eb0cfbefc5 Mon Sep 17 00:00:00 2001 From: Bill King Date: Wed, 30 Sep 2009 10:38:49 +1000 Subject: (ODBC) Better fix for readonly result set This fixes an issue where a forwardonly result set would force forwardonly on the next query, despite what the user had explicitly set. Reviewed-by: Justin McPherson --- src/sql/drivers/odbc/qsql_odbc.cpp | 17 ++++++++++++----- src/sql/drivers/odbc/qsql_odbc.h | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/sql/drivers/odbc/qsql_odbc.cpp b/src/sql/drivers/odbc/qsql_odbc.cpp index 7cf5e8b..ff9458b 100644 --- a/src/sql/drivers/odbc/qsql_odbc.cpp +++ b/src/sql/drivers/odbc/qsql_odbc.cpp @@ -127,7 +127,7 @@ class QODBCPrivate { public: QODBCPrivate(QODBCDriverPrivate *dpp) - : hStmt(0), useSchema(false), hasSQLFetchScroll(true), driverPrivate(dpp) + : hStmt(0), useSchema(false), hasSQLFetchScroll(true), driverPrivate(dpp), userForwardOnly(false) { unicode = false; } @@ -148,6 +148,7 @@ public: int disconnectCount; bool hasSQLFetchScroll; QODBCDriverPrivate *driverPrivate; + bool userForwardOnly; bool isStmtHandleValid(const QSqlDriver *driver); void updateStmtHandleState(const QSqlDriver *driver); @@ -848,7 +849,7 @@ bool QODBCResult::reset (const QString& query) d->updateStmtHandleState(driver()); - if (isForwardOnly()) { + if (d->userForwardOnly) { r = SQLSetStmtAttr(d->hStmt, SQL_ATTR_CURSOR_TYPE, (SQLPOINTER)SQL_CURSOR_FORWARD_ONLY, @@ -885,7 +886,7 @@ bool QODBCResult::reset (const QString& query) SQLINTEGER isScrollable, bufferLength; r = SQLGetStmtAttr(d->hStmt, SQL_ATTR_CURSOR_SCROLLABLE, &isScrollable, SQL_IS_INTEGER, &bufferLength); if(r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO) - setForwardOnly(isScrollable==SQL_NONSCROLLABLE); + QSqlResult::setForwardOnly(isScrollable==SQL_NONSCROLLABLE); SQLSMALLINT count; SQLNumResultCols(d->hStmt, &count); @@ -1194,7 +1195,7 @@ bool QODBCResult::prepare(const QString& query) d->updateStmtHandleState(driver()); - if (isForwardOnly()) { + if (d->userForwardOnly) { r = SQLSetStmtAttr(d->hStmt, SQL_ATTR_CURSOR_TYPE, (SQLPOINTER)SQL_CURSOR_FORWARD_ONLY, @@ -1508,7 +1509,7 @@ bool QODBCResult::exec() SQLINTEGER isScrollable, bufferLength; r = SQLGetStmtAttr(d->hStmt, SQL_ATTR_CURSOR_SCROLLABLE, &isScrollable, SQL_IS_INTEGER, &bufferLength); if(r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO) - setForwardOnly(isScrollable==SQL_NONSCROLLABLE); + QSqlResult::setForwardOnly(isScrollable==SQL_NONSCROLLABLE); SQLSMALLINT count; SQLNumResultCols(d->hStmt, &count); @@ -1639,6 +1640,12 @@ void QODBCResult::virtual_hook(int id, void *data) } } +void QODBCResult::setForwardOnly(bool forward) +{ + d->userForwardOnly = forward; + QSqlResult::setForwardOnly(forward); +} + //////////////////////////////////////// diff --git a/src/sql/drivers/odbc/qsql_odbc.h b/src/sql/drivers/odbc/qsql_odbc.h index d8a3b69..8bd7660 100644 --- a/src/sql/drivers/odbc/qsql_odbc.h +++ b/src/sql/drivers/odbc/qsql_odbc.h @@ -100,6 +100,7 @@ public: bool exec(); QVariant handle() const; + virtual void setForwardOnly(bool forward); protected: bool fetchNext(); -- cgit v0.12 From b125af1b298d694c332f56deebe4755d0c985d5d Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Wed, 30 Sep 2009 14:34:21 +1000 Subject: Fix a memory leak of EGLSurface's in QGLContext Reviewed-by: Julian de Bhal --- src/opengl/qgl_egl.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/opengl/qgl_egl.cpp b/src/opengl/qgl_egl.cpp index 5ce1a45..6c93bea 100644 --- a/src/opengl/qgl_egl.cpp +++ b/src/opengl/qgl_egl.cpp @@ -142,10 +142,12 @@ void QGLContext::reset() d->cleanup(); doneCurrent(); if (d->eglContext) { + if (d->eglSurface != EGL_NO_SURFACE) + eglDestroySurface(d->eglContext->display(), d->eglSurface); delete d->eglContext; - d->eglContext = 0; } - d->eglSurface = EGL_NO_SURFACE; // XXX - probably need to destroy surface + d->eglContext = 0; + d->eglSurface = EGL_NO_SURFACE; d->crWin = false; d->sharing = false; d->valid = false; -- cgit v0.12 From f4bcf5c9fd51ed1923239ea1ad0d78bcd3d56f62 Mon Sep 17 00:00:00 2001 From: Kurt Korbatits Date: Wed, 30 Sep 2009 14:53:37 +1000 Subject: Fixed error in notify() signal and totalTime() in QAudioInput and QAudioOutput. -The notify() signal was not firing the correct number of times. -The totalTime() on wince was incorrect (unit test). Reviewed-by:Justin McPherson --- src/multimedia/audio/qaudioinput_alsa_p.cpp | 11 +++++++-- src/multimedia/audio/qaudioinput_alsa_p.h | 1 + src/multimedia/audio/qaudioinput_win32_p.cpp | 12 ++++++++-- src/multimedia/audio/qaudioinput_win32_p.h | 1 + src/multimedia/audio/qaudiooutput_alsa_p.cpp | 13 +++++++++-- src/multimedia/audio/qaudiooutput_alsa_p.h | 1 + src/multimedia/audio/qaudiooutput_win32_p.cpp | 33 +++++++++++++++++++++++---- src/multimedia/audio/qaudiooutput_win32_p.h | 1 + 8 files changed, 62 insertions(+), 11 deletions(-) diff --git a/src/multimedia/audio/qaudioinput_alsa_p.cpp b/src/multimedia/audio/qaudioinput_alsa_p.cpp index 0192468..46c4392 100644 --- a/src/multimedia/audio/qaudioinput_alsa_p.cpp +++ b/src/multimedia/audio/qaudioinput_alsa_p.cpp @@ -57,6 +57,8 @@ QT_BEGIN_NAMESPACE //#define DEBUG_AUDIO 1 +static const int minimumIntervalTime = 50; + QAudioInputPrivate::QAudioInputPrivate(const QByteArray &device, const QAudioFormat& audioFormat): settings(audioFormat) { @@ -248,6 +250,7 @@ bool QAudioInputPrivate::open() qDebug()<= minimumIntervalTime) + intervalTime = ms; + else + intervalTime = minimumIntervalTime; } int QAudioInputPrivate::notifyInterval() const @@ -579,8 +585,9 @@ bool QAudioInputPrivate::deviceReady() if(deviceState != QAudio::ActiveState) return true; - if(timeStamp.elapsed() > intervalTime && intervalTime > 50) { + if((timeStamp.elapsed() + elapsedTimeOffset) > intervalTime) { emit notify(); + elapsedTimeOffset = timeStamp.elapsed() + elapsedTimeOffset - intervalTime; timeStamp.restart(); } return true; diff --git a/src/multimedia/audio/qaudioinput_alsa_p.h b/src/multimedia/audio/qaudioinput_alsa_p.h index a1cc738..5583ea0 100644 --- a/src/multimedia/audio/qaudioinput_alsa_p.h +++ b/src/multimedia/audio/qaudioinput_alsa_p.h @@ -117,6 +117,7 @@ private: QTimer* timer; QTime timeStamp; + qint64 elapsedTimeOffset; int intervalTime; char* audioBuffer; int bytesAvailable; diff --git a/src/multimedia/audio/qaudioinput_win32_p.cpp b/src/multimedia/audio/qaudioinput_win32_p.cpp index 31441ae..d4226f5 100644 --- a/src/multimedia/audio/qaudioinput_win32_p.cpp +++ b/src/multimedia/audio/qaudioinput_win32_p.cpp @@ -59,6 +59,8 @@ QT_BEGIN_NAMESPACE static CRITICAL_SECTION waveInCriticalSection; +static const int minimumIntervalTime = 50; + QAudioInputPrivate::QAudioInputPrivate(const QByteArray &device, const QAudioFormat& audioFormat): settings(audioFormat) { @@ -226,6 +228,7 @@ bool QAudioInputPrivate::open() period_size = buffer_size/2; #endif timeStamp.restart(); + elapsedTimeOffset = 0; wfx.nSamplesPerSec = settings.frequency(); wfx.wBitsPerSample = settings.sampleSize(); wfx.nChannels = settings.channels(); @@ -297,6 +300,7 @@ bool QAudioInputPrivate::open() return false; } timeStampOpened.restart(); + elapsedTimeOffset = 0; totalTimeValue = 0; errorState = QAudio::NoError; deviceState = QAudio::ActiveState; @@ -473,7 +477,10 @@ int QAudioInputPrivate::periodSize() const void QAudioInputPrivate::setNotifyInterval(int ms) { - intervalTime = ms; + if(ms >= minimumIntervalTime) + intervalTime = ms; + else + intervalTime = minimumIntervalTime; } int QAudioInputPrivate::notifyInterval() const @@ -524,8 +531,9 @@ bool QAudioInputPrivate::deviceReady() if(deviceState != QAudio::ActiveState) return true; - if(timeStamp.elapsed() > intervalTime && intervalTime > 50) { + if((timeStamp.elapsed() + elapsedTimeOffset) > intervalTime) { emit notify(); + elapsedTimeOffset = timeStamp.elapsed() + elapsedTimeOffset - intervalTime; timeStamp.restart(); } return true; diff --git a/src/multimedia/audio/qaudioinput_win32_p.h b/src/multimedia/audio/qaudioinput_win32_p.h index 3363b6a..26c470d 100644 --- a/src/multimedia/audio/qaudioinput_win32_p.h +++ b/src/multimedia/audio/qaudioinput_win32_p.h @@ -109,6 +109,7 @@ private: int bytesAvailable; int intervalTime; QTime timeStamp; + qint64 elapsedTimeOffset; QTime timeStampOpened; qint64 totalTimeValue; bool pullMode; diff --git a/src/multimedia/audio/qaudiooutput_alsa_p.cpp b/src/multimedia/audio/qaudiooutput_alsa_p.cpp index cfd3c55..0d37d61 100644 --- a/src/multimedia/audio/qaudiooutput_alsa_p.cpp +++ b/src/multimedia/audio/qaudiooutput_alsa_p.cpp @@ -57,6 +57,8 @@ QT_BEGIN_NAMESPACE //#define DEBUG_AUDIO 1 +static const int minimumIntervalTime = 50; + QAudioOutputPrivate::QAudioOutputPrivate(const QByteArray &device, const QAudioFormat& audioFormat): settings(audioFormat) { @@ -271,6 +273,7 @@ bool QAudioOutputPrivate::open() qDebug()<start(period_time/1000); + timeStamp.restart(); + elapsedTimeOffset = 0; errorState = QAudio::NoError; totalTimeValue = 0; opened = true; @@ -500,7 +505,10 @@ int QAudioOutputPrivate::bufferSize() const void QAudioOutputPrivate::setNotifyInterval(int ms) { - intervalTime = ms; + if(ms >= minimumIntervalTime) + intervalTime = ms; + else + intervalTime = minimumIntervalTime; } int QAudioOutputPrivate::notifyInterval() const @@ -629,8 +637,9 @@ bool QAudioOutputPrivate::deviceReady() if(deviceState != QAudio::ActiveState) return true; - if(timeStamp.elapsed() > intervalTime && intervalTime > 50) { + if((timeStamp.elapsed() + elapsedTimeOffset) > intervalTime) { emit notify(); + elapsedTimeOffset = timeStamp.elapsed() + elapsedTimeOffset - intervalTime; timeStamp.restart(); } return true; diff --git a/src/multimedia/audio/qaudiooutput_alsa_p.h b/src/multimedia/audio/qaudiooutput_alsa_p.h index 63fe348..6d4177d 100644 --- a/src/multimedia/audio/qaudiooutput_alsa_p.h +++ b/src/multimedia/audio/qaudiooutput_alsa_p.h @@ -134,6 +134,7 @@ private: QByteArray m_device; int bytesAvailable; QTime timeStamp; + qint64 elapsedTimeOffset; char* audioBuffer; snd_pcm_t* handle; snd_async_handler_t* ahandler; diff --git a/src/multimedia/audio/qaudiooutput_win32_p.cpp b/src/multimedia/audio/qaudiooutput_win32_p.cpp index aea3a3f..bb61f41 100644 --- a/src/multimedia/audio/qaudiooutput_win32_p.cpp +++ b/src/multimedia/audio/qaudiooutput_win32_p.cpp @@ -58,6 +58,8 @@ QT_BEGIN_NAMESPACE static CRITICAL_SECTION waveOutCriticalSection; +static const int minimumIntervalTime = 50; + QAudioOutputPrivate::QAudioOutputPrivate(const QByteArray &device, const QAudioFormat& audioFormat): settings(audioFormat) { @@ -221,6 +223,7 @@ bool QAudioOutputPrivate::open() audioBuffer = new char[buffer_size]; timeStamp.restart(); + elapsedTimeOffset = 0; wfx.nSamplesPerSec = settings.frequency(); wfx.wBitsPerSample = settings.sampleSize(); @@ -261,6 +264,7 @@ bool QAudioOutputPrivate::open() totalTimeValue = 0; timeStampOpened.restart(); + elapsedTimeOffset = 0; errorState = QAudio::NoError; if(pullMode) { @@ -316,7 +320,10 @@ int QAudioOutputPrivate::bufferSize() const void QAudioOutputPrivate::setNotifyInterval(int ms) { - intervalTime = ms; + if(ms >= minimumIntervalTime) + intervalTime = ms; + else + intervalTime = minimumIntervalTime; } int QAudioOutputPrivate::notifyInterval() const @@ -420,7 +427,6 @@ void QAudioOutputPrivate::feedback() bool QAudioOutputPrivate::deviceReady() { if(pullMode) { - int i = 0; int chunks = bytesAvailable/period_size; #ifdef DEBUG_AUDIO qDebug()<<"deviceReady() avail="< intervalTime ) { + emit notify(); + elapsedTimeOffset = timeStamp.elapsed() + elapsedTimeOffset - intervalTime; + timeStamp.restart(); + } + return true; + } + if(startup) waveOutPause(hWaveOut); int input = period_size*chunks; @@ -451,7 +473,7 @@ bool QAudioOutputPrivate::deviceReady() } LeaveCriticalSection(&waveOutCriticalSection); - } else if(i < 0) { + } else if(l < 0) { bytesAvailable = bytesFree(); errorState = QAudio::IOError; } @@ -459,8 +481,9 @@ bool QAudioOutputPrivate::deviceReady() if(deviceState != QAudio::ActiveState) return true; - if(timeStamp.elapsed() > intervalTime && intervalTime > 50) { + if((timeStamp.elapsed() + elapsedTimeOffset) > intervalTime) { emit notify(); + elapsedTimeOffset = timeStamp.elapsed() + elapsedTimeOffset - intervalTime; timeStamp.restart(); } @@ -468,7 +491,7 @@ bool QAudioOutputPrivate::deviceReady() } qint64 QAudioOutputPrivate::clock() const -{ +{ if(deviceState != QAudio::ActiveState) return 0; diff --git a/src/multimedia/audio/qaudiooutput_win32_p.h b/src/multimedia/audio/qaudiooutput_win32_p.h index 5c08bf4..bcf8e1e 100644 --- a/src/multimedia/audio/qaudiooutput_win32_p.h +++ b/src/multimedia/audio/qaudiooutput_win32_p.h @@ -109,6 +109,7 @@ private: bool resuming; int bytesAvailable; QTime timeStamp; + qint64 elapsedTimeOffset; QTime timeStampOpened; qint32 buffer_size; qint32 period_size; -- cgit v0.12 From 9a7624ce5c4f78f89408eb0d9a33b1cd1569eb3c Mon Sep 17 00:00:00 2001 From: Bill King Date: Wed, 30 Sep 2009 15:26:42 +1000 Subject: (TDS) Fixes missing field/table name escaping. --- src/sql/drivers/tds/qsql_tds.cpp | 11 +++++++++++ src/sql/drivers/tds/qsql_tds.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/src/sql/drivers/tds/qsql_tds.cpp b/src/sql/drivers/tds/qsql_tds.cpp index 005905b..dddc1b4 100644 --- a/src/sql/drivers/tds/qsql_tds.cpp +++ b/src/sql/drivers/tds/qsql_tds.cpp @@ -794,4 +794,15 @@ QSqlIndex QTDSDriver::primaryIndex(const QString& tablename) const return idx; } +QString QTDSDriver::escapeIdentifier(const QString &identifier, IdentifierType type) const +{ + QString res = identifier; + if(!identifier.isEmpty() && !identifier.startsWith(QLatin1Char('"')) && !identifier.endsWith(QLatin1Char('"')) ) { + res.replace(QLatin1Char('"'), QLatin1String("\"\"")); + res.prepend(QLatin1Char('"')).append(QLatin1Char('"')); + res.replace(QLatin1Char('.'), QLatin1String("\".\"")); + } + return res; +} + QT_END_NAMESPACE diff --git a/src/sql/drivers/tds/qsql_tds.h b/src/sql/drivers/tds/qsql_tds.h index 6001106..0ceae6d 100644 --- a/src/sql/drivers/tds/qsql_tds.h +++ b/src/sql/drivers/tds/qsql_tds.h @@ -116,6 +116,8 @@ public: bool trimStrings) const; QVariant handle() const; + QString escapeIdentifier(const QString &identifier, IdentifierType type) const; + protected: bool beginTransaction(); bool commitTransaction(); -- cgit v0.12 From 1ceaa588f254888e0d9cf73e8d094dfdb8f3b8ab Mon Sep 17 00:00:00 2001 From: Bill King Date: Wed, 30 Sep 2009 15:31:48 +1000 Subject: (TDS) Fixes improper formatting of date values Task-number: QT-754 --- src/sql/drivers/tds/qsql_tds.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/sql/drivers/tds/qsql_tds.cpp b/src/sql/drivers/tds/qsql_tds.cpp index dddc1b4..8acd599 100644 --- a/src/sql/drivers/tds/qsql_tds.cpp +++ b/src/sql/drivers/tds/qsql_tds.cpp @@ -747,7 +747,9 @@ QString QTDSDriver::formatValue(const QSqlField &field, r = QLatin1String("NULL"); else if (field.type() == QVariant::DateTime) { if (field.value().toDateTime().isValid()){ - r = field.value().toDateTime().toString(QLatin1String("'yyyyMMdd hh:mm:ss'")); + r = field.value().toDateTime().toString(QLatin1String("yyyyMMdd hh:mm:ss")); + r.prepend(QLatin1String("'")); + r.append(QLatin1String("'")); } else r = QLatin1String("NULL"); } else if (field.type() == QVariant::ByteArray) { -- cgit v0.12 From 4b878f098c8b723657d4d8ad3c2ce630788df867 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Wed, 30 Sep 2009 10:27:34 +0300 Subject: Fixed some S60 installation documentation issues. Task-number: QT-2204 Reviewed-by: Janne Anttila --- README.s60 | 45 ++++++++++++++++--------------- doc/src/getting-started/installation.qdoc | 8 +++--- doc/src/s60-introduction.qdoc | 20 +++++++------- 3 files changed, 39 insertions(+), 34 deletions(-) diff --git a/README.s60 b/README.s60 index c3108af..f9d7aaf 100644 --- a/README.s60 +++ b/README.s60 @@ -5,16 +5,16 @@ this pre-release you can make advanced graphical applications and utilize TCP/IP connections. More specifically, these modules are now available for S60: -QtCore - http://doc.trolltech.com/4.5/qtcore.html -QtGui - http://doc.trolltech.com/4.5/qtgui.html -QtNetwork - http://doc.trolltech.com/4.5/qtnetwork.html -QtScript - http://doc.trolltech.com/4.5/qtscript.html -QtSql - http://doc.trolltech.com/4.5/qtsql.html -QtSvg - http://doc.trolltech.com/4.5/qtsvg.html -QtTest - http://doc.trolltech.com/4.5/qttest.html -QtWebKit - http://doc.trolltech.com/4.5/qtwebkit.html -QtXml - http://doc.trolltech.com/4.5/qtxml.html -Phonon - http://doc.trolltech.com/4.5/phonon-module.html +QtCore - http://doc.trolltech.com/4.6/qtcore.html +QtGui - http://doc.trolltech.com/4.6/qtgui.html +QtNetwork - http://doc.trolltech.com/4.6/qtnetwork.html +QtScript - http://doc.trolltech.com/4.6/qtscript.html +QtSql - http://doc.trolltech.com/4.6/qtsql.html +QtSvg - http://doc.trolltech.com/4.6/qtsvg.html +QtTest - http://doc.trolltech.com/4.6/qttest.html +QtWebKit - http://doc.trolltech.com/4.6/qtwebkit.html +QtXml - http://doc.trolltech.com/4.6/qtxml.html +Phonon - http://doc.trolltech.com/4.6/phonon-module.html INSTALLING Qt @@ -23,7 +23,7 @@ Follow the instructions in the INSTALL file. REFERENCE DOCUMENTATION The Qt reference documentation is available locally in Qt's doc/html -directory or at http://doc.trolltech.com/4.5/index.html +directory or at http://doc.trolltech.com/4.6/index.html SUPPORTED PLATFORMS @@ -67,7 +67,7 @@ such a program can be created with some minor changes to one of the many example programs in Qt's examples directory. - INSTALLING Qt/S60 Version %VERSION% + INSTALLING Qt for S60 Version %VERSION% 1. Install needed IDE and SDKs @@ -86,7 +86,10 @@ many example programs in Qt's examples directory. - Open C/C++ v1.6.0 or higher. Install this to all S60 SDKs you plan to use Qt with: http://www.forum.nokia.com/main/resources/technologies/openc_cpp/ - - Building Qt libraries for real device requires RVCT 2.2 [build 616] or later: + - Building Qt tools requires a windows compiler, e.g. MinGW 3.4.5 or higher. + http://www.mingw.org/ + + - Building Qt libraries for real device requires RVCT 2.2 [build 686] or later: http://www.arm.com/products/DevTools/RVCT.html Make sure you have the following packages installed on any device you want to use to @@ -132,21 +135,21 @@ many example programs in Qt's examples directory. To configure Qt for S60, do: cd \Qt\%VERSION% - configure -platform win32-mwc -xplatform symbian-abld + configure -platform win32-g++ -xplatform symbian-abld For other options, type "configure -help" to get a list of all available options. 5. Build Qt - To build Qt for the device, type: - - make release-armv5 - To build Qt for the emulator, type: make debug-winscw + To build Qt for the device, type: + + make release-armv5 + Congratulations, Qt is now ready to use. 6. Running Qt demos @@ -156,7 +159,7 @@ many example programs in Qt's examples directory. a real device, you first have to install the Qt libraries on the device: cd src\s60installs - createpackage -i qt_libs_armv5_urel.pkg + createpackage -i Qt_for_S60_template.pkg release-armv5 Note: You will need to supply certificate that allows installation of binaries with "All -Tcb" capability to your device. @@ -164,9 +167,9 @@ many example programs in Qt's examples directory. Similarly, install fluidlauncher to the device: cd embedded\fluidlauncher - createpackage -i fluidlauncher_armv5_urel.pkg + createpackage -i fluidlauncher_template.pkg release-armv5 - This will create a self-signed fluidlauncher_armv5_urel.sisx and install it to your device. + This will create a self-signed fluidlauncher_release-armv5.sis and install it to your device. To run the demos on the emulator simply navigate to the directory of the demo and run: diff --git a/doc/src/getting-started/installation.qdoc b/doc/src/getting-started/installation.qdoc index 1a20be9..539c1d5 100644 --- a/doc/src/getting-started/installation.qdoc +++ b/doc/src/getting-started/installation.qdoc @@ -599,14 +599,14 @@ If you are using pre-built binaries, follow the instructions \o Build Qt - To build Qt for the device, type: - - \snippet doc/src/snippets/code/doc_src_installation.qdoc 28 - To build Qt for the emulator, type: \snippet doc/src/snippets/code/doc_src_installation.qdoc 24 + To build Qt for the device, type: + + \snippet doc/src/snippets/code/doc_src_installation.qdoc 28 + Congratulations, Qt is now ready to use. \o Running Qt demos diff --git a/doc/src/s60-introduction.qdoc b/doc/src/s60-introduction.qdoc index 045d740..d0a1976 100644 --- a/doc/src/s60-introduction.qdoc +++ b/doc/src/s60-introduction.qdoc @@ -90,7 +90,7 @@ \row \o \c debug-armv5 \o Build debug binaries for hardware using RVCT. \row \o \c release-armv5 \o Build release binaries for hardware using RVCT. \row \o \c run \o Run the emulator binaries from the build directory. - \row \o \c sis \o Create signed \c .sis file for project. + \row \o \c sis \o Create signed \c .sis file for project. \endtable The following lines perform a debug build for the emulator @@ -106,7 +106,7 @@ To install your own applications on hardware, you need signed \c .sis file. The signed \c .sis file can be created with \c make \c sis target. \c sis target is only supported for executables or projects with \c DEPLOYMENT statements. - By default the \c sis target will create signed \.sis file for last build + By default the \c sis target will create signed \c .sis file for last build target. For example, the following sequence will generate the needed makefiles, build the project for \c debug-winscw and \c release-armv5, and create self-signed \c .sis file for \c release-armv5 target: @@ -119,8 +119,10 @@ \table \row \o \c QT_SIS_OPTIONS \o Options accepted by \c .sis creation. - Currently only -i, install the package right away - using PC suite, is supported. + -i, install the package right away using PC suite. + -c=, read certificate information from a file. + Execute \c{perl createpackage.pl} for more information + about options. By default no otions are given. \row \o \c QT_SIS_TARGET \o Target for which \c .sis file is created. Accepted values are build targets listed in @@ -133,13 +135,13 @@ By default empty. \endtable - The environment variables for \c make can be given as an parameters. For example: - - \snippet doc/src/snippets/code/doc_src_s60-introduction.qdoc 3 - - The above example is identical to: + For example: \snippet doc/src/snippets/code/doc_src_s60-introduction.qdoc 4 + + The environment variables for \c make can also be given as parameters: + + \snippet doc/src/snippets/code/doc_src_s60-introduction.qdoc 3 If you want to install the program immediately, make sure that the device is connected to the computer in "PC Suite" mode, and run \c sis target -- cgit v0.12 From f8746c32ceba5ae6d82dc88058f7570c2c9e6102 Mon Sep 17 00:00:00 2001 From: Janne Anttila Date: Wed, 30 Sep 2009 10:30:29 +0300 Subject: Added sql driver deployment for qsqldriver autotest in Symbian. The sqlite driver is required to run this autotest, and using cetest requires that all plugins are deployed with deployment statements. Reviewed-by: TrustMe --- tests/auto/qsqldriver/qsqldriver.pro | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/auto/qsqldriver/qsqldriver.pro b/tests/auto/qsqldriver/qsqldriver.pro index 84f1cb2..7f289a6 100644 --- a/tests/auto/qsqldriver/qsqldriver.pro +++ b/tests/auto/qsqldriver/qsqldriver.pro @@ -15,3 +15,11 @@ wince*: { LIBS += ws2_32.lib } } + +symbian { + contains(S60_VERSION, 3.1)|contains(S60_VERSION, 3.2)|contains(S60_VERSION, 5.0) { + sqlite.path = /sys/bin + sqlite.sources = sqlite3.dll + DEPLOYMENT += sqlite + } +} -- cgit v0.12 From 0c695b73f5bbc9122c8d3c61b883fa3f7fec7900 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 29 Sep 2009 11:49:53 +0200 Subject: fix string builder for QT_NO_CAST_FROM_ASCII on Windows Reviewed-by: thiago --- src/corelib/tools/qstringbuilder.h | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/corelib/tools/qstringbuilder.h b/src/corelib/tools/qstringbuilder.h index e1a0e06..efa39b5 100644 --- a/src/corelib/tools/qstringbuilder.h +++ b/src/corelib/tools/qstringbuilder.h @@ -198,6 +198,17 @@ template struct QConcatenable } }; +template struct QConcatenable +{ + typedef const char type[N]; + static int size(const char[N]) { return N - 1; } + static inline void appendTo(const char a[N], QChar *&out) + { + for (int i = 0; i < N - 1; ++i) + *out++ = QLatin1Char(a[i]); + } +}; + template <> struct QConcatenable { typedef char const *type; @@ -241,7 +252,7 @@ template QStringBuilder::type, typename QConcatenable::type> operator%(const A &a, const B &b) { - return QStringBuilder(a, b); + return QStringBuilder::type, typename QConcatenable::type>(a, b); } #ifdef QT_USE_FAST_OPERATOR_PLUS @@ -249,7 +260,7 @@ template QStringBuilder::type, typename QConcatenable::type> operator+(const A &a, const B &b) { - return QStringBuilder(a, b); + return QStringBuilder::type, typename QConcatenable::type>(a, b); } #endif -- cgit v0.12 From 4b4bea046f3a7e26f1c4bff97065a06b2d7f9dc1 Mon Sep 17 00:00:00 2001 From: Alexis Menard Date: Wed, 30 Sep 2009 10:24:02 +0200 Subject: Fix the sub-attaq menu (new game and quit). Now QStateMachine can be a child of a QState but here in sub-attaq the code was not design for that so the code breaks. Task-number:QT-665 Task-number:QT-914 Reviewed-by:TrustMe --- demos/sub-attaq/states.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/demos/sub-attaq/states.cpp b/demos/sub-attaq/states.cpp index 10c173e..7443ae7 100644 --- a/demos/sub-attaq/states.cpp +++ b/demos/sub-attaq/states.cpp @@ -67,6 +67,8 @@ PlayState::PlayState(GraphicsScene *scene, QState *parent) PlayState::~PlayState() { + if (machine) + delete machine; } void PlayState::onEntry(QEvent *) @@ -74,13 +76,15 @@ void PlayState::onEntry(QEvent *) //We are now playing? if (machine) { machine->stop(); + //we hide the information + scene->textInformationItem->hide(); scene->clearScene(); currentLevel = 0; score = 0; delete machine; } - machine = new QStateMachine(this); + machine = new QStateMachine; //This state is when player is playing LevelState *levelState = new LevelState(scene, this, machine); -- cgit v0.12 From 9c11d47d3d966bdb2e896e1347e22007c7922893 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 30 Sep 2009 10:35:59 +0200 Subject: Fix linking on windows, building qt in namespace RevBy: Thiago Macieira --- src/script/api/qscriptengine.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/script/api/qscriptengine.cpp b/src/script/api/qscriptengine.cpp index ee25239..9604fff 100644 --- a/src/script/api/qscriptengine.cpp +++ b/src/script/api/qscriptengine.cpp @@ -1606,6 +1606,9 @@ QScriptValue QScriptEngine::newFunction(QScriptEngine::FunctionSignature fun, } #ifndef QT_NO_REGEXP + +extern QString qt_regexp_toCanonical(const QString &, QRegExp::PatternSyntax); + /*! Creates a QtScript object of class RegExp with the given \a regexp. @@ -1620,7 +1623,6 @@ QScriptValue QScriptEngine::newRegExp(const QRegExp ®exp) JSC::ArgList args(buf, sizeof(buf)); //convert the pattern to a ECMAScript pattern - extern QString qt_regexp_toCanonical(const QString &, QRegExp::PatternSyntax); QString pattern = qt_regexp_toCanonical(regexp.pattern(), regexp.patternSyntax()); if (regexp.isMinimal()) { QString ecmaPattern; -- cgit v0.12 From 5dfb58af381739e66422711f799d550eefc2dfbf Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Wed, 30 Sep 2009 10:33:01 +0200 Subject: Updated JavaScriptCore from /home/khansen/dev/qtwebkit to jsc-for-qtscript-4.6-staging-30092009 ( e8f42cf0203bee0ba89a05e0e773d713782129b4 ) --- .../javascriptcore/JavaScriptCore/interpreter/Interpreter.cpp | 2 +- src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp | 9 +++++++-- src/3rdparty/javascriptcore/VERSION | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/Interpreter.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/Interpreter.cpp index 4200023..76c8510 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/Interpreter.cpp +++ b/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/Interpreter.cpp @@ -3084,6 +3084,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi #else newCallFrame->init(0, vPC + 5, scopeChain, callFrame, dst, argCount, asObject(v)); #endif + Register* thisRegister = newCallFrame->registers() - RegisterFile::CallFrameHeaderSize - argCount; ArgList args(thisRegister + 1, argCount - 1); @@ -3242,7 +3243,6 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi newCallFrame->init(0, vPC + 5, scopeChain, callFrame, dst, argCount, asObject(v)); #endif - Register* thisRegister = newCallFrame->registers() - RegisterFile::CallFrameHeaderSize - argCount; ArgList args(thisRegister + 1, argCount - 1); diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp index 0b147df..08a4493 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp +++ b/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp @@ -2429,8 +2429,13 @@ DEFINE_STUB_FUNCTION(int, op_eq) goto start; } - if (src2.isObject()) - return asObject(cell1) == asObject(src2); + if (src2.isObject()) { + return asObject(cell1) == asObject(src2) +#ifdef QT_BUILD_SCRIPT_LIB + || asObject(cell1)->compareToObject(stackFrame.callFrame, asObject(src2)) +#endif + ; + } src1 = asObject(cell1)->toPrimitive(stackFrame.callFrame); CHECK_FOR_EXCEPTION(); goto start; diff --git a/src/3rdparty/javascriptcore/VERSION b/src/3rdparty/javascriptcore/VERSION index ae70d26..edcf898 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 - jsc-for-qtscript-4.6-staging-28092009 branch/tag + jsc-for-qtscript-4.6-staging-30092009 branch/tag and has the sha1 checksum - b98dec961e9389ddd5e10d7c4086de9a297cb984 + e8f42cf0203bee0ba89a05e0e773d713782129b4 -- cgit v0.12 From b35bbc064b967c6ec5522fe4e2e76522e92a0a96 Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Wed, 30 Sep 2009 10:37:29 +0200 Subject: remove two expected failures The tests now pass after the last update of src/3rdparty/javascriptcore. --- tests/auto/qscriptvalue/tst_qscriptvalue.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/auto/qscriptvalue/tst_qscriptvalue.cpp b/tests/auto/qscriptvalue/tst_qscriptvalue.cpp index 2148980..6b64e76 100644 --- a/tests/auto/qscriptvalue/tst_qscriptvalue.cpp +++ b/tests/auto/qscriptvalue/tst_qscriptvalue.cpp @@ -2890,8 +2890,6 @@ void tst_QScriptValue::equals() { QScriptValue ret = compareFun.call(QScriptValue(), QScriptValueList() << qobj1 << qobj2); QVERIFY(ret.isBool()); - if (QT_PREPEND_NAMESPACE(qt_script_isJITEnabled())) - QEXPECT_FAIL("", "With JIT enabled, == on QObject wrappers doesn't work", Continue); QVERIFY(ret.toBool()); ret = compareFun.call(QScriptValue(), QScriptValueList() << qobj1 << qobj3); QVERIFY(ret.isBool()); @@ -2911,8 +2909,6 @@ void tst_QScriptValue::equals() { QScriptValue ret = compareFun.call(QScriptValue(), QScriptValueList() << var1 << var2); QVERIFY(ret.isBool()); - if (QT_PREPEND_NAMESPACE(qt_script_isJITEnabled())) - QEXPECT_FAIL("", "With JIT enabled, == on QVariant wrappers doesn't work", Continue); QVERIFY(ret.toBool()); } } -- cgit v0.12 From 6889622da4d17e5cd97e483deb780d83e3bb4548 Mon Sep 17 00:00:00 2001 From: Jani Hautakangas Date: Wed, 30 Sep 2009 11:37:58 +0300 Subject: Symbian specific fixes to QComboBox Fixes QComboBox edit field geometry in s60style Fixes softkey crash when setting a custom itemview to QComboBox Fixes Symbian keyboard input interval in tst_QComboBox::virtualAutocompletion() Reviewed-by: Sami Merila --- src/gui/styles/qs60style.cpp | 19 ++++++++++--------- src/gui/widgets/qcombobox.cpp | 10 +++------- tests/auto/qcombobox/tst_qcombobox.cpp | 4 ++-- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index 1e57167..6bdb79e 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -2397,8 +2397,6 @@ QRect QS60Style::subControlRect(ComplexControl control, const QStyleOptionComple // lets use spinbox frame here as well, as no combobox specific value available. const int frameThickness = cmb->frame ? pixelMetric(PM_SpinBoxFrameWidth, cmb, widget) : 0; const int buttonWidth = QS60StylePrivate::pixelMetric(QStyle::PM_ButtonIconSize); - const int xposMod = (cmb->rect.x()) + width - buttonMargin - buttonWidth; - const int ypos = cmb->rect.y(); QSize buttonSize; buttonSize.setHeight(qMax(8, (cmb->rect.height()>>1) - frameThickness)); //minimum of 8 pixels @@ -2406,15 +2404,18 @@ QRect QS60Style::subControlRect(ComplexControl control, const QStyleOptionComple buttonSize = buttonSize.expandedTo(QApplication::globalStrut()); switch (scontrol) { case SC_ComboBoxArrow: - ret.setRect(xposMod, ypos + buttonMargin, buttonWidth, height - 2*buttonMargin); + ret.setRect( + ret.x() + ret.width() - buttonMargin - buttonWidth, + ret.y() + buttonMargin, + buttonWidth, + height - 2*buttonMargin); break; case SC_ComboBoxEditField: { - const int withFrameX = cmb->rect.x() + cmb->rect.width() - frameThickness - buttonSize.width(); - ret = QRect( - frameThickness, - frameThickness, - withFrameX - frameThickness, - cmb->rect.height() - 2*frameThickness); + ret.setRect( + ret.x() + frameThickness, + ret.y() + frameThickness, + ret.width() - 2*frameThickness - buttonSize.width(), + ret.height() - 2*frameThickness); } break; default: diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp index 61532b9..95ff4c1 100644 --- a/src/gui/widgets/qcombobox.cpp +++ b/src/gui/widgets/qcombobox.cpp @@ -403,8 +403,8 @@ QComboBoxPrivateContainer::QComboBoxPrivateContainer(QAbstractItemView *itemView layout->setMargin(0); #ifdef QT_SOFTKEYS_ENABLED - selectAction = QSoftKeyManager::createKeyedAction(QSoftKeyManager::SelectSoftKey, Qt::Key_Select, itemView); - cancelAction = QSoftKeyManager::createKeyedAction(QSoftKeyManager::CancelSoftKey, Qt::Key_Escape, itemView); + selectAction = QSoftKeyManager::createKeyedAction(QSoftKeyManager::SelectSoftKey, Qt::Key_Select, this); + cancelAction = QSoftKeyManager::createKeyedAction(QSoftKeyManager::CancelSoftKey, Qt::Key_Escape, this); addAction(selectAction); addAction(cancelAction); #endif @@ -534,6 +534,7 @@ void QComboBoxPrivateContainer::setItemView(QAbstractItemView *itemView) this, SLOT(setCurrentIndex(QModelIndex))); disconnect(view, SIGNAL(destroyed()), this, SLOT(viewDestroyed())); + delete view; view = 0; } @@ -571,11 +572,6 @@ void QComboBoxPrivateContainer::setItemView(QAbstractItemView *itemView) this, SLOT(setCurrentIndex(QModelIndex))); connect(view, SIGNAL(destroyed()), this, SLOT(viewDestroyed())); - -#ifdef QT_SOFTKEYS_ENABLED - selectAction->setParent(itemView); - cancelAction->setParent(itemView); -#endif } /*! diff --git a/tests/auto/qcombobox/tst_qcombobox.cpp b/tests/auto/qcombobox/tst_qcombobox.cpp index 6984a88..e76f0f7 100644 --- a/tests/auto/qcombobox/tst_qcombobox.cpp +++ b/tests/auto/qcombobox/tst_qcombobox.cpp @@ -746,7 +746,7 @@ void tst_QComboBox::virtualAutocompletion() // We need to set the keyboard input interval to a higher value // as the processEvent() call takes too much time, so it restarts // the keyboard search then -#if defined(QT_ARCH_ARM) || defined(QT_ARCH_MIPS) +#if defined(QT_ARCH_ARM) || defined(QT_ARCH_MIPS) || defined(QT_ARCH_SYMBIAN) int oldInterval = QApplication::keyboardInputInterval(); QApplication::setKeyboardInputInterval(1500); #endif @@ -782,7 +782,7 @@ void tst_QComboBox::virtualAutocompletion() QApplication::sendEvent(testWidget, &kr2); qApp->processEvents(); // Process events to trigger autocompletion QTRY_COMPARE(testWidget->currentIndex(), 3); -#if defined(QT_ARCH_ARM) || defined(QT_ARCH_MIPS) +#if defined(QT_ARCH_ARM) || defined(QT_ARCH_MIPS) || defined(QT_ARCH_SYMBIAN) QApplication::setKeyboardInputInterval(oldInterval); #endif } -- cgit v0.12 From 7171983e8c9ca106952ecc09e540da4aab8b8b0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sami=20Meril=C3=A4?= Date: Wed, 30 Sep 2009 12:16:56 +0300 Subject: Ftp example application crashes (due to keypad navigation) Keypad navigation tries to calculate the minimal distance of next widget to the direction of pressed navigation key. This calculation in QWidgetPrivate::widgetInNavigationDirection dies not take into account that some widgets might have focusProxy setup. In the reported case, ignoring focus proxy means that QDialogButtonBox gets the focus and it hands it over to first button in its tab order. Unfortunately, this button is disabled 'Download' button. Now, when Select key is pressed, button action is triggered causing a crash. Solution is to skip widgets that have focus proxies in widgetInNavigationDirection. Task-number: QT-2177 Reviewed-by: Alessandro Portale --- src/gui/kernel/qwidget.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index 08fe5b9..e2de148 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -11454,6 +11454,10 @@ QWidget *QWidgetPrivate::widgetInNavigationDirection(Direction direction) QWidget *targetWidget = 0; int shortestDistance = INT_MAX; foreach(QWidget *targetCandidate, QApplication::allWidgets()) { + + if (targetCandidate->focusProxy()) //skip if focus proxy set + continue; + const QRect targetCandidateRect = targetCandidate->rect().translated(targetCandidate->mapToGlobal(QPoint())); if ( targetCandidate != sourceWidget && targetCandidate->focusPolicy() & Qt::TabFocus -- cgit v0.12 From c33c3eab6fc510634f00eb001ce5c5860083ba82 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 29 Sep 2009 17:15:49 +0200 Subject: Stabilize listview test --- tests/auto/qlistview/tst_qlistview.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/auto/qlistview/tst_qlistview.cpp b/tests/auto/qlistview/tst_qlistview.cpp index b51434f..499fb0b 100644 --- a/tests/auto/qlistview/tst_qlistview.cpp +++ b/tests/auto/qlistview/tst_qlistview.cpp @@ -1630,7 +1630,9 @@ void tst_QListView::task254449_draggingItemToNegativeCoordinates() } delegate; list.setItemDelegate(&delegate); - QTest::qWait(200); //makes sure the layout is done + delegate.numPaints = 0; + QTest::qWaitForWindowShown(&list); //makes sure the layout is done + QTRY_VERIFY(delegate.numPaints > 0); const QPoint topLeft(-6, 0); list.setPositionForIndex(topLeft, index); -- cgit v0.12 From bc714d469487856c85a42ecb0ceb540420f3e7cc Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 29 Sep 2009 18:18:26 +0200 Subject: Fixed warning in public header: qcommonstyle.h:87: warning: virtual void QCommonStyle::polish(QPalette&) was hidden qs60style.h:77: warning: by QS60Style::polish Reviewed-by: Jeremy --- src/gui/styles/qs60style.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gui/styles/qs60style.h b/src/gui/styles/qs60style.h index fd18bc3..6be3197 100644 --- a/src/gui/styles/qs60style.h +++ b/src/gui/styles/qs60style.h @@ -76,6 +76,9 @@ public: void unpolish(QWidget *widget); void polish(QApplication *application); void unpolish(QApplication *application); +#ifndef Q_NO_USING_KEYWORD + using QCommonStyle::polish; +#endif void setStyleProperty(const char *name, const QVariant &value); QVariant styleProperty(const char *name) const; -- cgit v0.12 From 85b4c2a9e4c62a836819baf0669b91a3f30c9a4e Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Wed, 30 Sep 2009 10:38:09 +0200 Subject: Stabilize and speedup QGraphicsItem and QGraphicsView and QGraphicsProxyWidget test --- tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp | 371 ++++++++++----------- .../tst_qgraphicsproxywidget.cpp | 208 +++++------- tests/auto/qgraphicsview/tst_qgraphicsview.cpp | 64 ++-- 3 files changed, 309 insertions(+), 334 deletions(-) diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp index d08e74b..ef9fe9e 100644 --- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp +++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp @@ -1372,19 +1372,20 @@ void tst_QGraphicsItem::selected_textItem() QGraphicsView view(&scene); view.show(); - QTest::qWait(1000); + QTest::qWaitForWindowShown(&view); + QTest::qWait(20); - QVERIFY(!text->isSelected()); + QTRY_VERIFY(!text->isSelected()); QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(text->mapToScene(0, 0))); - QVERIFY(text->isSelected()); + QTRY_VERIFY(text->isSelected()); text->setSelected(false); text->setTextInteractionFlags(Qt::TextEditorInteraction); QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(text->mapToScene(0, 0))); - QVERIFY(text->isSelected()); + QTRY_VERIFY(text->isSelected()); } void tst_QGraphicsItem::selected_multi() @@ -1416,91 +1417,91 @@ void tst_QGraphicsItem::selected_multi() // Click on item1 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(item1->scenePos())); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(item1->isSelected()); QVERIFY(!item2->isSelected()); // Click on item2 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(item2->scenePos())); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(item2->isSelected()); QVERIFY(!item1->isSelected()); // Ctrl-click on item1 QTest::mouseClick(view.viewport(), Qt::LeftButton, Qt::ControlModifier, view.mapFromScene(item1->scenePos())); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(item2->isSelected()); QVERIFY(item1->isSelected()); // Ctrl-click on item1 again QTest::mouseClick(view.viewport(), Qt::LeftButton, Qt::ControlModifier, view.mapFromScene(item1->scenePos())); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(item2->isSelected()); QVERIFY(!item1->isSelected()); // Ctrl-click on item2 QTest::mouseClick(view.viewport(), Qt::LeftButton, Qt::ControlModifier, view.mapFromScene(item2->scenePos())); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(!item2->isSelected()); QVERIFY(!item1->isSelected()); // Click on item1 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(item1->scenePos())); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(item1->isSelected()); QVERIFY(!item2->isSelected()); // Click on scene QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(0, 0)); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(!item1->isSelected()); QVERIFY(!item2->isSelected()); // Click on item1 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(item1->scenePos())); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(item1->isSelected()); QVERIFY(!item2->isSelected()); // Ctrl-click on scene QTest::mouseClick(view.viewport(), Qt::LeftButton, Qt::ControlModifier, view.mapFromScene(0, 0)); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(!item1->isSelected()); QVERIFY(!item2->isSelected()); // Click on item1 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(item1->scenePos())); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(item1->isSelected()); QVERIFY(!item2->isSelected()); // Press on item2 QTest::mousePress(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(item2->scenePos())); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(!item1->isSelected()); QVERIFY(item2->isSelected()); // Release on item2 QTest::mouseRelease(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(item2->scenePos())); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(!item1->isSelected()); QVERIFY(item2->isSelected()); // Click on item1 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(item1->scenePos())); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(item1->isSelected()); QVERIFY(!item2->isSelected()); // Ctrl-click on item1 QTest::mouseClick(view.viewport(), Qt::LeftButton, Qt::ControlModifier, view.mapFromScene(item1->scenePos())); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(!item1->isSelected()); QVERIFY(!item2->isSelected()); // Ctrl-press on item1 QTest::mousePress(view.viewport(), Qt::LeftButton, Qt::ControlModifier, view.mapFromScene(item1->scenePos())); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(!item1->isSelected()); QVERIFY(!item2->isSelected()); @@ -1508,14 +1509,14 @@ void tst_QGraphicsItem::selected_multi() // Ctrl-move on item1 QMouseEvent event(QEvent::MouseMove, view.mapFromScene(item1->scenePos()) + QPoint(1, 0), Qt::LeftButton, Qt::LeftButton, Qt::ControlModifier); QApplication::sendEvent(view.viewport(), &event); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(!item1->isSelected()); QVERIFY(!item2->isSelected()); } // Release on item1 QTest::mouseRelease(view.viewport(), Qt::LeftButton, Qt::ControlModifier, view.mapFromScene(item1->scenePos())); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(item1->isSelected()); QVERIFY(!item2->isSelected()); @@ -1524,7 +1525,7 @@ void tst_QGraphicsItem::selected_multi() // Ctrl-press on item1 QTest::mousePress(view.viewport(), Qt::LeftButton, Qt::ControlModifier, view.mapFromScene(item1->scenePos())); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(!item1->isSelected()); QVERIFY(!item2->isSelected()); @@ -1532,14 +1533,14 @@ void tst_QGraphicsItem::selected_multi() // Ctrl-move on item1 QMouseEvent event(QEvent::MouseMove, view.mapFromScene(item1->scenePos()) + QPoint(1, 0), Qt::LeftButton, Qt::LeftButton, Qt::ControlModifier); QApplication::sendEvent(view.viewport(), &event); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(item1->isSelected()); QVERIFY(!item2->isSelected()); } // Release on item1 QTest::mouseRelease(view.viewport(), Qt::LeftButton, Qt::ControlModifier, view.mapFromScene(item1->scenePos())); - QTest::qWait(200); + QTest::qWait(20); QVERIFY(item1->isSelected()); QVERIFY(!item2->isSelected()); } @@ -2927,7 +2928,7 @@ void tst_QGraphicsItem::hoverEventsGenerateRepaints() #ifdef Q_WS_X11 qt_x11_wait_for_window_manager(&view); #endif - QTest::qWait(250); + QTest::qWait(20); EventTester *tester = new EventTester; scene.addItem(tester); @@ -3059,7 +3060,8 @@ void tst_QGraphicsItem::childrenBoundingRect() QGraphicsView view(&scene); view.show(); - QTest::qWait(5000); + QTest::qWaitForWindowShown(&view); + QTest::qWait(30); QCOMPARE(parent->childrenBoundingRect(), QRectF(-500, -100, 600, 800)); } @@ -3164,7 +3166,8 @@ void tst_QGraphicsItem::group() QGraphicsView view(&scene); view.show(); - QTest::qWait(250); + QTest::qWaitForWindowShown(&view); + QApplication::processEvents(); QGraphicsItemGroup *group = new QGraphicsItemGroup; group->setSelected(true); @@ -3180,7 +3183,7 @@ void tst_QGraphicsItem::group() QCOMPARE(scene.items().size(), 4); QCOMPARE(scene.items(group->sceneBoundingRect()).size(), 3); - QTest::qWait(250); + QTest::qWait(25); QRectF parent2SceneBoundingRect = parent2->sceneBoundingRect(); group->addToGroup(parent2); @@ -3192,7 +3195,7 @@ void tst_QGraphicsItem::group() QCOMPARE(scene.items().size(), 4); QCOMPARE(scene.items(group->sceneBoundingRect()).size(), 4); - QTest::qWait(250); + QTest::qWait(25); QList newItems; for (int i = 0; i < 100; ++i) { @@ -3372,8 +3375,8 @@ void tst_QGraphicsItem::handlesChildEvents() QGraphicsView view(&scene); view.show(); - - QTest::qWait(1000); + QTest::qWaitForWindowShown(&view); + QTest::qWait(20); // Pull out the items, closest item first QList items = scene.items(scene.itemsBoundingRect()); @@ -3496,14 +3499,14 @@ void tst_QGraphicsItem::handlesChildEvents2() QGraphicsView view(&scene); view.show(); - - QTestEventLoop::instance().enterLoop(1); + QTest::qWaitForWindowShown(&view); + QApplication::processEvents(); QMouseEvent event(QEvent::MouseButtonPress, view.mapFromScene(5, 5), view.viewport()->mapToGlobal(view.mapFromScene(5, 5)), Qt::LeftButton, 0, 0); QApplication::sendEvent(view.viewport(), &event); - QCOMPARE(root->counter, 1); + QTRY_COMPARE(root->counter, 1); } void tst_QGraphicsItem::handlesChildEvents3() @@ -3585,8 +3588,8 @@ void tst_QGraphicsItem::filtersChildEvents() QGraphicsView view(&scene); view.show(); - - QTest::qWait(1000); + QTest::qWaitForWindowShown(&view); + QTest::qWait(20); QGraphicsSceneMouseEvent pressEvent(QEvent::GraphicsSceneMousePress); QGraphicsSceneMouseEvent releaseEvent(QEvent::GraphicsSceneMouseRelease); @@ -3601,7 +3604,7 @@ void tst_QGraphicsItem::filtersChildEvents() QApplication::sendEvent(&scene, &pressEvent); QApplication::sendEvent(&scene, &releaseEvent); - QCOMPARE(child->counter, 1); // mouse release is not filtered + QTRY_COMPARE(child->counter, 1); // mouse release is not filtered QCOMPARE(filter->counter, 1); // mouse press is filtered QCOMPARE(root->counter, 0); @@ -3656,17 +3659,18 @@ void tst_QGraphicsItem::filtersChildEvents2() QGraphicsView view(&scene); view.show(); - QTestEventLoop::instance().enterLoop(1); + QTest::qWaitForWindowShown(&view); + QApplication::processEvents(); QMouseEvent event(QEvent::MouseButtonPress, view.mapFromScene(5, 5), view.viewport()->mapToGlobal(view.mapFromScene(5, 5)), Qt::LeftButton, 0, 0); QApplication::sendEvent(view.viewport(), &event); + QTRY_COMPARE(root->counter, 1); QCOMPARE(child->counter, 0); QCOMPARE(child2->counter, 0); QCOMPARE(child3->counter, 0); QCOMPARE(child4->counter, 0); - QCOMPARE(root->counter, 1); } class CustomItem : public QGraphicsItem @@ -3703,21 +3707,22 @@ void tst_QGraphicsItem::ensureVisible() QGraphicsView view(&scene); view.setFixedSize(300, 300); view.show(); + QTest::qWaitForWindowShown(&view); for (int i = 0; i < 25; ++i) { view.scale(qreal(1.06), qreal(1.06)); - QTest::qWait(25); + QApplication::processEvents(); } item->ensureVisible(-100, -100, 25, 25); - QTest::qWait(250); + QTest::qWait(25); for (int x = -100; x < 100; x += 25) { for (int y = -100; y < 100; y += 25) { int xmargin = rand() % 75; int ymargin = rand() % 75; item->ensureVisible(x, y, 25, 25, xmargin, ymargin); - QTest::qWait(25); + QApplication::processEvents(); QPolygonF viewScenePoly; viewScenePoly << view.mapToScene(view.rect().topLeft()) @@ -3744,7 +3749,7 @@ void tst_QGraphicsItem::ensureVisible() } item->ensureVisible(100, 100, 25, 25); - QTest::qWait(250); + QTest::qWait(25); } void tst_QGraphicsItem::cursor() @@ -3785,7 +3790,7 @@ void tst_QGraphicsItem::cursor() view.show(); QTest::mouseMove(&view, view.rect().center()); - QTest::qWait(250); + QTest::qWait(25); QCursor cursor = view.viewport()->cursor(); @@ -3794,7 +3799,7 @@ void tst_QGraphicsItem::cursor() QApplication::sendEvent(view.viewport(), &event); } - QTest::qWait(250); + QTest::qWait(25); QCOMPARE(view.viewport()->cursor().shape(), cursor.shape()); @@ -3819,7 +3824,7 @@ void tst_QGraphicsItem::cursor() QApplication::sendEvent(view.viewport(), &event); } - QTest::qWait(250); + QTest::qWait(25); QCOMPARE(view.viewport()->cursor().shape(), item2->cursor().shape()); @@ -3829,7 +3834,7 @@ void tst_QGraphicsItem::cursor() QApplication::sendEvent(view.viewport(), &event); } - QTest::qWait(250); + QTest::qWait(25); QCOMPARE(view.viewport()->cursor().shape(), cursor.shape()); #endif @@ -4488,10 +4493,9 @@ void tst_QGraphicsItem::sceneEventFilter() QGraphicsView view(&scene); view.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif - QTest::qWait(250); + QApplication::setActiveWindow(&view); + QTest::qWaitForWindowShown(&view); + QTest::qWait(25); QGraphicsTextItem *text1 = scene.addText(QLatin1String("Text1")); QGraphicsTextItem *text2 = scene.addText(QLatin1String("Text2")); @@ -4503,10 +4507,10 @@ void tst_QGraphicsItem::sceneEventFilter() EventFilterTesterItem *tester = new EventFilterTesterItem; scene.addItem(tester); - QVERIFY(!text1->hasFocus()); + QTRY_VERIFY(!text1->hasFocus()); text1->installSceneEventFilter(tester); text1->setFocus(); - QVERIFY(text1->hasFocus()); + QTRY_VERIFY(text1->hasFocus()); QCOMPARE(tester->filteredEvents.size(), 1); QCOMPARE(tester->filteredEvents.at(0), QEvent::FocusIn); @@ -4554,13 +4558,14 @@ void tst_QGraphicsItem::sceneEventFilter() QGraphicsTextItem *ti3 = anotherScene->addText("This is a test #3"); gv.setScene(anotherScene); gv.show(); - QTest::qWait(250); + QTest::qWaitForWindowShown(&gv); + QTest::qWait(25); ti->installSceneEventFilter(ti2); ti3->installSceneEventFilter(ti); delete ti2; //we souldn't crash QTest::mouseMove(gv.viewport(), gv.mapFromScene(ti->scenePos())); - QTest::qWait(250); + QTest::qWait(30); delete ti; } @@ -4608,10 +4613,8 @@ void tst_QGraphicsItem::paint() QGraphicsView view(&scene); view.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif - QTest::qWait(250); + QTest::qWaitForWindowShown(&view); + QApplication::processEvents(); #ifdef Q_OS_WIN32 //we try to switch the desktop: if it fails, we skip the test if (::SwitchDesktop( ::GetThreadDesktop( ::GetCurrentThreadId() ) ) == 0) { @@ -4619,14 +4622,15 @@ void tst_QGraphicsItem::paint() } #endif - QCOMPARE(paintTester.widget, view.viewport()); + QTRY_COMPARE(paintTester.widget, view.viewport()); view.hide(); QGraphicsScene scene2; QGraphicsView view2(&scene2); view2.show(); - QTest::qWait(250); + QTest::qWaitForWindowShown(&view2); + QTest::qWait(25); PaintTester tester2; scene2.addItem(&tester2); @@ -4638,22 +4642,19 @@ void tst_QGraphicsItem::paint() //nominal case, update call paint tester2.update(); qApp->processEvents(); - QTest::qWait(250); - QVERIFY(tester2.painted == 2); + QTRY_VERIFY(tester2.painted == 2); //we remove the item from the scene, number of updates is still the same tester2.update(); scene2.removeItem(&tester2); qApp->processEvents(); - QTest::qWait(250); - QVERIFY(tester2.painted == 2); + QTRY_VERIFY(tester2.painted == 2); //We re-add the item, the number of paint should increase scene2.addItem(&tester2); tester2.update(); qApp->processEvents(); - QTest::qWait(250); - QVERIFY(tester2.painted == 3); + QTRY_VERIFY(tester2.painted == 3); } class HarakiriItem : public QGraphicsRectItem @@ -5414,6 +5415,8 @@ void tst_QGraphicsItem::untransformable() view.setBackgroundBrush(QBrush(Qt::black, Qt::DiagCrossPattern)); #endif + QTest::qWaitForWindowShown(&view); + for (int i = 0; i < 10; ++i) { QPoint center = view.viewport()->rect().center(); QCOMPARE(view.itemAt(center), item1); @@ -5438,7 +5441,7 @@ void tst_QGraphicsItem::untransformable() view.rotate(13); view.shear(qreal(0.01), qreal(0.01)); view.translate(10, 10); - QTest::qWait(250); + QTest::qWait(25); } } @@ -5474,11 +5477,9 @@ void tst_QGraphicsItem::contextMenuEventPropagation() QGraphicsView view(&scene); view.setAlignment(Qt::AlignLeft | Qt::AlignTop); view.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif view.resize(200, 200); - QTest::qWait(250); + QTest::qWaitForWindowShown(&view); + QTest::qWait(20); QContextMenuEvent event(QContextMenuEvent::Mouse, QPoint(10, 10), view.viewport()->mapToGlobal(QPoint(10, 10))); @@ -5579,15 +5580,16 @@ void tst_QGraphicsItem::task141694_textItemEnsureVisible() QGraphicsView view(&scene); view.setFixedSize(200, 200); view.show(); + QTest::qWaitForWindowShown(&view); view.ensureVisible(-1000, -1000, 5, 5); int hscroll = view.horizontalScrollBar()->value(); int vscroll = view.verticalScrollBar()->value(); - QTestEventLoop::instance().enterLoop(1); + QTest::qWait(10); // This should not cause the view to scroll - QCOMPARE(view.horizontalScrollBar()->value(), hscroll); + QTRY_COMPARE(view.horizontalScrollBar()->value(), hscroll); QCOMPARE(view.verticalScrollBar()->value(), vscroll); } @@ -5752,16 +5754,17 @@ void tst_QGraphicsItem::ensureUpdateOnTextItem() QGraphicsScene scene; QGraphicsView view(&scene); view.show(); - QTest::qWait(250); + QTest::qWaitForWindowShown(&view); + QTest::qWait(25); TextItem *text1 = new TextItem(QLatin1String("123")); scene.addItem(text1); qApp->processEvents(); - QCOMPARE(text1->updates,1); + QTRY_COMPARE(text1->updates,1); //same bouding rect but we have to update text1->setText(QLatin1String("321")); - QTest::qWait(250); - QCOMPARE(text1->updates,2); + qApp->processEvents(); + QTRY_COMPARE(text1->updates,2); } void tst_QGraphicsItem::task243707_addChildBeforeParent() @@ -6049,10 +6052,8 @@ void tst_QGraphicsItem::opacity2() MyGraphicsView view(&scene); view.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif - QTest::qWait(250); + QTest::qWaitForWindowShown(&view); + QTRY_COMPARE(view.repaints, 1); #define RESET_REPAINT_COUNTERS \ parent->repaints = 0; \ @@ -6063,8 +6064,8 @@ void tst_QGraphicsItem::opacity2() RESET_REPAINT_COUNTERS child->setOpacity(0.0); - QTest::qWait(100); - QCOMPARE(view.repaints, 1); + QTest::qWait(10); + QTRY_COMPARE(view.repaints, 1); QCOMPARE(parent->repaints, 1); QCOMPARE(child->repaints, 0); QCOMPARE(grandChild->repaints, 0); @@ -6072,8 +6073,8 @@ void tst_QGraphicsItem::opacity2() RESET_REPAINT_COUNTERS child->setOpacity(1.0); - QTest::qWait(100); - QCOMPARE(view.repaints, 1); + QTest::qWait(10); + QTRY_COMPARE(view.repaints, 1); QCOMPARE(parent->repaints, 1); QCOMPARE(child->repaints, 1); QCOMPARE(grandChild->repaints, 1); @@ -6081,8 +6082,8 @@ void tst_QGraphicsItem::opacity2() RESET_REPAINT_COUNTERS parent->setOpacity(0.0); - QTest::qWait(100); - QCOMPARE(view.repaints, 1); + QTest::qWait(10); + QTRY_COMPARE(view.repaints, 1); QCOMPARE(parent->repaints, 0); QCOMPARE(child->repaints, 0); QCOMPARE(grandChild->repaints, 0); @@ -6090,8 +6091,8 @@ void tst_QGraphicsItem::opacity2() RESET_REPAINT_COUNTERS parent->setOpacity(1.0); - QTest::qWait(100); - QCOMPARE(view.repaints, 1); + QTest::qWait(10); + QTRY_COMPARE(view.repaints, 1); QCOMPARE(parent->repaints, 1); QCOMPARE(child->repaints, 1); QCOMPARE(grandChild->repaints, 1); @@ -6100,8 +6101,8 @@ void tst_QGraphicsItem::opacity2() RESET_REPAINT_COUNTERS child->setOpacity(0.0); - QTest::qWait(100); - QCOMPARE(view.repaints, 1); + QTest::qWait(10); + QTRY_COMPARE(view.repaints, 1); QCOMPARE(parent->repaints, 1); QCOMPARE(child->repaints, 0); QCOMPARE(grandChild->repaints, 1); @@ -6109,8 +6110,8 @@ void tst_QGraphicsItem::opacity2() RESET_REPAINT_COUNTERS child->setOpacity(0.0); // Already 0.0; no change. - QTest::qWait(100); - QCOMPARE(view.repaints, 0); + QTest::qWait(10); + QTRY_COMPARE(view.repaints, 0); QCOMPARE(parent->repaints, 0); QCOMPARE(child->repaints, 0); QCOMPARE(grandChild->repaints, 0); @@ -6142,15 +6143,13 @@ void tst_QGraphicsItem::opacityZeroUpdates() MyGraphicsView view(&scene); view.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif - QTest::qWait(250); + QTest::qWaitForWindowShown(&view); + QTRY_VERIFY(view.repaints > 0); view.reset(); parent->setOpacity(0.0); - QTest::qWait(200); + QTest::qWait(20); // transforming items bounding rect to view coordinates const QRect childDeviceBoundingRect = child->deviceTransform(view.viewportTransform()) @@ -6161,7 +6160,7 @@ void tst_QGraphicsItem::opacityZeroUpdates() QRegion expectedRegion = parentDeviceBoundingRect.adjusted(-2, -2, 2, 2); expectedRegion += childDeviceBoundingRect.adjusted(-2, -2, 2, 2); - QCOMPARE(view.paintedRegion, expectedRegion); + QTRY_COMPARE(view.paintedRegion, expectedRegion); } class StacksBehindParentHelper : public QGraphicsRectItem @@ -6217,15 +6216,12 @@ void tst_QGraphicsItem::itemStacksBehindParent() QGraphicsView view(&scene); view.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif - QTest::qWait(250); + QTest::qWaitForWindowShown(&view); + QTest::qWait(100); paintedItems.clear(); view.viewport()->update(); - QTest::qWait(100); - - QCOMPARE(scene.items(0, 0, 100, 100), (QList() + QApplication::processEvents(); + QTRY_COMPARE(scene.items(0, 0, 100, 100), (QList() << grandChild111 << child11 << grandChild121 << child12 << parent1 << grandChild211 << child21 @@ -6239,9 +6235,9 @@ void tst_QGraphicsItem::itemStacksBehindParent() child11->setFlag(QGraphicsItem::ItemStacksBehindParent); scene.update(); paintedItems.clear(); - QTest::qWait(250); + QApplication::processEvents(); - QCOMPARE(scene.items(0, 0, 100, 100), (QList() + QTRY_COMPARE(scene.items(0, 0, 100, 100), (QList() << grandChild121 << child12 << parent1 << grandChild111 << child11 << grandChild211 << child21 @@ -6255,9 +6251,9 @@ void tst_QGraphicsItem::itemStacksBehindParent() child12->setFlag(QGraphicsItem::ItemStacksBehindParent); paintedItems.clear(); scene.update(); - QTest::qWait(250); + QApplication::processEvents(); - QCOMPARE(scene.items(0, 0, 100, 100), (QList() + QTRY_COMPARE(scene.items(0, 0, 100, 100), (QList() << parent1 << grandChild111 << child11 << grandChild121 << child12 << grandChild211 << child21 @@ -6503,31 +6499,29 @@ void tst_QGraphicsItem::tabChangesFocus() QWidget widget; widget.setLayout(layout); widget.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&widget); -#endif - QTest::qWait(250); - QVERIFY(scene.isActive()); + QTest::qWaitForWindowShown(&widget); + + QTRY_VERIFY(scene.isActive()); dial1->setFocus(); - QTest::qWait(125); - QVERIFY(dial1->hasFocus()); + QTest::qWait(15); + QTRY_VERIFY(dial1->hasFocus()); QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); - QVERIFY(view->hasFocus()); - QVERIFY(item->hasFocus()); + QTest::qWait(15); + QTRY_VERIFY(view->hasFocus()); + QTRY_VERIFY(item->hasFocus()); QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); + QTest::qWait(15); if (tabChangesFocus) { - QVERIFY(!view->hasFocus()); - QVERIFY(!item->hasFocus()); - QVERIFY(dial2->hasFocus()); + QTRY_VERIFY(!view->hasFocus()); + QTRY_VERIFY(!item->hasFocus()); + QTRY_VERIFY(dial2->hasFocus()); } else { - QVERIFY(view->hasFocus()); - QVERIFY(item->hasFocus()); + QTRY_VERIFY(view->hasFocus()); + QTRY_VERIFY(item->hasFocus()); QCOMPARE(item->toPlainText(), QString("\tHello")); } } @@ -6538,12 +6532,12 @@ void tst_QGraphicsItem::cacheMode() QGraphicsView view(&scene); view.resize(150, 150); view.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif + QApplication::setActiveWindow(&view); + QTest::qWaitForWindowShown(&view); + // Increase the probability of window activation // not causing another repaint of test items. - QTest::qWait(250); + QTest::qWait(50); EventTester *tester = new EventTester; EventTester *testerChild = new EventTester; @@ -6553,24 +6547,24 @@ void tst_QGraphicsItem::cacheMode() testerChild2->setFlag(QGraphicsItem::ItemIgnoresTransformations); scene.addItem(tester); - QTest::qWait(250); + QTest::qWait(10); for (int i = 0; i < 2; ++i) { // No visual change. - QCOMPARE(tester->repaints, 1); + QTRY_COMPARE(tester->repaints, 1); QCOMPARE(testerChild->repaints, 1); QCOMPARE(testerChild2->repaints, 1); tester->setCacheMode(QGraphicsItem::NoCache); testerChild->setCacheMode(QGraphicsItem::NoCache); testerChild2->setCacheMode(QGraphicsItem::NoCache); - QTest::qWait(250); - QCOMPARE(tester->repaints, 1); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 1); QCOMPARE(testerChild->repaints, 1); QCOMPARE(testerChild2->repaints, 1); tester->setCacheMode(QGraphicsItem::DeviceCoordinateCache); testerChild->setCacheMode(QGraphicsItem::DeviceCoordinateCache); testerChild2->setCacheMode(QGraphicsItem::DeviceCoordinateCache); - QTest::qWait(250); + QTest::qWait(25); } // The first move causes a repaint as the item is painted into its pixmap. @@ -6578,8 +6572,8 @@ void tst_QGraphicsItem::cacheMode() tester->setPos(10, 10); testerChild->setPos(10, 10); testerChild2->setPos(10, 10); - QTest::qWait(250); - QCOMPARE(tester->repaints, 2); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 2); QCOMPARE(testerChild->repaints, 2); QCOMPARE(testerChild2->repaints, 2); @@ -6594,15 +6588,15 @@ void tst_QGraphicsItem::cacheMode() // Translating does not result in a repaint. tester->translate(10, 10); - QTest::qWait(250); - QCOMPARE(tester->repaints, 2); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 2); QCOMPARE(testerChild->repaints, 2); QCOMPARE(testerChild2->repaints, 2); // Rotating results in a repaint. tester->rotate(45); - QTest::qWait(250); - QCOMPARE(tester->repaints, 3); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 3); QCOMPARE(testerChild->repaints, 3); QCOMPARE(testerChild2->repaints, 2); @@ -6610,8 +6604,8 @@ void tst_QGraphicsItem::cacheMode() tester->setCacheMode(QGraphicsItem::ItemCoordinateCache); // autosize testerChild->setCacheMode(QGraphicsItem::ItemCoordinateCache); // autosize testerChild2->setCacheMode(QGraphicsItem::ItemCoordinateCache); // autosize - QTest::qWait(250); - QCOMPARE(tester->repaints, 4); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 4); QCOMPARE(testerChild->repaints, 4); QCOMPARE(testerChild2->repaints, 3); @@ -6619,30 +6613,30 @@ void tst_QGraphicsItem::cacheMode() tester->rotate(22); testerChild->rotate(22); testerChild2->rotate(22); - QTest::qWait(250); - QCOMPARE(tester->repaints, 4); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 4); QCOMPARE(testerChild->repaints, 4); QCOMPARE(testerChild2->repaints, 3); // Explicit update causes a repaint. tester->update(0, 0, 5, 5); - QTest::qWait(250); - QCOMPARE(tester->repaints, 5); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 5); QCOMPARE(testerChild->repaints, 4); QCOMPARE(testerChild2->repaints, 3); // Updating outside the item's bounds does not cause a repaint. tester->update(10, 10, 5, 5); - QTest::qWait(250); - QCOMPARE(tester->repaints, 5); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 5); QCOMPARE(testerChild->repaints, 4); QCOMPARE(testerChild2->repaints, 3); // Resizing an item should cause a repaint of that item. (because of // autosize). tester->setGeometry(QRectF(-15, -15, 30, 30)); - QTest::qWait(250); - QCOMPARE(tester->repaints, 6); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 6); QCOMPARE(testerChild->repaints, 4); QCOMPARE(testerChild2->repaints, 3); @@ -6650,22 +6644,22 @@ void tst_QGraphicsItem::cacheMode() tester->setCacheMode(QGraphicsItem::ItemCoordinateCache, QSize(30, 30)); testerChild->setCacheMode(QGraphicsItem::ItemCoordinateCache, QSize(30, 30)); testerChild2->setCacheMode(QGraphicsItem::ItemCoordinateCache, QSize(30, 30)); - QTest::qWait(250); - QCOMPARE(tester->repaints, 7); + QTest::qWait(20); + QTRY_COMPARE(tester->repaints, 7); QCOMPARE(testerChild->repaints, 5); QCOMPARE(testerChild2->repaints, 4); // Resizing the item should cause a repaint. testerChild->setGeometry(QRectF(-15, -15, 30, 30)); - QTest::qWait(250); - QCOMPARE(tester->repaints, 7); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 7); QCOMPARE(testerChild->repaints, 6); QCOMPARE(testerChild2->repaints, 4); // Scaling the view does not cause a repaint. view.scale(0.7, 0.7); - QTest::qWait(250); - QCOMPARE(tester->repaints, 7); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 7); QCOMPARE(testerChild->repaints, 6); QCOMPARE(testerChild2->repaints, 4); @@ -6673,54 +6667,54 @@ void tst_QGraphicsItem::cacheMode() tester->setCacheMode(QGraphicsItem::DeviceCoordinateCache); testerChild->setCacheMode(QGraphicsItem::DeviceCoordinateCache); testerChild2->setCacheMode(QGraphicsItem::DeviceCoordinateCache); - QTest::qWait(250); - QCOMPARE(tester->repaints, 8); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 8); QCOMPARE(testerChild->repaints, 7); QCOMPARE(testerChild2->repaints, 5); // Scaling the view back should cause repaints for two of the items. view.setTransform(QTransform()); - QTest::qWait(250); - QCOMPARE(tester->repaints, 9); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 9); QCOMPARE(testerChild->repaints, 8); QCOMPARE(testerChild2->repaints, 5); // Rotating the base item (perspective) should repaint two items. tester->setTransform(QTransform().rotate(10, Qt::XAxis)); - QTest::qWait(250); - QCOMPARE(tester->repaints, 10); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 10); QCOMPARE(testerChild->repaints, 9); QCOMPARE(testerChild2->repaints, 5); // Moving the middle item should case a repaint even if it's a move, // because the parent is rotated with a perspective. testerChild->setPos(1, 1); - QTest::qWait(250); - QCOMPARE(tester->repaints, 10); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 10); QCOMPARE(testerChild->repaints, 10); QCOMPARE(testerChild2->repaints, 5); // Make a huge item tester->setGeometry(QRectF(-4000, -4000, 8000, 8000)); - QTest::qWait(250); - QCOMPARE(tester->repaints, 11); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 11); QCOMPARE(testerChild->repaints, 10); QCOMPARE(testerChild2->repaints, 5); // Move the large item - will cause a repaint as the // cache is clipped. tester->setPos(5, 0); - QTest::qWait(250); - QCOMPARE(tester->repaints, 12); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 12); QCOMPARE(testerChild->repaints, 10); QCOMPARE(testerChild2->repaints, 5); // Hiding and showing should invalidate the cache tester->hide(); - QTest::qWait(250); + QTest::qWait(25); tester->show(); - QTest::qWait(250); - QCOMPARE(tester->repaints, 13); + QTest::qWait(25); + QTRY_COMPARE(tester->repaints, 13); QCOMPARE(testerChild->repaints, 11); QCOMPARE(testerChild2->repaints, 6); } @@ -6739,30 +6733,30 @@ void tst_QGraphicsItem::updateCachedItemAfterMove() view.show(); QTest::qWaitForWindowShown(&view); - QTest::qWait(125); + QTest::qWait(12); QTRY_VERIFY(tester->repaints > 0); tester->repaints = 0; // Move the item, should not cause repaints tester->setPos(10, 0); - QTest::qWait(125); + QTest::qWait(12); QCOMPARE(tester->repaints, 0); // Move then update, should cause one repaint tester->setPos(20, 0); tester->update(); - QTest::qWait(125); + QTest::qWait(12); QCOMPARE(tester->repaints, 1); // Hiding the item doesn't cause a repaint tester->hide(); - QTest::qWait(125); + QTest::qWait(12); QCOMPARE(tester->repaints, 1); // Moving a hidden item doesn't cause a repaint tester->setPos(30, 0); tester->update(); - QTest::qWait(125); + QTest::qWait(12); QCOMPARE(tester->repaints, 1); } @@ -7177,17 +7171,17 @@ void tst_QGraphicsItem::itemUsesExtendedStyleOption() QGraphicsView view(&scene); rect->startTrack = false; view.show(); - QTest::qWait(500); + QTest::qWaitForWindowShown(&view); rect->startTrack = true; rect->update(10, 10, 10, 10); - QTest::qWait(125); + QTest::qWait(12); rect->startTrack = false; rect->setFlag(QGraphicsItem::ItemUsesExtendedStyleOption, true); QVERIFY((rect->flags() & QGraphicsItem::ItemUsesExtendedStyleOption)); - QTest::qWait(125); + QTest::qWait(12); rect->startTrack = true; rect->update(10, 10, 10, 10); - QTest::qWait(125); + QTest::qWait(12); } void tst_QGraphicsItem::itemSendsGeometryChanges() @@ -7379,10 +7373,8 @@ void tst_QGraphicsItem::itemHasNoContents() QGraphicsView view(&scene); view.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif - QTest::qWait(100); + QTest::qWaitForWindowShown(&view); + QTRY_VERIFY(!_paintedItems.isEmpty()); _paintedItems.clear(); @@ -7390,10 +7382,10 @@ void tst_QGraphicsItem::itemHasNoContents() #ifdef Q_WS_MAC // There's no difference between update() and repaint() on the Mac, // so we have to process events here to make sure we get the event. - QTest::qWait(100); + QTest::qWait(10); #endif - QCOMPARE(_paintedItems, QList() << item2); + QTRY_COMPARE(_paintedItems, QList() << item2); } void tst_QGraphicsItem::hitTestUntransformableItem() @@ -8474,9 +8466,10 @@ void tst_QGraphicsItem::QTBUG_4233_updateCachedWithSceneRect() QGraphicsView view(&scene); view.show(); + QTest::qWaitForWindowShown(&view); QTRY_COMPARE(QApplication::activeWindow(), (QWidget *)&view); - QCOMPARE(tester->repaints, 1); + QTRY_COMPARE(tester->repaints, 1); scene.update(); // triggers "updateAll" optimization qApp->processEvents(); diff --git a/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp b/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp index a289257..5c0073c 100644 --- a/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp +++ b/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp @@ -783,11 +783,9 @@ void tst_QGraphicsProxyWidget::focusNextPrevChild() QGraphicsScene scene; QGraphicsView view(&scene); view.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif QApplication::setActiveWindow(&view); - QTest::qWait(250); + QTest::qWaitForWindowShown(&view); + QApplication::processEvents(); QTRY_COMPARE(QApplication::activeWindow(), &view); if (hasScene) { scene.addItem(proxy); @@ -832,13 +830,11 @@ void tst_QGraphicsProxyWidget::focusOutEvent() SubQGraphicsProxyWidget *proxy = new SubQGraphicsProxyWidget; scene.addItem(proxy); view.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif QApplication::setActiveWindow(&view); view.activateWindow(); view.setFocus(); - QTest::qWait(125); + QTest::qWaitForWindowShown(&view); + QApplication::processEvents(); QTRY_VERIFY(view.isVisible()); QTRY_COMPARE(QApplication::activeWindow(), &view); @@ -856,11 +852,10 @@ void tst_QGraphicsProxyWidget::focusOutEvent() if (!call) { QWidget *other = new QLineEdit(&view); other->show(); - QTest::qWait(125); + QApplication::processEvents(); QTRY_VERIFY(other->isVisible()); other->setFocus(); QTRY_VERIFY(other->hasFocus()); - QTest::qWait(125); qApp->processEvents(); QTRY_COMPARE(proxy->hasFocus(), false); QVERIFY(proxy->focusOut); @@ -992,7 +987,7 @@ void tst_QGraphicsProxyWidget::hoverEnterLeaveEvent() // in QTest::mouseMove(&view, QPoint(50, 50)); - QTest::qWait(250); + QTest::qWait(25); QTRY_COMPARE(widget->testAttribute(Qt::WA_UnderMouse), hasWidget ? true : false); // ### this attribute isn't supported QCOMPARE(widget->enterCount, hasWidget ? 1 : 0); @@ -1002,7 +997,7 @@ void tst_QGraphicsProxyWidget::hoverEnterLeaveEvent() // out QTest::mouseMove(&view, QPoint(10, 10)); - QTest::qWait(250); + QTest::qWait(25); // QTRY_COMPARE(widget->testAttribute(Qt::WA_UnderMouse), false); // ### this attribute isn't supported QCOMPARE(widget->leaveCount, hasWidget ? 1 : 0); @@ -1067,14 +1062,14 @@ void tst_QGraphicsProxyWidget::hoverMoveEvent() // in QTest::mouseMove(&view, QPoint(50, 50)); - QTest::qWait(125); + QTest::qWait(12); if (mouseDown) QTest::mousePress(view.viewport(), Qt::LeftButton); // move a little bit QTest::mouseMove(&view, QPoint(60, 60)); - QTest::qWait(125); + QTest::qWait(12); QTRY_COMPARE(widget->hoverEnter, (hasWidget && hoverEnabled) ? 1 : 0); QCOMPARE(widget->moveCount, (hasWidget && mouseTracking) || (hasWidget && mouseDown) ? 1 : 0); @@ -1098,11 +1093,9 @@ void tst_QGraphicsProxyWidget::keyPressEvent() QGraphicsView view(&scene); view.show(); view.viewport()->setFocus(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif QApplication::setActiveWindow(&view); - QTest::qWait(250); + QTest::qWaitForWindowShown(&view); + QApplication::processEvents(); QTRY_COMPARE(QApplication::activeWindow(), &view); SubQGraphicsProxyWidget *proxy = new SubQGraphicsProxyWidget; @@ -1142,11 +1135,8 @@ void tst_QGraphicsProxyWidget::keyReleaseEvent() QGraphicsScene scene; QGraphicsView view(&scene); view.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif QApplication::setActiveWindow(&view); - QTest::qWait(250); + QTest::qWaitForWindowShown(&view); QTRY_COMPARE(QApplication::activeWindow(), &view); @@ -1190,7 +1180,7 @@ void tst_QGraphicsProxyWidget::mouseDoubleClickEvent() view.show(); QApplication::setActiveWindow(&view); - QTest::qWait(250); + QTest::qWaitForWindowShown(&view); QTRY_COMPARE(QApplication::activeWindow(), &view); SubQGraphicsProxyWidget *proxy = new SubQGraphicsProxyWidget; @@ -1234,7 +1224,7 @@ void tst_QGraphicsProxyWidget::mousePressReleaseEvent() QGraphicsScene scene; QGraphicsView view(&scene); view.show(); - QTest::qWait(125); + QTest::qWaitForWindowShown(&view); SubQGraphicsProxyWidget *proxy = new SubQGraphicsProxyWidget; proxy->setFlag(QGraphicsItem::ItemIsFocusable, true); // ### remove me!!! @@ -1305,19 +1295,18 @@ void tst_QGraphicsProxyWidget::paintEvent() w->show(); QTest::qWaitForWindowShown(w); - - QTest::qWait(100); + QApplication::processEvents(); proxy.setWidget(w); scene.addItem(&proxy); //make sure we flush all the paint events - QTest::qWait(250); + QApplication::processEvents(); QTRY_VERIFY(proxy.paintCount > 1); proxy.paintCount = 0; w->update(); - QTest::qWait(100); + QApplication::processEvents(); QTRY_COMPARE(proxy.paintCount, 1); //the widget should have been painted now } @@ -1711,24 +1700,21 @@ void tst_QGraphicsProxyWidget::tabFocus_simpleWidget() window.setLayout(layout); window.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&window); -#endif QApplication::setActiveWindow(&window); window.activateWindow(); - QTest::qWait(125); + QTest::qWaitForWindowShown(&window); leftDial->setFocus(); - QTest::qWait(125); + QApplication::processEvents(); QTRY_VERIFY(leftDial->hasFocus()); EventSpy eventSpy(edit); // Tab into line edit QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); - QVERIFY(!leftDial->hasFocus()); - QVERIFY(view->hasFocus()); + QApplication::processEvents(); + QTRY_VERIFY(!leftDial->hasFocus()); + QTRY_VERIFY(view->hasFocus()); QVERIFY(view->viewport()->hasFocus()); QVERIFY(scene.hasFocus()); QVERIFY(editProxy->hasFocus()); @@ -1738,22 +1724,22 @@ void tst_QGraphicsProxyWidget::tabFocus_simpleWidget() // Tab into right dial QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); - QVERIFY(!view->hasFocus()); + QApplication::processEvents(); + QTRY_VERIFY(!view->hasFocus()); QVERIFY(!view->viewport()->hasFocus()); QVERIFY(!scene.hasFocus()); QVERIFY(!editProxy->hasFocus()); QVERIFY(!edit->hasFocus()); - QVERIFY(rightDial->hasFocus()); + QTRY_VERIFY(rightDial->hasFocus()); QCOMPARE(eventSpy.counts[QEvent::FocusIn], 1); QCOMPARE(eventSpy.counts[QEvent::FocusOut], 1); // Backtab into line edit QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(125); - QVERIFY(view->hasFocus()); + QApplication::processEvents(); + QTRY_VERIFY(view->hasFocus()); QVERIFY(view->viewport()->hasFocus()); - QVERIFY(scene.hasFocus()); + QTRY_VERIFY(scene.hasFocus()); QVERIFY(editProxy->hasFocus()); QVERIFY(edit->hasFocus()); QVERIFY(!rightDial->hasFocus()); @@ -1762,13 +1748,13 @@ void tst_QGraphicsProxyWidget::tabFocus_simpleWidget() // Backtab into left dial QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(125); - QVERIFY(!view->hasFocus()); + QApplication::processEvents(); + QTRY_VERIFY(!view->hasFocus()); QVERIFY(!view->viewport()->hasFocus()); QVERIFY(!scene.hasFocus()); QVERIFY(!editProxy->hasFocus()); QVERIFY(!edit->hasFocus()); - QVERIFY(leftDial->hasFocus()); + QTRY_VERIFY(leftDial->hasFocus()); QCOMPARE(eventSpy.counts[QEvent::FocusIn], 2); QCOMPARE(eventSpy.counts[QEvent::FocusOut], 2); } @@ -1796,14 +1782,12 @@ void tst_QGraphicsProxyWidget::tabFocus_simpleTwoWidgets() window.setLayout(layout); window.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&window); -#endif QApplication::setActiveWindow(&window); window.activateWindow(); + QTest::qWaitForWindowShown(&window); leftDial->setFocus(); - QTest::qWait(125); + QApplication::processEvents(); QTRY_VERIFY(leftDial->hasFocus()); EventSpy eventSpy(edit); @@ -1811,7 +1795,7 @@ void tst_QGraphicsProxyWidget::tabFocus_simpleTwoWidgets() // Tab into line edit QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!leftDial->hasFocus()); QVERIFY(view->hasFocus()); QVERIFY(view->viewport()->hasFocus()); @@ -1823,7 +1807,7 @@ void tst_QGraphicsProxyWidget::tabFocus_simpleTwoWidgets() // Tab into second line edit QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(view->hasFocus()); QVERIFY(view->viewport()->hasFocus()); QVERIFY(scene.hasFocus()); @@ -1838,7 +1822,7 @@ void tst_QGraphicsProxyWidget::tabFocus_simpleTwoWidgets() // Tab into right dial QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!view->hasFocus()); QVERIFY(!view->viewport()->hasFocus()); QVERIFY(!scene.hasFocus()); @@ -1854,7 +1838,7 @@ void tst_QGraphicsProxyWidget::tabFocus_simpleTwoWidgets() // Backtab into line edit 2 QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(view->hasFocus()); QVERIFY(view->viewport()->hasFocus()); QVERIFY(scene.hasFocus()); @@ -1870,7 +1854,7 @@ void tst_QGraphicsProxyWidget::tabFocus_simpleTwoWidgets() // Backtab into line edit 1 QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(view->hasFocus()); QVERIFY(view->viewport()->hasFocus()); QVERIFY(scene.hasFocus()); @@ -1886,7 +1870,7 @@ void tst_QGraphicsProxyWidget::tabFocus_simpleTwoWidgets() // Backtab into left dial QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!view->hasFocus()); QVERIFY(!view->viewport()->hasFocus()); QVERIFY(!scene.hasFocus()); @@ -1929,15 +1913,12 @@ void tst_QGraphicsProxyWidget::tabFocus_complexWidget() window.setLayout(layout); window.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&window); -#endif QApplication::setActiveWindow(&window); window.activateWindow(); - QTest::qWait(125); + QTest::qWaitForWindowShown(&window); leftDial->setFocus(); - QTest::qWait(125); + QApplication::processEvents(); QTRY_VERIFY(leftDial->hasFocus()); EventSpy eventSpy(edit1); @@ -1946,7 +1927,7 @@ void tst_QGraphicsProxyWidget::tabFocus_complexWidget() // Tab into group box QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!leftDial->hasFocus()); QVERIFY(view->hasFocus()); QVERIFY(view->viewport()->hasFocus()); @@ -1956,7 +1937,7 @@ void tst_QGraphicsProxyWidget::tabFocus_complexWidget() // Tab into line edit QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); + QApplication::processEvents(); edit1->hasFocus(); QVERIFY(!box->hasFocus()); QCOMPARE(eventSpy.counts[QEvent::FocusIn], 1); @@ -1964,7 +1945,7 @@ void tst_QGraphicsProxyWidget::tabFocus_complexWidget() // Tab into line edit 2 QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); + QApplication::processEvents(); edit2->hasFocus(); QVERIFY(!edit1->hasFocus()); QCOMPARE(eventSpy.counts[QEvent::FocusIn], 1); @@ -1974,7 +1955,7 @@ void tst_QGraphicsProxyWidget::tabFocus_complexWidget() // Tab into right dial QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!edit2->hasFocus()); rightDial->hasFocus(); QCOMPARE(eventSpy2.counts[QEvent::FocusIn], 1); @@ -1982,7 +1963,7 @@ void tst_QGraphicsProxyWidget::tabFocus_complexWidget() // Backtab into line edit 2 QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!rightDial->hasFocus()); edit2->hasFocus(); QCOMPARE(eventSpy2.counts[QEvent::FocusIn], 2); @@ -1990,7 +1971,7 @@ void tst_QGraphicsProxyWidget::tabFocus_complexWidget() // Backtab into line edit 1 QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!edit2->hasFocus()); edit1->hasFocus(); QCOMPARE(eventSpy2.counts[QEvent::FocusOut], 2); @@ -1998,14 +1979,14 @@ void tst_QGraphicsProxyWidget::tabFocus_complexWidget() // Backtab into line box QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!edit1->hasFocus()); box->hasFocus(); QCOMPARE(eventSpy.counts[QEvent::FocusOut], 2); // Backtab into left dial QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!box->hasFocus()); leftDial->hasFocus(); } @@ -2063,16 +2044,13 @@ void tst_QGraphicsProxyWidget::tabFocus_complexTwoWidgets() window.setLayout(layout); window.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&window); -#endif QApplication::setActiveWindow(&window); window.activateWindow(); - QTest::qWait(125); + QTest::qWaitForWindowShown(&window); QTRY_COMPARE(QApplication::activeWindow(), &window); leftDial->setFocus(); - QTest::qWait(125); + QApplication::processEvents(); QTRY_VERIFY(leftDial->hasFocus()); EventSpy eventSpy(edit1); @@ -2083,7 +2061,7 @@ void tst_QGraphicsProxyWidget::tabFocus_complexTwoWidgets() // Tab into group box QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!leftDial->hasFocus()); QVERIFY(view->hasFocus()); QVERIFY(view->viewport()->hasFocus()); @@ -2093,7 +2071,7 @@ void tst_QGraphicsProxyWidget::tabFocus_complexTwoWidgets() // Tab into line edit QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); + QApplication::processEvents(); edit1->hasFocus(); QVERIFY(!box->hasFocus()); QCOMPARE(eventSpy.counts[QEvent::FocusIn], 1); @@ -2101,7 +2079,7 @@ void tst_QGraphicsProxyWidget::tabFocus_complexTwoWidgets() // Tab into line edit 2 QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); + QApplication::processEvents(); edit2->hasFocus(); QVERIFY(!edit1->hasFocus()); QCOMPARE(eventSpy.counts[QEvent::FocusIn], 1); @@ -2109,13 +2087,13 @@ void tst_QGraphicsProxyWidget::tabFocus_complexTwoWidgets() // Tab into right box QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!edit2->hasFocus()); box_2->hasFocus(); // Tab into right top line edit QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!box_2->hasFocus()); edit1_2->hasFocus(); QCOMPARE(eventSpy1_2.counts[QEvent::FocusIn], 1); @@ -2123,7 +2101,7 @@ void tst_QGraphicsProxyWidget::tabFocus_complexTwoWidgets() // Tab into right bottom line edit QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!edit1_2->hasFocus()); edit2_2->hasFocus(); QCOMPARE(eventSpy1_2.counts[QEvent::FocusIn], 1); @@ -2133,50 +2111,50 @@ void tst_QGraphicsProxyWidget::tabFocus_complexTwoWidgets() // Tab into right dial QTest::keyPress(QApplication::focusWidget(), Qt::Key_Tab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!edit2->hasFocus()); rightDial->hasFocus(); QCOMPARE(eventSpy2_2.counts[QEvent::FocusOut], 1); // Backtab into line edit 2 QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!rightDial->hasFocus()); edit2_2->hasFocus(); // Backtab into line edit 1 QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!edit2_2->hasFocus()); edit1_2->hasFocus(); // Backtab into line box QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!edit1_2->hasFocus()); box_2->hasFocus(); // Backtab into line edit 2 QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!rightDial->hasFocus()); edit2->hasFocus(); // Backtab into line edit 1 QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!edit2->hasFocus()); edit1->hasFocus(); // Backtab into line box QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!edit1->hasFocus()); box->hasFocus(); // Backtab into left dial QTest::keyPress(QApplication::focusWidget(), Qt::Key_Backtab); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!box->hasFocus()); leftDial->hasFocus(); } @@ -2200,16 +2178,13 @@ void tst_QGraphicsProxyWidget::setFocus_simpleWidget() window.setLayout(layout); window.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&window); -#endif QApplication::setActiveWindow(&window); window.activateWindow(); - QTest::qWait(125); + QTest::qWaitForWindowShown(&window); QTRY_COMPARE(QApplication::activeWindow(), &window); leftDial->setFocus(); - QTest::qWait(125); + QApplication::processEvents(); QTRY_VERIFY(leftDial->hasFocus()); EventSpy eventSpy(edit); @@ -2273,16 +2248,13 @@ void tst_QGraphicsProxyWidget::setFocus_simpleTwoWidgets() window.setLayout(layout); window.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&window); -#endif QApplication::setActiveWindow(&window); window.activateWindow(); - QTest::qWait(125); + QTest::qWaitForWindowShown(&window); QTRY_COMPARE(QApplication::activeWindow(), &window); leftDial->setFocus(); - QTest::qWait(125); + QApplication::processEvents(); QTRY_VERIFY(leftDial->hasFocus()); EventSpy eventSpy(edit); @@ -2353,16 +2325,13 @@ void tst_QGraphicsProxyWidget::setFocus_complexTwoWidgets() window.setLayout(layout); window.show(); -#ifdef Q_WS_X11 - qt_x11_wait_for_window_manager(&window); -#endif QApplication::setActiveWindow(&window); window.activateWindow(); - QTest::qWait(125); + QTest::qWaitForWindowShown(&window); QTRY_COMPARE(QApplication::activeWindow(), &window); leftDial->setFocus(); - QTest::qWait(125); + QApplication::processEvents(); QTRY_VERIFY(leftDial->hasFocus()); EventSpy eventSpy(edit1); @@ -2377,7 +2346,7 @@ void tst_QGraphicsProxyWidget::setFocus_complexTwoWidgets() QCOMPARE(eventSpy.counts[QEvent::FocusIn], 0); edit1->setFocus(); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(scene.hasFocus()); QVERIFY(edit1->hasFocus()); QVERIFY(!box->hasFocus()); @@ -2385,7 +2354,7 @@ void tst_QGraphicsProxyWidget::setFocus_complexTwoWidgets() QCOMPARE(eventSpyBox.counts[QEvent::FocusIn], 0); edit2_2->setFocus(); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!edit1->hasFocus()); QVERIFY(!box_2->hasFocus()); QVERIFY(edit2_2->hasFocus()); @@ -2396,7 +2365,7 @@ void tst_QGraphicsProxyWidget::setFocus_complexTwoWidgets() QCOMPARE(eventSpyBox_2.counts[QEvent::FocusIn], 0); box->setFocus(); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(!edit2_2->hasFocus()); QVERIFY(!edit1->hasFocus()); QVERIFY(box->hasFocus()); @@ -2410,7 +2379,7 @@ void tst_QGraphicsProxyWidget::setFocus_complexTwoWidgets() QCOMPARE(eventSpyBox_2.counts[QEvent::FocusOut], 0); edit2_2->setFocus(); - QTest::qWait(125); + QApplication::processEvents(); QVERIFY(edit2_2->hasFocus()); QVERIFY(!edit1->hasFocus()); QVERIFY(!box->hasFocus()); @@ -2447,12 +2416,14 @@ void tst_QGraphicsProxyWidget::popup_basic() QCOMPARE(box->pos(), QPoint()); QCOMPARE(proxy->pos(), QPointF()); + QTest::qWaitForWindowShown(&view); QTest::qWait(125); + QApplication::processEvents(); QTest::mousePress(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(proxy->mapToScene(proxy->boundingRect().center()))); - QTest::qWait(125); + QTest::qWait(12); QCOMPARE(box->pos(), QPoint()); @@ -2467,8 +2438,8 @@ void tst_QGraphicsProxyWidget::popup_basic() QSKIP("Does not work due to SH_Combobox_Popup", SkipAll); QCOMPARE(child->widget()->parent(), static_cast(box)); - QTest::qWait(125); - QCOMPARE(proxy->pos(), QPointF(box->pos())); + QTest::qWait(12); + QTRY_COMPARE(proxy->pos(), QPointF(box->pos())); QCOMPARE(child->x(), qreal(box->x())); QCOMPARE(child->y(), qreal(box->rect().bottom())); #ifndef Q_OS_WIN @@ -2478,7 +2449,7 @@ void tst_QGraphicsProxyWidget::popup_basic() QCOMPARE(child->widget()->y(), box->rect().bottom()); QCOMPARE(child->geometry().toRect(), child->widget()->geometry()); #endif - QTest::qWait(125); + QTest::qWait(12); } void tst_QGraphicsProxyWidget::popup_subwidget() @@ -2544,7 +2515,8 @@ void tst_QGraphicsProxyWidget::changingCursor_basic() proxy->setWidget(widget); proxy->show(); scene.addItem(proxy); - QTest::qWait(125); + QTest::qWaitForWindowShown(&view); + QApplication::processEvents(); // in QTest::mouseMove(view.viewport(), view.mapFromScene(proxy->mapToScene(proxy->boundingRect().center()))); @@ -2653,7 +2625,8 @@ void tst_QGraphicsProxyWidget::childPos() for (int i = 0; i < 2; ++i) { box->showPopup(); - QTest::qWait(50); + QApplication::processEvents(); + QApplication::processEvents(); QWidget *menu = 0; foreach (QObject *child, box->children()) { @@ -2718,7 +2691,7 @@ void tst_QGraphicsProxyWidget::windowOpacity() view.show(); QTest::qWaitForWindowShown(&view); QApplication::sendPostedEvents(); - QTest::qWait(100); + QTest::qWait(50); qRegisterMetaType >("QList"); QSignalSpy signalSpy(&scene, SIGNAL(changed(const QList &))); @@ -2727,7 +2700,7 @@ void tst_QGraphicsProxyWidget::windowOpacity() QVERIFY(widget->isVisible()); widget->setWindowOpacity(0.5); - QTest::qWait(100); + QApplication::processEvents(); // Make sure setWindowOpacity triggers an update on the scene, // and not on the widget or the proxy itself. The entire proxy needs an update @@ -2738,8 +2711,8 @@ void tst_QGraphicsProxyWidget::windowOpacity() #ifdef Q_WS_X11 paints = !X11->use_xrender; #endif - QCOMPARE(eventSpy.counts[QEvent::UpdateRequest], 0); - QCOMPARE(eventSpy.counts[QEvent::Paint], paints); + QTRY_COMPARE(eventSpy.counts[QEvent::UpdateRequest], 0); + QTRY_COMPARE(eventSpy.counts[QEvent::Paint], paints); QCOMPARE(signalSpy.count(), 1); const QList arguments = signalSpy.takeFirst(); @@ -2920,7 +2893,8 @@ void tst_QGraphicsProxyWidget::dontCrashWhenDie() { MainWidget *w = new MainWidget(); w->show(); - QTest::qWait(200); + QTest::qWaitForWindowShown(w); + QTest::qWait(100); QTest::mouseMove(w->view->viewport(), w->view->mapFromScene(w->widget->mapToScene(w->widget->boundingRect().center()))); delete w->item; } diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp index 95a038b..0c27079 100644 --- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp +++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp @@ -363,7 +363,7 @@ void tst_QGraphicsView::alignment() for (int k = 0; k < 3; ++k) { view.resize(100 + k * 25, 100 + k * 25); - QTest::qWait(25); + QApplication::processEvents(); } } } @@ -455,7 +455,7 @@ void tst_QGraphicsView::setScene() view.setScene(0); - QTest::qWait(250); + QTest::qWait(25); QVERIFY(!view.horizontalScrollBar()->isVisible()); QVERIFY(!view.verticalScrollBar()->isVisible()); @@ -530,7 +530,7 @@ void tst_QGraphicsView::sceneRect_growing() size *= 2; scene.setSceneRect(-size, -size, size * 2, size * 2); - QTest::qWait(25); + QApplication::processEvents(); QCOMPARE(view.sceneRect(), scene.sceneRect()); QCOMPARE(view.mapToScene(0, 0), topLeft); @@ -614,7 +614,8 @@ void tst_QGraphicsView::dragMode_scrollHand() view.setFixedSize(100, 100); view.show(); - QTest::qWait(25); + QTest::qWaitForWindowShown(&view); + QApplication::processEvents(); view.setInteractive(j ? false : true); @@ -646,9 +647,9 @@ void tst_QGraphicsView::dragMode_scrollHand() QApplication::sendEvent(view.viewport(), &event); QVERIFY(event.isAccepted()); } - QTest::qWait(250); + QApplication::processEvents(); - QVERIFY(item->isSelected()); + QTRY_VERIFY(item->isSelected()); for (int k = 0; k < 4; ++k) { #ifndef QT_NO_CURSOR @@ -689,9 +690,9 @@ void tst_QGraphicsView::dragMode_scrollHand() QApplication::sendEvent(view.viewport(), &event); QVERIFY(event.isAccepted()); } - QTest::qWait(250); + QApplication::processEvents(); - QVERIFY(item->isSelected()); + QTRY_VERIFY(item->isSelected()); QCOMPARE(view.horizontalScrollBar()->value(), horizontalScrollBarValue - 10); QCOMPARE(view.verticalScrollBar()->value(), verticalScrollBarValue - 10); #ifndef QT_NO_CURSOR @@ -749,6 +750,9 @@ void tst_QGraphicsView::dragMode_rubberBand() view.setDragMode(QGraphicsView::RubberBandDrag); + QTest::qWaitForWindowShown(&view); + QApplication::processEvents(); + for (int i = 0; i < 2; ++i) { // RubberBandDrag #ifndef QT_NO_CURSOR @@ -769,7 +773,7 @@ void tst_QGraphicsView::dragMode_rubberBand() QCOMPARE(view.viewport()->cursor().shape(), cursorShape); #endif - QTest::qWait(25); + QApplication::processEvents(); { // Move @@ -1073,7 +1077,7 @@ void tst_QGraphicsView::centerOnPoint() QFAIL(qPrintable(error)); } - QTest::qWait(1); + QApplication::processEvents(); } } @@ -2095,7 +2099,7 @@ void tst_QGraphicsView::transformationAnchor() } view.centerOn(0, 0); view.horizontalScrollBar()->setValue(100); - QTest::qWait(100); + QApplication::processEvents(); QPointF center = view.mapToScene(view.viewport()->rect().center()); @@ -2125,6 +2129,8 @@ void tst_QGraphicsView::resizeAnchor() for (int i = 0; i < 2; ++i) { view.resize(100, 100); view.show(); + QTest::qWaitForWindowShown(&view); + QApplication::processEvents(); if (i == 0) { QCOMPARE(view.resizeAnchor(), QGraphicsView::NoAnchor); @@ -2132,12 +2138,12 @@ void tst_QGraphicsView::resizeAnchor() view.setResizeAnchor(QGraphicsView::AnchorViewCenter); } view.centerOn(0, 0); - QTest::qWait(250); + QTest::qWait(25); QPointF f = view.mapToScene(50, 50); QPointF center = view.mapToScene(view.viewport()->rect().center()); - QTest::qWait(250); + QApplication::processEvents(); for (int size = 200; size <= 400; size += 25) { view.resize(size, size); @@ -2152,7 +2158,7 @@ void tst_QGraphicsView::resizeAnchor() QVERIFY(qAbs(newCenter.x() - center.x()) < slack); QVERIFY(qAbs(newCenter.y() - center.y()) < slack); } - QTest::qWait(20); + QApplication::processEvents(); } } } @@ -2760,11 +2766,11 @@ void tst_QGraphicsView::task187791_setSceneCausesUpdate() QCOMPARE(updateSpy.count(), 0); view.setScene(0); - QTest::qWait(125); - QCOMPARE(updateSpy.count(), 1); + QApplication::processEvents(); + QTRY_COMPARE(updateSpy.count(), 1); view.setScene(&scene); - QTest::qWait(125); - QCOMPARE(updateSpy.count(), 2); + QApplication::processEvents(); + QTRY_COMPARE(updateSpy.count(), 2); } class MouseMoveCounter : public QGraphicsView @@ -2808,15 +2814,15 @@ void tst_QGraphicsView::task186827_deleteReplayedItem() QApplication::sendEvent(view.viewport(), &event); } QCOMPARE(view.mouseMoves, 1); - QTest::qWait(125); - QCOMPARE(view.mouseMoves, 1); - QTest::qWait(125); + QTest::qWait(25); + QTRY_COMPARE(view.mouseMoves, 1); + QTest::qWait(25); { QMouseEvent event(QEvent::MouseMove, view.mapFromScene(25, 25), Qt::NoButton, 0, 0); QApplication::sendEvent(view.viewport(), &event); } QCOMPARE(view.mouseMoves, 2); - QTest::qWait(125); + QTest::qWait(15); } void tst_QGraphicsView::task207546_focusCrash() @@ -3412,11 +3418,11 @@ void tst_QGraphicsView::exposeRegion() QRegion expectedExposeRegion = QRect(0, 0, 5, 5); expectedExposeRegion += QRect(viewport->rect().bottomRight() - QPoint(5, 5), QSize(5, 5)); viewport->update(expectedExposeRegion); - QTest::qWait(125); + QApplication::processEvents(); // Make sure it triggers correct repaint on the view. - QCOMPARE(view.lastUpdateRegions.size(), 1); - QCOMPARE(view.lastUpdateRegions.at(0), expectedExposeRegion); + QTRY_COMPARE(view.lastUpdateRegions.size(), 1); + QTRY_COMPARE(view.lastUpdateRegions.at(0), expectedExposeRegion); // Make sure the item didn't get any repaints. QCOMPARE(item->paints, 0); @@ -3473,7 +3479,7 @@ void tst_QGraphicsView::update() #if defined QT_BUILD_INTERNAL const bool intersects = updateRect.intersects(viewportRect); QGraphicsViewPrivate *viewPrivate = static_cast(qt_widget_private(&view)); - QCOMPARE(viewPrivate->updateRect(updateRect), intersects); + QTRY_COMPARE(viewPrivate->updateRect(updateRect), intersects); QCOMPARE(viewPrivate->updateRegion(updateRect), intersects); view.lastUpdateRegions.clear(); @@ -3631,13 +3637,13 @@ void tst_QGraphicsView::task253415_reconnectUpdateSceneOnSceneChanged() QObject::connect(&scene1, SIGNAL(changed(QList)), &dummyView, SLOT(updateScene(QList))); view.setScene(&scene1); - QTest::qWait(125); + QTest::qWait(12); QGraphicsScene scene2; QObject::connect(&scene2, SIGNAL(changed(QList)), &dummyView, SLOT(updateScene(QList))); view.setScene(&scene2); - QTest::qWait(125); + QTest::qWait(12); bool wasConnected2 = QObject::disconnect(&scene2, SIGNAL(changed(QList)), &view, 0); QVERIFY(wasConnected2); @@ -3661,8 +3667,10 @@ void tst_QGraphicsView::task255529_transformationAnchorMouseAndViewportMargins() }; VpGraphicsView view(&scene); + view.setWindowFlags(Qt::X11BypassWindowManagerHint); view.show(); QTest::qWaitForWindowShown(&view); + QTest::qWait(50); QPoint mouseViewPos(20, 20); sendMouseMove(view.viewport(), mouseViewPos); -- cgit v0.12 From f16330e8d7f0e15d79b17a162a77044da57bb748 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 30 Sep 2009 10:22:29 +0200 Subject: Fix tst_QFontDialog::task256466_wrongStyle() autotest failure in Cocoa. Some fonts contain only styles other than Normal (or Regualr). If we try to retrive the font sizes for such fonts by passing an empty style string, the QFontDatabase will return a null list. This was causing the autotest to fail. This patch will make sure that a style is always selected in the QFontDialog. Reviewed-by: Olivier --- src/gui/dialogs/qfontdialog.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/dialogs/qfontdialog.cpp b/src/gui/dialogs/qfontdialog.cpp index ca882c5..60fae27 100644 --- a/src/gui/dialogs/qfontdialog.cpp +++ b/src/gui/dialogs/qfontdialog.cpp @@ -602,6 +602,8 @@ void QFontDialogPrivate::updateStyles() } if (!found) styleList->setCurrentItem(0); + } else { + styleList->setCurrentItem(0); } styleEdit->setText(styleList->currentText()); -- cgit v0.12 From 8d3d7d411491e50c1c6a62f473a1fa69a3ca2773 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Wed, 30 Sep 2009 11:26:04 +0200 Subject: Compile when one includes without putting explicitly all Qt subdirs in the include path --- src/gui/s60framework/qs60mainapplication.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/s60framework/qs60mainapplication.h b/src/gui/s60framework/qs60mainapplication.h index 457764c..5f621e0 100644 --- a/src/gui/s60framework/qs60mainapplication.h +++ b/src/gui/s60framework/qs60mainapplication.h @@ -42,7 +42,7 @@ #ifndef QS60MAINAPPLICATION_H #define QS60MAINAPPLICATION_H -#include +#include #ifdef Q_WS_S60 -- cgit v0.12 From 7250463b2b67eac69b5f56fdefdbf9727c6d53af Mon Sep 17 00:00:00 2001 From: Alexis Menard Date: Wed, 30 Sep 2009 11:33:30 +0200 Subject: Install sub-attaq in the correct place. Reviewed-by:TrustMe --- demos/sub-attaq/sub-attaq.pro | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/demos/sub-attaq/sub-attaq.pro b/demos/sub-attaq/sub-attaq.pro index ba2b54b..8677ff5 100644 --- a/demos/sub-attaq/sub-attaq.pro +++ b/demos/sub-attaq/sub-attaq.pro @@ -31,13 +31,13 @@ SOURCES += boat.cpp \ RESOURCES += subattaq.qrc # install -target.path = $$[QT_INSTALL_DEMOS]/animation/sub-attaq +target.path = $$[QT_INSTALL_DEMOS]/sub-attaq sources.files = $$SOURCES \ $$HEADERS \ $$RESOURCES \ $$FORMS \ sub-attaq.pro \ pics -sources.path = $$[QT_INSTALL_DEMOS]/animation/sub-attaq +sources.path = $$[QT_INSTALL_DEMOS]/sub-attaq INSTALLS += target \ sources -- cgit v0.12 From b0aca8ecf7ff70c83ade9009fb0e7c0c8137abf7 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 30 Sep 2009 11:48:36 +0200 Subject: Phonon/EffectFactory: Remove calls to QObject tr(). Replace them by calls to QCoreApplication::translate() to provide translators with context information. Reviewed-by: Frans Englich --- src/3rdparty/phonon/mmf/effectfactory.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/3rdparty/phonon/mmf/effectfactory.cpp b/src/3rdparty/phonon/mmf/effectfactory.cpp index 4acaaa4..9843a6c 100644 --- a/src/3rdparty/phonon/mmf/effectfactory.cpp +++ b/src/3rdparty/phonon/mmf/effectfactory.cpp @@ -17,6 +17,7 @@ along with this library. If not, see . */ #include +#include #include #include @@ -57,21 +58,21 @@ QHash EffectFactory::audioEffectDescriptions(AbstractAudio switch (type) { case AbstractAudioEffect::EffectAudioEqualizer: - return constructEffectDescription(QObject::tr("audio equalizer"), "Audio equalizer."); + return constructEffectDescription(QCoreApplication::translate("Phonon::MMF::EffectFactory", "audio equalizer"), "Audio equalizer."); case AbstractAudioEffect::EffectBassBoost: - return constructEffectDescription(QObject::tr("Bass boost"), "Bass boost."); + return constructEffectDescription(QCoreApplication::translate("Phonon::MMF::EffectFactory", "Bass boost"), "Bass boost."); case AbstractAudioEffect::EffectDistanceAttenuation: - return constructEffectDescription(QObject::tr("Distance Attenuation"), "Distance Attenuation."); + return constructEffectDescription(QCoreApplication::translate("Phonon::MMF::EffectFactory", "Distance Attenuation"), "Distance Attenuation."); case AbstractAudioEffect::EffectEnvironmentalReverb: - return constructEffectDescription(QObject::tr("Environmental Reverb"), "Environmental Reverb."); + return constructEffectDescription(QCoreApplication::translate("Phonon::MMF::EffectFactory", "Environmental Reverb"), "Environmental Reverb."); case AbstractAudioEffect::EffectListenerOrientation: - return constructEffectDescription(QObject::tr("Environmental Reverb"), "Environmental Reverb."); + return constructEffectDescription(QCoreApplication::translate("Phonon::MMF::EffectFactory", "Environmental Reverb"), "Environmental Reverb."); case AbstractAudioEffect::EffectLoudness: - return constructEffectDescription(QObject::tr("Loudness"), "Loudness."); + return constructEffectDescription(QCoreApplication::translate("Phonon::MMF::EffectFactory", "Loudness"), "Loudness."); case AbstractAudioEffect::EffectSourceOrientation: - return constructEffectDescription(QObject::tr("Source Orientation"), "Source Orientation."); + return constructEffectDescription(QCoreApplication::translate("Phonon::MMF::EffectFactory", "Source Orientation"), "Source Orientation."); case AbstractAudioEffect::EffectStereoWidening: - return constructEffectDescription(QObject::tr("Stereo Widening"), "Stereo Widening."); + return constructEffectDescription(QCoreApplication::translate("Phonon::MMF::EffectFactory", "Stereo Widening"), "Stereo Widening."); } Q_ASSERT_X(false, Q_FUNC_INFO, "Unknown effect type."); -- cgit v0.12 From 45d5832a504516219167f0205901c56035118944 Mon Sep 17 00:00:00 2001 From: Alexis Menard Date: Wed, 30 Sep 2009 11:58:31 +0200 Subject: Make the test more robust because pulse doesn't clean the temp dir. I clean the directory i will use to be sure it is clean. Reviewed-by:TrustMe --- tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp index 63bc90c..ea9304d 100644 --- a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp +++ b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp @@ -806,6 +806,16 @@ void tst_QFileSystemModel::sort() QDir dir(QDir::tempPath()); dir.mkdir("sortTemp"); dir.cd("sortTemp"); + QDirIterator it(dir); + while(it.hasNext()) + { + it.next(); + QFileInfo info = it.fileInfo(); + if (info.isDir()) + dir.rmdir(info.fileName()); + else + QFile::remove(info.absoluteFilePath()); + } const QString dirPath = dir.absolutePath(); QVERIFY(dir.exists()); -- cgit v0.12 From 5170432e7cb2d0d1adf7ac2ec1ece627c75470f3 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Wed, 30 Sep 2009 12:41:58 +0200 Subject: Fix floating point precision when using qreal with QDataStream A frequent bug when using QDataStream across platforms where the size of qreal is different (such as any desktop platform and an ARM device) is that you end up using different overloads for streaming the value in and out (e.g. operator>>(double) on desktop and operator<<(float) on ARM.) This can leads to crashes and data corruption. To avoid the problem, we define a single floating point precision for the entire data stream and allow this to be set by the user. The default is to use 64-bit precision for all floating point numbers. Reviewed-by: Samuel Reviewed-by: Thiago --- src/corelib/io/io.pri | 1 + src/corelib/io/qdatastream.cpp | 102 +++++++++++++++++++++++++++-- src/corelib/io/qdatastream.h | 13 +++- tests/auto/qdatastream/tst_qdatastream.cpp | 58 +++++++++++++++- 4 files changed, 164 insertions(+), 10 deletions(-) diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri index bca9baa..02a1586 100644 --- a/src/corelib/io/io.pri +++ b/src/corelib/io/io.pri @@ -5,6 +5,7 @@ HEADERS += \ io/qabstractfileengine_p.h \ io/qbuffer.h \ io/qdatastream.h \ + io/qdatastream_p.h \ io/qdebug.h \ io/qdir.h \ io/qdiriterator.h \ diff --git a/src/corelib/io/qdatastream.cpp b/src/corelib/io/qdatastream.cpp index 9339b8e..cc62201 100644 --- a/src/corelib/io/qdatastream.cpp +++ b/src/corelib/io/qdatastream.cpp @@ -40,6 +40,7 @@ ****************************************************************************/ #include "qdatastream.h" +#include "qdatastream_p.h" #ifndef QT_NO_DATASTREAM #include "qbuffer.h" @@ -193,6 +194,21 @@ QT_BEGIN_NAMESPACE */ /*! + \enum QDataStream::FloatingPointPrecision + + The precision of floating point numbers used for reading/writing the data. This will only have + an effect if the version of the data stream is Qt_4_6 or higher. + + \warning The floating point precision must be set to the same value on the object that writes + and the object that reads the data stream. + + \value SinglePrecision All floating point numbers in the data stream have 32-bit precision. + \value DoublePrecision All floating point numbers in the data stream have 64-bit precision. + + \sa setFloatingPointPrecision(), floatingPointPrecision() +*/ + +/*! \enum QDataStream::Status This enum describes the current status of the data stream. @@ -222,7 +238,7 @@ QT_BEGIN_NAMESPACE #endif enum { - DefaultStreamVersion = QDataStream::Qt_4_5 + DefaultStreamVersion = QDataStream::Qt_4_6 }; // ### 5.0: when streaming invalid QVariants, just the type should @@ -414,6 +430,42 @@ bool QDataStream::atEnd() const } /*! + Returns the floating point precision of the data stream. + + \since 4.6 + + \sa FloatingPointPrecision setFloatingPointPrecision() +*/ +QDataStream::FloatingPointPrecision QDataStream::floatingPointPrecision() const +{ + return d == 0 ? QDataStream::DoublePrecision : d->floatingPointPrecision; +} + +/*! + Sets the floating point precision of the data stream. If the floating point precision is + DoublePrecision and the version of the data stream is Qt_4_6 or higher, all floating point + numbers will be written and read with 64-bit precision. If the floating point precision is + SinglePrecision and the version is Qt_4_6 or higher, all floating point numbers will be written + and read with 32-bit precision. + + For versions prior to Qt_4_6, the precision of floating point numbers in the data stream depends + on the stream operator called. + + The default is DoublePrecision. + + \warning This property must be set to the same value on the object that writes and the object + that reads the data stream. + + \since 4.6 +*/ +void QDataStream::setFloatingPointPrecision(QDataStream::FloatingPointPrecision precision) +{ + if (d == 0) + d.reset(new QDataStreamPrivate()); + d->floatingPointPrecision = precision; +} + +/*! Returns the status of the data stream. \sa Status setStatus() resetStatus() @@ -517,7 +569,7 @@ void QDataStream::setByteOrder(ByteOrder bo) \value Qt_4_3 Version 9 (Qt 4.3) \value Qt_4_4 Version 10 (Qt 4.4) \value Qt_4_5 Version 11 (Qt 4.5) - \omitvalue Qt_4_6 + \value Qt_4_6 Version 12 (Qt 4.6) \sa setVersion(), version() */ @@ -754,13 +806,23 @@ QDataStream &QDataStream::operator>>(bool &i) /*! \overload - Reads a 32-bit floating point number from the stream into \a f, + Reads a floating point number from the stream into \a f, using the standard IEEE 754 format. Returns a reference to the stream. + + \sa setFloatingPointPrecision() */ QDataStream &QDataStream::operator>>(float &f) -{ +{ + if (version() >= QDataStream::Qt_4_6 + && floatingPointPrecision() == QDataStream::DoublePrecision) { + double d; + *this >> d; + f = d; + return *this; + } + f = 0.0f; CHECK_STREAM_PRECOND(*this) if (noswap) { @@ -796,13 +858,23 @@ QDataStream &QDataStream::operator>>(float &f) /*! \overload - Reads a 64-bit floating point number from the stream into \a f, + Reads a floating point number from the stream into \a f, using the standard IEEE 754 format. Returns a reference to the stream. + + \sa setFloatingPointPrecision() */ QDataStream &QDataStream::operator>>(double &f) { + if (version() >= QDataStream::Qt_4_6 + && floatingPointPrecision() == QDataStream::SinglePrecision) { + float d; + *this >> d; + f = d; + return *this; + } + f = 0.0; CHECK_STREAM_PRECOND(*this) #ifndef Q_DOUBLE_FORMAT @@ -1115,12 +1187,20 @@ QDataStream &QDataStream::operator<<(bool i) /*! \overload - Writes a 32-bit floating point number, \a f, to the stream using + Writes a floating point number, \a f, to the stream using the standard IEEE 754 format. Returns a reference to the stream. + + \sa setFloatingPointPrecision() */ QDataStream &QDataStream::operator<<(float f) { + if (version() >= QDataStream::Qt_4_6 + && floatingPointPrecision() == QDataStream::DoublePrecision) { + *this << double(f); + return *this; + } + CHECK_STREAM_PRECOND(*this) float g = f; // fixes float-on-stack problem if (noswap) { // no conversion needed @@ -1146,12 +1226,20 @@ QDataStream &QDataStream::operator<<(float f) /*! \overload - Writes a 64-bit floating point number, \a f, to the stream using + Writes a floating point number, \a f, to the stream using the standard IEEE 754 format. Returns a reference to the stream. + + \sa setFloatingPointPrecision() */ QDataStream &QDataStream::operator<<(double f) { + if (version() >= QDataStream::Qt_4_6 + && floatingPointPrecision() == QDataStream::SinglePrecision) { + *this << float(f); + return *this; + } + CHECK_STREAM_PRECOND(*this) #ifndef Q_DOUBLE_FORMAT if (noswap) { diff --git a/src/corelib/io/qdatastream.h b/src/corelib/io/qdatastream.h index b376de6..6e83204 100644 --- a/src/corelib/io/qdatastream.h +++ b/src/corelib/io/qdatastream.h @@ -42,6 +42,7 @@ #ifndef QDATASTREAM_H #define QDATASTREAM_H +#include #include #include @@ -83,7 +84,7 @@ public: Qt_4_3 = 9, Qt_4_4 = 10, Qt_4_5 = 11, - Qt_4_6 = Qt_4_5 + Qt_4_6 = 12, #if QT_VERSION >= 0x040700 #error Add the datastream version for this Qt version Qt_4_7 = Qt_4_6 @@ -101,6 +102,11 @@ public: ReadCorruptData }; + enum FloatingPointPrecision { + SinglePrecision, + DoublePrecision + }; + QDataStream(); explicit QDataStream(QIODevice *); #ifdef QT3_SUPPORT @@ -123,6 +129,9 @@ public: void setStatus(Status status); void resetStatus(); + FloatingPointPrecision floatingPointPrecision() const; + void setFloatingPointPrecision(FloatingPointPrecision precision); + ByteOrder byteOrder() const; void setByteOrder(ByteOrder); @@ -176,7 +185,7 @@ public: private: Q_DISABLE_COPY(QDataStream) - QDataStreamPrivate *d; + QScopedPointer d; QIODevice *dev; bool owndev; diff --git a/tests/auto/qdatastream/tst_qdatastream.cpp b/tests/auto/qdatastream/tst_qdatastream.cpp index 4f7b34e..add0945 100644 --- a/tests/auto/qdatastream/tst_qdatastream.cpp +++ b/tests/auto/qdatastream/tst_qdatastream.cpp @@ -204,6 +204,8 @@ private slots: void streamRealDataTypes(); + void floatingPointPrecision(); + #ifdef QT3_SUPPORT void task_224283(); #endif @@ -288,7 +290,8 @@ static int NColorRoles[] = { QPalette::AlternateBase + 1, // Qt_4_3 QPalette::ToolTipText + 1, // Qt_4_4 QPalette::ToolTipText + 1, // Qt_4_5 - 0 // add the correct value for Qt_4_6 here later + QPalette::ToolTipText + 1, // Qt_4_6 + 0 // add the correct value for Qt_4_7 here later }; // Testing get/set functions @@ -2538,9 +2541,12 @@ void tst_QDataStream::skipRawData() QFETCH(QByteArray, littleEndianData); \ QFETCH(int, expectedStatus); \ QFETCH(double, expectedValue); \ + \ + QDataStream::FloatingPointPrecision prec = sizeof(T) == sizeof(double) ? QDataStream::DoublePrecision : QDataStream::SinglePrecision; \ \ { \ QDataStream stream(&bigEndianData, QIODevice::ReadOnly); \ + stream.setFloatingPointPrecision(prec); \ T i; \ stream >> i; \ QCOMPARE((int) stream.status(), expectedStatus); \ @@ -2549,6 +2555,7 @@ void tst_QDataStream::skipRawData() { \ QDataStream stream(&littleEndianData, QIODevice::ReadOnly); \ stream.setByteOrder(QDataStream::LittleEndian); \ + stream.setFloatingPointPrecision(prec); \ T i; \ stream >> i; \ QCOMPARE((int) stream.status(), expectedStatus); \ @@ -3359,6 +3366,55 @@ void tst_QDataStream::compatibility_Qt2() QVERIFY(in_palette.color(QPalette::Light) == Qt::green); } +void tst_QDataStream::floatingPointPrecision() +{ + QByteArray ba; + { + QDataStream stream(&ba, QIODevice::WriteOnly); + QCOMPARE(QDataStream::DoublePrecision, stream.floatingPointPrecision()); + + float f = 123.0f; + stream << f; + QCOMPARE(ba.size(), int(sizeof(double))); + + double d = 234.0; + stream << d; + QCOMPARE(ba.size(), int(sizeof(double)*2)); + + stream.setFloatingPointPrecision(QDataStream::SinglePrecision); + + f = 123.0f; + stream << f; + QCOMPARE(ba.size(), int(sizeof(double)*2 + sizeof(float))); + + d = 234.0; + stream << d; + QCOMPARE(ba.size(), int(sizeof(double)*2 + sizeof(float)*2)); + } + + { + QDataStream stream(ba); + + float f = 0.0f; + stream >> f; + QCOMPARE(123.0f, f); + + double d = 0.0; + stream >> d; + QCOMPARE(234.0, d); + + f = 0.0f; + stream.setFloatingPointPrecision(QDataStream::SinglePrecision); + stream >> f; + QCOMPARE(123.0f, f); + + d = 0.0; + stream >> d; + QCOMPARE(234.0, d); + } + +} + QTEST_MAIN(tst_QDataStream) #include "tst_qdatastream.moc" -- cgit v0.12 From bbdb460ef1778298908ae677684e5855c25d0ce5 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 30 Sep 2009 12:23:16 +0200 Subject: Fix googlechat example when Qt is lacking SSL support. Don't build the googlechat example if QSslSocket isn't available. And even then also perform a run-time check and display an error page if SSL is not available. This is because the login into Google Chat works through an https website. Reviewed-by: Jesper --- examples/webkit/googlechat/googlechat.cpp | 6 ++++++ examples/webkit/webkit.pro | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/examples/webkit/googlechat/googlechat.cpp b/examples/webkit/googlechat/googlechat.cpp index a4a19a4..af567d1 100644 --- a/examples/webkit/googlechat/googlechat.cpp +++ b/examples/webkit/googlechat/googlechat.cpp @@ -41,6 +41,7 @@ #include #include +#include #include "googlechat.h" @@ -118,6 +119,11 @@ void GoogleChat::doLogin() { void GoogleChat::initialPage(bool ok) { if (ok) { + if (!QSslSocket::supportsSsl()) { + showError("This example requires SSL support."); + return; + } + QString s1 = evalJS("document.getElementById('Email').name"); QString s2 = evalJS("document.getElementById('Passwd').name"); QString s3 = evalJS("document.getElementById('gaia_loginform').id"); diff --git a/examples/webkit/webkit.pro b/examples/webkit/webkit.pro index 9ad6789..0a1d6bd 100644 --- a/examples/webkit/webkit.pro +++ b/examples/webkit/webkit.pro @@ -1,8 +1,9 @@ TEMPLATE = subdirs SUBDIRS += formextractor \ previewer \ - fancybrowser \ - googlechat + fancybrowser + +contains(QT_CONFIG, openssl):SUBDIRS += googlechat # install target.path = $$[QT_INSTALL_EXAMPLES]/webkit -- cgit v0.12 From 3cbde9651eab58c56b62d65b6fa4d9269bde0844 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Wed, 30 Sep 2009 13:01:45 +0200 Subject: Compile. Missed qdatastream_p.h in last commit. --- src/corelib/io/qdatastream_p.h | 72 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/corelib/io/qdatastream_p.h diff --git a/src/corelib/io/qdatastream_p.h b/src/corelib/io/qdatastream_p.h new file mode 100644 index 0000000..157fee9 --- /dev/null +++ b/src/corelib/io/qdatastream_p.h @@ -0,0 +1,72 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QDATASTREAM_P_H +#define QDATASTREAM_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include + +QT_BEGIN_NAMESPACE + +#ifndef QT_NO_DATASTREAM +class QDataStreamPrivate +{ +public: + QDataStreamPrivate() : floatingPointPrecision(QDataStream::DoublePrecision) { } + + QDataStream::FloatingPointPrecision floatingPointPrecision; +}; +#endif + +QT_END_NAMESPACE + +#endif // QDATASTREAM_P_H -- cgit v0.12 From d6244e6e5f8bb769176e07e957ec5ce93be72b55 Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Wed, 30 Sep 2009 13:21:29 +0200 Subject: Compile on VS2003 The compiler complained about ambiguity in calls to make_pair because there is also a "using std::make_pair" in the WTF namespace (wtf/HashTraits.h). Reviewed-by: Simon Hausmann --- src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.cpp index 05e3d7b..f7bda9e 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.cpp +++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.cpp @@ -46,7 +46,6 @@ #define DO_PROPERTYMAP_CONSTENCY_CHECK 0 #endif -using namespace std; using namespace WTF; namespace JSC { -- cgit v0.12 From bdf7020103bc9698584005935f00cd874f841a49 Mon Sep 17 00:00:00 2001 From: Jan-Arve Date: Wed, 30 Sep 2009 13:39:49 +0200 Subject: Make the automaticReparenting autotest pass on Mac. On Mac, all autotests will use the release version of Qt, regardless of how the autotest was built --- tests/auto/qgraphicslayout/tst_qgraphicslayout.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qgraphicslayout/tst_qgraphicslayout.cpp b/tests/auto/qgraphicslayout/tst_qgraphicslayout.cpp index feaedd9..69a64ee 100644 --- a/tests/auto/qgraphicslayout/tst_qgraphicslayout.cpp +++ b/tests/auto/qgraphicslayout/tst_qgraphicslayout.cpp @@ -153,7 +153,7 @@ void tst_QGraphicsLayout::automaticReparenting() QGraphicsWidget *ww = new QGraphicsWidget(); QGraphicsLinearLayout *l1 = new QGraphicsLinearLayout(ww); -#ifdef QT_DEBUG +#if !defined(Q_OS_MAC) && defined(QT_DEBUG) QTest::ignoreMessage(QtWarningMsg, "QGraphicsLayout::addChildLayoutItem: QGraphicsWidget \"\"" " in wrong parent; moved to correct parent"); #endif -- cgit v0.12 From 849e46599f0751ba5994d036df140d10e76e223c Mon Sep 17 00:00:00 2001 From: Janne Anttila Date: Wed, 30 Sep 2009 14:48:48 +0300 Subject: Fixed qdoublespinbox undoRedo test case for Symbian. Symbian does not have keysequene associated to redo functionality. Changed the test so that it checks if key sequence is associated to needed functionality and if not test is skipped and warning printed. Reviewed-by: Aleksandar Sasha Babic --- tests/auto/qdoublespinbox/tst_qdoublespinbox.cpp | 30 ++++++++++++++++-------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/tests/auto/qdoublespinbox/tst_qdoublespinbox.cpp b/tests/auto/qdoublespinbox/tst_qdoublespinbox.cpp index f4ea985..3d2fa42 100644 --- a/tests/auto/qdoublespinbox/tst_qdoublespinbox.cpp +++ b/tests/auto/qdoublespinbox/tst_qdoublespinbox.cpp @@ -936,19 +936,29 @@ void tst_QDoubleSpinBox::undoRedo() //testing CTRL+Z (undo) int val = QKeySequence(QKeySequence::Undo)[0]; - Qt::KeyboardModifiers mods = (Qt::KeyboardModifiers)(val & Qt::KeyboardModifierMask); - QTest::keyClick(&spin, val & ~mods, mods); - QCOMPARE(spin.value(), 0.0); - QVERIFY(!spin.lineEdit()->isUndoAvailable()); - QVERIFY(spin.lineEdit()->isRedoAvailable()); + if (val != 0) { + Qt::KeyboardModifiers mods = (Qt::KeyboardModifiers)(val & Qt::KeyboardModifierMask); + QTest::keyClick(&spin, val & ~mods, mods); + QCOMPARE(spin.value(), 0.0); + QVERIFY(!spin.lineEdit()->isUndoAvailable()); + QVERIFY(spin.lineEdit()->isRedoAvailable()); + } else { + QWARN("Undo not tested because no key sequence associated to QKeySequence::Redo"); + } + //testing CTRL+Y (redo) val = QKeySequence(QKeySequence::Redo)[0]; - mods = (Qt::KeyboardModifiers)(val & Qt::KeyboardModifierMask); - QTest::keyClick(&spin, val & ~mods, mods); - QCOMPARE(spin.value(), 1.0); - QVERIFY(!spin.lineEdit()->isRedoAvailable()); - QVERIFY(spin.lineEdit()->isUndoAvailable()); + if (val != 0) { + Qt::KeyboardModifiers mods = (Qt::KeyboardModifiers)(val & Qt::KeyboardModifierMask); + QTest::keyClick(&spin, val & ~mods, mods); + QCOMPARE(spin.value(), 1.0); + QVERIFY(!spin.lineEdit()->isRedoAvailable()); + QVERIFY(spin.lineEdit()->isUndoAvailable()); + } else { + QWARN("Redo not tested because no key sequence associated to QKeySequence::Redo"); + } + spin.setValue(55.0); QVERIFY(!spin.lineEdit()->isUndoAvailable()); -- cgit v0.12 From decaf4fe6e5270efaec6c51c4bc28664b2dbb3be Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Wed, 30 Sep 2009 13:54:04 +0200 Subject: avoid JavaScriptCore C API functions being exported from QtScript library Reviewed-by: Simon Hausmann --- src/script/script.pro | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/script/script.pro b/src/script/script.pro index 6c6b701..659aa26 100644 --- a/src/script/script.pro +++ b/src/script/script.pro @@ -62,6 +62,9 @@ DEFINES += WTF_USE_JAVASCRIPTCORE_BINDINGS=1 WTF_CHANGES=1 DEFINES += NDEBUG +# Avoid JSC C API functions being exported. +DEFINES += JS_EXPORT="" JS_EXPORTDATA="" + INCLUDEPATH += $$PWD include(script.pri) -- cgit v0.12 From d48b960a20c125a4cd7f906a89046116e3c8b376 Mon Sep 17 00:00:00 2001 From: Alexis Menard Date: Wed, 30 Sep 2009 13:57:33 +0200 Subject: Fix auto-test build. Reviewed-by:jesper --- tests/auto/qlistview/tst_qlistview.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/auto/qlistview/tst_qlistview.cpp b/tests/auto/qlistview/tst_qlistview.cpp index 499fb0b..d9cab02 100644 --- a/tests/auto/qlistview/tst_qlistview.cpp +++ b/tests/auto/qlistview/tst_qlistview.cpp @@ -59,6 +59,8 @@ #include #endif +#include "../../shared/util.h" + //TESTED_CLASS= //TESTED_FILES= -- cgit v0.12 From 21cfe5bf6550ae359d6bfa937b1308891954e9bb Mon Sep 17 00:00:00 2001 From: Alexis Menard Date: Wed, 30 Sep 2009 14:03:45 +0200 Subject: Make the test fail, not crash for now. A task is already open to fix it. Reviewed-by:jesper --- tests/auto/qdom/tst_qdom.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/auto/qdom/tst_qdom.cpp b/tests/auto/qdom/tst_qdom.cpp index 6637202..6987186 100644 --- a/tests/auto/qdom/tst_qdom.cpp +++ b/tests/auto/qdom/tst_qdom.cpp @@ -1908,7 +1908,8 @@ void tst_QDom::taskQTBUG4595_dontAssertWhenDocumentSpecifiesUnknownEncoding() co QDomDocument d; QVERIFY(d.setContent(xmlWithUnknownEncoding)); - QString dontAssert = d.toString(); // this should not assert + //QString dontAssert = d.toString(); // this should not assert + QVERIFY2(false, "Line above crashes but we still want to run all tests."); QVERIFY(true); } -- cgit v0.12 From 3868e92de3b27f3e030b77cfa746888a0dbb39e7 Mon Sep 17 00:00:00 2001 From: Jani Hautakangas Date: Wed, 30 Sep 2009 15:21:02 +0300 Subject: Add redo keyboard shortcut for Symbian. Symbian had undo shortcut already defined so this will add redo shortcut to get symmetrical undo-redo Reviewed-by: axis --- src/gui/kernel/qkeysequence.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp index aec757f..b44ef7f 100644 --- a/src/gui/kernel/qkeysequence.cpp +++ b/src/gui/kernel/qkeysequence.cpp @@ -571,7 +571,7 @@ const QKeyBinding QKeySequencePrivate::keyBindings[] = { {QKeySequence::Close, 0, Qt::CTRL | Qt::Key_W, QApplicationPrivate::KB_Win | QApplicationPrivate::KB_X11}, {QKeySequence::Close, 1, Qt::CTRL | Qt::Key_W, QApplicationPrivate::KB_Mac}, {QKeySequence::Cut, 1, Qt::CTRL | Qt::Key_X, QApplicationPrivate::KB_All}, - {QKeySequence::Redo, 1, Qt::CTRL | Qt::Key_Y, QApplicationPrivate::KB_Win}, + {QKeySequence::Redo, 1, Qt::CTRL | Qt::Key_Y, QApplicationPrivate::KB_Win | QApplicationPrivate::KB_S60}, {QKeySequence::Redo, 0, Qt::CTRL | Qt::Key_Y, QApplicationPrivate::KB_Mac},//different priority from above {QKeySequence::Undo, 1, Qt::CTRL | Qt::Key_Z, QApplicationPrivate::KB_All}, {QKeySequence::Back, 1, Qt::CTRL | Qt::Key_BracketLeft, QApplicationPrivate::KB_Mac}, @@ -600,7 +600,7 @@ const QKeyBinding QKeySequencePrivate::keyBindings[] = { {QKeySequence::FindPrevious, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_G, QApplicationPrivate::KB_Win}, {QKeySequence::AddTab, 1, Qt::CTRL | Qt::SHIFT | Qt::Key_N, QApplicationPrivate::KB_KDE}, {QKeySequence::SaveAs, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_S, QApplicationPrivate::KB_Gnome | QApplicationPrivate::KB_Mac}, - {QKeySequence::Redo, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_Z, QApplicationPrivate::KB_Win | QApplicationPrivate::KB_X11}, + {QKeySequence::Redo, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_Z, QApplicationPrivate::KB_Win | QApplicationPrivate::KB_X11 | QApplicationPrivate::KB_S60}, {QKeySequence::Redo, 1, Qt::CTRL | Qt::SHIFT | Qt::Key_Z, QApplicationPrivate::KB_Mac}, //different priority from above {QKeySequence::PreviousChild, 1, Qt::CTRL | Qt::SHIFT | Qt::Key_Backtab, QApplicationPrivate::KB_Win | QApplicationPrivate::KB_X11}, {QKeySequence::PreviousChild, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_Backtab, QApplicationPrivate::KB_Mac },//different priority from above -- cgit v0.12 From 71b3a015d5f051c732646ead395e56a609cc51af Mon Sep 17 00:00:00 2001 From: Alexis Menard Date: Wed, 30 Sep 2009 14:30:12 +0200 Subject: Be consistant between static method and regular QFileDialog contructor. The protected constructor of QFileDialog call selectAll() on the line edit. This constructor is only called by static methods. But the regular constructor didn't behave the same. Now it does :D. Task-number:QTBUG-4419 Reviewed-by:jasplin --- src/gui/dialogs/qfiledialog.cpp | 2 ++ tests/auto/qfiledialog/tst_qfiledialog.cpp | 29 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/src/gui/dialogs/qfiledialog.cpp b/src/gui/dialogs/qfiledialog.cpp index 14f19f2..297c900 100644 --- a/src/gui/dialogs/qfiledialog.cpp +++ b/src/gui/dialogs/qfiledialog.cpp @@ -317,6 +317,7 @@ QFileDialog::QFileDialog(QWidget *parent, Qt::WindowFlags f) { Q_D(QFileDialog); d->init(); + d->lineEdit()->selectAll(); } /*! @@ -334,6 +335,7 @@ QFileDialog::QFileDialog(QWidget *parent, { Q_D(QFileDialog); d->init(directory, filter, caption); + d->lineEdit()->selectAll(); } /*! diff --git a/tests/auto/qfiledialog/tst_qfiledialog.cpp b/tests/auto/qfiledialog/tst_qfiledialog.cpp index 1aa5ee1..9b083ea 100644 --- a/tests/auto/qfiledialog/tst_qfiledialog.cpp +++ b/tests/auto/qfiledialog/tst_qfiledialog.cpp @@ -169,6 +169,8 @@ private slots: void task257579_sideBarWithNonCleanUrls(); void task259105_filtersCornerCases(); + void QTBUG4419_lineEditSelectAll(); + private: QByteArray userSettings; }; @@ -2153,5 +2155,32 @@ void tst_QFiledialog::task259105_filtersCornerCases() filters->setCurrentIndex(1); QCOMPARE(filters->currentText(), QLatin1String("Text Files")); } + +void tst_QFiledialog::QTBUG4419_lineEditSelectAll() +{ + QString tempPath = QDir::tempPath(); + QTemporaryFile *t; + t = new QTemporaryFile; + t->open(); + QNonNativeFileDialog fd(0, "TestFileDialog", t->fileName()); + + fd.setDirectory(tempPath); + fd.setViewMode(QFileDialog::List); + fd.setAcceptMode(QFileDialog::AcceptSave); + fd.setFileMode(QFileDialog::AnyFile); + + fd.show(); + QApplication::setActiveWindow(&fd); + QTest::qWaitForWindowShown(&fd); + QTRY_COMPARE(fd.isVisible(), true); + QTRY_COMPARE(QApplication::activeWindow(), static_cast(&fd)); + + QTest::qWait(500); + QLineEdit *lineEdit = qFindChild(&fd, "fileNameEdit"); + + QCOMPARE(tempPath + QChar('/') + lineEdit->text(), t->fileName()); + QCOMPARE(tempPath + QChar('/') + lineEdit->selectedText(), t->fileName()); +} + QTEST_MAIN(tst_QFiledialog) #include "tst_qfiledialog.moc" -- cgit v0.12 From ca2834b0056b301f1d1b732840fcb106fdd477ac Mon Sep 17 00:00:00 2001 From: Alexis Menard Date: Wed, 30 Sep 2009 14:34:50 +0200 Subject: Don't need to wait that much. Reviewed-by:TrustMe --- tests/auto/qfiledialog/tst_qfiledialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qfiledialog/tst_qfiledialog.cpp b/tests/auto/qfiledialog/tst_qfiledialog.cpp index 9b083ea..f6b082f 100644 --- a/tests/auto/qfiledialog/tst_qfiledialog.cpp +++ b/tests/auto/qfiledialog/tst_qfiledialog.cpp @@ -2175,7 +2175,7 @@ void tst_QFiledialog::QTBUG4419_lineEditSelectAll() QTRY_COMPARE(fd.isVisible(), true); QTRY_COMPARE(QApplication::activeWindow(), static_cast(&fd)); - QTest::qWait(500); + QTest::qWait(250); QLineEdit *lineEdit = qFindChild(&fd, "fileNameEdit"); QCOMPARE(tempPath + QChar('/') + lineEdit->text(), t->fileName()); -- cgit v0.12 From 343eb73edaa4a05860bf8749a2ff70359f45eb78 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 30 Sep 2009 14:36:22 +0200 Subject: Fix reader.google.com crashes Revert this change: ---- 2008-12-18 Bernhard Rosenkraenzer Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=22205 Fix compatibility with bison 2.4, partially based on older patch by Priit Laes * WebCore/css/CSSGrammar.y: Made compatible with bison 2.4 ----- Cherry-picked from qtwebkit.git 4.5 repository/branch with commit 23d13ba45ee59379c04afdef8472acc8611bb36a --- src/3rdparty/webkit/WebCore/css/CSSGrammar.y | 10 +- .../webkit/WebCore/generated/CSSGrammar.cpp | 2342 ++++++++------------ src/3rdparty/webkit/WebCore/generated/CSSGrammar.h | 231 +- 3 files changed, 1133 insertions(+), 1450 deletions(-) diff --git a/src/3rdparty/webkit/WebCore/css/CSSGrammar.y b/src/3rdparty/webkit/WebCore/css/CSSGrammar.y index 31f1c8b..9ee9c93 100644 --- a/src/3rdparty/webkit/WebCore/css/CSSGrammar.y +++ b/src/3rdparty/webkit/WebCore/css/CSSGrammar.y @@ -94,8 +94,6 @@ static int cssyylex(YYSTYPE* yylval, void* parser) %expect 49 -%nonassoc LOWEST_PREC - %left UNIMPORTANT_TOK %token WHITESPACE SGML_CD @@ -351,7 +349,7 @@ maybe_charset: closing_brace: '}' - | %prec LOWEST_PREC TOKEN_EOF + | %prec maybe_sgml TOKEN_EOF ; charset: @@ -1357,10 +1355,10 @@ term: $$.string = $1; } /* We might need to actually parse the number from a dimension, but we can't just put something that uses $$.string into unary_term. */ - | DIMEN maybe_space { $$.id = 0; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_DIMENSION; } - | unary_operator DIMEN maybe_space { $$.id = 0; $$.string = $2; $$.unit = CSSPrimitiveValue::CSS_DIMENSION; } + | DIMEN maybe_space { $$.id = 0; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_DIMENSION } + | unary_operator DIMEN maybe_space { $$.id = 0; $$.string = $2; $$.unit = CSSPrimitiveValue::CSS_DIMENSION } | URI maybe_space { $$.id = 0; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_URI; } - | UNICODERANGE maybe_space { $$.id = 0; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_UNICODE_RANGE; } + | UNICODERANGE maybe_space { $$.id = 0; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_UNICODE_RANGE } | hexcolor { $$.id = 0; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; } | '#' maybe_space { $$.id = 0; $$.string = CSSParserString(); $$.unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; } /* Handle error case: "color: #;" */ /* FIXME: according to the specs a function can have a unary_operator in front. I know no case where this makes sense */ diff --git a/src/3rdparty/webkit/WebCore/generated/CSSGrammar.cpp b/src/3rdparty/webkit/WebCore/generated/CSSGrammar.cpp index 03a7829..b980a0a 100644 --- a/src/3rdparty/webkit/WebCore/generated/CSSGrammar.cpp +++ b/src/3rdparty/webkit/WebCore/generated/CSSGrammar.cpp @@ -1,23 +1,24 @@ - -/* A Bison parser, made by GNU Bison 2.4.1. */ +/* A Bison parser, made by GNU Bison 2.3. */ /* Skeleton implementation for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify + + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - + the Free Software Foundation; either version 2, or (at your option) + any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -28,7 +29,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -46,7 +47,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.4.1" +#define YYBISON_VERSION "2.3" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -54,28 +55,157 @@ /* Pure parsers. */ #define YYPURE 1 -/* Push parsers. */ -#define YYPUSH 0 - -/* Pull parsers. */ -#define YYPULL 1 - /* Using locations. */ #define YYLSP_NEEDED 0 /* Substitute the variable and function names. */ -#define yyparse cssyyparse -#define yylex cssyylex -#define yyerror cssyyerror -#define yylval cssyylval -#define yychar cssyychar -#define yydebug cssyydebug -#define yynerrs cssyynerrs +#define yyparse cssyyparse +#define yylex cssyylex +#define yyerror cssyyerror +#define yylval cssyylval +#define yychar cssyychar +#define yydebug cssyydebug +#define yynerrs cssyynerrs -/* Copy the first part of user declarations. */ +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + TOKEN_EOF = 0, + UNIMPORTANT_TOK = 258, + WHITESPACE = 259, + SGML_CD = 260, + INCLUDES = 261, + DASHMATCH = 262, + BEGINSWITH = 263, + ENDSWITH = 264, + CONTAINS = 265, + STRING = 266, + IDENT = 267, + NTH = 268, + HEX = 269, + IDSEL = 270, + IMPORT_SYM = 271, + PAGE_SYM = 272, + MEDIA_SYM = 273, + FONT_FACE_SYM = 274, + CHARSET_SYM = 275, + NAMESPACE_SYM = 276, + WEBKIT_RULE_SYM = 277, + WEBKIT_DECLS_SYM = 278, + WEBKIT_KEYFRAME_RULE_SYM = 279, + WEBKIT_KEYFRAMES_SYM = 280, + WEBKIT_VALUE_SYM = 281, + WEBKIT_MEDIAQUERY_SYM = 282, + WEBKIT_SELECTOR_SYM = 283, + WEBKIT_VARIABLES_SYM = 284, + WEBKIT_DEFINE_SYM = 285, + VARIABLES_FOR = 286, + WEBKIT_VARIABLES_DECLS_SYM = 287, + ATKEYWORD = 288, + IMPORTANT_SYM = 289, + MEDIA_ONLY = 290, + MEDIA_NOT = 291, + MEDIA_AND = 292, + QEMS = 293, + EMS = 294, + EXS = 295, + PXS = 296, + CMS = 297, + MMS = 298, + INS = 299, + PTS = 300, + PCS = 301, + DEGS = 302, + RADS = 303, + GRADS = 304, + TURNS = 305, + MSECS = 306, + SECS = 307, + HERZ = 308, + KHERZ = 309, + DIMEN = 310, + PERCENTAGE = 311, + FLOATTOKEN = 312, + INTEGER = 313, + URI = 314, + FUNCTION = 315, + NOTFUNCTION = 316, + UNICODERANGE = 317, + VARCALL = 318 + }; +#endif +/* Tokens. */ +#define TOKEN_EOF 0 +#define UNIMPORTANT_TOK 258 +#define WHITESPACE 259 +#define SGML_CD 260 +#define INCLUDES 261 +#define DASHMATCH 262 +#define BEGINSWITH 263 +#define ENDSWITH 264 +#define CONTAINS 265 +#define STRING 266 +#define IDENT 267 +#define NTH 268 +#define HEX 269 +#define IDSEL 270 +#define IMPORT_SYM 271 +#define PAGE_SYM 272 +#define MEDIA_SYM 273 +#define FONT_FACE_SYM 274 +#define CHARSET_SYM 275 +#define NAMESPACE_SYM 276 +#define WEBKIT_RULE_SYM 277 +#define WEBKIT_DECLS_SYM 278 +#define WEBKIT_KEYFRAME_RULE_SYM 279 +#define WEBKIT_KEYFRAMES_SYM 280 +#define WEBKIT_VALUE_SYM 281 +#define WEBKIT_MEDIAQUERY_SYM 282 +#define WEBKIT_SELECTOR_SYM 283 +#define WEBKIT_VARIABLES_SYM 284 +#define WEBKIT_DEFINE_SYM 285 +#define VARIABLES_FOR 286 +#define WEBKIT_VARIABLES_DECLS_SYM 287 +#define ATKEYWORD 288 +#define IMPORTANT_SYM 289 +#define MEDIA_ONLY 290 +#define MEDIA_NOT 291 +#define MEDIA_AND 292 +#define QEMS 293 +#define EMS 294 +#define EXS 295 +#define PXS 296 +#define CMS 297 +#define MMS 298 +#define INS 299 +#define PTS 300 +#define PCS 301 +#define DEGS 302 +#define RADS 303 +#define GRADS 304 +#define TURNS 305 +#define MSECS 306 +#define SECS 307 +#define HERZ 308 +#define KHERZ 309 +#define DIMEN 310 +#define PERCENTAGE 311 +#define FLOATTOKEN 312 +#define INTEGER 313 +#define URI 314 +#define FUNCTION 315 +#define NOTFUNCTION 316 +#define UNICODERANGE 317 +#define VARCALL 318 -/* Line 189 of yacc.c */ + + + +/* Copy the first part of user declarations. */ #line 1 "../css/CSSGrammar.y" @@ -131,9 +261,6 @@ using namespace HTMLNames; -/* Line 189 of yacc.c */ -#line 136 "WebCore/tmp/../generated/CSSGrammar.tab.c" - /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -152,88 +279,10 @@ using namespace HTMLNames; # define YYTOKEN_TABLE 0 #endif - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - TOKEN_EOF = 0, - LOWEST_PREC = 258, - UNIMPORTANT_TOK = 259, - WHITESPACE = 260, - SGML_CD = 261, - INCLUDES = 262, - DASHMATCH = 263, - BEGINSWITH = 264, - ENDSWITH = 265, - CONTAINS = 266, - STRING = 267, - IDENT = 268, - NTH = 269, - HEX = 270, - IDSEL = 271, - IMPORT_SYM = 272, - PAGE_SYM = 273, - MEDIA_SYM = 274, - FONT_FACE_SYM = 275, - CHARSET_SYM = 276, - NAMESPACE_SYM = 277, - WEBKIT_RULE_SYM = 278, - WEBKIT_DECLS_SYM = 279, - WEBKIT_KEYFRAME_RULE_SYM = 280, - WEBKIT_KEYFRAMES_SYM = 281, - WEBKIT_VALUE_SYM = 282, - WEBKIT_MEDIAQUERY_SYM = 283, - WEBKIT_SELECTOR_SYM = 284, - WEBKIT_VARIABLES_SYM = 285, - WEBKIT_DEFINE_SYM = 286, - VARIABLES_FOR = 287, - WEBKIT_VARIABLES_DECLS_SYM = 288, - ATKEYWORD = 289, - IMPORTANT_SYM = 290, - MEDIA_ONLY = 291, - MEDIA_NOT = 292, - MEDIA_AND = 293, - QEMS = 294, - EMS = 295, - EXS = 296, - PXS = 297, - CMS = 298, - MMS = 299, - INS = 300, - PTS = 301, - PCS = 302, - DEGS = 303, - RADS = 304, - GRADS = 305, - TURNS = 306, - MSECS = 307, - SECS = 308, - HERZ = 309, - KHERZ = 310, - DIMEN = 311, - PERCENTAGE = 312, - FLOATTOKEN = 313, - INTEGER = 314, - URI = 315, - FUNCTION = 316, - NOTFUNCTION = 317, - UNICODERANGE = 318, - VARCALL = 319 - }; -#endif - - - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -{ - -/* Line 214 of yacc.c */ #line 57 "../css/CSSGrammar.y" - +{ bool boolean; char character; int integer; @@ -255,21 +304,18 @@ typedef union YYSTYPE WebKitCSSKeyframeRule* keyframeRule; WebKitCSSKeyframesRule* keyframesRule; float val; - - - -/* Line 214 of yacc.c */ -#line 263 "WebCore/tmp/../generated/CSSGrammar.tab.c" -} YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 +} +/* Line 187 of yacc.c. */ +#line 310 "WebCore/tmp/../generated/CSSGrammar.tab.c" + YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 #endif -/* Copy the second part of user declarations. */ -/* Line 264 of yacc.c */ +/* Copy the second part of user declarations. */ #line 81 "../css/CSSGrammar.y" @@ -285,8 +331,8 @@ static int cssyylex(YYSTYPE* yylval, void* parser) -/* Line 264 of yacc.c */ -#line 290 "WebCore/tmp/../generated/CSSGrammar.tab.c" +/* Line 216 of yacc.c. */ +#line 336 "WebCore/tmp/../generated/CSSGrammar.tab.c" #ifdef short # undef short @@ -361,14 +407,14 @@ typedef short int yytype_int16; #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int -YYID (int yyi) +YYID (int i) #else static int -YYID (yyi) - int yyi; +YYID (i) + int i; #endif { - return yyi; + return i; } #endif @@ -449,9 +495,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss_alloc; - YYSTYPE yyvs_alloc; -}; + yytype_int16 yyss; + YYSTYPE yyvs; + }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) @@ -485,12 +531,12 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ +# define YYSTACK_RELOCATE(Stack) \ do \ { \ YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ + YYCOPY (&yyptr->Stack, Stack, yysize); \ + Stack = &yyptr->Stack; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ @@ -501,10 +547,10 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 28 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1315 +#define YYLAST 1274 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 85 +#define YYNTOKENS 84 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 90 /* YYNRULES -- Number of rules. */ @@ -514,7 +560,7 @@ union yyalloc /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 319 +#define YYMAXUTOK 318 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -525,16 +571,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 83, 2, 84, 2, 2, - 73, 74, 20, 76, 75, 79, 18, 82, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 17, 72, - 2, 81, 78, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 82, 2, 83, 2, 2, + 72, 73, 19, 75, 74, 78, 17, 81, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 16, 71, + 2, 80, 77, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 19, 2, 80, 2, 2, 2, 2, 2, 2, + 2, 18, 2, 79, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 70, 21, 71, 77, 2, 2, 2, + 2, 2, 2, 69, 20, 70, 76, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -549,11 +595,11 @@ static const yytype_uint8 yytranslate[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 22, 23, 24, 25, 26, 27, 28, 29, + 15, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69 + 60, 61, 62, 63, 64, 65, 66, 67, 68 }; #if YYDEBUG @@ -593,130 +639,130 @@ static const yytype_uint16 yyprhs[] = /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 86, 0, -1, 97, 96, 100, 101, 102, 103, -1, - 88, 95, -1, 90, 95, -1, 92, 95, -1, 93, - 95, -1, 94, 95, -1, 91, 95, -1, 89, 95, - -1, 104, -1, 109, -1, 28, 70, 95, 87, 95, - 71, -1, 30, 70, 95, 133, 95, 71, -1, 29, - 70, 95, 155, 71, -1, 38, 70, 95, 112, 71, - -1, 32, 70, 95, 160, 71, -1, 33, 5, 95, - 125, 71, -1, 34, 70, 95, 141, 71, -1, -1, - 95, 5, -1, -1, 96, 6, -1, 96, 5, -1, - -1, 99, -1, 71, -1, 0, -1, 26, 95, 12, - 95, 72, -1, 26, 1, 173, -1, 26, 1, 72, - -1, -1, 100, 109, 96, -1, 169, -1, -1, 101, - 110, 96, -1, -1, 102, 116, 96, -1, -1, 103, - 105, 96, -1, 140, -1, 128, -1, 136, -1, 137, - -1, 130, -1, 104, -1, 172, -1, 168, -1, 170, - -1, -1, 106, 108, 96, -1, 140, -1, 136, -1, - 137, -1, 130, -1, 107, -1, 172, -1, 168, -1, - 170, -1, 171, -1, 22, 95, 118, 95, 126, 72, - -1, 22, 95, 118, 95, 126, 173, -1, 22, 1, - 72, -1, 22, 1, 173, -1, 35, 95, 126, 70, - 95, 112, 71, -1, 36, 95, 111, 70, 95, 112, - 71, -1, -1, 37, 5, 127, -1, 114, -1, 113, - 114, -1, 113, -1, 1, 174, 1, -1, 1, -1, - 113, 1, -1, 114, 72, 95, -1, 114, 174, 72, - 95, -1, 1, 72, 95, -1, 1, 174, 1, 72, - 95, -1, 113, 114, 72, 95, -1, 113, 1, 72, - 95, -1, 113, 1, 174, 1, 72, 95, -1, 115, - 17, 95, 160, -1, 115, 95, 70, 95, 155, 71, - 95, -1, 115, 1, -1, 115, 17, 95, 1, 160, - -1, 115, 17, 95, -1, 115, 17, 95, 1, -1, - 13, 95, -1, 27, 95, 117, 118, 95, 72, -1, - 27, 1, 173, -1, 27, 1, 72, -1, -1, 13, - 5, -1, 12, -1, 65, -1, 13, 95, -1, -1, - 17, 95, 160, 95, -1, 73, 95, 119, 95, 120, - 74, 95, -1, 121, -1, 122, 95, 43, 95, 121, - -1, -1, 43, 95, 122, -1, -1, 41, -1, 42, - -1, 122, -1, 124, 95, 129, 123, -1, -1, 127, - -1, 125, -1, 127, 75, 95, 125, -1, 127, 1, - -1, 24, 95, 127, 70, 95, 106, 167, -1, 24, - 95, 70, 95, 106, 167, -1, 13, 95, -1, 31, - 95, 131, 95, 70, 95, 132, 71, -1, 13, -1, - 12, -1, -1, 132, 133, 95, -1, 134, 95, 70, - 95, 155, 71, -1, 135, -1, 134, 95, 75, 95, - 135, -1, 62, -1, 13, -1, 23, 1, 173, -1, - 23, 1, 72, -1, 25, 95, 70, 95, 155, 71, - 95, -1, 25, 1, 173, -1, 25, 1, 72, -1, - 76, 95, -1, 77, 95, -1, 78, 95, -1, 79, - -1, 76, -1, 141, 70, 95, 155, 98, -1, 143, - -1, 141, 75, 95, 143, -1, 141, 1, -1, 143, - 5, -1, 145, -1, 142, -1, 142, 145, -1, 143, - 138, 145, -1, 143, 1, -1, 21, -1, 20, 21, - -1, 13, 21, -1, 146, -1, 146, 147, -1, 147, - -1, 144, 146, -1, 144, 146, 147, -1, 144, 147, - -1, 13, -1, 20, -1, 148, -1, 147, 148, -1, - 147, 1, -1, 16, -1, 15, -1, 149, -1, 151, - -1, 154, -1, 18, 13, -1, 13, 95, -1, 19, - 95, 150, 80, -1, 19, 95, 150, 152, 95, 153, - 95, 80, -1, 19, 95, 144, 150, 80, -1, 19, - 95, 144, 150, 152, 95, 153, 95, 80, -1, 81, - -1, 7, -1, 8, -1, 9, -1, 10, -1, 11, - -1, 13, -1, 12, -1, 17, 13, -1, 17, 17, - 13, -1, 17, 66, 14, 74, -1, 17, 66, 64, - 74, -1, 17, 66, 13, 74, -1, 17, 67, 95, - 145, 95, 74, -1, 157, -1, 156, 157, -1, 156, - -1, 1, 174, 1, -1, 1, -1, 156, 1, -1, - 156, 174, -1, 157, 72, 95, -1, 157, 174, 72, - 95, -1, 1, 72, 95, -1, 1, 174, 1, 72, - 95, -1, 156, 157, 72, 95, -1, 156, 1, 72, - 95, -1, 156, 1, 174, 1, 72, 95, -1, 158, - 17, 95, 160, 159, -1, 164, 95, -1, 158, 1, - -1, 158, 17, 95, 1, 160, 159, -1, 158, 17, - 95, 160, 159, 1, -1, 40, 95, -1, 158, 17, - 95, -1, 158, 17, 95, 1, -1, 158, 173, -1, - 13, 95, -1, 40, 95, -1, -1, 162, -1, 160, - 161, 162, -1, 160, 1, -1, 82, 95, -1, 75, - 95, -1, -1, 163, -1, 139, 163, -1, 12, 95, - -1, 13, 95, -1, 61, 95, -1, 139, 61, 95, - -1, 65, 95, -1, 68, 95, -1, 166, -1, 83, - 95, -1, 165, -1, 164, 95, -1, 84, 95, -1, - 64, 95, -1, 63, 95, -1, 62, 95, -1, 47, - 95, -1, 48, 95, -1, 49, 95, -1, 50, 95, - -1, 51, 95, -1, 52, 95, -1, 53, 95, -1, - 54, 95, -1, 55, 95, -1, 56, 95, -1, 57, - 95, -1, 58, 95, -1, 59, 95, -1, 60, 95, - -1, 45, 95, -1, 44, 95, -1, 46, 95, -1, - 69, -1, 66, 95, 160, 74, 95, -1, 66, 95, - 1, -1, 15, 95, -1, 16, 95, -1, 98, -1, - 1, 98, -1, 39, 1, 173, -1, 39, 1, 72, - -1, 168, 96, -1, 169, 168, 96, -1, 109, -1, - 128, -1, 1, 173, -1, 70, 1, 174, 1, 98, - -1, 70, 1, 98, -1, 173, -1, 174, 1, 173, + 85, 0, -1, 96, 95, 99, 100, 101, 102, -1, + 87, 94, -1, 89, 94, -1, 91, 94, -1, 92, + 94, -1, 93, 94, -1, 90, 94, -1, 88, 94, + -1, 103, -1, 108, -1, 27, 69, 94, 86, 94, + 70, -1, 29, 69, 94, 132, 94, 70, -1, 28, + 69, 94, 154, 70, -1, 37, 69, 94, 111, 70, + -1, 31, 69, 94, 159, 70, -1, 32, 4, 94, + 124, 70, -1, 33, 69, 94, 140, 70, -1, -1, + 94, 4, -1, -1, 95, 5, -1, 95, 4, -1, + -1, 98, -1, 70, -1, 0, -1, 25, 94, 11, + 94, 71, -1, 25, 1, 172, -1, 25, 1, 71, + -1, -1, 99, 108, 95, -1, 168, -1, -1, 100, + 109, 95, -1, -1, 101, 115, 95, -1, -1, 102, + 104, 95, -1, 139, -1, 127, -1, 135, -1, 136, + -1, 129, -1, 103, -1, 171, -1, 167, -1, 169, + -1, -1, 105, 107, 95, -1, 139, -1, 135, -1, + 136, -1, 129, -1, 106, -1, 171, -1, 167, -1, + 169, -1, 170, -1, 21, 94, 117, 94, 125, 71, + -1, 21, 94, 117, 94, 125, 172, -1, 21, 1, + 71, -1, 21, 1, 172, -1, 34, 94, 125, 69, + 94, 111, 70, -1, 35, 94, 110, 69, 94, 111, + 70, -1, -1, 36, 4, 126, -1, 113, -1, 112, + 113, -1, 112, -1, 1, 173, 1, -1, 1, -1, + 112, 1, -1, 113, 71, 94, -1, 113, 173, 71, + 94, -1, 1, 71, 94, -1, 1, 173, 1, 71, + 94, -1, 112, 113, 71, 94, -1, 112, 1, 71, + 94, -1, 112, 1, 173, 1, 71, 94, -1, 114, + 16, 94, 159, -1, 114, 94, 69, 94, 154, 70, + 94, -1, 114, 1, -1, 114, 16, 94, 1, 159, + -1, 114, 16, 94, -1, 114, 16, 94, 1, -1, + 12, 94, -1, 26, 94, 116, 117, 94, 71, -1, + 26, 1, 172, -1, 26, 1, 71, -1, -1, 12, + 4, -1, 11, -1, 64, -1, 12, 94, -1, -1, + 16, 94, 159, 94, -1, 72, 94, 118, 94, 119, + 73, 94, -1, 120, -1, 121, 94, 42, 94, 120, + -1, -1, 42, 94, 121, -1, -1, 40, -1, 41, + -1, 121, -1, 123, 94, 128, 122, -1, -1, 126, + -1, 124, -1, 126, 74, 94, 124, -1, 126, 1, + -1, 23, 94, 126, 69, 94, 105, 166, -1, 23, + 94, 69, 94, 105, 166, -1, 12, 94, -1, 30, + 94, 130, 94, 69, 94, 131, 70, -1, 12, -1, + 11, -1, -1, 131, 132, 94, -1, 133, 94, 69, + 94, 154, 70, -1, 134, -1, 133, 94, 74, 94, + 134, -1, 61, -1, 12, -1, 22, 1, 172, -1, + 22, 1, 71, -1, 24, 94, 69, 94, 154, 70, + 94, -1, 24, 1, 172, -1, 24, 1, 71, -1, + 75, 94, -1, 76, 94, -1, 77, 94, -1, 78, + -1, 75, -1, 140, 69, 94, 154, 97, -1, 142, + -1, 140, 74, 94, 142, -1, 140, 1, -1, 142, + 4, -1, 144, -1, 141, -1, 141, 144, -1, 142, + 137, 144, -1, 142, 1, -1, 20, -1, 19, 20, + -1, 12, 20, -1, 145, -1, 145, 146, -1, 146, + -1, 143, 145, -1, 143, 145, 146, -1, 143, 146, + -1, 12, -1, 19, -1, 147, -1, 146, 147, -1, + 146, 1, -1, 15, -1, 14, -1, 148, -1, 150, + -1, 153, -1, 17, 12, -1, 12, 94, -1, 18, + 94, 149, 79, -1, 18, 94, 149, 151, 94, 152, + 94, 79, -1, 18, 94, 143, 149, 79, -1, 18, + 94, 143, 149, 151, 94, 152, 94, 79, -1, 80, + -1, 6, -1, 7, -1, 8, -1, 9, -1, 10, + -1, 12, -1, 11, -1, 16, 12, -1, 16, 16, + 12, -1, 16, 65, 13, 73, -1, 16, 65, 63, + 73, -1, 16, 65, 12, 73, -1, 16, 66, 94, + 144, 94, 73, -1, 156, -1, 155, 156, -1, 155, + -1, 1, 173, 1, -1, 1, -1, 155, 1, -1, + 155, 173, -1, 156, 71, 94, -1, 156, 173, 71, + 94, -1, 1, 71, 94, -1, 1, 173, 1, 71, + 94, -1, 155, 156, 71, 94, -1, 155, 1, 71, + 94, -1, 155, 1, 173, 1, 71, 94, -1, 157, + 16, 94, 159, 158, -1, 163, 94, -1, 157, 1, + -1, 157, 16, 94, 1, 159, 158, -1, 157, 16, + 94, 159, 158, 1, -1, 39, 94, -1, 157, 16, + 94, -1, 157, 16, 94, 1, -1, 157, 172, -1, + 12, 94, -1, 39, 94, -1, -1, 161, -1, 159, + 160, 161, -1, 159, 1, -1, 81, 94, -1, 74, + 94, -1, -1, 162, -1, 138, 162, -1, 11, 94, + -1, 12, 94, -1, 60, 94, -1, 138, 60, 94, + -1, 64, 94, -1, 67, 94, -1, 165, -1, 82, + 94, -1, 164, -1, 163, 94, -1, 83, 94, -1, + 63, 94, -1, 62, 94, -1, 61, 94, -1, 46, + 94, -1, 47, 94, -1, 48, 94, -1, 49, 94, + -1, 50, 94, -1, 51, 94, -1, 52, 94, -1, + 53, 94, -1, 54, 94, -1, 55, 94, -1, 56, + 94, -1, 57, 94, -1, 58, 94, -1, 59, 94, + -1, 44, 94, -1, 43, 94, -1, 45, 94, -1, + 68, -1, 65, 94, 159, 73, 94, -1, 65, 94, + 1, -1, 14, 94, -1, 15, 94, -1, 97, -1, + 1, 97, -1, 38, 1, 172, -1, 38, 1, 71, + -1, 167, 95, -1, 168, 167, 95, -1, 108, -1, + 127, -1, 1, 172, -1, 69, 1, 173, 1, 97, + -1, 69, 1, 97, -1, 172, -1, 173, 1, 172, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 265, 265, 266, 267, 268, 269, 270, 271, 272, - 276, 277, 281, 287, 293, 299, 305, 319, 326, 336, - 337, 340, 342, 343, 346, 348, 353, 354, 358, 364, - 366, 370, 372, 377, 381, 383, 390, 392, 395, 397, - 405, 406, 407, 408, 409, 413, 414, 415, 416, 420, - 421, 432, 433, 434, 435, 439, 440, 441, 442, 443, - 448, 451, 454, 457, 463, 467, 473, 477, 483, 486, - 491, 494, 497, 500, 506, 509, 512, 515, 518, 523, - 526, 532, 536, 540, 544, 548, 553, 560, 566, 571, - 572, 576, 577, 581, 582, 586, 592, 595, 601, 608, - 613, 620, 623, 629, 632, 635, 641, 646, 654, 657, - 661, 666, 671, 677, 680, 686, 692, 699, 700, 704, - 705, 713, 719, 724, 733, 734, 758, 761, 767, 771, - 774, 780, 781, 782, 786, 787, 791, 797, 806, 814, - 820, 826, 829, 833, 849, 869, 875, 876, 877, 881, - 886, 893, 899, 909, 921, 934, 942, 950, 953, 966, - 972, 980, 992, 993, 994, 998, 1009, 1020, 1025, 1031, - 1039, 1051, 1054, 1057, 1060, 1063, 1066, 1072, 1073, 1077, - 1102, 1117, 1135, 1153, 1172, 1187, 1190, 1195, 1198, 1201, - 1204, 1207, 1213, 1216, 1219, 1222, 1225, 1230, 1233, 1239, - 1253, 1265, 1269, 1276, 1281, 1286, 1291, 1296, 1303, 1309, - 1310, 1314, 1319, 1333, 1339, 1342, 1345, 1351, 1352, 1353, - 1354, 1360, 1361, 1362, 1363, 1364, 1365, 1367, 1370, 1373, - 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, - 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, - 1400, 1408, 1417, 1433, 1434, 1441, 1444, 1450, 1453, 1459, - 1460, 1464, 1470, 1476, 1494, 1495, 1499, 1500 + 0, 263, 263, 264, 265, 266, 267, 268, 269, 270, + 274, 275, 279, 285, 291, 297, 303, 317, 324, 334, + 335, 338, 340, 341, 344, 346, 351, 352, 356, 362, + 364, 368, 370, 375, 379, 381, 388, 390, 393, 395, + 403, 404, 405, 406, 407, 411, 412, 413, 414, 418, + 419, 430, 431, 432, 433, 437, 438, 439, 440, 441, + 446, 449, 452, 455, 461, 465, 471, 475, 481, 484, + 489, 492, 495, 498, 504, 507, 510, 513, 516, 521, + 524, 530, 534, 538, 542, 546, 551, 558, 564, 569, + 570, 574, 575, 579, 580, 584, 590, 593, 599, 606, + 611, 618, 621, 627, 630, 633, 639, 644, 652, 655, + 659, 664, 669, 675, 678, 684, 690, 697, 698, 702, + 703, 711, 717, 722, 731, 732, 756, 759, 765, 769, + 772, 778, 779, 780, 784, 785, 789, 795, 804, 812, + 818, 824, 827, 831, 847, 867, 873, 874, 875, 879, + 884, 891, 897, 907, 919, 932, 940, 948, 951, 964, + 970, 978, 990, 991, 992, 996, 1007, 1018, 1023, 1029, + 1037, 1049, 1052, 1055, 1058, 1061, 1064, 1070, 1071, 1075, + 1100, 1115, 1133, 1151, 1170, 1185, 1188, 1193, 1196, 1199, + 1202, 1205, 1211, 1214, 1217, 1220, 1223, 1228, 1231, 1237, + 1251, 1263, 1267, 1274, 1279, 1284, 1289, 1294, 1301, 1307, + 1308, 1312, 1317, 1331, 1337, 1340, 1343, 1349, 1350, 1351, + 1352, 1358, 1359, 1360, 1361, 1362, 1363, 1365, 1368, 1371, + 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, + 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, + 1398, 1406, 1415, 1431, 1432, 1439, 1442, 1448, 1451, 1457, + 1458, 1462, 1468, 1474, 1492, 1493, 1497, 1498 }; #endif @@ -725,28 +771,27 @@ static const yytype_uint16 yyrline[] = First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "TOKEN_EOF", "error", "$undefined", "LOWEST_PREC", "UNIMPORTANT_TOK", - "WHITESPACE", "SGML_CD", "INCLUDES", "DASHMATCH", "BEGINSWITH", - "ENDSWITH", "CONTAINS", "STRING", "IDENT", "NTH", "HEX", "IDSEL", "':'", - "'.'", "'['", "'*'", "'|'", "IMPORT_SYM", "PAGE_SYM", "MEDIA_SYM", - "FONT_FACE_SYM", "CHARSET_SYM", "NAMESPACE_SYM", "WEBKIT_RULE_SYM", - "WEBKIT_DECLS_SYM", "WEBKIT_KEYFRAME_RULE_SYM", "WEBKIT_KEYFRAMES_SYM", - "WEBKIT_VALUE_SYM", "WEBKIT_MEDIAQUERY_SYM", "WEBKIT_SELECTOR_SYM", - "WEBKIT_VARIABLES_SYM", "WEBKIT_DEFINE_SYM", "VARIABLES_FOR", - "WEBKIT_VARIABLES_DECLS_SYM", "ATKEYWORD", "IMPORTANT_SYM", "MEDIA_ONLY", - "MEDIA_NOT", "MEDIA_AND", "QEMS", "EMS", "EXS", "PXS", "CMS", "MMS", - "INS", "PTS", "PCS", "DEGS", "RADS", "GRADS", "TURNS", "MSECS", "SECS", - "HERZ", "KHERZ", "DIMEN", "PERCENTAGE", "FLOATTOKEN", "INTEGER", "URI", - "FUNCTION", "NOTFUNCTION", "UNICODERANGE", "VARCALL", "'{'", "'}'", - "';'", "'('", "')'", "','", "'+'", "'~'", "'>'", "'-'", "']'", "'='", - "'/'", "'#'", "'%'", "$accept", "stylesheet", "valid_rule_or_import", - "webkit_rule", "webkit_keyframe_rule", "webkit_decls", - "webkit_variables_decls", "webkit_value", "webkit_mediaquery", - "webkit_selector", "maybe_space", "maybe_sgml", "maybe_charset", - "closing_brace", "charset", "import_list", "variables_list", - "namespace_list", "rule_list", "valid_rule", "rule", "block_rule_list", - "block_valid_rule", "block_rule", "import", "variables_rule", - "variables_media_list", "variables_declaration_list", + "TOKEN_EOF", "error", "$undefined", "UNIMPORTANT_TOK", "WHITESPACE", + "SGML_CD", "INCLUDES", "DASHMATCH", "BEGINSWITH", "ENDSWITH", "CONTAINS", + "STRING", "IDENT", "NTH", "HEX", "IDSEL", "':'", "'.'", "'['", "'*'", + "'|'", "IMPORT_SYM", "PAGE_SYM", "MEDIA_SYM", "FONT_FACE_SYM", + "CHARSET_SYM", "NAMESPACE_SYM", "WEBKIT_RULE_SYM", "WEBKIT_DECLS_SYM", + "WEBKIT_KEYFRAME_RULE_SYM", "WEBKIT_KEYFRAMES_SYM", "WEBKIT_VALUE_SYM", + "WEBKIT_MEDIAQUERY_SYM", "WEBKIT_SELECTOR_SYM", "WEBKIT_VARIABLES_SYM", + "WEBKIT_DEFINE_SYM", "VARIABLES_FOR", "WEBKIT_VARIABLES_DECLS_SYM", + "ATKEYWORD", "IMPORTANT_SYM", "MEDIA_ONLY", "MEDIA_NOT", "MEDIA_AND", + "QEMS", "EMS", "EXS", "PXS", "CMS", "MMS", "INS", "PTS", "PCS", "DEGS", + "RADS", "GRADS", "TURNS", "MSECS", "SECS", "HERZ", "KHERZ", "DIMEN", + "PERCENTAGE", "FLOATTOKEN", "INTEGER", "URI", "FUNCTION", "NOTFUNCTION", + "UNICODERANGE", "VARCALL", "'{'", "'}'", "';'", "'('", "')'", "','", + "'+'", "'~'", "'>'", "'-'", "']'", "'='", "'/'", "'#'", "'%'", "$accept", + "stylesheet", "valid_rule_or_import", "webkit_rule", + "webkit_keyframe_rule", "webkit_decls", "webkit_variables_decls", + "webkit_value", "webkit_mediaquery", "webkit_selector", "maybe_space", + "maybe_sgml", "maybe_charset", "closing_brace", "charset", "import_list", + "variables_list", "namespace_list", "rule_list", "valid_rule", "rule", + "block_rule_list", "block_valid_rule", "block_rule", "import", + "variables_rule", "variables_media_list", "variables_declaration_list", "variables_decl_list", "variables_declaration", "variable_name", "namespace", "maybe_ns_prefix", "string_or_uri", "media_feature", "maybe_media_value", "media_query_exp", "media_query_exp_list", @@ -771,47 +816,47 @@ static const char *const yytname[] = static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 58, 46, 91, - 42, 124, 272, 273, 274, 275, 276, 277, 278, 279, + 265, 266, 267, 268, 269, 270, 58, 46, 91, 42, + 124, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 123, 125, 59, 40, 41, 44, 43, 126, 62, 45, - 93, 61, 47, 35, 37 + 310, 311, 312, 313, 314, 315, 316, 317, 318, 123, + 125, 59, 40, 41, 44, 43, 126, 62, 45, 93, + 61, 47, 35, 37 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 85, 86, 86, 86, 86, 86, 86, 86, 86, - 87, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 95, 96, 96, 96, 97, 97, 98, 98, 99, 99, - 99, 100, 100, 100, 101, 101, 102, 102, 103, 103, - 104, 104, 104, 104, 104, 105, 105, 105, 105, 106, - 106, 107, 107, 107, 107, 108, 108, 108, 108, 108, - 109, 109, 109, 109, 110, 110, 111, 111, 112, 112, - 112, 112, 112, 112, 113, 113, 113, 113, 113, 113, - 113, 114, 114, 114, 114, 114, 114, 115, 116, 116, - 116, 117, 117, 118, 118, 119, 120, 120, 121, 122, - 122, 123, 123, 124, 124, 124, 125, 125, 126, 126, - 127, 127, 127, 128, 128, 129, 130, 131, 131, 132, - 132, 133, 134, 134, 135, 135, 136, 136, 137, 137, - 137, 138, 138, 138, 139, 139, 140, 141, 141, 141, - 142, 143, 143, 143, 143, 143, 144, 144, 144, 145, - 145, 145, 145, 145, 145, 146, 146, 147, 147, 147, - 148, 148, 148, 148, 148, 149, 150, 151, 151, 151, - 151, 152, 152, 152, 152, 152, 152, 153, 153, 154, - 154, 154, 154, 154, 154, 155, 155, 155, 155, 155, - 155, 155, 156, 156, 156, 156, 156, 156, 156, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 158, 159, - 159, 160, 160, 160, 161, 161, 161, 162, 162, 162, + 0, 84, 85, 85, 85, 85, 85, 85, 85, 85, + 86, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 94, 95, 95, 95, 96, 96, 97, 97, 98, 98, + 98, 99, 99, 99, 100, 100, 101, 101, 102, 102, + 103, 103, 103, 103, 103, 104, 104, 104, 104, 105, + 105, 106, 106, 106, 106, 107, 107, 107, 107, 107, + 108, 108, 108, 108, 109, 109, 110, 110, 111, 111, + 111, 111, 111, 111, 112, 112, 112, 112, 112, 112, + 112, 113, 113, 113, 113, 113, 113, 114, 115, 115, + 115, 116, 116, 117, 117, 118, 119, 119, 120, 121, + 121, 122, 122, 123, 123, 123, 124, 124, 125, 125, + 126, 126, 126, 127, 127, 128, 129, 130, 130, 131, + 131, 132, 133, 133, 134, 134, 135, 135, 136, 136, + 136, 137, 137, 137, 138, 138, 139, 140, 140, 140, + 141, 142, 142, 142, 142, 142, 143, 143, 143, 144, + 144, 144, 144, 144, 144, 145, 145, 146, 146, 146, + 147, 147, 147, 147, 147, 148, 149, 150, 150, 150, + 150, 151, 151, 151, 151, 151, 151, 152, 152, 153, + 153, 153, 153, 153, 153, 154, 154, 154, 154, 154, + 154, 154, 155, 155, 155, 155, 155, 155, 155, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 157, 158, + 158, 159, 159, 159, 160, 160, 160, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 164, 165, 165, 166, 166, 167, 167, 168, 168, 169, - 169, 170, 171, 172, 173, 173, 174, 174 + 163, 164, 164, 165, 165, 166, 166, 167, 167, 168, + 168, 169, 170, 171, 172, 172, 173, 173 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -921,75 +966,75 @@ static const yytype_int16 yydefgoto[] = /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -435 +#define YYPACT_NINF -299 static const yytype_int16 yypact[] = { - 818, 44, -36, -18, 112, 127, 66, 141, 162, 243, - -435, -435, -435, -435, -435, -435, -435, -435, -435, 239, - 43, -435, -435, -435, -435, -435, -435, -435, -435, 250, - 250, 250, 250, 250, 250, 250, 37, 304, -435, -435, - -435, -435, 763, 354, 31, 1114, 144, 622, 49, -435, - -435, 346, 344, -435, 332, 27, 23, 358, -435, -435, - 401, 370, -435, 371, -435, 381, 406, -435, 193, -435, - -435, -435, -435, -435, -435, -435, -435, -435, 171, 702, - 143, 631, -435, 756, 159, -435, -435, -435, -435, 240, - -435, -435, -435, 329, 303, 254, 199, -435, -435, -435, - -435, -435, -435, -435, -435, -435, -435, -435, -435, -435, - -435, -435, -435, -435, -435, -435, -435, -435, -435, -435, - -435, -435, -435, -435, -435, -435, -435, -435, -435, -435, - -435, -435, -435, -435, -435, 949, 903, -435, -435, -435, - -435, -435, -435, -435, -435, -435, 34, -435, 342, 4, - 274, -435, 353, 59, 291, 223, 331, 395, -435, 438, - -435, -435, -435, -435, -435, 437, -435, -435, -435, 448, - 24, -435, -435, 415, -435, 349, 295, 377, 375, 399, - 198, 421, 190, -435, -435, -435, -435, -435, -435, -435, - -435, -435, 702, -435, -435, 756, 334, 380, -435, -435, - -435, 463, 250, 250, -435, 409, 398, 180, -435, 15, - -435, -435, -435, 250, 221, 182, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 1052, 250, 250, 250, -435, -435, -435, -435, - -435, -435, 1172, 250, 188, 166, 301, -435, -435, -435, - 472, 250, -435, 412, 404, -435, 62, -435, -435, 220, - -435, -435, -435, -435, 458, -435, 438, 438, 27, -435, - 413, 417, 430, 622, 358, 371, 473, 158, -435, -435, - -435, -435, -435, -435, -435, -435, -435, 172, -435, -435, - -435, -435, -435, -435, -435, 354, 622, 250, 250, 250, - -435, 555, 250, 420, -435, 502, -435, 459, 250, -435, - 535, -435, -435, -435, -435, 976, 250, 250, 250, -435, - -435, -435, -435, -435, 496, 250, 423, -435, 541, -435, - 250, -435, 754, -435, 424, 36, 552, 685, -435, 438, - -435, -435, -435, -435, -435, -435, 250, -435, 277, -435, - -435, -435, -435, -435, -435, -435, -435, 856, 250, -435, - -435, -435, 354, 226, 65, 203, -435, 250, 428, 250, - 250, 1172, 462, 354, 31, -435, 250, 53, 186, 250, - -435, -435, -435, 250, 429, 250, 250, 1172, 608, 354, - 479, 83, 538, 485, 482, 320, 459, -435, -435, -435, - -435, -435, -435, 438, 78, -435, -435, 447, 489, 1244, - 250, 144, 487, -435, -435, 250, -435, 462, -435, 205, - 491, -435, 250, -435, 492, -435, 186, 250, -435, 681, - 497, -435, 5, -435, -435, -435, 558, 150, -435, 438, - -435, 447, -435, -435, -435, -435, -435, 27, -435, -435, - -435, -435, -435, -435, -435, -435, -435, -435, -435, -435, - -435, 1244, -435, -435, 250, 250, -435, 250, -435, -435, - 1114, -435, 34, 250, -435, 49, 178, 49, -435, -435, - -435, 1, -435, 438, -435, 250, 306, 827, 250, 250, - 498, 504, 151, 14, -435, -435, -435, 250, -435, -435, - -435, -435, 250 + 466, 425, -26, -20, 75, 118, 189, 139, 151, 263, + -299, -299, -299, -299, -299, -299, -299, -299, -299, 359, + 300, -299, -299, -299, -299, -299, -299, -299, -299, 278, + 278, 278, 278, 278, 278, 278, 33, 338, -299, -299, + -299, -299, 749, 313, 32, 1074, 12, 545, 44, -299, + -299, 345, 346, -299, 335, 223, 194, 354, -299, -299, + 419, 380, -299, 383, -299, 403, 408, -299, 163, -299, + -299, -299, -299, -299, -299, -299, -299, -299, 86, 561, + 199, 620, -299, 626, 161, -299, -299, -299, -299, 374, + -299, -299, -299, 351, 239, 378, 179, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, 645, 882, -299, -299, -299, + -299, -299, -299, -299, -299, -299, 30, -299, 363, 82, + 402, -299, 364, 185, 410, 190, 421, 28, -299, 301, + -299, -299, -299, -299, -299, 423, -299, -299, -299, 426, + 337, -299, -299, 35, -299, 542, 397, 640, 1, 691, + 26, 448, 220, -299, -299, -299, -299, -299, -299, -299, + -299, -299, 561, -299, -299, 626, 343, 381, -299, -299, + -299, 443, 278, 278, -299, 705, 377, 27, -299, 59, + -299, -299, -299, 278, 242, 178, 278, 278, 278, 278, + 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, + 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, + 278, 278, 1012, 278, 278, 278, -299, -299, -299, -299, + -299, -299, 1132, 278, 201, 368, 312, -299, -299, -299, + 464, 278, -299, 706, 395, -299, 87, -299, -299, 188, + -299, -299, -299, -299, 442, -299, 301, 301, 223, -299, + 409, 413, 414, 545, 354, 383, 488, 69, -299, -299, + -299, -299, -299, -299, -299, -299, -299, 135, -299, -299, + -299, -299, -299, -299, -299, 313, 545, 278, 278, 278, + -299, 554, 278, 709, -299, 475, -299, 432, 278, -299, + 539, -299, -299, -299, -299, 947, 278, 278, 278, -299, + -299, -299, -299, -299, 462, 278, 712, -299, 528, -299, + 278, -299, 744, -299, 294, 165, 382, 1229, -299, 301, + -299, -299, -299, -299, -299, -299, 278, -299, 209, -299, + -299, -299, -299, -299, -299, -299, -299, 339, 278, -299, + -299, -299, 313, 257, 174, 210, -299, 278, 713, 278, + 278, 1132, 463, 313, 32, -299, 278, 42, 181, 278, + -299, -299, -299, 278, 754, 278, 278, 1132, 604, 313, + 467, 97, 531, 473, 764, 329, 432, -299, -299, -299, + -299, -299, -299, 301, 61, -299, -299, 458, 765, 1204, + 278, 12, 477, -299, -299, 278, -299, 463, -299, 172, + 478, -299, 278, -299, 479, -299, 181, 278, -299, 669, + 486, -299, 10, -299, -299, -299, 562, 217, -299, 301, + -299, 458, -299, -299, -299, -299, -299, 223, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, 1204, -299, -299, 278, 278, -299, 278, -299, -299, + 1074, -299, 30, 278, -299, 44, 152, 44, -299, -299, + -299, 2, -299, 301, -299, 278, 307, 817, 278, 278, + 497, 504, 225, 15, -299, -299, -299, 278, -299, -299, + -299, -299, 278 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -435, -435, -435, -435, -435, -435, -435, -435, -435, -435, - -1, -21, -435, -51, -435, -435, -435, -435, -435, 229, - -435, 147, -435, -435, 256, -435, -435, -434, -435, 425, - -435, -435, -435, 130, -435, -435, 214, 174, -435, -435, - -45, 241, -176, -389, -435, -227, -435, -435, 116, -435, - 231, -154, -137, -435, -435, -130, 566, -435, 310, 449, - -61, 547, -50, -55, -435, 348, -435, 278, 194, -435, - -298, -435, 581, -435, 261, -185, -435, 443, 546, -35, - -435, -435, 218, -19, -435, 352, -435, 364, -16, -3 + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -1, -21, -299, -51, -299, -299, -299, -299, -299, 265, + -299, 200, -299, -299, 258, -299, -299, 352, -299, 472, + -299, -299, -299, 186, -299, -299, 238, 240, -299, -299, + -45, 279, -176, -238, -299, -194, -299, -299, 149, -299, + 293, -116, -66, -299, -299, -48, 663, -299, 429, 568, + -61, 661, -50, -55, -299, 460, -299, 391, 303, -299, + -298, -299, 692, -299, 330, -185, -299, 533, 675, -35, + -299, -299, 349, -19, -299, 469, -299, 470, -16, -3 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -999,332 +1044,324 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -217 static const yytype_int16 yytable[] = { - 20, 148, 297, 39, 163, 183, 40, 374, 97, 29, - 30, 31, 32, 33, 34, 35, 317, 53, 186, 40, - 42, 43, 44, 45, 46, 47, 48, 161, 40, 199, - 461, 196, 159, 197, 21, 160, 40, 280, 281, -19, - 56, 40, 49, 50, 98, 19, 142, 143, 40, -19, - 150, 500, 22, 501, 40, 41, -19, 325, 40, 97, - 263, 173, 151, 317, 176, 161, 178, 180, 181, 182, - 433, 25, 151, 402, 422, 258, 51, -19, 144, 185, - 212, 504, 461, 40, 369, 430, 201, 319, 282, 202, - 203, 207, 209, 99, 511, 166, 213, 37, 162, 214, + 20, 148, 297, 39, 163, 40, 40, 374, 97, 29, + 30, 31, 32, 33, 34, 35, 40, 53, 186, 40, + 42, 43, 44, 45, 46, 47, 48, -191, 317, 199, + 40, 196, 159, 197, -19, 160, 40, 49, 50, 40, + 56, 142, 143, 21, 98, 150, 40, 284, 40, 22, + 142, 143, 142, 143, 285, 64, 151, 325, 433, 97, + 317, 173, 272, 273, 176, 40, 178, 180, 181, 182, + 295, 51, -19, 144, 422, 359, 360, 361, 362, 363, + 212, 504, 144, 183, 144, 430, 201, 183, 317, 202, + 203, 207, 209, 99, 511, 300, 213, -191, 369, 214, 215, 440, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - -70, 310, 244, 245, 341, 382, 162, 276, 253, 277, - 271, 199, 199, 254, 187, 311, 256, 260, 188, 40, - 261, 266, 450, -109, 269, -109, 40, 398, 371, 289, - 198, 294, 290, 299, -151, 359, 360, 361, 362, 363, - 283, 40, 183, 369, 58, 59, 60, 61, 62, 369, - -191, 317, 23, 305, 306, 142, 143, 40, 307, 308, - 309, 40, 462, 40, 179, 40, 427, 24, -19, 312, - 210, 330, 315, 40, 187, -199, 478, 318, 188, 332, - 320, 26, 439, -137, -137, 291, 211, 144, -137, 189, - 190, 191, 355, 510, 267, 40, 40, 350, -19, -151, - -151, 40, 27, -151, -151, -151, -151, -151, 364, 365, - 268, 184, 370, 28, 462, 326, 185, 371, -67, 327, - 328, -191, 322, 371, 349, 40, 199, 323, 335, 144, - 338, 304, 351, -19, 340, 463, 486, 342, 300, 37, - 97, 344, 345, -138, -138, -199, -199, -199, -138, 189, - 190, 191, 464, 356, 359, 360, 361, 362, 363, 465, - 343, 367, 321, -19, 368, 497, 423, 351, 72, 372, - 40, 351, 373, -187, 205, 55, 40, 290, 158, 37, - 37, 38, 200, 377, 333, 379, 90, 463, 380, 98, - 351, 383, 384, 424, 37, 40, 208, 413, 410, 386, - 387, 388, 389, 446, 464, 198, 393, 97, 395, -154, - 396, 465, 399, 91, 37, 405, 259, 156, 97, 58, - 59, 60, 61, 62, 414, 89, 356, 415, 365, 40, - 291, 37, 351, 265, 97, 417, 65, 90, 99, 420, - 421, 51, 92, 37, -187, 425, 472, 505, 351, 167, - 40, 198, 175, 172, 432, -150, -19, 449, 445, 436, - 448, 437, 174, -19, 91, 58, 59, 60, 61, 62, - 204, 37, 456, 270, -154, -154, 492, 177, -154, -154, - -154, -154, -154, 257, 168, 451, 142, 143, 169, 37, - 40, 288, 474, 92, 262, 475, 40, 477, 284, 40, - 272, 273, 480, 301, 302, 285, 64, 483, 278, 493, - 485, 448, 487, 49, 50, 295, -19, 37, 144, 293, - -150, -150, 40, 491, -150, -150, -150, -150, -150, 452, - 453, 279, -210, 248, 313, 142, 143, 170, 171, 37, - 316, 298, 495, 336, -216, -216, 339, -216, -216, 37, - 498, 314, 37, 499, 337, 346, 357, 352, 502, 503, - 37, 353, 376, 37, -108, 392, 507, 144, 37, 37, - 426, 438, 428, 378, 354, 512, -216, -216, -216, -216, + 319, 310, 244, 245, 450, 382, 369, 276, 253, 277, + 271, 199, 199, 254, 23, 311, 256, 260, 364, 365, + 261, 266, 258, 369, 269, 184, 185, 398, 341, 289, + 185, 294, 198, 299, 179, -151, -109, -19, -109, 40, + 283, 371, -199, 478, 161, 58, 59, 60, 61, 62, + 210, 461, 40, 305, 306, 40, 263, 24, 307, 308, + 309, 267, 40, 25, -19, 211, 427, 151, 40, 312, + 187, 402, 315, 188, 370, 40, 268, 318, 26, 371, + 320, 187, 439, 330, 188, 359, 360, 361, 362, 363, + 27, -67, 355, 161, 40, 462, 371, 350, 290, 40, + -151, -151, -19, 461, -151, -151, -151, -151, -151, -187, + 205, -199, -199, -199, 162, 326, 40, 322, 37, 327, + 328, 90, 323, 144, 349, -70, 199, 343, 335, -19, + 338, 40, 351, 28, 340, 166, 486, 342, -137, -137, + 97, 344, 345, -137, 189, 190, 191, 462, 91, -138, + -138, 291, 40, 356, -138, 189, 190, 191, 415, 365, + 304, 367, 37, 162, 368, 497, 510, 351, 40, 372, + 72, 351, 373, 463, 40, 49, 50, 92, 37, -187, + 158, 41, 321, 377, 89, 379, 40, 40, 380, 98, + 351, 383, 384, 424, 333, 90, 423, 413, 410, 386, + 387, 388, 389, 40, 142, 143, 393, 97, 395, 55, + 396, 446, 399, 40, 198, 405, 156, -154, 97, 280, + 281, -103, 91, 464, 414, 463, 356, 58, 59, 60, + 61, 62, 351, -108, 97, 417, 144, 65, 99, 420, + 421, 465, 40, 51, 167, 425, 472, 505, 351, 142, + 143, 92, 198, 404, 432, -150, -19, 449, 445, 436, + 448, 437, 172, -19, -19, 58, 59, 60, 61, 62, + 282, 40, 456, 174, 175, 464, 492, -19, 290, 177, + 332, 144, -154, -154, -19, 451, -154, -154, -154, -154, + -154, 204, 474, 465, 278, 475, 19, 477, 37, -19, + 38, 168, 480, 257, 262, 169, -19, 483, 279, 493, + 485, 448, 487, 37, 313, 200, -19, 37, 316, 208, + -150, -150, 40, 491, -150, -150, -150, -150, -150, 301, + 302, 291, 40, -210, 248, 336, 339, -19, 346, 452, + 453, 37, 495, 259, -216, -216, 378, -216, -216, 37, + 498, 265, 352, 499, 170, 171, 353, 354, 502, 503, + 37, 1, 270, 2, 3, 4, 507, 5, 6, 7, + 357, 37, 428, 8, 390, 512, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, - -216, -216, -216, -216, -216, -216, -216, -216, -216, 37, - -216, -216, -210, -210, -210, -205, 381, 250, -216, 390, - 40, -216, 394, 442, 251, -216, -216, 103, 104, 441, - 105, 106, 37, 404, 444, 443, 198, -19, 473, 37, - -153, 455, 479, 488, -19, -19, 481, 471, 484, 508, - 58, 59, 60, 61, 62, 509, 407, 489, 264, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 435, 130, 92, -205, -205, -205, 418, 248, - 482, 131, 506, 149, 132, 431, 375, -19, 133, 134, - -216, -216, 286, -216, -216, -153, -153, 40, 195, -153, - -153, -153, -153, -153, 358, 57, 416, 58, 59, 60, - 61, 62, 63, 64, 193, 490, 58, 59, 60, 61, - 62, 194, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, 394, + -216, -216, -210, -210, -210, 442, 441, 250, -216, -205, + 381, -216, 443, 40, 251, -216, -216, 473, 479, 40, + 103, 104, 481, 105, 106, 198, 484, 57, -153, 58, + 59, 60, 61, 62, 63, 64, 488, 508, 58, 59, + 60, 61, 62, 57, 509, 58, 59, 60, 61, 62, + 63, 64, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 248, 130, 92, -205, -205, + -205, 37, 407, 288, 131, -216, -216, 132, -216, -216, + 471, 133, 134, -153, -153, 264, 435, -153, -153, -153, + -153, -153, 193, 489, 58, 59, 60, 61, 62, 194, + 58, 59, 60, 61, 62, 506, 418, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, - -216, -216, -216, -216, -216, 206, -216, -216, -81, -81, - -81, 247, 248, 250, -216, -2, 406, -216, 476, 494, - 251, -216, -216, -216, -216, 329, -216, -216, 57, 411, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 412, 0, 0, 0, 57, 69, 58, 59, 60, - 61, 62, 63, 64, 51, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, - -216, -216, -216, -216, -216, -216, -216, -216, 0, -216, - -216, -84, -84, -84, 0, 397, 250, -216, 0, 40, - -216, 0, 0, 251, -216, -216, 103, 104, 40, 105, - 106, 58, 59, 60, 61, 62, 57, 0, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 0, - 0, 0, 0, 0, 69, 0, 0, 0, 107, 108, + 248, -216, -216, -81, -81, -81, 482, 431, 250, -216, + -216, -216, -216, -216, -216, 251, -216, -216, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 0, 130, 92, -85, -85, -85, 0, 248, 0, - 131, 0, -19, 132, 0, 0, 0, 133, 134, -216, - -216, 0, -216, -216, 1, 0, 2, 3, 4, 0, - 5, 6, 7, 0, 0, 0, 8, 0, 0, 0, - 0, 40, 0, 0, 0, 0, 0, 0, 0, -103, - 0, -216, -216, -216, -216, -216, -216, -216, -216, -216, + 119, 120, 121, 122, 123, 246, 125, 126, 127, 37, + 149, 293, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, - -216, -216, -216, -216, 0, -216, -216, 142, 143, 0, - 0, -19, 250, -216, 248, 0, -216, 0, 0, 251, - -216, -216, 0, 0, 0, -216, -216, 0, -216, -216, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, + -216, -216, -216, -216, -216, 375, -216, -216, -84, -84, + -84, 286, 195, 250, -216, 397, 358, -216, 40, 416, + 251, -216, -216, 40, 490, 103, 104, 476, 105, 106, + 37, 57, 298, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 37, 37, 314, 337, 37, 69, + 376, 37, 37, 392, 426, 329, 206, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 247, 130, 92, -85, -85, -85, 411, 412, 248, 131, + 494, -19, 132, 37, 0, 438, 133, 134, -216, -216, + 0, -216, -216, 37, 37, 444, 455, 500, 0, 501, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -216, -216, -216, - -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, - -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, - 0, -216, -216, 0, 249, 0, 0, 248, 250, -216, - 0, 0, -216, 0, 0, 251, -216, -216, -216, -216, - 0, -216, -216, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 246, 125, 126, 127, 0, 0, 0, 0, 0, 0, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, - -216, -216, -216, 0, -216, -216, 0, 0, 0, 0, - 385, 250, -216, 324, 0, -216, 0, 40, 251, -216, - -216, 0, 0, 0, 103, 104, 0, 105, 106, 0, + -216, -216, -216, 248, -216, -216, 0, 0, 0, 0, + -19, 250, -216, -216, -216, -216, -216, -216, 251, -216, + -216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, 248, -216, + -216, 0, 249, 0, 0, 0, 250, -216, -216, -216, + -216, -216, -216, 251, -216, -216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 40, - 130, 92, 0, 0, 0, 0, 103, 104, 131, 105, - 106, 132, 0, 0, 0, 133, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 0, 130, 92, 103, 104, 0, 105, 106, 0, - 131, 0, 0, 132, 0, 0, 0, 133, 134, 0, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, 324, -216, -216, 40, 0, 0, 0, + 385, 250, -216, 103, 104, -216, 105, 106, 251, -216, + -216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 0, - 130, 92, 0, 0, 161, 457, 0, 0, 131, 0, - 0, 132, 0, 0, 0, 133, 134, 57, 0, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, - 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 40, 130, + 92, 0, 0, 0, 0, 103, 104, 131, 105, 106, + 132, 0, 0, 0, 133, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 0, 130, 92, 103, 104, 0, 105, 106, 0, 131, + 0, 0, 132, 0, 0, 0, 133, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 162 + 0, 0, 0, 0, 0, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 0, 130, + 92, 0, 0, 0, 161, 457, 0, 131, 0, 0, + 132, 0, 0, 0, 133, 134, 57, 0, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, -2, + 406, 0, 0, 0, 69, 0, 0, 0, 0, 0, + 0, 57, 51, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 0, 0, 0, 0, 0, 69, + 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, + 0, 0, 0, 0, 162 }; static const yytype_int16 yycheck[] = { - 1, 46, 178, 19, 55, 1, 5, 305, 43, 10, - 11, 12, 13, 14, 15, 16, 1, 36, 79, 5, - 21, 22, 23, 24, 25, 26, 27, 0, 5, 84, - 419, 81, 53, 83, 70, 54, 5, 13, 14, 5, - 41, 5, 5, 6, 13, 1, 41, 42, 5, 5, - 1, 485, 70, 487, 5, 12, 12, 242, 5, 94, - 1, 62, 13, 1, 65, 0, 67, 68, 69, 70, - 17, 5, 13, 37, 372, 71, 39, 43, 73, 75, - 96, 80, 471, 5, 1, 383, 89, 72, 64, 90, - 91, 94, 95, 62, 80, 72, 97, 70, 71, 100, + 1, 46, 178, 19, 55, 4, 4, 305, 43, 10, + 11, 12, 13, 14, 15, 16, 4, 36, 79, 4, + 21, 22, 23, 24, 25, 26, 27, 0, 1, 84, + 4, 81, 53, 83, 4, 54, 4, 4, 5, 4, + 41, 40, 41, 69, 12, 1, 4, 12, 4, 69, + 40, 41, 40, 41, 19, 20, 12, 242, 16, 94, + 1, 62, 34, 35, 65, 4, 67, 68, 69, 70, + 69, 38, 42, 72, 372, 6, 7, 8, 9, 10, + 96, 79, 72, 1, 72, 383, 89, 1, 1, 90, + 91, 94, 95, 61, 79, 69, 97, 70, 1, 100, 101, 399, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 71, 192, 133, 134, 72, 320, 71, 158, 139, 160, - 156, 196, 197, 144, 1, 195, 147, 150, 5, 5, - 151, 154, 74, 70, 155, 72, 5, 342, 75, 175, - 1, 177, 12, 179, 5, 7, 8, 9, 10, 11, - 171, 5, 1, 1, 15, 16, 17, 18, 19, 1, - 0, 1, 70, 184, 185, 41, 42, 5, 189, 190, - 191, 5, 419, 5, 1, 5, 381, 70, 5, 200, - 1, 13, 205, 5, 1, 0, 1, 208, 5, 43, - 211, 70, 397, 70, 71, 65, 17, 73, 75, 76, - 77, 78, 283, 72, 1, 5, 5, 278, 5, 70, - 71, 5, 70, 74, 75, 76, 77, 78, 80, 81, - 17, 70, 70, 0, 471, 246, 75, 75, 70, 250, - 251, 71, 70, 75, 275, 5, 311, 75, 259, 73, - 263, 71, 278, 70, 265, 419, 442, 268, 70, 70, - 305, 272, 273, 70, 71, 70, 71, 72, 75, 76, - 77, 78, 419, 284, 7, 8, 9, 10, 11, 419, - 70, 292, 71, 70, 295, 480, 70, 313, 42, 300, - 5, 317, 303, 0, 1, 1, 5, 12, 52, 70, - 70, 72, 72, 314, 13, 316, 13, 471, 319, 13, - 336, 322, 323, 374, 70, 5, 72, 348, 347, 330, - 331, 332, 333, 13, 471, 1, 337, 372, 339, 5, - 341, 471, 343, 40, 70, 346, 72, 1, 383, 15, - 16, 17, 18, 19, 355, 1, 357, 80, 81, 5, - 65, 70, 378, 72, 399, 366, 22, 13, 62, 370, - 371, 39, 69, 70, 71, 376, 421, 71, 394, 21, - 5, 1, 1, 13, 385, 5, 5, 408, 404, 390, - 406, 392, 21, 12, 40, 15, 16, 17, 18, 19, - 71, 70, 418, 72, 70, 71, 457, 1, 74, 75, - 76, 77, 78, 71, 13, 416, 41, 42, 17, 70, - 5, 72, 423, 69, 71, 426, 5, 428, 13, 5, - 35, 36, 433, 12, 13, 20, 21, 438, 1, 460, - 441, 457, 443, 5, 6, 70, 65, 70, 73, 72, - 70, 71, 5, 454, 74, 75, 76, 77, 78, 12, - 13, 13, 0, 1, 1, 41, 42, 66, 67, 70, - 72, 72, 473, 1, 12, 13, 72, 15, 16, 70, - 481, 72, 70, 484, 72, 27, 13, 74, 489, 490, - 70, 74, 72, 70, 70, 72, 497, 73, 70, 70, - 72, 72, 40, 1, 74, 506, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 70, - 68, 69, 70, 71, 72, 0, 1, 75, 76, 43, - 5, 79, 1, 5, 82, 83, 84, 12, 13, 70, - 15, 16, 70, 1, 72, 70, 1, 5, 71, 70, - 5, 72, 71, 5, 12, 13, 74, 420, 71, 71, - 15, 16, 17, 18, 19, 71, 347, 447, 153, 44, + 71, 192, 133, 134, 73, 320, 1, 158, 139, 160, + 156, 196, 197, 144, 69, 195, 147, 150, 79, 80, + 151, 154, 70, 1, 155, 69, 74, 342, 71, 175, + 74, 177, 1, 179, 1, 4, 69, 4, 71, 4, + 171, 74, 0, 1, 0, 14, 15, 16, 17, 18, + 1, 419, 4, 184, 185, 4, 1, 69, 189, 190, + 191, 1, 4, 4, 4, 16, 381, 12, 4, 200, + 1, 36, 205, 4, 69, 4, 16, 208, 69, 74, + 211, 1, 397, 12, 4, 6, 7, 8, 9, 10, + 69, 69, 283, 0, 4, 419, 74, 278, 11, 4, + 69, 70, 69, 471, 73, 74, 75, 76, 77, 0, + 1, 69, 70, 71, 70, 246, 4, 69, 69, 250, + 251, 12, 74, 72, 275, 70, 311, 69, 259, 69, + 263, 4, 278, 0, 265, 71, 442, 268, 69, 70, + 305, 272, 273, 74, 75, 76, 77, 471, 39, 69, + 70, 64, 4, 284, 74, 75, 76, 77, 79, 80, + 70, 292, 69, 70, 295, 480, 71, 313, 4, 300, + 42, 317, 303, 419, 4, 4, 5, 68, 69, 70, + 52, 11, 70, 314, 1, 316, 4, 4, 319, 12, + 336, 322, 323, 374, 12, 12, 69, 348, 347, 330, + 331, 332, 333, 4, 40, 41, 337, 372, 339, 1, + 341, 12, 343, 4, 1, 346, 1, 4, 383, 12, + 13, 12, 39, 419, 355, 471, 357, 14, 15, 16, + 17, 18, 378, 69, 399, 366, 72, 21, 61, 370, + 371, 419, 4, 38, 20, 376, 421, 70, 394, 40, + 41, 68, 1, 1, 385, 4, 4, 408, 404, 390, + 406, 392, 12, 11, 12, 14, 15, 16, 17, 18, + 63, 4, 418, 20, 1, 471, 457, 4, 11, 1, + 42, 72, 69, 70, 11, 416, 73, 74, 75, 76, + 77, 70, 423, 471, 1, 426, 1, 428, 69, 4, + 71, 12, 433, 70, 70, 16, 11, 438, 12, 460, + 441, 457, 443, 69, 1, 71, 64, 69, 71, 71, + 69, 70, 4, 454, 73, 74, 75, 76, 77, 11, + 12, 64, 4, 0, 1, 1, 71, 64, 26, 11, + 12, 69, 473, 71, 11, 12, 1, 14, 15, 69, + 481, 71, 73, 484, 65, 66, 73, 73, 489, 490, + 69, 25, 71, 27, 28, 29, 497, 31, 32, 33, + 12, 69, 39, 37, 42, 506, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 1, + 67, 68, 69, 70, 71, 4, 69, 74, 75, 0, + 1, 78, 69, 4, 81, 82, 83, 70, 70, 4, + 11, 12, 73, 14, 15, 1, 70, 12, 4, 14, + 15, 16, 17, 18, 19, 20, 4, 70, 14, 15, + 16, 17, 18, 12, 70, 14, 15, 16, 17, 18, + 19, 20, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 1, 67, 68, 69, 70, + 71, 69, 347, 71, 75, 11, 12, 78, 14, 15, + 420, 82, 83, 69, 70, 153, 388, 73, 74, 75, + 76, 77, 12, 447, 14, 15, 16, 17, 18, 19, + 14, 15, 16, 17, 18, 496, 367, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 1, 67, 68, 69, 70, 71, 436, 384, 74, 75, + 11, 12, 78, 14, 15, 81, 82, 83, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 388, 68, 69, 70, 71, 72, 367, 1, - 436, 76, 496, 47, 79, 384, 306, 65, 83, 84, - 12, 13, 173, 15, 16, 70, 71, 5, 81, 74, - 75, 76, 77, 78, 286, 13, 358, 15, 16, 17, - 18, 19, 20, 21, 13, 451, 15, 16, 17, 18, - 19, 20, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 94, 68, 69, 70, 71, - 72, 135, 1, 75, 76, 0, 1, 79, 427, 471, - 82, 83, 84, 12, 13, 252, 15, 16, 13, 347, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 347, -1, -1, -1, 13, 31, 15, 16, 17, - 18, 19, 20, 21, 39, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, -1, 68, - 69, 70, 71, 72, -1, 1, 75, 76, -1, 5, - 79, -1, -1, 82, 83, 84, 12, 13, 5, 15, - 16, 15, 16, 17, 18, 19, 13, -1, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, - -1, -1, -1, -1, 31, -1, -1, -1, 44, 45, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 69, + 47, 71, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 306, 67, 68, 69, 70, + 71, 173, 81, 74, 75, 1, 286, 78, 4, 358, + 81, 82, 83, 4, 451, 11, 12, 427, 14, 15, + 69, 12, 71, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 69, 69, 71, 71, 69, 30, + 71, 69, 69, 71, 71, 252, 94, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, -1, 68, 69, 70, 71, 72, -1, 1, -1, - 76, -1, 5, 79, -1, -1, -1, 83, 84, 12, - 13, -1, 15, 16, 26, -1, 28, 29, 30, -1, - 32, 33, 34, -1, -1, -1, 38, -1, -1, -1, - -1, 5, -1, -1, -1, -1, -1, -1, -1, 13, - -1, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 135, 67, 68, 69, 70, 71, 347, 347, 1, 75, + 471, 4, 78, 69, -1, 71, 82, 83, 11, 12, + -1, 14, 15, 69, 69, 71, 71, 485, -1, 487, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, -1, 68, 69, 41, 42, -1, - -1, 74, 75, 76, 1, -1, 79, -1, -1, 82, - 83, 84, -1, -1, -1, 12, 13, -1, 15, 16, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 73, + 63, 64, 65, 1, 67, 68, -1, -1, -1, -1, + 73, 74, 75, 11, 12, 78, 14, 15, 81, 82, + 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 1, 67, + 68, -1, 70, -1, -1, -1, 74, 75, 11, 12, + 78, 14, 15, 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - -1, 68, 69, -1, 71, -1, -1, 1, 75, 76, - -1, -1, 79, -1, -1, 82, 83, 84, 12, 13, - -1, 15, 16, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, -1, -1, -1, -1, -1, -1, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, -1, 68, 69, -1, -1, -1, -1, - 74, 75, 76, 1, -1, 79, -1, 5, 82, 83, - 84, -1, -1, -1, 12, 13, -1, 15, 16, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 1, 67, 68, 4, -1, -1, -1, + 73, 74, 75, 11, 12, 78, 14, 15, 81, 82, + 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 44, 45, 46, 47, + -1, -1, -1, -1, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 5, - 68, 69, -1, -1, -1, -1, 12, 13, 76, 15, - 16, 79, -1, -1, -1, 83, 84, -1, -1, -1, + 58, 59, 60, 61, 62, 63, 64, 65, 4, 67, + 68, -1, -1, -1, -1, 11, 12, 75, 14, 15, + 78, -1, -1, -1, 82, 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 44, 45, + -1, -1, -1, -1, -1, -1, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, -1, 68, 69, 12, 13, -1, 15, 16, -1, - 76, -1, -1, 79, -1, -1, -1, 83, 84, -1, + -1, 67, 68, 11, 12, -1, 14, 15, -1, 75, + -1, -1, 78, -1, -1, -1, 82, 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 44, 45, 46, 47, + -1, -1, -1, -1, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, -1, - 68, 69, -1, -1, 0, 1, -1, -1, 76, -1, - -1, 79, -1, -1, -1, 83, 84, 13, -1, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, - -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 71 + 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, + 68, -1, -1, -1, 0, 1, -1, 75, -1, -1, + 78, -1, -1, -1, 82, 83, 12, -1, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, + 1, -1, -1, -1, 30, -1, -1, -1, -1, -1, + -1, 12, 38, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, + -1, -1, -1, -1, -1, -1, -1, 38, -1, -1, + -1, -1, -1, -1, 70 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 26, 28, 29, 30, 32, 33, 34, 38, 86, - 88, 89, 90, 91, 92, 93, 94, 97, 99, 1, - 95, 70, 70, 70, 70, 5, 70, 70, 0, 95, - 95, 95, 95, 95, 95, 95, 96, 70, 72, 173, - 5, 12, 95, 95, 95, 95, 95, 95, 95, 5, - 6, 39, 100, 168, 169, 1, 95, 13, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 31, - 87, 104, 109, 128, 130, 136, 137, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 151, 154, 1, - 13, 40, 69, 155, 156, 157, 158, 164, 13, 62, - 133, 134, 135, 12, 13, 15, 16, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 68, 76, 79, 83, 84, 139, 160, 162, 163, 164, - 165, 166, 41, 42, 73, 121, 122, 124, 125, 141, - 1, 13, 112, 113, 114, 115, 1, 101, 109, 96, - 168, 0, 71, 98, 173, 174, 72, 21, 13, 17, - 66, 67, 13, 95, 21, 1, 95, 1, 95, 1, - 95, 95, 95, 1, 70, 75, 145, 1, 5, 76, - 77, 78, 138, 13, 20, 146, 147, 147, 1, 148, - 72, 174, 95, 95, 71, 1, 157, 174, 72, 174, - 1, 17, 173, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 61, 163, 1, 71, - 75, 82, 161, 95, 95, 95, 95, 71, 71, 72, - 174, 95, 71, 1, 114, 72, 174, 1, 17, 95, - 72, 173, 35, 36, 102, 110, 96, 96, 1, 13, - 13, 14, 64, 95, 13, 20, 144, 150, 72, 173, - 12, 65, 118, 72, 173, 70, 125, 127, 72, 173, - 70, 12, 13, 131, 71, 95, 95, 95, 95, 95, - 145, 147, 95, 1, 72, 174, 72, 1, 95, 72, - 95, 71, 70, 75, 1, 160, 95, 95, 95, 162, - 13, 119, 43, 13, 129, 95, 1, 72, 174, 72, - 95, 72, 95, 70, 95, 95, 27, 103, 116, 96, - 98, 173, 74, 74, 74, 145, 95, 13, 150, 7, - 8, 9, 10, 11, 80, 81, 152, 95, 95, 1, - 70, 75, 95, 95, 155, 143, 72, 95, 1, 95, - 95, 1, 160, 95, 95, 74, 95, 95, 95, 95, - 43, 123, 72, 95, 1, 95, 95, 1, 160, 95, - 126, 127, 37, 111, 1, 95, 1, 104, 105, 109, - 168, 170, 172, 96, 95, 80, 152, 95, 126, 106, - 95, 95, 155, 70, 98, 95, 72, 160, 40, 159, - 155, 135, 95, 17, 120, 121, 95, 95, 72, 160, - 155, 70, 5, 70, 72, 173, 13, 117, 173, 96, - 74, 95, 12, 13, 153, 72, 173, 1, 98, 107, - 108, 128, 130, 136, 137, 140, 167, 168, 170, 171, - 172, 106, 125, 71, 95, 95, 159, 95, 1, 71, - 95, 74, 122, 95, 71, 95, 127, 95, 5, 118, - 153, 95, 98, 96, 167, 95, 132, 160, 95, 95, - 112, 112, 95, 95, 80, 71, 133, 95, 71, 71, - 72, 80, 95 + 0, 25, 27, 28, 29, 31, 32, 33, 37, 85, + 87, 88, 89, 90, 91, 92, 93, 96, 98, 1, + 94, 69, 69, 69, 69, 4, 69, 69, 0, 94, + 94, 94, 94, 94, 94, 94, 95, 69, 71, 172, + 4, 11, 94, 94, 94, 94, 94, 94, 94, 4, + 5, 38, 99, 167, 168, 1, 94, 12, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 30, + 86, 103, 108, 127, 129, 135, 136, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 150, 153, 1, + 12, 39, 68, 154, 155, 156, 157, 163, 12, 61, + 132, 133, 134, 11, 12, 14, 15, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 67, 75, 78, 82, 83, 138, 159, 161, 162, 163, + 164, 165, 40, 41, 72, 120, 121, 123, 124, 140, + 1, 12, 111, 112, 113, 114, 1, 100, 108, 95, + 167, 0, 70, 97, 172, 173, 71, 20, 12, 16, + 65, 66, 12, 94, 20, 1, 94, 1, 94, 1, + 94, 94, 94, 1, 69, 74, 144, 1, 4, 75, + 76, 77, 137, 12, 19, 145, 146, 146, 1, 147, + 71, 173, 94, 94, 70, 1, 156, 173, 71, 173, + 1, 16, 172, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 60, 162, 1, 70, + 74, 81, 160, 94, 94, 94, 94, 70, 70, 71, + 173, 94, 70, 1, 113, 71, 173, 1, 16, 94, + 71, 172, 34, 35, 101, 109, 95, 95, 1, 12, + 12, 13, 63, 94, 12, 19, 143, 149, 71, 172, + 11, 64, 117, 71, 172, 69, 124, 126, 71, 172, + 69, 11, 12, 130, 70, 94, 94, 94, 94, 94, + 144, 146, 94, 1, 71, 173, 71, 1, 94, 71, + 94, 70, 69, 74, 1, 159, 94, 94, 94, 161, + 12, 118, 42, 12, 128, 94, 1, 71, 173, 71, + 94, 71, 94, 69, 94, 94, 26, 102, 115, 95, + 97, 172, 73, 73, 73, 144, 94, 12, 149, 6, + 7, 8, 9, 10, 79, 80, 151, 94, 94, 1, + 69, 74, 94, 94, 154, 142, 71, 94, 1, 94, + 94, 1, 159, 94, 94, 73, 94, 94, 94, 94, + 42, 122, 71, 94, 1, 94, 94, 1, 159, 94, + 125, 126, 36, 110, 1, 94, 1, 103, 104, 108, + 167, 169, 171, 95, 94, 79, 151, 94, 125, 105, + 94, 94, 154, 69, 97, 94, 71, 159, 39, 158, + 154, 134, 94, 16, 119, 120, 94, 94, 71, 159, + 154, 69, 4, 69, 71, 172, 12, 116, 172, 95, + 73, 94, 11, 12, 152, 71, 172, 1, 97, 106, + 107, 127, 129, 135, 136, 139, 166, 167, 169, 170, + 171, 105, 124, 70, 94, 94, 158, 94, 1, 70, + 94, 73, 121, 94, 70, 94, 126, 94, 4, 117, + 152, 94, 97, 95, 166, 94, 131, 159, 94, 94, + 111, 111, 94, 94, 79, 70, 132, 94, 70, 70, + 71, 79, 94 }; #define yyerrok (yyerrstatus = 0) @@ -1509,20 +1546,17 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) #else static void -yy_stack_print (yybottom, yytop) - yytype_int16 *yybottom; - yytype_int16 *yytop; +yy_stack_print (bottom, top) + yytype_int16 *bottom; + yytype_int16 *top; #endif { YYFPRINTF (stderr, "Stack now"); - for (; yybottom <= yytop; yybottom++) - { - int yybot = *yybottom; - YYFPRINTF (stderr, " %d", yybot); - } + for (; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); YYFPRINTF (stderr, "\n"); } @@ -1556,11 +1590,11 @@ yy_reduce_print (yyvsp, yyrule) /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - YYFPRINTF (stderr, " $%d = ", yyi + 1); + fprintf (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) ); - YYFPRINTF (stderr, "\n"); + fprintf (stderr, "\n"); } } @@ -1840,8 +1874,10 @@ yydestruct (yymsg, yytype, yyvaluep) break; } } + /* Prevent warnings from -Wmissing-prototypes. */ + #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); @@ -1860,9 +1896,10 @@ int yyparse (); -/*-------------------------. -| yyparse or yypush_parse. | -`-------------------------*/ + +/*----------. +| yyparse. | +`----------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ @@ -1886,46 +1923,22 @@ yyparse () #endif #endif { -/* The lookahead symbol. */ + /* The look-ahead symbol. */ int yychar; -/* The semantic value of the lookahead symbol. */ +/* The semantic value of the look-ahead symbol. */ YYSTYPE yylval; - /* Number of syntax errors so far. */ - int yynerrs; - - int yystate; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - - /* The stacks and their tools: - `yyss': related to states. - `yyvs': related to semantic values. - - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; - - YYSIZE_T yystacksize; +/* Number of syntax errors so far. */ +int yynerrs; + int yystate; int yyn; int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken; - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; - + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + /* Look-ahead token as an internal (translated) token number. */ + int yytoken = 0; #if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; @@ -1933,28 +1946,51 @@ YYSTYPE yylval; YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif + /* Three stacks and their tools: + `yyss': related to states, + `yyvs': related to semantic values, + `yyls': related to locations. + + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss = yyssa; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp; + + + #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + YYSIZE_T yystacksize = YYINITDEPTH; + + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + + /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; - yytoken = 0; - yyss = yyssa; - yyvs = yyvsa; - yystacksize = YYINITDEPTH; - YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ + yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ + yyssp = yyss; yyvsp = yyvs; @@ -1984,6 +2020,7 @@ YYSTYPE yylval; YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; + /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might @@ -1991,6 +2028,7 @@ YYSTYPE yylval; yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); yyss = yyss1; @@ -2013,8 +2051,9 @@ YYSTYPE yylval; (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); + YYSTACK_RELOCATE (yyss); + YYSTACK_RELOCATE (yyvs); + # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); @@ -2025,6 +2064,7 @@ YYSTYPE yylval; yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; + YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); @@ -2034,9 +2074,6 @@ YYSTYPE yylval; YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - if (yystate == YYFINAL) - YYACCEPT; - goto yybackup; /*-----------. @@ -2045,16 +2082,16 @@ YYSTYPE yylval; yybackup: /* Do appropriate processing given the current state. Read a - lookahead token if we need one and don't already have one. */ + look-ahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to lookahead token. */ + /* First try to decide what to do without reference to look-ahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a lookahead token if don't already have one. */ + /* Not known => get a look-ahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); @@ -2086,16 +2123,20 @@ yybackup: goto yyreduce; } + if (yyn == YYFINAL) + YYACCEPT; + /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the lookahead token. */ + /* Shift the look-ahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - /* Discard the shifted token. */ - yychar = YYEMPTY; + /* Discard the shifted token unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; yystate = yyn; *++yyvsp = yylval; @@ -2135,45 +2176,35 @@ yyreduce: switch (yyn) { case 12: - -/* Line 1455 of yacc.c */ -#line 281 "../css/CSSGrammar.y" +#line 279 "../css/CSSGrammar.y" { static_cast(parser)->m_rule = (yyvsp[(4) - (6)].rule); ;} break; case 13: - -/* Line 1455 of yacc.c */ -#line 287 "../css/CSSGrammar.y" +#line 285 "../css/CSSGrammar.y" { static_cast(parser)->m_keyframe = (yyvsp[(4) - (6)].keyframeRule); ;} break; case 14: - -/* Line 1455 of yacc.c */ -#line 293 "../css/CSSGrammar.y" +#line 291 "../css/CSSGrammar.y" { /* can be empty */ ;} break; case 15: - -/* Line 1455 of yacc.c */ -#line 299 "../css/CSSGrammar.y" +#line 297 "../css/CSSGrammar.y" { /* can be empty */ ;} break; case 16: - -/* Line 1455 of yacc.c */ -#line 305 "../css/CSSGrammar.y" +#line 303 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); if ((yyvsp[(4) - (5)].valueList)) { @@ -2188,9 +2219,7 @@ yyreduce: break; case 17: - -/* Line 1455 of yacc.c */ -#line 319 "../css/CSSGrammar.y" +#line 317 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); p->m_mediaQuery = p->sinkFloatingMediaQuery((yyvsp[(4) - (5)].mediaQuery)); @@ -2198,9 +2227,7 @@ yyreduce: break; case 18: - -/* Line 1455 of yacc.c */ -#line 326 "../css/CSSGrammar.y" +#line 324 "../css/CSSGrammar.y" { if ((yyvsp[(4) - (5)].selectorList)) { CSSParser* p = static_cast(parser); @@ -2211,17 +2238,13 @@ yyreduce: break; case 25: - -/* Line 1455 of yacc.c */ -#line 348 "../css/CSSGrammar.y" +#line 346 "../css/CSSGrammar.y" { ;} break; case 28: - -/* Line 1455 of yacc.c */ -#line 358 "../css/CSSGrammar.y" +#line 356 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); (yyval.rule) = static_cast(parser)->createCharsetRule((yyvsp[(3) - (5)].string)); @@ -2231,25 +2254,19 @@ yyreduce: break; case 29: - -/* Line 1455 of yacc.c */ -#line 364 "../css/CSSGrammar.y" +#line 362 "../css/CSSGrammar.y" { ;} break; case 30: - -/* Line 1455 of yacc.c */ -#line 366 "../css/CSSGrammar.y" +#line 364 "../css/CSSGrammar.y" { ;} break; case 32: - -/* Line 1455 of yacc.c */ -#line 372 "../css/CSSGrammar.y" +#line 370 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); if ((yyvsp[(2) - (3)].rule) && p->m_styleSheet) @@ -2258,17 +2275,13 @@ yyreduce: break; case 33: - -/* Line 1455 of yacc.c */ -#line 377 "../css/CSSGrammar.y" +#line 375 "../css/CSSGrammar.y" { ;} break; case 35: - -/* Line 1455 of yacc.c */ -#line 383 "../css/CSSGrammar.y" +#line 381 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); if ((yyvsp[(2) - (3)].rule) && p->m_styleSheet) @@ -2277,9 +2290,7 @@ yyreduce: break; case 39: - -/* Line 1455 of yacc.c */ -#line 397 "../css/CSSGrammar.y" +#line 395 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); if ((yyvsp[(2) - (3)].rule) && p->m_styleSheet) @@ -2288,16 +2299,12 @@ yyreduce: break; case 49: - -/* Line 1455 of yacc.c */ -#line 420 "../css/CSSGrammar.y" +#line 418 "../css/CSSGrammar.y" { (yyval.ruleList) = 0; ;} break; case 50: - -/* Line 1455 of yacc.c */ -#line 421 "../css/CSSGrammar.y" +#line 419 "../css/CSSGrammar.y" { (yyval.ruleList) = (yyvsp[(1) - (3)].ruleList); if ((yyvsp[(2) - (3)].rule)) { @@ -2309,90 +2316,70 @@ yyreduce: break; case 60: - -/* Line 1455 of yacc.c */ -#line 448 "../css/CSSGrammar.y" +#line 446 "../css/CSSGrammar.y" { (yyval.rule) = static_cast(parser)->createImportRule((yyvsp[(3) - (6)].string), (yyvsp[(5) - (6)].mediaList)); ;} break; case 61: - -/* Line 1455 of yacc.c */ -#line 451 "../css/CSSGrammar.y" +#line 449 "../css/CSSGrammar.y" { (yyval.rule) = 0; ;} break; case 62: - -/* Line 1455 of yacc.c */ -#line 454 "../css/CSSGrammar.y" +#line 452 "../css/CSSGrammar.y" { (yyval.rule) = 0; ;} break; case 63: - -/* Line 1455 of yacc.c */ -#line 457 "../css/CSSGrammar.y" +#line 455 "../css/CSSGrammar.y" { (yyval.rule) = 0; ;} break; case 64: - -/* Line 1455 of yacc.c */ -#line 463 "../css/CSSGrammar.y" +#line 461 "../css/CSSGrammar.y" { (yyval.rule) = static_cast(parser)->createVariablesRule((yyvsp[(3) - (7)].mediaList), true); ;} break; case 65: - -/* Line 1455 of yacc.c */ -#line 467 "../css/CSSGrammar.y" +#line 465 "../css/CSSGrammar.y" { (yyval.rule) = static_cast(parser)->createVariablesRule((yyvsp[(3) - (7)].mediaList), false); ;} break; case 66: - -/* Line 1455 of yacc.c */ -#line 473 "../css/CSSGrammar.y" +#line 471 "../css/CSSGrammar.y" { (yyval.mediaList) = static_cast(parser)->createMediaList(); ;} break; case 67: - -/* Line 1455 of yacc.c */ -#line 477 "../css/CSSGrammar.y" +#line 475 "../css/CSSGrammar.y" { (yyval.mediaList) = (yyvsp[(3) - (3)].mediaList); ;} break; case 68: - -/* Line 1455 of yacc.c */ -#line 483 "../css/CSSGrammar.y" +#line 481 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (1)].boolean); ;} break; case 69: - -/* Line 1455 of yacc.c */ -#line 486 "../css/CSSGrammar.y" +#line 484 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (2)].boolean); if ((yyvsp[(2) - (2)].boolean)) @@ -2401,81 +2388,63 @@ yyreduce: break; case 70: - -/* Line 1455 of yacc.c */ -#line 491 "../css/CSSGrammar.y" +#line 489 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (1)].boolean); ;} break; case 71: - -/* Line 1455 of yacc.c */ -#line 494 "../css/CSSGrammar.y" +#line 492 "../css/CSSGrammar.y" { (yyval.boolean) = false; ;} break; case 72: - -/* Line 1455 of yacc.c */ -#line 497 "../css/CSSGrammar.y" +#line 495 "../css/CSSGrammar.y" { (yyval.boolean) = false; ;} break; case 73: - -/* Line 1455 of yacc.c */ -#line 500 "../css/CSSGrammar.y" +#line 498 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (2)].boolean); ;} break; case 74: - -/* Line 1455 of yacc.c */ -#line 506 "../css/CSSGrammar.y" +#line 504 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (3)].boolean); ;} break; case 75: - -/* Line 1455 of yacc.c */ -#line 509 "../css/CSSGrammar.y" +#line 507 "../css/CSSGrammar.y" { (yyval.boolean) = false; ;} break; case 76: - -/* Line 1455 of yacc.c */ -#line 512 "../css/CSSGrammar.y" +#line 510 "../css/CSSGrammar.y" { (yyval.boolean) = false; ;} break; case 77: - -/* Line 1455 of yacc.c */ -#line 515 "../css/CSSGrammar.y" +#line 513 "../css/CSSGrammar.y" { (yyval.boolean) = false; ;} break; case 78: - -/* Line 1455 of yacc.c */ -#line 518 "../css/CSSGrammar.y" +#line 516 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (4)].boolean); if ((yyvsp[(2) - (4)].boolean)) @@ -2484,63 +2453,49 @@ yyreduce: break; case 79: - -/* Line 1455 of yacc.c */ -#line 523 "../css/CSSGrammar.y" +#line 521 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (4)].boolean); ;} break; case 80: - -/* Line 1455 of yacc.c */ -#line 526 "../css/CSSGrammar.y" +#line 524 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (6)].boolean); ;} break; case 81: - -/* Line 1455 of yacc.c */ -#line 532 "../css/CSSGrammar.y" +#line 530 "../css/CSSGrammar.y" { (yyval.boolean) = static_cast(parser)->addVariable((yyvsp[(1) - (4)].string), (yyvsp[(4) - (4)].valueList)); ;} break; case 82: - -/* Line 1455 of yacc.c */ -#line 536 "../css/CSSGrammar.y" +#line 534 "../css/CSSGrammar.y" { (yyval.boolean) = static_cast(parser)->addVariableDeclarationBlock((yyvsp[(1) - (7)].string)); ;} break; case 83: - -/* Line 1455 of yacc.c */ -#line 540 "../css/CSSGrammar.y" +#line 538 "../css/CSSGrammar.y" { (yyval.boolean) = false; ;} break; case 84: - -/* Line 1455 of yacc.c */ -#line 544 "../css/CSSGrammar.y" +#line 542 "../css/CSSGrammar.y" { (yyval.boolean) = false; ;} break; case 85: - -/* Line 1455 of yacc.c */ -#line 548 "../css/CSSGrammar.y" +#line 546 "../css/CSSGrammar.y" { /* @variables { varname: } Just reduce away this variable with no value. */ (yyval.boolean) = false; @@ -2548,9 +2503,7 @@ yyreduce: break; case 86: - -/* Line 1455 of yacc.c */ -#line 553 "../css/CSSGrammar.y" +#line 551 "../css/CSSGrammar.y" { /* if we come across rules with invalid values like this case: @variables { varname: *; }, just discard the property/value pair */ (yyval.boolean) = false; @@ -2558,18 +2511,14 @@ yyreduce: break; case 87: - -/* Line 1455 of yacc.c */ -#line 560 "../css/CSSGrammar.y" +#line 558 "../css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (2)].string); ;} break; case 88: - -/* Line 1455 of yacc.c */ -#line 566 "../css/CSSGrammar.y" +#line 564 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); if (p->m_styleSheet) @@ -2578,50 +2527,38 @@ yyreduce: break; case 91: - -/* Line 1455 of yacc.c */ -#line 576 "../css/CSSGrammar.y" +#line 574 "../css/CSSGrammar.y" { (yyval.string).characters = 0; ;} break; case 92: - -/* Line 1455 of yacc.c */ -#line 577 "../css/CSSGrammar.y" +#line 575 "../css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (2)].string); ;} break; case 95: - -/* Line 1455 of yacc.c */ -#line 586 "../css/CSSGrammar.y" +#line 584 "../css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (2)].string); ;} break; case 96: - -/* Line 1455 of yacc.c */ -#line 592 "../css/CSSGrammar.y" +#line 590 "../css/CSSGrammar.y" { (yyval.valueList) = 0; ;} break; case 97: - -/* Line 1455 of yacc.c */ -#line 595 "../css/CSSGrammar.y" +#line 593 "../css/CSSGrammar.y" { (yyval.valueList) = (yyvsp[(3) - (4)].valueList); ;} break; case 98: - -/* Line 1455 of yacc.c */ -#line 601 "../css/CSSGrammar.y" +#line 599 "../css/CSSGrammar.y" { (yyvsp[(3) - (7)].string).lower(); (yyval.mediaQueryExp) = static_cast(parser)->createFloatingMediaQueryExp((yyvsp[(3) - (7)].string), (yyvsp[(5) - (7)].valueList)); @@ -2629,9 +2566,7 @@ yyreduce: break; case 99: - -/* Line 1455 of yacc.c */ -#line 608 "../css/CSSGrammar.y" +#line 606 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); (yyval.mediaQueryExpList) = p->createFloatingMediaQueryExpList(); @@ -2640,9 +2575,7 @@ yyreduce: break; case 100: - -/* Line 1455 of yacc.c */ -#line 613 "../css/CSSGrammar.y" +#line 611 "../css/CSSGrammar.y" { (yyval.mediaQueryExpList) = (yyvsp[(1) - (5)].mediaQueryExpList); (yyval.mediaQueryExpList)->append(static_cast(parser)->sinkFloatingMediaQueryExp((yyvsp[(5) - (5)].mediaQueryExp))); @@ -2650,54 +2583,42 @@ yyreduce: break; case 101: - -/* Line 1455 of yacc.c */ -#line 620 "../css/CSSGrammar.y" +#line 618 "../css/CSSGrammar.y" { (yyval.mediaQueryExpList) = static_cast(parser)->createFloatingMediaQueryExpList(); ;} break; case 102: - -/* Line 1455 of yacc.c */ -#line 623 "../css/CSSGrammar.y" +#line 621 "../css/CSSGrammar.y" { (yyval.mediaQueryExpList) = (yyvsp[(3) - (3)].mediaQueryExpList); ;} break; case 103: - -/* Line 1455 of yacc.c */ -#line 629 "../css/CSSGrammar.y" +#line 627 "../css/CSSGrammar.y" { (yyval.mediaQueryRestrictor) = MediaQuery::None; ;} break; case 104: - -/* Line 1455 of yacc.c */ -#line 632 "../css/CSSGrammar.y" +#line 630 "../css/CSSGrammar.y" { (yyval.mediaQueryRestrictor) = MediaQuery::Only; ;} break; case 105: - -/* Line 1455 of yacc.c */ -#line 635 "../css/CSSGrammar.y" +#line 633 "../css/CSSGrammar.y" { (yyval.mediaQueryRestrictor) = MediaQuery::Not; ;} break; case 106: - -/* Line 1455 of yacc.c */ -#line 641 "../css/CSSGrammar.y" +#line 639 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); (yyval.mediaQuery) = p->createFloatingMediaQuery(p->sinkFloatingMediaQueryExpList((yyvsp[(1) - (1)].mediaQueryExpList))); @@ -2705,9 +2626,7 @@ yyreduce: break; case 107: - -/* Line 1455 of yacc.c */ -#line 646 "../css/CSSGrammar.y" +#line 644 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); (yyvsp[(3) - (4)].string).lower(); @@ -2716,18 +2635,14 @@ yyreduce: break; case 108: - -/* Line 1455 of yacc.c */ -#line 654 "../css/CSSGrammar.y" +#line 652 "../css/CSSGrammar.y" { (yyval.mediaList) = static_cast(parser)->createMediaList(); ;} break; case 110: - -/* Line 1455 of yacc.c */ -#line 661 "../css/CSSGrammar.y" +#line 659 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); (yyval.mediaList) = p->createMediaList(); @@ -2736,9 +2651,7 @@ yyreduce: break; case 111: - -/* Line 1455 of yacc.c */ -#line 666 "../css/CSSGrammar.y" +#line 664 "../css/CSSGrammar.y" { (yyval.mediaList) = (yyvsp[(1) - (4)].mediaList); if ((yyval.mediaList)) @@ -2747,45 +2660,35 @@ yyreduce: break; case 112: - -/* Line 1455 of yacc.c */ -#line 671 "../css/CSSGrammar.y" +#line 669 "../css/CSSGrammar.y" { (yyval.mediaList) = 0; ;} break; case 113: - -/* Line 1455 of yacc.c */ -#line 677 "../css/CSSGrammar.y" +#line 675 "../css/CSSGrammar.y" { (yyval.rule) = static_cast(parser)->createMediaRule((yyvsp[(3) - (7)].mediaList), (yyvsp[(6) - (7)].ruleList)); ;} break; case 114: - -/* Line 1455 of yacc.c */ -#line 680 "../css/CSSGrammar.y" +#line 678 "../css/CSSGrammar.y" { (yyval.rule) = static_cast(parser)->createMediaRule(0, (yyvsp[(5) - (6)].ruleList)); ;} break; case 115: - -/* Line 1455 of yacc.c */ -#line 686 "../css/CSSGrammar.y" +#line 684 "../css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (2)].string); ;} break; case 116: - -/* Line 1455 of yacc.c */ -#line 692 "../css/CSSGrammar.y" +#line 690 "../css/CSSGrammar.y" { (yyval.rule) = (yyvsp[(7) - (8)].keyframesRule); (yyvsp[(7) - (8)].keyframesRule)->setNameInternal((yyvsp[(3) - (8)].string)); @@ -2793,16 +2696,12 @@ yyreduce: break; case 119: - -/* Line 1455 of yacc.c */ -#line 704 "../css/CSSGrammar.y" +#line 702 "../css/CSSGrammar.y" { (yyval.keyframesRule) = static_cast(parser)->createKeyframesRule(); ;} break; case 120: - -/* Line 1455 of yacc.c */ -#line 705 "../css/CSSGrammar.y" +#line 703 "../css/CSSGrammar.y" { (yyval.keyframesRule) = (yyvsp[(1) - (3)].keyframesRule); if ((yyvsp[(2) - (3)].keyframeRule)) @@ -2811,18 +2710,14 @@ yyreduce: break; case 121: - -/* Line 1455 of yacc.c */ -#line 713 "../css/CSSGrammar.y" +#line 711 "../css/CSSGrammar.y" { (yyval.keyframeRule) = static_cast(parser)->createKeyframeRule((yyvsp[(1) - (6)].valueList)); ;} break; case 122: - -/* Line 1455 of yacc.c */ -#line 719 "../css/CSSGrammar.y" +#line 717 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); (yyval.valueList) = p->createFloatingValueList(); @@ -2831,9 +2726,7 @@ yyreduce: break; case 123: - -/* Line 1455 of yacc.c */ -#line 724 "../css/CSSGrammar.y" +#line 722 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); (yyval.valueList) = (yyvsp[(1) - (5)].valueList); @@ -2843,16 +2736,12 @@ yyreduce: break; case 124: - -/* Line 1455 of yacc.c */ -#line 733 "../css/CSSGrammar.y" +#line 731 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).isInt = false; (yyval.value).fValue = (yyvsp[(1) - (1)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; ;} break; case 125: - -/* Line 1455 of yacc.c */ -#line 734 "../css/CSSGrammar.y" +#line 732 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).isInt = false; (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; CSSParserString& str = (yyvsp[(1) - (1)].string); @@ -2866,98 +2755,74 @@ yyreduce: break; case 126: - -/* Line 1455 of yacc.c */ -#line 758 "../css/CSSGrammar.y" +#line 756 "../css/CSSGrammar.y" { (yyval.rule) = 0; ;} break; case 127: - -/* Line 1455 of yacc.c */ -#line 761 "../css/CSSGrammar.y" +#line 759 "../css/CSSGrammar.y" { (yyval.rule) = 0; ;} break; case 128: - -/* Line 1455 of yacc.c */ -#line 768 "../css/CSSGrammar.y" +#line 766 "../css/CSSGrammar.y" { (yyval.rule) = static_cast(parser)->createFontFaceRule(); ;} break; case 129: - -/* Line 1455 of yacc.c */ -#line 771 "../css/CSSGrammar.y" +#line 769 "../css/CSSGrammar.y" { (yyval.rule) = 0; ;} break; case 130: - -/* Line 1455 of yacc.c */ -#line 774 "../css/CSSGrammar.y" +#line 772 "../css/CSSGrammar.y" { (yyval.rule) = 0; ;} break; case 131: - -/* Line 1455 of yacc.c */ -#line 780 "../css/CSSGrammar.y" +#line 778 "../css/CSSGrammar.y" { (yyval.relation) = CSSSelector::DirectAdjacent; ;} break; case 132: - -/* Line 1455 of yacc.c */ -#line 781 "../css/CSSGrammar.y" +#line 779 "../css/CSSGrammar.y" { (yyval.relation) = CSSSelector::IndirectAdjacent; ;} break; case 133: - -/* Line 1455 of yacc.c */ -#line 782 "../css/CSSGrammar.y" +#line 780 "../css/CSSGrammar.y" { (yyval.relation) = CSSSelector::Child; ;} break; case 134: - -/* Line 1455 of yacc.c */ -#line 786 "../css/CSSGrammar.y" +#line 784 "../css/CSSGrammar.y" { (yyval.integer) = -1; ;} break; case 135: - -/* Line 1455 of yacc.c */ -#line 787 "../css/CSSGrammar.y" +#line 785 "../css/CSSGrammar.y" { (yyval.integer) = 1; ;} break; case 136: - -/* Line 1455 of yacc.c */ -#line 791 "../css/CSSGrammar.y" +#line 789 "../css/CSSGrammar.y" { (yyval.rule) = static_cast(parser)->createStyleRule((yyvsp[(1) - (5)].selectorList)); ;} break; case 137: - -/* Line 1455 of yacc.c */ -#line 797 "../css/CSSGrammar.y" +#line 795 "../css/CSSGrammar.y" { if ((yyvsp[(1) - (1)].selector)) { CSSParser* p = static_cast(parser); @@ -2970,9 +2835,7 @@ yyreduce: break; case 138: - -/* Line 1455 of yacc.c */ -#line 806 "../css/CSSGrammar.y" +#line 804 "../css/CSSGrammar.y" { if ((yyvsp[(1) - (4)].selectorList) && (yyvsp[(4) - (4)].selector)) { CSSParser* p = static_cast(parser); @@ -2984,45 +2847,35 @@ yyreduce: break; case 139: - -/* Line 1455 of yacc.c */ -#line 814 "../css/CSSGrammar.y" +#line 812 "../css/CSSGrammar.y" { (yyval.selectorList) = 0; ;} break; case 140: - -/* Line 1455 of yacc.c */ -#line 820 "../css/CSSGrammar.y" +#line 818 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(1) - (2)].selector); ;} break; case 141: - -/* Line 1455 of yacc.c */ -#line 826 "../css/CSSGrammar.y" +#line 824 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(1) - (1)].selector); ;} break; case 142: - -/* Line 1455 of yacc.c */ -#line 830 "../css/CSSGrammar.y" +#line 828 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(1) - (1)].selector); ;} break; case 143: - -/* Line 1455 of yacc.c */ -#line 834 "../css/CSSGrammar.y" +#line 832 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(2) - (2)].selector); if (!(yyvsp[(1) - (2)].selector)) @@ -3041,9 +2894,7 @@ yyreduce: break; case 144: - -/* Line 1455 of yacc.c */ -#line 849 "../css/CSSGrammar.y" +#line 847 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(3) - (3)].selector); if (!(yyvsp[(1) - (3)].selector)) @@ -3067,39 +2918,29 @@ yyreduce: break; case 145: - -/* Line 1455 of yacc.c */ -#line 869 "../css/CSSGrammar.y" +#line 867 "../css/CSSGrammar.y" { (yyval.selector) = 0; ;} break; case 146: - -/* Line 1455 of yacc.c */ -#line 875 "../css/CSSGrammar.y" +#line 873 "../css/CSSGrammar.y" { (yyval.string).characters = 0; (yyval.string).length = 0; ;} break; case 147: - -/* Line 1455 of yacc.c */ -#line 876 "../css/CSSGrammar.y" +#line 874 "../css/CSSGrammar.y" { static UChar star = '*'; (yyval.string).characters = ☆ (yyval.string).length = 1; ;} break; case 148: - -/* Line 1455 of yacc.c */ -#line 877 "../css/CSSGrammar.y" +#line 875 "../css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (2)].string); ;} break; case 149: - -/* Line 1455 of yacc.c */ -#line 881 "../css/CSSGrammar.y" +#line 879 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); (yyval.selector) = p->createFloatingSelector(); @@ -3108,9 +2949,7 @@ yyreduce: break; case 150: - -/* Line 1455 of yacc.c */ -#line 886 "../css/CSSGrammar.y" +#line 884 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(2) - (2)].selector); if ((yyval.selector)) { @@ -3121,9 +2960,7 @@ yyreduce: break; case 151: - -/* Line 1455 of yacc.c */ -#line 893 "../css/CSSGrammar.y" +#line 891 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(1) - (1)].selector); CSSParser* p = static_cast(parser); @@ -3133,9 +2970,7 @@ yyreduce: break; case 152: - -/* Line 1455 of yacc.c */ -#line 899 "../css/CSSGrammar.y" +#line 897 "../css/CSSGrammar.y" { AtomicString namespacePrefix = (yyvsp[(1) - (2)].string); CSSParser* p = static_cast(parser); @@ -3149,9 +2984,7 @@ yyreduce: break; case 153: - -/* Line 1455 of yacc.c */ -#line 909 "../css/CSSGrammar.y" +#line 907 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(3) - (3)].selector); if ((yyval.selector)) { @@ -3167,9 +3000,7 @@ yyreduce: break; case 154: - -/* Line 1455 of yacc.c */ -#line 921 "../css/CSSGrammar.y" +#line 919 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(2) - (2)].selector); if ((yyval.selector)) { @@ -3183,9 +3014,7 @@ yyreduce: break; case 155: - -/* Line 1455 of yacc.c */ -#line 934 "../css/CSSGrammar.y" +#line 932 "../css/CSSGrammar.y" { CSSParserString& str = (yyvsp[(1) - (1)].string); CSSParser* p = static_cast(parser); @@ -3197,9 +3026,7 @@ yyreduce: break; case 156: - -/* Line 1455 of yacc.c */ -#line 942 "../css/CSSGrammar.y" +#line 940 "../css/CSSGrammar.y" { static UChar star = '*'; (yyval.string).characters = ☆ @@ -3208,18 +3035,14 @@ yyreduce: break; case 157: - -/* Line 1455 of yacc.c */ -#line 950 "../css/CSSGrammar.y" +#line 948 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(1) - (1)].selector); ;} break; case 158: - -/* Line 1455 of yacc.c */ -#line 953 "../css/CSSGrammar.y" +#line 951 "../css/CSSGrammar.y" { if (!(yyvsp[(2) - (2)].selector)) (yyval.selector) = 0; @@ -3236,18 +3059,14 @@ yyreduce: break; case 159: - -/* Line 1455 of yacc.c */ -#line 966 "../css/CSSGrammar.y" +#line 964 "../css/CSSGrammar.y" { (yyval.selector) = 0; ;} break; case 160: - -/* Line 1455 of yacc.c */ -#line 972 "../css/CSSGrammar.y" +#line 970 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); (yyval.selector) = p->createFloatingSelector(); @@ -3259,9 +3078,7 @@ yyreduce: break; case 161: - -/* Line 1455 of yacc.c */ -#line 980 "../css/CSSGrammar.y" +#line 978 "../css/CSSGrammar.y" { if ((yyvsp[(1) - (1)].string).characters[0] >= '0' && (yyvsp[(1) - (1)].string).characters[0] <= '9') { (yyval.selector) = 0; @@ -3277,9 +3094,7 @@ yyreduce: break; case 165: - -/* Line 1455 of yacc.c */ -#line 998 "../css/CSSGrammar.y" +#line 996 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); (yyval.selector) = p->createFloatingSelector(); @@ -3291,9 +3106,7 @@ yyreduce: break; case 166: - -/* Line 1455 of yacc.c */ -#line 1009 "../css/CSSGrammar.y" +#line 1007 "../css/CSSGrammar.y" { CSSParserString& str = (yyvsp[(1) - (2)].string); CSSParser* p = static_cast(parser); @@ -3305,9 +3118,7 @@ yyreduce: break; case 167: - -/* Line 1455 of yacc.c */ -#line 1020 "../css/CSSGrammar.y" +#line 1018 "../css/CSSGrammar.y" { (yyval.selector) = static_cast(parser)->createFloatingSelector(); (yyval.selector)->setAttribute(QualifiedName(nullAtom, (yyvsp[(3) - (4)].string), nullAtom)); @@ -3316,9 +3127,7 @@ yyreduce: break; case 168: - -/* Line 1455 of yacc.c */ -#line 1025 "../css/CSSGrammar.y" +#line 1023 "../css/CSSGrammar.y" { (yyval.selector) = static_cast(parser)->createFloatingSelector(); (yyval.selector)->setAttribute(QualifiedName(nullAtom, (yyvsp[(3) - (8)].string), nullAtom)); @@ -3328,9 +3137,7 @@ yyreduce: break; case 169: - -/* Line 1455 of yacc.c */ -#line 1031 "../css/CSSGrammar.y" +#line 1029 "../css/CSSGrammar.y" { AtomicString namespacePrefix = (yyvsp[(3) - (5)].string); CSSParser* p = static_cast(parser); @@ -3342,9 +3149,7 @@ yyreduce: break; case 170: - -/* Line 1455 of yacc.c */ -#line 1039 "../css/CSSGrammar.y" +#line 1037 "../css/CSSGrammar.y" { AtomicString namespacePrefix = (yyvsp[(3) - (9)].string); CSSParser* p = static_cast(parser); @@ -3357,63 +3162,49 @@ yyreduce: break; case 171: - -/* Line 1455 of yacc.c */ -#line 1051 "../css/CSSGrammar.y" +#line 1049 "../css/CSSGrammar.y" { (yyval.integer) = CSSSelector::Exact; ;} break; case 172: - -/* Line 1455 of yacc.c */ -#line 1054 "../css/CSSGrammar.y" +#line 1052 "../css/CSSGrammar.y" { (yyval.integer) = CSSSelector::List; ;} break; case 173: - -/* Line 1455 of yacc.c */ -#line 1057 "../css/CSSGrammar.y" +#line 1055 "../css/CSSGrammar.y" { (yyval.integer) = CSSSelector::Hyphen; ;} break; case 174: - -/* Line 1455 of yacc.c */ -#line 1060 "../css/CSSGrammar.y" +#line 1058 "../css/CSSGrammar.y" { (yyval.integer) = CSSSelector::Begin; ;} break; case 175: - -/* Line 1455 of yacc.c */ -#line 1063 "../css/CSSGrammar.y" +#line 1061 "../css/CSSGrammar.y" { (yyval.integer) = CSSSelector::End; ;} break; case 176: - -/* Line 1455 of yacc.c */ -#line 1066 "../css/CSSGrammar.y" +#line 1064 "../css/CSSGrammar.y" { (yyval.integer) = CSSSelector::Contain; ;} break; case 179: - -/* Line 1455 of yacc.c */ -#line 1077 "../css/CSSGrammar.y" +#line 1075 "../css/CSSGrammar.y" { (yyval.selector) = static_cast(parser)->createFloatingSelector(); (yyval.selector)->m_match = CSSSelector::PseudoClass; @@ -3442,9 +3233,7 @@ yyreduce: break; case 180: - -/* Line 1455 of yacc.c */ -#line 1102 "../css/CSSGrammar.y" +#line 1100 "../css/CSSGrammar.y" { (yyval.selector) = static_cast(parser)->createFloatingSelector(); (yyval.selector)->m_match = CSSSelector::PseudoElement; @@ -3462,9 +3251,7 @@ yyreduce: break; case 181: - -/* Line 1455 of yacc.c */ -#line 1117 "../css/CSSGrammar.y" +#line 1115 "../css/CSSGrammar.y" { CSSParser *p = static_cast(parser); (yyval.selector) = p->createFloatingSelector(); @@ -3485,9 +3272,7 @@ yyreduce: break; case 182: - -/* Line 1455 of yacc.c */ -#line 1135 "../css/CSSGrammar.y" +#line 1133 "../css/CSSGrammar.y" { CSSParser *p = static_cast(parser); (yyval.selector) = p->createFloatingSelector(); @@ -3508,9 +3293,7 @@ yyreduce: break; case 183: - -/* Line 1455 of yacc.c */ -#line 1153 "../css/CSSGrammar.y" +#line 1151 "../css/CSSGrammar.y" { CSSParser *p = static_cast(parser); (yyval.selector) = p->createFloatingSelector(); @@ -3532,9 +3315,7 @@ yyreduce: break; case 184: - -/* Line 1455 of yacc.c */ -#line 1172 "../css/CSSGrammar.y" +#line 1170 "../css/CSSGrammar.y" { if (!(yyvsp[(4) - (6)].selector)) (yyval.selector) = 0; @@ -3550,18 +3331,14 @@ yyreduce: break; case 185: - -/* Line 1455 of yacc.c */ -#line 1187 "../css/CSSGrammar.y" +#line 1185 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (1)].boolean); ;} break; case 186: - -/* Line 1455 of yacc.c */ -#line 1190 "../css/CSSGrammar.y" +#line 1188 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (2)].boolean); if ( (yyvsp[(2) - (2)].boolean) ) @@ -3570,90 +3347,70 @@ yyreduce: break; case 187: - -/* Line 1455 of yacc.c */ -#line 1195 "../css/CSSGrammar.y" +#line 1193 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (1)].boolean); ;} break; case 188: - -/* Line 1455 of yacc.c */ -#line 1198 "../css/CSSGrammar.y" +#line 1196 "../css/CSSGrammar.y" { (yyval.boolean) = false; ;} break; case 189: - -/* Line 1455 of yacc.c */ -#line 1201 "../css/CSSGrammar.y" +#line 1199 "../css/CSSGrammar.y" { (yyval.boolean) = false; ;} break; case 190: - -/* Line 1455 of yacc.c */ -#line 1204 "../css/CSSGrammar.y" +#line 1202 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (2)].boolean); ;} break; case 191: - -/* Line 1455 of yacc.c */ -#line 1207 "../css/CSSGrammar.y" +#line 1205 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (2)].boolean); ;} break; case 192: - -/* Line 1455 of yacc.c */ -#line 1213 "../css/CSSGrammar.y" +#line 1211 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (3)].boolean); ;} break; case 193: - -/* Line 1455 of yacc.c */ -#line 1216 "../css/CSSGrammar.y" +#line 1214 "../css/CSSGrammar.y" { (yyval.boolean) = false; ;} break; case 194: - -/* Line 1455 of yacc.c */ -#line 1219 "../css/CSSGrammar.y" +#line 1217 "../css/CSSGrammar.y" { (yyval.boolean) = false; ;} break; case 195: - -/* Line 1455 of yacc.c */ -#line 1222 "../css/CSSGrammar.y" +#line 1220 "../css/CSSGrammar.y" { (yyval.boolean) = false; ;} break; case 196: - -/* Line 1455 of yacc.c */ -#line 1225 "../css/CSSGrammar.y" +#line 1223 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (4)].boolean); if ((yyvsp[(2) - (4)].boolean)) @@ -3662,27 +3419,21 @@ yyreduce: break; case 197: - -/* Line 1455 of yacc.c */ -#line 1230 "../css/CSSGrammar.y" +#line 1228 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (4)].boolean); ;} break; case 198: - -/* Line 1455 of yacc.c */ -#line 1233 "../css/CSSGrammar.y" +#line 1231 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (6)].boolean); ;} break; case 199: - -/* Line 1455 of yacc.c */ -#line 1239 "../css/CSSGrammar.y" +#line 1237 "../css/CSSGrammar.y" { (yyval.boolean) = false; CSSParser* p = static_cast(parser); @@ -3699,9 +3450,7 @@ yyreduce: break; case 200: - -/* Line 1455 of yacc.c */ -#line 1253 "../css/CSSGrammar.y" +#line 1251 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); p->m_valueList = new CSSParserValueList; @@ -3716,18 +3465,14 @@ yyreduce: break; case 201: - -/* Line 1455 of yacc.c */ -#line 1265 "../css/CSSGrammar.y" +#line 1263 "../css/CSSGrammar.y" { (yyval.boolean) = false; ;} break; case 202: - -/* Line 1455 of yacc.c */ -#line 1269 "../css/CSSGrammar.y" +#line 1267 "../css/CSSGrammar.y" { /* The default movable type template has letter-spacing: .none; Handle this by looking for error tokens at the start of an expr, recover the expr and then treat as an error, cleaning @@ -3737,9 +3482,7 @@ yyreduce: break; case 203: - -/* Line 1455 of yacc.c */ -#line 1276 "../css/CSSGrammar.y" +#line 1274 "../css/CSSGrammar.y" { /* When we encounter something like p {color: red !important fail;} we should drop the declaration */ (yyval.boolean) = false; @@ -3747,9 +3490,7 @@ yyreduce: break; case 204: - -/* Line 1455 of yacc.c */ -#line 1281 "../css/CSSGrammar.y" +#line 1279 "../css/CSSGrammar.y" { /* Handle this case: div { text-align: center; !important } Just reduce away the stray !important. */ (yyval.boolean) = false; @@ -3757,9 +3498,7 @@ yyreduce: break; case 205: - -/* Line 1455 of yacc.c */ -#line 1286 "../css/CSSGrammar.y" +#line 1284 "../css/CSSGrammar.y" { /* div { font-family: } Just reduce away this property with no value. */ (yyval.boolean) = false; @@ -3767,9 +3506,7 @@ yyreduce: break; case 206: - -/* Line 1455 of yacc.c */ -#line 1291 "../css/CSSGrammar.y" +#line 1289 "../css/CSSGrammar.y" { /* if we come across rules with invalid values like this case: p { weight: *; }, just discard the rule */ (yyval.boolean) = false; @@ -3777,9 +3514,7 @@ yyreduce: break; case 207: - -/* Line 1455 of yacc.c */ -#line 1296 "../css/CSSGrammar.y" +#line 1294 "../css/CSSGrammar.y" { /* if we come across: div { color{;color:maroon} }, ignore everything within curly brackets */ (yyval.boolean) = false; @@ -3787,32 +3522,24 @@ yyreduce: break; case 208: - -/* Line 1455 of yacc.c */ -#line 1303 "../css/CSSGrammar.y" +#line 1301 "../css/CSSGrammar.y" { (yyval.integer) = cssPropertyID((yyvsp[(1) - (2)].string)); ;} break; case 209: - -/* Line 1455 of yacc.c */ -#line 1309 "../css/CSSGrammar.y" +#line 1307 "../css/CSSGrammar.y" { (yyval.boolean) = true; ;} break; case 210: - -/* Line 1455 of yacc.c */ -#line 1310 "../css/CSSGrammar.y" +#line 1308 "../css/CSSGrammar.y" { (yyval.boolean) = false; ;} break; case 211: - -/* Line 1455 of yacc.c */ -#line 1314 "../css/CSSGrammar.y" +#line 1312 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); (yyval.valueList) = p->createFloatingValueList(); @@ -3821,9 +3548,7 @@ yyreduce: break; case 212: - -/* Line 1455 of yacc.c */ -#line 1319 "../css/CSSGrammar.y" +#line 1317 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); (yyval.valueList) = (yyvsp[(1) - (3)].valueList); @@ -3841,66 +3566,50 @@ yyreduce: break; case 213: - -/* Line 1455 of yacc.c */ -#line 1333 "../css/CSSGrammar.y" +#line 1331 "../css/CSSGrammar.y" { (yyval.valueList) = 0; ;} break; case 214: - -/* Line 1455 of yacc.c */ -#line 1339 "../css/CSSGrammar.y" +#line 1337 "../css/CSSGrammar.y" { (yyval.character) = '/'; ;} break; case 215: - -/* Line 1455 of yacc.c */ -#line 1342 "../css/CSSGrammar.y" +#line 1340 "../css/CSSGrammar.y" { (yyval.character) = ','; ;} break; case 216: - -/* Line 1455 of yacc.c */ -#line 1345 "../css/CSSGrammar.y" +#line 1343 "../css/CSSGrammar.y" { (yyval.character) = 0; ;} break; case 217: - -/* Line 1455 of yacc.c */ -#line 1351 "../css/CSSGrammar.y" +#line 1349 "../css/CSSGrammar.y" { (yyval.value) = (yyvsp[(1) - (1)].value); ;} break; case 218: - -/* Line 1455 of yacc.c */ -#line 1352 "../css/CSSGrammar.y" +#line 1350 "../css/CSSGrammar.y" { (yyval.value) = (yyvsp[(2) - (2)].value); (yyval.value).fValue *= (yyvsp[(1) - (2)].integer); ;} break; case 219: - -/* Line 1455 of yacc.c */ -#line 1353 "../css/CSSGrammar.y" +#line 1351 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_STRING; ;} break; case 220: - -/* Line 1455 of yacc.c */ -#line 1354 "../css/CSSGrammar.y" +#line 1352 "../css/CSSGrammar.y" { (yyval.value).id = cssValueKeywordID((yyvsp[(1) - (2)].string)); (yyval.value).unit = CSSPrimitiveValue::CSS_IDENT; @@ -3909,216 +3618,156 @@ yyreduce: break; case 221: - -/* Line 1455 of yacc.c */ -#line 1360 "../css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_DIMENSION; ;} +#line 1358 "../css/CSSGrammar.y" + { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_DIMENSION ;} break; case 222: - -/* Line 1455 of yacc.c */ -#line 1361 "../css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(2) - (3)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_DIMENSION; ;} +#line 1359 "../css/CSSGrammar.y" + { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(2) - (3)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_DIMENSION ;} break; case 223: - -/* Line 1455 of yacc.c */ -#line 1362 "../css/CSSGrammar.y" +#line 1360 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_URI; ;} break; case 224: - -/* Line 1455 of yacc.c */ -#line 1363 "../css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_UNICODE_RANGE; ;} +#line 1361 "../css/CSSGrammar.y" + { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_UNICODE_RANGE ;} break; case 225: - -/* Line 1455 of yacc.c */ -#line 1364 "../css/CSSGrammar.y" +#line 1362 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (1)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; ;} break; case 226: - -/* Line 1455 of yacc.c */ -#line 1365 "../css/CSSGrammar.y" +#line 1363 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).string = CSSParserString(); (yyval.value).unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; ;} break; case 227: - -/* Line 1455 of yacc.c */ -#line 1367 "../css/CSSGrammar.y" +#line 1365 "../css/CSSGrammar.y" { (yyval.value) = (yyvsp[(1) - (1)].value); ;} break; case 228: - -/* Line 1455 of yacc.c */ -#line 1370 "../css/CSSGrammar.y" +#line 1368 "../css/CSSGrammar.y" { (yyval.value) = (yyvsp[(1) - (2)].value); ;} break; case 229: - -/* Line 1455 of yacc.c */ -#line 1373 "../css/CSSGrammar.y" +#line 1371 "../css/CSSGrammar.y" {;} break; case 230: - -/* Line 1455 of yacc.c */ -#line 1377 "../css/CSSGrammar.y" +#line 1375 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).isInt = true; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; ;} break; case 231: - -/* Line 1455 of yacc.c */ -#line 1378 "../css/CSSGrammar.y" +#line 1376 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).isInt = false; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; ;} break; case 232: - -/* Line 1455 of yacc.c */ -#line 1379 "../css/CSSGrammar.y" +#line 1377 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PERCENTAGE; ;} break; case 233: - -/* Line 1455 of yacc.c */ -#line 1380 "../css/CSSGrammar.y" +#line 1378 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PX; ;} break; case 234: - -/* Line 1455 of yacc.c */ -#line 1381 "../css/CSSGrammar.y" +#line 1379 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_CM; ;} break; case 235: - -/* Line 1455 of yacc.c */ -#line 1382 "../css/CSSGrammar.y" +#line 1380 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_MM; ;} break; case 236: - -/* Line 1455 of yacc.c */ -#line 1383 "../css/CSSGrammar.y" +#line 1381 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_IN; ;} break; case 237: - -/* Line 1455 of yacc.c */ -#line 1384 "../css/CSSGrammar.y" +#line 1382 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PT; ;} break; case 238: - -/* Line 1455 of yacc.c */ -#line 1385 "../css/CSSGrammar.y" +#line 1383 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PC; ;} break; case 239: - -/* Line 1455 of yacc.c */ -#line 1386 "../css/CSSGrammar.y" +#line 1384 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_DEG; ;} break; case 240: - -/* Line 1455 of yacc.c */ -#line 1387 "../css/CSSGrammar.y" +#line 1385 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_RAD; ;} break; case 241: - -/* Line 1455 of yacc.c */ -#line 1388 "../css/CSSGrammar.y" +#line 1386 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_GRAD; ;} break; case 242: - -/* Line 1455 of yacc.c */ -#line 1389 "../css/CSSGrammar.y" +#line 1387 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_TURN; ;} break; case 243: - -/* Line 1455 of yacc.c */ -#line 1390 "../css/CSSGrammar.y" +#line 1388 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_MS; ;} break; case 244: - -/* Line 1455 of yacc.c */ -#line 1391 "../css/CSSGrammar.y" +#line 1389 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_S; ;} break; case 245: - -/* Line 1455 of yacc.c */ -#line 1392 "../css/CSSGrammar.y" +#line 1390 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_HZ; ;} break; case 246: - -/* Line 1455 of yacc.c */ -#line 1393 "../css/CSSGrammar.y" +#line 1391 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_KHZ; ;} break; case 247: - -/* Line 1455 of yacc.c */ -#line 1394 "../css/CSSGrammar.y" +#line 1392 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_EMS; ;} break; case 248: - -/* Line 1455 of yacc.c */ -#line 1395 "../css/CSSGrammar.y" +#line 1393 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSParserValue::Q_EMS; ;} break; case 249: - -/* Line 1455 of yacc.c */ -#line 1396 "../css/CSSGrammar.y" +#line 1394 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_EXS; ;} break; case 250: - -/* Line 1455 of yacc.c */ -#line 1400 "../css/CSSGrammar.y" +#line 1398 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (1)].string); @@ -4127,9 +3776,7 @@ yyreduce: break; case 251: - -/* Line 1455 of yacc.c */ -#line 1408 "../css/CSSGrammar.y" +#line 1406 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); CSSParserFunction* f = p->createFloatingFunction(); @@ -4142,9 +3789,7 @@ yyreduce: break; case 252: - -/* Line 1455 of yacc.c */ -#line 1417 "../css/CSSGrammar.y" +#line 1415 "../css/CSSGrammar.y" { CSSParser* p = static_cast(parser); CSSParserFunction* f = p->createFloatingFunction(); @@ -4157,86 +3802,67 @@ yyreduce: break; case 253: - -/* Line 1455 of yacc.c */ -#line 1433 "../css/CSSGrammar.y" +#line 1431 "../css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (2)].string); ;} break; case 254: - -/* Line 1455 of yacc.c */ -#line 1434 "../css/CSSGrammar.y" +#line 1432 "../css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (2)].string); ;} break; case 255: - -/* Line 1455 of yacc.c */ -#line 1441 "../css/CSSGrammar.y" +#line 1439 "../css/CSSGrammar.y" { (yyval.rule) = 0; ;} break; case 256: - -/* Line 1455 of yacc.c */ -#line 1444 "../css/CSSGrammar.y" +#line 1442 "../css/CSSGrammar.y" { (yyval.rule) = 0; ;} break; case 257: - -/* Line 1455 of yacc.c */ -#line 1450 "../css/CSSGrammar.y" +#line 1448 "../css/CSSGrammar.y" { (yyval.rule) = 0; ;} break; case 258: - -/* Line 1455 of yacc.c */ -#line 1453 "../css/CSSGrammar.y" +#line 1451 "../css/CSSGrammar.y" { (yyval.rule) = 0; ;} break; case 261: - -/* Line 1455 of yacc.c */ -#line 1464 "../css/CSSGrammar.y" +#line 1462 "../css/CSSGrammar.y" { (yyval.rule) = 0; ;} break; case 262: - -/* Line 1455 of yacc.c */ -#line 1470 "../css/CSSGrammar.y" +#line 1468 "../css/CSSGrammar.y" { (yyval.rule) = 0; ;} break; case 263: - -/* Line 1455 of yacc.c */ -#line 1476 "../css/CSSGrammar.y" +#line 1474 "../css/CSSGrammar.y" { (yyval.rule) = 0; ;} break; - -/* Line 1455 of yacc.c */ -#line 4240 "WebCore/tmp/../generated/CSSGrammar.tab.c" +/* Line 1267 of yacc.c. */ +#line 3866 "WebCore/tmp/../generated/CSSGrammar.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -4247,6 +3873,7 @@ yyreduce: *++yyvsp = yyval; + /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -4311,7 +3938,7 @@ yyerrlab: if (yyerrstatus == 3) { - /* If just tried and failed to reuse lookahead token after an + /* If just tried and failed to reuse look-ahead token after an error, discard it. */ if (yychar <= YYEOF) @@ -4328,7 +3955,7 @@ yyerrlab: } } - /* Else will try to reuse lookahead token after shifting the error + /* Else will try to reuse look-ahead token after shifting the error token. */ goto yyerrlab1; @@ -4385,6 +4012,9 @@ yyerrlab1: YY_STACK_PRINT (yyss, yyssp); } + if (yyn == YYFINAL) + YYACCEPT; + *++yyvsp = yylval; @@ -4409,7 +4039,7 @@ yyabortlab: yyresult = 1; goto yyreturn; -#if !defined(yyoverflow) || YYERROR_VERBOSE +#ifndef yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -4420,7 +4050,7 @@ yyexhaustedlab: #endif yyreturn: - if (yychar != YYEMPTY) + if (yychar != YYEOF && yychar != YYEMPTY) yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); /* Do not reclaim the symbols of the rule which action triggered @@ -4446,8 +4076,6 @@ yyreturn: } - -/* Line 1675 of yacc.c */ -#line 1503 "../css/CSSGrammar.y" +#line 1501 "../css/CSSGrammar.y" diff --git a/src/3rdparty/webkit/WebCore/generated/CSSGrammar.h b/src/3rdparty/webkit/WebCore/generated/CSSGrammar.h index 84ad511..1b60c68 100644 --- a/src/3rdparty/webkit/WebCore/generated/CSSGrammar.h +++ b/src/3rdparty/webkit/WebCore/generated/CSSGrammar.h @@ -1,25 +1,26 @@ #ifndef CSSGRAMMAR_H #define CSSGRAMMAR_H - -/* A Bison parser, made by GNU Bison 2.4.1. */ +/* A Bison parser, made by GNU Bison 2.3. */ /* Skeleton interface for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify + + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - + the Free Software Foundation; either version 2, or (at your option) + any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -30,11 +31,10 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ - /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -42,80 +42,140 @@ know about them. */ enum yytokentype { TOKEN_EOF = 0, - LOWEST_PREC = 258, - UNIMPORTANT_TOK = 259, - WHITESPACE = 260, - SGML_CD = 261, - INCLUDES = 262, - DASHMATCH = 263, - BEGINSWITH = 264, - ENDSWITH = 265, - CONTAINS = 266, - STRING = 267, - IDENT = 268, - NTH = 269, - HEX = 270, - IDSEL = 271, - IMPORT_SYM = 272, - PAGE_SYM = 273, - MEDIA_SYM = 274, - FONT_FACE_SYM = 275, - CHARSET_SYM = 276, - NAMESPACE_SYM = 277, - WEBKIT_RULE_SYM = 278, - WEBKIT_DECLS_SYM = 279, - WEBKIT_KEYFRAME_RULE_SYM = 280, - WEBKIT_KEYFRAMES_SYM = 281, - WEBKIT_VALUE_SYM = 282, - WEBKIT_MEDIAQUERY_SYM = 283, - WEBKIT_SELECTOR_SYM = 284, - WEBKIT_VARIABLES_SYM = 285, - WEBKIT_DEFINE_SYM = 286, - VARIABLES_FOR = 287, - WEBKIT_VARIABLES_DECLS_SYM = 288, - ATKEYWORD = 289, - IMPORTANT_SYM = 290, - MEDIA_ONLY = 291, - MEDIA_NOT = 292, - MEDIA_AND = 293, - QEMS = 294, - EMS = 295, - EXS = 296, - PXS = 297, - CMS = 298, - MMS = 299, - INS = 300, - PTS = 301, - PCS = 302, - DEGS = 303, - RADS = 304, - GRADS = 305, - TURNS = 306, - MSECS = 307, - SECS = 308, - HERZ = 309, - KHERZ = 310, - DIMEN = 311, - PERCENTAGE = 312, - FLOATTOKEN = 313, - INTEGER = 314, - URI = 315, - FUNCTION = 316, - NOTFUNCTION = 317, - UNICODERANGE = 318, - VARCALL = 319 + UNIMPORTANT_TOK = 258, + WHITESPACE = 259, + SGML_CD = 260, + INCLUDES = 261, + DASHMATCH = 262, + BEGINSWITH = 263, + ENDSWITH = 264, + CONTAINS = 265, + STRING = 266, + IDENT = 267, + NTH = 268, + HEX = 269, + IDSEL = 270, + IMPORT_SYM = 271, + PAGE_SYM = 272, + MEDIA_SYM = 273, + FONT_FACE_SYM = 274, + CHARSET_SYM = 275, + NAMESPACE_SYM = 276, + WEBKIT_RULE_SYM = 277, + WEBKIT_DECLS_SYM = 278, + WEBKIT_KEYFRAME_RULE_SYM = 279, + WEBKIT_KEYFRAMES_SYM = 280, + WEBKIT_VALUE_SYM = 281, + WEBKIT_MEDIAQUERY_SYM = 282, + WEBKIT_SELECTOR_SYM = 283, + WEBKIT_VARIABLES_SYM = 284, + WEBKIT_DEFINE_SYM = 285, + VARIABLES_FOR = 286, + WEBKIT_VARIABLES_DECLS_SYM = 287, + ATKEYWORD = 288, + IMPORTANT_SYM = 289, + MEDIA_ONLY = 290, + MEDIA_NOT = 291, + MEDIA_AND = 292, + QEMS = 293, + EMS = 294, + EXS = 295, + PXS = 296, + CMS = 297, + MMS = 298, + INS = 299, + PTS = 300, + PCS = 301, + DEGS = 302, + RADS = 303, + GRADS = 304, + TURNS = 305, + MSECS = 306, + SECS = 307, + HERZ = 308, + KHERZ = 309, + DIMEN = 310, + PERCENTAGE = 311, + FLOATTOKEN = 312, + INTEGER = 313, + URI = 314, + FUNCTION = 315, + NOTFUNCTION = 316, + UNICODERANGE = 317, + VARCALL = 318 }; #endif +/* Tokens. */ +#define TOKEN_EOF 0 +#define UNIMPORTANT_TOK 258 +#define WHITESPACE 259 +#define SGML_CD 260 +#define INCLUDES 261 +#define DASHMATCH 262 +#define BEGINSWITH 263 +#define ENDSWITH 264 +#define CONTAINS 265 +#define STRING 266 +#define IDENT 267 +#define NTH 268 +#define HEX 269 +#define IDSEL 270 +#define IMPORT_SYM 271 +#define PAGE_SYM 272 +#define MEDIA_SYM 273 +#define FONT_FACE_SYM 274 +#define CHARSET_SYM 275 +#define NAMESPACE_SYM 276 +#define WEBKIT_RULE_SYM 277 +#define WEBKIT_DECLS_SYM 278 +#define WEBKIT_KEYFRAME_RULE_SYM 279 +#define WEBKIT_KEYFRAMES_SYM 280 +#define WEBKIT_VALUE_SYM 281 +#define WEBKIT_MEDIAQUERY_SYM 282 +#define WEBKIT_SELECTOR_SYM 283 +#define WEBKIT_VARIABLES_SYM 284 +#define WEBKIT_DEFINE_SYM 285 +#define VARIABLES_FOR 286 +#define WEBKIT_VARIABLES_DECLS_SYM 287 +#define ATKEYWORD 288 +#define IMPORTANT_SYM 289 +#define MEDIA_ONLY 290 +#define MEDIA_NOT 291 +#define MEDIA_AND 292 +#define QEMS 293 +#define EMS 294 +#define EXS 295 +#define PXS 296 +#define CMS 297 +#define MMS 298 +#define INS 299 +#define PTS 300 +#define PCS 301 +#define DEGS 302 +#define RADS 303 +#define GRADS 304 +#define TURNS 305 +#define MSECS 306 +#define SECS 307 +#define HERZ 308 +#define KHERZ 309 +#define DIMEN 310 +#define PERCENTAGE 311 +#define FLOATTOKEN 312 +#define INTEGER 313 +#define URI 314 +#define FUNCTION 315 +#define NOTFUNCTION 316 +#define UNICODERANGE 317 +#define VARCALL 318 + #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -{ - -/* Line 1676 of yacc.c */ #line 57 "../css/CSSGrammar.y" - +{ bool boolean; char character; int integer; @@ -137,18 +197,15 @@ typedef union YYSTYPE WebKitCSSKeyframeRule* keyframeRule; WebKitCSSKeyframesRule* keyframesRule; float val; - - - -/* Line 1676 of yacc.c */ -#line 143 "WebCore/tmp/../generated/CSSGrammar.tab.h" -} YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 +} +/* Line 1489 of yacc.c. */ +#line 201 "WebCore/tmp/../generated/CSSGrammar.tab.h" + YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 #endif - #endif -- cgit v0.12 From dcbba3c0b603ad3b38c0d3ed128b230857cb38be Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Wed, 30 Sep 2009 14:37:29 +0200 Subject: qdoc: Modified the support for \sincelist. It now finds a lot more \since 4.6 stuff. --- doc/src/qt4-intro.qdoc | 17 ++---- tools/qdoc3/htmlgenerator.cpp | 132 ++++++++++++++++++++++++++++++++++-------- tools/qdoc3/htmlgenerator.h | 8 ++- tools/qdoc3/node.cpp | 17 ++++++ tools/qdoc3/node.h | 9 ++- 5 files changed, 141 insertions(+), 42 deletions(-) diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc index 03d9b29..eafae14 100644 --- a/doc/src/qt4-intro.qdoc +++ b/doc/src/qt4-intro.qdoc @@ -605,21 +605,12 @@ functions to query audio devices for which audio formats they support. - \section1 Classes and Functions Introduced in 4.6 + \section1 Classes, functions, and other items introduced in 4.6 - Links to class, function, and macro documentation. + Links to classes, function, and other items that were added in + 4.6. - \section2 Classes - - Classes introduced in Qt 4.6. - - \sincelist classes - - \section2 Functions & Macros - - Fuctions and macros introduced in Qt 4.6. - - \sincelist functions + \sincelist 4.6 */ diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 5406017..2757cd8 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -330,7 +330,65 @@ void HtmlGenerator::generateTree(const Tree *tree, CodeMarker *marker) #ifdef ZZZ_QDOC_QML findAllQmlClasses(tree->root()); #endif - findAllSince(tree->root(),tree->version()); + findAllSince(tree->root()); + +#if 0 + if (!sinceVersions.isEmpty()) { + SinceVersionMap::const_iterator v = sinceVersions.constEnd(); + do { + --v; + qDebug() << "SINCE:" << v.key(); + if (!v.value().isEmpty()) { + QString type; + SinceNodeMultiMap::const_iterator n = v.value().constBegin(); + while (n != v.value().constEnd()) { + switch (n.value()->type()) { + case Node::Namespace: + type = "namespace"; + break; + case Node::Class: + type = "class"; + break; + case Node::Fake: + type = "fake"; + break; + case Node::Enum: + type = "enum"; + break; + case Node::Typedef: + type = "typedef"; + break; + case Node::Function: + type = "function"; + break; + case Node::Property: + type = "property"; + break; + case Node::Variable: + type = "variable"; + break; + case Node::Target: + type = "target"; + break; + case Node::QmlProperty: + type = "QML property"; + break; + case Node::QmlSignal: + type = "QML signal"; + break; + case Node::QmlMethod: + type = "QML method"; + break; + default: + type = "No type"; + } + qDebug() << " " << type << n.key(); + ++n; + } + } + } while (v != sinceVersions.constBegin()); + } +#endif PageGenerator::generateTree(tree, marker); @@ -655,21 +713,32 @@ int HtmlGenerator::generateAtom(const Atom *atom, break; case Atom::SinceList: { - QList values; - if (atom->string() == "classes") { - values = sinceClasses.values(); - } - else if (atom->string() == "functions") { - values = sinceFunctions.values(); - } - if (!values.isEmpty()) { - QMap nodeMap; - for (int i=0; inameForLists(),n); + QList nodes; + SinceVersionMap::const_iterator v; + v = sinceVersions.find(atom->string()); + if ((v != sinceVersions.constEnd()) && !v.value().isEmpty()) { + for (int i=0; !Node::typeName(i).isEmpty(); i++) { + Node::Type t = (Node::Type) i; + SinceNodeMultiMap::const_iterator n=v.value().constBegin(); + QMultiMap nodeMap; + while (n != v.value().constEnd()) { + const Node* node = n.value(); + if (node->type() == t) + nodeMap.insert(node->nameForLists(),node); + ++n; + } + if (!nodeMap.isEmpty()) { + out() << "

" + << Node::typeName(i) + << " new in Qt " + << atom->string() + << "

"; + generateAnnotatedList(relative, marker, nodeMap); + nodeMap.clear(); + } } - generateAnnotatedList(relative, marker, nodeMap); } + } break; case Atom::Image: @@ -3517,22 +3586,21 @@ void HtmlGenerator::findAllClasses(const InnerNode *node) /*! For generating the "Since x.y" page. */ -void HtmlGenerator::findAllSince(const InnerNode *node, QString version) +void HtmlGenerator::findAllSince(const InnerNode *node) { - const QRegExp versionSeparator("[\\-\\.]"); - const int minorIndex = version.indexOf(versionSeparator); - const int patchIndex = version.indexOf(versionSeparator, minorIndex+1); - version = version.left(patchIndex); - NodeList::const_iterator c = node->childNodes().constBegin(); while (c != node->childNodes().constEnd()) { - if (((*c)->access() != Node::Private) && ((*c)->since() == version)) { + QString sinceVersion = (*c)->since(); + if (((*c)->access() != Node::Private) && !sinceVersion.isEmpty()) { + SinceVersionMap::iterator vmap = sinceVersions.find(sinceVersion); + if (vmap == sinceVersions.end()) + vmap = sinceVersions.insert(sinceVersion,SinceNodeMultiMap()); if ((*c)->type() == Node::Function) { FunctionNode *func = static_cast(*c); if ((func->status() > Node::Obsolete) && (func->metaness() != FunctionNode::Ctor) && (func->metaness() != FunctionNode::Dtor)) { - sinceFunctions.insert(func->name(), func); + vmap.value().insert(func->name(),(*c)); } } else if ((*c)->url().isEmpty()) { @@ -3542,17 +3610,33 @@ void HtmlGenerator::findAllSince(const InnerNode *node, QString version) (*c)->parent()->type() == Node::Namespace && !(*c)->parent()->name().isEmpty()) className = (*c)->parent()->name()+"::"+className; - sinceClasses.insert(className, *c); + vmap.value().insert(className,(*c)); } } + else { + QString name = (*c)->name(); + if ((*c)->parent() && + (*c)->parent()->type() == Node::Namespace && + !(*c)->parent()->name().isEmpty()) + name = (*c)->parent()->name()+"::"+name; + vmap.value().insert(name,(*c)); + qDebug() << "GOT HEAH" << name; + } if ((*c)->isInnerNode()) { - findAllSince(static_cast(*c),version); + findAllSince(static_cast(*c)); } } ++c; } } +#if 0 + const QRegExp versionSeparator("[\\-\\.]"); + const int minorIndex = version.indexOf(versionSeparator); + const int patchIndex = version.indexOf(versionSeparator, minorIndex+1); + version = version.left(patchIndex); +#endif + void HtmlGenerator::findAllFunctions(const InnerNode *node) { NodeList::ConstIterator c = node->childNodes().begin(); diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h index 24e2986..3f6e564 100644 --- a/tools/qdoc3/htmlgenerator.h +++ b/tools/qdoc3/htmlgenerator.h @@ -67,6 +67,9 @@ struct NavigationBar }; #endif +typedef QMultiMap SinceNodeMultiMap; +typedef QMap SinceVersionMap; + class HelpProjectWriter; class HtmlGenerator : public PageGenerator @@ -216,7 +219,7 @@ class HtmlGenerator : public PageGenerator #ifdef ZZZ_QDOC_QML void findAllQmlClasses(const InnerNode *node); #endif - void findAllSince(const InnerNode *node, QString version); + void findAllSince(const InnerNode *node); static int hOffset(const Node *node); static bool isThreeColumnEnumValueTable(const Atom *atom); virtual QString getLink(const Atom *atom, @@ -286,8 +289,7 @@ class HtmlGenerator : public PageGenerator #endif QMap > funcIndex; QMap legaleseTexts; - QMap sinceClasses; - QMap sinceFunctions; + SinceVersionMap sinceVersions; }; #define HTMLGENERATOR_ADDRESS "address" diff --git a/tools/qdoc3/node.cpp b/tools/qdoc3/node.cpp index b44ede0..d547d20 100644 --- a/tools/qdoc3/node.cpp +++ b/tools/qdoc3/node.cpp @@ -48,6 +48,23 @@ QT_BEGIN_NAMESPACE +QString Node::typeNames[] = + { + "Namespaces", + "Classes", + "Fake", + "Enums", + "Typedefs", + "Functions and Macros", + "Properties", + "Variables", + "Targets", + "Qml Properties", + "Qml Signals", + "Qml Methods", + "" + }; + /*! \class Node \brief A node in a Tree. diff --git a/tools/qdoc3/node.h b/tools/qdoc3/node.h index fdef920..09f38d2 100644 --- a/tools/qdoc3/node.h +++ b/tools/qdoc3/node.h @@ -76,9 +76,11 @@ class Node Target, QmlProperty, QmlSignal, - QmlMethod + QmlMethod, + LastType #else - Target + Target, + LastType #endif }; @@ -173,10 +175,13 @@ class Node virtual QString fileBase() const; + static QString typeName(int i) { return typeNames[i]; } + protected: Node(Type type, InnerNode *parent, const QString& name); private: + static QString typeNames[]; #ifdef Q_WS_WIN Type typ; Access acc; -- cgit v0.12 From 59623e45ee31892c9ef210f8d7e396ccb0fe31a5 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Wed, 30 Sep 2009 14:38:03 +0200 Subject: Google Chat example: state that SSL is required MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bail out if SSL is not supported; before it only showed "service unavailable", which was somewhat confusing. Reviewed-by: Tor Arne Vestbø --- examples/webkit/googlechat/main.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/examples/webkit/googlechat/main.cpp b/examples/webkit/googlechat/main.cpp index fd08114..9e235a9 100644 --- a/examples/webkit/googlechat/main.cpp +++ b/examples/webkit/googlechat/main.cpp @@ -43,10 +43,25 @@ #include #include "googlechat.h" +#ifndef QT_NO_OPENSSL +#include +#endif + int main(int argc, char * argv[]) { QApplication app(argc, argv); +#ifndef QT_NO_OPENSSL + if (!QSslSocket::supportsSsl()) { +#endif + QMessageBox::information(0, "Google Talk client", + "Your system does not support SSL, " + "which is required to run this example."); + return -1; +#ifndef QT_NO_OPENSSL + } +#endif + QNetworkProxyFactory::setUseSystemConfigurationEnabled(true); GoogleChat *chat = new GoogleChat; -- cgit v0.12 From af1e344ac6046640ddb728f6017b3181469c241d Mon Sep 17 00:00:00 2001 From: Janne Anttila Date: Wed, 30 Sep 2009 15:56:43 +0300 Subject: Making tst_QListWidget::closePersistentEditor work for Symbian. The persistent editor was not closed in time, as events from Symbian app start up had not had time to be flushed through. The addition of a 1s QTest::qWait gives plenty of time for the app to settle. Probably the better fix would be to add piece of code to testlib which would empty the event queue before executing each test case. However this was seen as an risky solution. Reviewed-by: mread --- tests/auto/qlistwidget/tst_qlistwidget.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/auto/qlistwidget/tst_qlistwidget.cpp b/tests/auto/qlistwidget/tst_qlistwidget.cpp index d31b07f..e825c8f 100644 --- a/tests/auto/qlistwidget/tst_qlistwidget.cpp +++ b/tests/auto/qlistwidget/tst_qlistwidget.cpp @@ -302,6 +302,11 @@ void tst_QListWidget::openPersistentEditor() void tst_QListWidget::closePersistentEditor() { +#if defined(Q_OS_SYMBIAN) + //give the Symbian app start event queue time to clear + QTest::qWait(1000); +#endif + // Boundry checking int childCount = testWidget->viewport()->children().count(); testWidget->closePersistentEditor(0); -- cgit v0.12