summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--bin/patch_capabilities.bat1
-rwxr-xr-xbin/patch_capabilities.pl44
-rw-r--r--config.tests/unix/opengles1cl/opengles1cl.pro9
-rwxr-xr-xconfigure49
-rw-r--r--configure.exebin1176064 -> 1178112 bytes
-rw-r--r--demos/demos.pro2
-rw-r--r--demos/embedded/fluidlauncher/backup_registration.xml8
-rw-r--r--demos/embedded/fluidlauncher/fluidlauncher.pro5
-rw-r--r--dist/changes-4.6.247
-rw-r--r--doc/src/development/assistant-manual.qdoc2
-rw-r--r--doc/src/development/qmake-manual.qdoc16
-rw-r--r--doc/src/examples/svgalib.qdoc3
-rw-r--r--doc/src/frameworks-technologies/qthelp.qdoc2
-rw-r--r--doc/src/getting-started/examples.qdoc4
-rw-r--r--doc/src/getting-started/known-issues.qdoc4
-rw-r--r--doc/src/images/container_bench.pngbin0 -> 71461 bytes
-rw-r--r--doc/src/platforms/emb-install.qdoc4
-rw-r--r--doc/src/platforms/platform-notes.qdoc2
-rw-r--r--doc/src/platforms/wince-opengl.qdoc13
-rw-r--r--doc/src/snippets/code/doc_src_emb-install.qdoc12
-rw-r--r--doc/src/snippets/code/doc_src_qthelp.qdoc2
-rw-r--r--doc/src/snippets/code/doc_src_wince-opengl.qdoc2
-rw-r--r--doc/src/snippets/code/src_gui_graphicsview_qgraphicsitem.cpp11
-rw-r--r--doc/src/windows-and-dialogs/mainwindow.qdoc2
-rw-r--r--examples/dbus/dbus-chat/chat_adaptor.cpp6
-rw-r--r--examples/dbus/dbus-chat/chat_adaptor.h27
-rw-r--r--examples/dbus/dbus-chat/chat_interface.cpp6
-rw-r--r--examples/dbus/dbus-chat/chat_interface.h10
-rw-r--r--examples/dbus/remotecontrolledcar/car/car.pro2
-rw-r--r--examples/dbus/remotecontrolledcar/car/car_adaptor.cpp22
-rw-r--r--examples/dbus/remotecontrolledcar/car/car_adaptor.h (renamed from examples/dbus/remotecontrolledcar/car/car_adaptor_p.h)59
-rw-r--r--examples/dbus/remotecontrolledcar/car/main.cpp4
-rw-r--r--examples/dbus/remotecontrolledcar/controller/car_interface.cpp15
-rw-r--r--examples/dbus/remotecontrolledcar/controller/car_interface.h (renamed from examples/dbus/remotecontrolledcar/controller/car_interface_p.h)62
-rw-r--r--examples/dbus/remotecontrolledcar/controller/controller.cpp4
-rw-r--r--examples/dbus/remotecontrolledcar/controller/controller.h5
-rw-r--r--examples/dbus/remotecontrolledcar/controller/controller.pro2
-rw-r--r--examples/designer/taskmenuextension/tictactoedialog.h2
-rw-r--r--examples/network/googlesuggest/googlesuggest.cpp3
-rw-r--r--examples/network/googlesuggest/searchbox.cpp3
-rw-r--r--examples/network/network-chat/chatdialog.cpp2
-rw-r--r--examples/network/network-chat/client.cpp4
-rw-r--r--examples/network/network-chat/connection.cpp6
-rw-r--r--examples/network/network-chat/peermanager.cpp2
-rw-r--r--examples/network/qftp/ftpwindow.cpp3
-rw-r--r--examples/network/qftp/sym_iap_util.h2
-rw-r--r--examples/network/securesocketclient/sslclient.cpp2
-rw-r--r--examples/network/torrent/trackerclient.cpp2
-rw-r--r--examples/opengl/hellogl_es/cl_helper.h133
-rw-r--r--examples/opengl/hellogl_es/glwidget.cpp137
-rw-r--r--examples/opengl/hellogl_es/glwidget.h5
-rw-r--r--examples/opengl/opengl.pro6
-rw-r--r--examples/qtestlib/tutorial5/containers.cpp269
-rw-r--r--examples/tools/customtype/message.cpp2
-rw-r--r--examples/tools/customtype/message.h2
-rw-r--r--examples/uitools/textfinder/textfinder.cpp2
-rw-r--r--examples/webkit/framecapture/framecapture.pro2
-rw-r--r--examples/webkit/simpleselector/simpleselector.pro2
-rw-r--r--mkspecs/common/aix/qplatformdefs.h10
-rw-r--r--mkspecs/common/linux.conf3
-rw-r--r--mkspecs/common/posix/qplatformdefs.h16
-rw-r--r--mkspecs/common/symbian/symbian.conf5
-rw-r--r--mkspecs/common/wince/qmake.conf1
-rw-r--r--mkspecs/features/egl.prf8
-rw-r--r--mkspecs/features/symbian/def_files.prf26
-rw-r--r--mkspecs/features/symbian/def_files_disabled.prf7
-rw-r--r--mkspecs/features/unix/opengl.prf5
-rw-r--r--mkspecs/unsupported/linux-host-g++/qmake.conf3
-rw-r--r--qmake/generators/makefile.cpp17
-rw-r--r--qmake/generators/makefiledeps.cpp34
-rw-r--r--qmake/generators/symbian/symmake.cpp72
-rw-r--r--qmake/generators/symbian/symmake_abld.cpp2
-rw-r--r--qmake/generators/symbian/symmake_sbsv2.cpp2
-rw-r--r--qmake/generators/win32/winmakefile.cpp3
-rw-r--r--qmake/meta.cpp5
-rw-r--r--qmake/option.cpp4
-rw-r--r--qmake/project.cpp2
-rw-r--r--src/3rdparty/phonon/mmf/environmentalreverb.cpp22
-rw-r--r--src/3rdparty/phonon/mmf/utils.h2
-rw-r--r--src/3rdparty/webkit/VERSION2
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog94
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.pro21
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/qt/qt_class.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp18
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMWindow.cpp22
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMWindow.h3
-rw-r--r--src/3rdparty/webkit/WebCore/platform/PopupMenu.h4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ScrollView.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ScrollView.h10
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/PopupMenuQt.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/QWebPopup.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp22
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.h2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/ScrollViewQt.cpp13
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/qt/PluginViewQt.cpp7
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp5
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp104
-rw-r--r--src/3rdparty/webkit/WebKit/qt/ChangeLog104
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp7
-rw-r--r--src/3rdparty/webkit/WebKit/qt/symbian/backup_registration.xml5
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp69
-rw-r--r--src/corelib/animation/qabstractanimation.cpp2
-rw-r--r--src/corelib/codecs/qutfcodec.cpp7
-rw-r--r--src/corelib/corelib.pro2
-rw-r--r--src/corelib/global/qnamespace.h3
-rw-r--r--src/corelib/global/qnamespace.qdoc15
-rw-r--r--src/corelib/io/qdatastream.cpp1
-rw-r--r--src/corelib/io/qdebug.h2
-rw-r--r--src/corelib/io/qdir.cpp369
-rw-r--r--src/corelib/io/qdir.h5
-rw-r--r--src/corelib/io/qfilesystemwatcher_dnotify.cpp13
-rw-r--r--src/corelib/io/qfsfileengine_iterator_unix.cpp20
-rw-r--r--src/corelib/io/qfsfileengine_unix.cpp2
-rw-r--r--src/corelib/io/qprocess_symbian.cpp41
-rw-r--r--src/corelib/io/qprocess_unix.cpp2
-rw-r--r--src/corelib/io/qsettings.cpp44
-rw-r--r--src/corelib/io/qurl.cpp7
-rw-r--r--src/corelib/kernel/qabstractitemmodel.cpp22
-rw-r--r--src/corelib/kernel/qabstractitemmodel.h8
-rw-r--r--src/corelib/kernel/qcore_symbian_p.cpp2
-rw-r--r--src/corelib/kernel/qcoreapplication.cpp11
-rw-r--r--src/corelib/kernel/qcoreevent.cpp11
-rw-r--r--src/corelib/kernel/qtranslator.cpp2
-rw-r--r--src/corelib/plugin/qlibrary.cpp1
-rw-r--r--src/corelib/thread/qthread_win.cpp2
-rw-r--r--src/corelib/tools/qbytearray.cpp3
-rw-r--r--src/corelib/tools/qdatetime.cpp60
-rw-r--r--src/corelib/tools/qeasingcurve.cpp6
-rw-r--r--src/corelib/tools/qhash.cpp8
-rw-r--r--src/corelib/tools/qlist.cpp2
-rw-r--r--src/corelib/tools/qsharedpointer.cpp2
-rw-r--r--src/corelib/tools/qstring.cpp15
-rw-r--r--src/dbus/qdbusargument.cpp1
-rw-r--r--src/dbus/qdbusintegrator.cpp41
-rw-r--r--src/dbus/qdbusmarshaller.cpp5
-rw-r--r--src/gui/dialogs/qdialog.cpp16
-rw-r--r--src/gui/dialogs/qfiledialog_win.cpp10
-rw-r--r--src/gui/dialogs/qfiledialog_win_p.h30
-rw-r--r--src/gui/dialogs/qprintdialog.h6
-rw-r--r--src/gui/dialogs/qprintpreviewdialog.cpp10
-rw-r--r--src/gui/effects/qgraphicseffect.cpp4
-rw-r--r--src/gui/embedded/qscreen_qws.cpp21
-rw-r--r--src/gui/graphicsview/qgraphicsitem.cpp251
-rw-r--r--src/gui/graphicsview/qgraphicsitem_p.h56
-rw-r--r--src/gui/graphicsview/qgraphicsscene.cpp101
-rw-r--r--src/gui/graphicsview/qgraphicsscene_p.h6
-rw-r--r--src/gui/graphicsview/qgraphicsscenebsptreeindex.cpp10
-rw-r--r--src/gui/graphicsview/qgraphicsscenebsptreeindex_p.h2
-rw-r--r--src/gui/graphicsview/qgraphicssceneindex.cpp2
-rw-r--r--src/gui/graphicsview/qgraphicssceneindex_p.h2
-rw-r--r--src/gui/gui.pro3
-rw-r--r--src/gui/image/qbmphandler.cpp2
-rw-r--r--src/gui/image/qpixmap.cpp21
-rw-r--r--src/gui/image/qpixmap.h4
-rw-r--r--src/gui/inputmethod/qcoefepinputcontext_p.h7
-rw-r--r--src/gui/inputmethod/qcoefepinputcontext_s60.cpp52
-rw-r--r--src/gui/itemviews/qfileiconprovider.cpp5
-rw-r--r--src/gui/itemviews/qheaderview.cpp14
-rw-r--r--src/gui/itemviews/qitemdelegate.cpp2
-rw-r--r--src/gui/itemviews/qsortfilterproxymodel.cpp16
-rw-r--r--src/gui/itemviews/qtableview.cpp4
-rw-r--r--src/gui/kernel/kernel.pri53
-rw-r--r--src/gui/kernel/qapplication.cpp4
-rw-r--r--src/gui/kernel/qapplication_mac.mm42
-rw-r--r--src/gui/kernel/qapplication_s60.cpp19
-rw-r--r--src/gui/kernel/qclipboard_s60.cpp3
-rw-r--r--src/gui/kernel/qcocoamenuloader_mac.mm6
-rw-r--r--src/gui/kernel/qcocoamenuloader_mac_p.h1
-rw-r--r--src/gui/kernel/qcocoasharedwindowmethods_mac_p.h3
-rw-r--r--src/gui/kernel/qcocoaview_mac.mm2
-rw-r--r--src/gui/kernel/qcocoawindowdelegate_mac.mm7
-rw-r--r--src/gui/kernel/qdnd_x11.cpp2
-rw-r--r--src/gui/kernel/qeventdispatcher_mac.mm1
-rw-r--r--src/gui/kernel/qmime_mac.cpp4
-rw-r--r--src/gui/kernel/qsoftkeymanager.cpp209
-rw-r--r--src/gui/kernel/qsoftkeymanager_common_p.h82
-rw-r--r--src/gui/kernel/qsoftkeymanager_p.h22
-rw-r--r--src/gui/kernel/qsoftkeymanager_s60.cpp366
-rw-r--r--src/gui/kernel/qsoftkeymanager_s60_p.h109
-rw-r--r--src/gui/kernel/qt_cocoa_helpers_mac.mm13
-rw-r--r--src/gui/kernel/qt_s60_p.h7
-rw-r--r--src/gui/kernel/qwidget.cpp10
-rw-r--r--src/gui/kernel/qwidget_mac.mm6
-rw-r--r--src/gui/kernel/qwidget_p.h1
-rw-r--r--src/gui/kernel/qwidget_win.cpp18
-rw-r--r--src/gui/math3d/qmatrix4x4.h2
-rw-r--r--src/gui/math3d/qquaternion.h2
-rw-r--r--src/gui/math3d/qvector2d.h2
-rw-r--r--src/gui/math3d/qvector3d.h2
-rw-r--r--src/gui/math3d/qvector4d.h2
-rw-r--r--src/gui/painting/qcolor.cpp11
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp9
-rw-r--r--src/gui/painting/qpaintengine_raster_p.h4
-rw-r--r--src/gui/painting/qpainter.cpp38
-rw-r--r--src/gui/styles/qcommonstyle.cpp2
-rw-r--r--src/gui/styles/qgtkstyle.cpp20
-rw-r--r--src/gui/styles/qmacstyle_mac.mm199
-rw-r--r--src/gui/styles/qs60style.cpp548
-rw-r--r--src/gui/styles/qs60style.h3
-rw-r--r--src/gui/styles/qs60style_p.h107
-rw-r--r--src/gui/styles/qs60style_s60.cpp243
-rw-r--r--src/gui/styles/qs60style_simulated.cpp10
-rw-r--r--src/gui/styles/qstyle_s60.qrc137
-rw-r--r--src/gui/styles/styles.pri10
-rw-r--r--src/gui/text/qfontengine.cpp3
-rw-r--r--src/gui/text/qfontengine_s60.cpp68
-rw-r--r--src/gui/text/qfontengine_s60_p.h13
-rw-r--r--src/gui/text/qtextoption.cpp5
-rw-r--r--src/gui/util/qsystemtrayicon_mac.mm13
-rw-r--r--src/gui/util/qsystemtrayicon_win.cpp2
-rw-r--r--src/gui/widgets/qlabel.cpp89
-rw-r--r--src/gui/widgets/qlabel.h7
-rw-r--r--src/gui/widgets/qlinecontrol.cpp5
-rw-r--r--src/gui/widgets/qlinecontrol_p.h5
-rw-r--r--src/gui/widgets/qmainwindow.cpp2
-rw-r--r--src/gui/widgets/qmainwindowlayout_mac.mm12
-rw-r--r--src/gui/widgets/qmenu.cpp7
-rw-r--r--src/gui/widgets/qmenu_mac.mm36
-rw-r--r--src/gui/widgets/qmenu_p.h7
-rw-r--r--src/gui/widgets/qmenu_symbian.cpp34
-rw-r--r--src/gui/widgets/qmenubar.cpp2
-rw-r--r--src/gui/widgets/qprintpreviewwidget.cpp6
-rw-r--r--src/network/access/qfilenetworkreply.cpp50
-rw-r--r--src/network/access/qfilenetworkreply_p.h7
-rw-r--r--src/network/access/qhttpnetworkconnection.cpp15
-rw-r--r--src/network/access/qhttpnetworkconnection_p.h3
-rw-r--r--src/network/access/qhttpnetworkconnectionchannel.cpp29
-rw-r--r--src/network/access/qhttpnetworkconnectionchannel_p.h2
-rw-r--r--src/network/access/qhttpnetworkheader.cpp2
-rw-r--r--src/network/access/qnetworkaccesshttpbackend.cpp2
-rw-r--r--src/network/access/qnetworkreply.cpp9
-rw-r--r--src/network/access/qnetworkrequest.cpp19
-rw-r--r--src/network/kernel/qauthenticator.cpp4
-rw-r--r--src/network/kernel/qnetworkinterface.cpp4
-rw-r--r--src/network/socket/qlocalserver.cpp10
-rw-r--r--src/network/socket/qlocalsocket_tcp.cpp10
-rw-r--r--src/network/socket/qlocalsocket_unix.cpp14
-rw-r--r--src/network/socket/qnativesocketengine.cpp8
-rw-r--r--src/network/socket/qnativesocketengine_unix.cpp2
-rw-r--r--src/network/socket/qnativesocketengine_win.cpp8
-rw-r--r--src/network/socket/qtcpserver.cpp9
-rw-r--r--src/network/ssl/qsslcertificate.cpp12
-rw-r--r--src/network/ssl/qsslsocket.cpp2
-rw-r--r--src/network/ssl/qsslsocket_openssl.cpp28
-rw-r--r--src/opengl/gl2paintengineex/qglengineshadermanager.cpp10
-rw-r--r--src/opengl/gl2paintengineex/qglengineshadermanager_p.h5
-rw-r--r--src/opengl/gl2paintengineex/qglengineshadersource_p.h678
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp25
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h2
-rw-r--r--src/opengl/opengl.pro10
-rw-r--r--src/opengl/qgl.cpp112
-rw-r--r--src/opengl/qgl.h2
-rw-r--r--src/opengl/qgl_cl_p.h141
-rw-r--r--src/opengl/qgl_p.h16
-rw-r--r--src/opengl/qglbuffer.cpp454
-rw-r--r--src/opengl/qglbuffer.h124
-rw-r--r--src/opengl/qglextensions.cpp26
-rw-r--r--src/opengl/qglextensions_p.h30
-rw-r--r--src/opengl/qglframebufferobject.cpp10
-rw-r--r--src/opengl/qglpaintdevice.cpp8
-rw-r--r--src/opengl/qglpixelbuffer.cpp6
-rw-r--r--src/opengl/qglpixelbuffer_egl.cpp4
-rw-r--r--src/opengl/qglshaderprogram.cpp225
-rw-r--r--src/opengl/qglshaderprogram.h15
-rw-r--r--src/opengl/qgraphicsshadereffect.cpp2
-rw-r--r--src/opengl/qpaintengine_opengl.cpp197
-rw-r--r--src/opengl/qpixmapdata_gl.cpp14
-rw-r--r--src/opengl/qpixmapdata_x11gl_egl.cpp8
-rw-r--r--src/opengl/qwindowsurface_gl.cpp22
-rw-r--r--src/openvg/qpixmapdata_vg.cpp94
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp31
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h1
-rw-r--r--src/plugins/graphicssystems/opengl/main.cpp4
-rw-r--r--src/plugins/imageformats/ico/qicohandler.cpp4
-rw-r--r--src/qbase.pri36
-rw-r--r--src/s60installs/backup_registration.xml5
-rw-r--r--src/s60installs/bwins/QtCoreu.def1
-rw-r--r--src/s60installs/bwins/QtGuiu.def18
-rw-r--r--src/s60installs/bwins/QtScriptu.def1
-rw-r--r--src/s60installs/eabi/QtCoreu.def1
-rw-r--r--src/s60installs/eabi/QtGuiu.def18
-rw-r--r--src/s60installs/eabi/QtScriptu.def1
-rw-r--r--src/s60installs/s60installs.pro10
-rw-r--r--src/s60installs/sqlite3.sisbin286192 -> 286452 bytes
-rw-r--r--src/s60installs/sqlite3_selfsigned.sisbin0 -> 285088 bytes
-rw-r--r--src/script/api/qscriptprogram.cpp9
-rw-r--r--src/script/api/qscriptprogram_p.h4
-rw-r--r--src/script/api/qscriptvalue.cpp13
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsole.cpp221
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp55
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalswidget.cpp5
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp237
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand_p.h4
-rw-r--r--src/sql/drivers/sqlite/qsql_sqlite.cpp4
-rw-r--r--src/sql/kernel/qsqlresult.cpp2
-rw-r--r--src/src.pro1
-rw-r--r--src/testlib/qbenchmarkmetric.cpp28
-rw-r--r--src/tools/rcc/rcc.cpp2
-rw-r--r--src/tools/uic/cpp/cppwriteinitialization.cpp6
-rw-r--r--src/tools/uic3/converter.cpp6
-rw-r--r--src/tools/uic3/main.cpp4
-rw-r--r--src/xml/dom/qdom.cpp12
-rw-r--r--tests/auto/auto.pro2
-rw-r--r--tests/auto/linguist/lupdate/.gitignore6
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/cmdline_deeppath/lupdatecmd2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/cmdline_deeppath/project.ts.result (renamed from tests/auto/linguist/lupdate/testdata/recursivescan/bar.ts.result)0
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/cmdline_recurse/lupdatecmd2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/cmdline_recurse/project.ts.result (renamed from tests/auto/linguist/lupdate/testdata/recursivescan/foo.ts.result)0
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr3/expectedoutput.txt1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr3/main.cpp45
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.pro4
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.ts.before13
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.ts.result12
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr4/expectedoutput.txt0
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr4/main.cpp45
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.pro4
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.ts.before13
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.ts.result13
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/from_subdir/lupdatecmd1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/from_subdir/project.ts.result17
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/from_subdir/src/main.cpp50
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/from_subdir/src/main.h45
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/from_subdir/translations/translations.pro7
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_full/expectedoutput.txt0
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_full/lupdatecmd2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_full/project.ts.result20
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_full/project_sub.ts.result13
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/expectedoutput.txt2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/lupdatecmd3
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project.ts.result20
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project_sub.ts.before0
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project_sub.ts.result0
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/expectedoutput.txt0
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/lupdatecmd2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/project.ts.result20
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_part/expectedoutput.txt1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_part/lupdatecmd2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_part/project.ts.before0
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_part/project.ts.result0
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_part/project_sub.ts.result13
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/expectedoutput.txt1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/lupdatecmd3
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project.ts.result20
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project_sub.ts.before0
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project_sub.ts.result0
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/reloutput/lupdatecmd1
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_full/project.pro4
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/main.cpp (renamed from config.tests/unix/opengles1cl/opengles1cl.cpp)11
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/subdir1.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subdir2.pro2
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/main.cpp46
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/subsub1.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/main.cpp46
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro4
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_part/project.pro2
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/main.cpp46
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/subdir1.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subdir2.pro2
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/main.cpp46
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/subsub1.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/main.cpp46
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro4
-rw-r--r--tests/auto/linguist/lupdate/tst_lupdate.cpp75
-rw-r--r--tests/auto/maketestselftest/tst_maketestselftest.cpp3
-rw-r--r--tests/auto/qbytearray/tst_qbytearray.cpp9
-rw-r--r--tests/auto/qdatetime/tst_qdatetime.cpp7
-rw-r--r--tests/auto/qdir/tst_qdir.cpp99
-rw-r--r--tests/auto/qgl/tst_qgl.cpp2
-rw-r--r--tests/auto/qglbuffer/qglbuffer.pro9
-rw-r--r--tests/auto/qglbuffer/tst_qglbuffer.cpp261
-rw-r--r--tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp34
-rw-r--r--tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp86
-rw-r--r--tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp43
-rw-r--r--tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp25
-rw-r--r--tests/auto/qheaderview/tst_qheaderview.cpp64
-rw-r--r--tests/auto/qimagereader/baseline/35floppy.icobin4286 -> 0 bytes
-rw-r--r--tests/auto/qimagereader/baseline/35floppy.pngbin0 -> 329 bytes
-rw-r--r--tests/auto/qimagereader/baseline/connect.pngbin0 -> 12943 bytes
-rw-r--r--tests/auto/qimagereader/baseline/kde_favicon.icobin1150 -> 0 bytes
-rw-r--r--tests/auto/qimagereader/baseline/kde_favicon.pngbin0 -> 514 bytes
-rw-r--r--tests/auto/qimagereader/baseline/semitransparent.icobin9662 -> 0 bytes
-rw-r--r--tests/auto/qimagereader/baseline/semitransparent.pngbin0 -> 545 bytes
-rw-r--r--tests/auto/qimagereader/tst_qimagereader.cpp13
-rw-r--r--tests/auto/qlabel/tst_qlabel.cpp22
-rw-r--r--tests/auto/qpixmap/tst_qpixmap.cpp45
-rw-r--r--tests/auto/qscriptvalue/qscriptvalue.pro4
-rw-r--r--tests/auto/qscriptvalue/testgen/data.txt116
-rwxr-xr-xtests/auto/qscriptvalue/testgen/gen.py242
-rw-r--r--tests/auto/qscriptvalue/testgen/main.cpp (renamed from tools/linguist/shared/proreader.h)31
-rw-r--r--tests/auto/qscriptvalue/testgen/testgen.pro18
-rw-r--r--tests/auto/qscriptvalue/testgen/testgenerator.cpp688
-rw-r--r--tests/auto/qscriptvalue/testgen/testgenerator.h77
-rw-r--r--tests/auto/qscriptvalue/tst_qscriptvalue.cpp174
-rw-r--r--tests/auto/qscriptvalue/tst_qscriptvalue.h410
-rw-r--r--tests/auto/qscriptvalue/tst_qscriptvalue_generated.cpp6369
-rw-r--r--tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp69
-rw-r--r--tests/auto/qsslcertificate/more-certificates/malformed-just-begin-no-newline.pem1
-rw-r--r--tests/auto/qsslcertificate/more-certificates/malformed-just-begin.pem1
-rw-r--r--tests/auto/qsslcertificate/more-certificates/no-ending-newline.pem13
-rw-r--r--tests/auto/qsslcertificate/tst_qsslcertificate.cpp3
-rw-r--r--tests/auto/qstyle/tst_qstyle.cpp17
-rw-r--r--tests/auto/qtableview/tst_qtableview.cpp8
-rw-r--r--tests/auto/qurl/tst_qurl.cpp42
-rw-r--r--tests/auto/qwidget/tst_qwidget.cpp50
-rw-r--r--tests/auto/selftests/expected_xunit.txt4
-rw-r--r--tests/auto/selftests/tst_selftests.cpp2
-rw-r--r--tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro1
-rw-r--r--tests/benchmarks/benchmarks.pro1
-rw-r--r--tests/benchmarks/qfontmetrics/main.cpp112
-rw-r--r--tests/benchmarks/qfontmetrics/qfontmetrics.pro5
-rw-r--r--tests/benchmarks/qpainter/tst_qpainter.cpp503
-rw-r--r--tests/benchmarks/qscriptengine/qscriptengine.pro5
-rw-r--r--tests/benchmarks/qscriptengine/tst_qscriptengine.cpp5
-rw-r--r--tests/benchmarks/qstring/main.cpp6
-rw-r--r--tests/benchmarks/qstring/qstring.pro6
-rw-r--r--tests/benchmarks/qtext/main.cpp215
-rw-r--r--tests/benchmarks/qtext/qtext.pro9
-rw-r--r--tests/shared/filesystem.h97
-rw-r--r--tools/assistant/lib/fulltextsearch/qclucene-config_p.h2
-rw-r--r--tools/assistant/lib/qhelpcollectionhandler.cpp10
-rw-r--r--tools/assistant/lib/qhelpcontentwidget.cpp2
-rw-r--r--tools/assistant/lib/qhelpdbreader.cpp6
-rw-r--r--tools/assistant/lib/qhelpenginecore.cpp8
-rw-r--r--tools/assistant/lib/qhelpgenerator.cpp14
-rw-r--r--tools/assistant/lib/qhelpindexwidget.cpp8
-rw-r--r--tools/assistant/lib/qhelpsearchengine.cpp12
-rw-r--r--tools/assistant/lib/qhelpsearchindexreader_default.cpp22
-rw-r--r--tools/assistant/lib/qhelpsearchindexwriter_default.cpp16
-rw-r--r--tools/assistant/lib/qhelpsearchquerywidget.cpp30
-rw-r--r--tools/assistant/lib/qhelpsearchresultwidget.cpp4
-rw-r--r--tools/assistant/tools/assistant/centralwidget.cpp2
-rw-r--r--tools/assistant/tools/assistant/helpviewer.cpp8
-rw-r--r--tools/assistant/translations/qt_help.pro2
-rw-r--r--tools/assistant/translations/translations.pro2
-rw-r--r--tools/configure/configureapp.cpp49
-rw-r--r--tools/designer/src/components/formeditor/formwindow.cpp5
-rw-r--r--tools/designer/src/components/formeditor/formwindow.h2
-rw-r--r--tools/designer/src/components/formeditor/qdesigner_resource.cpp4
-rw-r--r--tools/designer/src/components/propertyeditor/designerpropertymanager.h2
-rw-r--r--tools/designer/src/designer/qdesigner_actions.cpp4
-rw-r--r--tools/designer/src/designer/qdesigner_server.cpp6
-rw-r--r--tools/designer/src/designer/qdesigner_server.h4
-rw-r--r--tools/designer/src/designer/versiondialog.cpp5
-rw-r--r--tools/designer/src/lib/shared/actioneditor.cpp2
-rw-r--r--tools/designer/src/lib/shared/actionrepository.cpp2
-rw-r--r--tools/designer/src/lib/shared/connectionedit_p.h2
-rw-r--r--tools/designer/src/lib/shared/filterwidget_p.h2
-rw-r--r--tools/designer/src/lib/shared/iconloader.cpp2
-rw-r--r--tools/designer/src/lib/shared/iconselector_p.h2
-rw-r--r--tools/designer/src/lib/shared/plugindialog.cpp4
-rw-r--r--tools/designer/src/lib/shared/qdesigner_introspection.cpp2
-rw-r--r--tools/designer/src/lib/shared/qdesigner_objectinspector_p.h2
-rw-r--r--tools/designer/src/lib/shared/qdesigner_promotiondialog_p.h14
-rw-r--r--tools/designer/src/lib/shared/qdesigner_propertyeditor_p.h2
-rw-r--r--tools/designer/src/lib/shared/qdesigner_taskmenu.cpp2
-rw-r--r--tools/designer/src/lib/shared/qdesigner_toolbar.cpp2
-rw-r--r--tools/designer/src/lib/shared/qdesigner_utils_p.h8
-rw-r--r--tools/designer/src/lib/shared/qdesigner_widgetbox_p.h2
-rw-r--r--tools/designer/src/lib/shared/qtresourceview_p.h4
-rw-r--r--tools/designer/src/lib/shared/richtexteditor_p.h2
-rw-r--r--tools/designer/src/lib/shared/shared_settings.cpp2
-rw-r--r--tools/designer/src/lib/shared/textpropertyeditor_p.h2
-rw-r--r--tools/designer/src/lib/shared/widgetdatabase_p.h6
-rw-r--r--tools/designer/src/lib/uilib/abstractformbuilder.cpp2
-rw-r--r--tools/designer/src/lib/uilib/formbuilder.cpp2
-rw-r--r--tools/designer/src/plugins/activeqt/qaxwidgetextrainfo.h2
-rw-r--r--tools/designer/src/plugins/activeqt/qdesigneraxwidget.h2
-rw-r--r--tools/designer/src/plugins/widgets/q3iconview/q3iconview_extrainfo.h2
-rw-r--r--tools/designer/src/plugins/widgets/q3iconview/q3iconview_plugin.h2
-rw-r--r--tools/designer/src/plugins/widgets/q3listbox/q3listbox_extrainfo.h2
-rw-r--r--tools/designer/src/plugins/widgets/q3listbox/q3listbox_plugin.h2
-rw-r--r--tools/designer/src/plugins/widgets/q3listview/q3listview_extrainfo.h2
-rw-r--r--tools/designer/src/plugins/widgets/q3listview/q3listview_plugin.h2
-rw-r--r--tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_plugin.h2
-rw-r--r--tools/designer/src/plugins/widgets/q3table/q3table_extrainfo.h2
-rw-r--r--tools/designer/src/plugins/widgets/q3table/q3table_plugin.h2
-rw-r--r--tools/designer/src/plugins/widgets/q3textedit/q3textedit_extrainfo.h2
-rw-r--r--tools/designer/src/plugins/widgets/q3textedit/q3textedit_plugin.h2
-rw-r--r--tools/designer/src/plugins/widgets/q3toolbar/q3toolbar_extrainfo.h2
-rw-r--r--tools/designer/src/plugins/widgets/q3toolbar/q3toolbar_plugin.h2
-rw-r--r--tools/designer/src/plugins/widgets/q3widgets/q3widget_plugins.h18
-rw-r--r--tools/designer/src/plugins/widgets/q3widgetstack/q3widgetstack_plugin.h2
-rw-r--r--tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.h4
-rw-r--r--tools/designer/src/plugins/widgets/q3wizard/q3wizard_plugin.h2
-rw-r--r--tools/designer/src/src.pro4
-rw-r--r--tools/designer/translations/translations.pro2
-rw-r--r--tools/linguist/linguist/linguist.pro8
-rw-r--r--tools/linguist/lrelease/main.cpp43
-rw-r--r--tools/linguist/lupdate/main.cpp349
-rw-r--r--tools/linguist/shared/proparser.pri2
-rw-r--r--tools/linguist/shared/proreader.cpp131
-rw-r--r--tools/linguist/shared/qm.cpp2
-rw-r--r--tools/linguist/shared/translator.h1
-rw-r--r--tools/qdoc3/cppcodeparser.cpp18
-rw-r--r--tools/qdoc3/htmlgenerator.cpp9
-rw-r--r--tools/qdoc3/node.cpp26
-rw-r--r--tools/qdoc3/node.h11
-rw-r--r--tools/qdoc3/pagegenerator.cpp7
-rw-r--r--tools/qdoc3/tree.cpp3
-rw-r--r--tools/qtconfig/translations/translations.pro1
-rw-r--r--tools/qttracereplay/main.cpp28
-rw-r--r--tools/qvfb/translations/translations.pro1
-rw-r--r--tools/runonphone/main.cpp7
-rw-r--r--tools/runonphone/runonphone.pro2
-rw-r--r--tools/runonphone/trk/launcher.cpp101
-rw-r--r--tools/runonphone/trk/launcher.h15
-rw-r--r--tools/runonphone/trk/trkdevice.cpp34
-rw-r--r--tools/runonphone/trk/trkutils.h7
-rw-r--r--tools/shared/findwidget/abstractfindwidget.h2
-rw-r--r--tools/shared/findwidget/itemviewfindwidget.h2
-rw-r--r--tools/shared/findwidget/texteditfindwidget.h2
-rw-r--r--tools/shared/fontpanel/fontpanel.cpp2
-rw-r--r--tools/shared/qtgradienteditor/qtgradientutils.cpp2
-rw-r--r--tools/shared/qttoolbardialog/qttoolbardialog.h4
-rw-r--r--translations/assistant_cs.ts1074
-rw-r--r--translations/assistant_hu.ts1083
-rw-r--r--translations/designer_cs.ts7051
-rw-r--r--translations/designer_hu.ts7023
-rw-r--r--translations/linguist_cs.ts2023
-rw-r--r--translations/linguist_hu.ts2014
-rw-r--r--translations/qt_cs.ts10362
-rw-r--r--translations/qt_help_cs.ts395
-rw-r--r--translations/qt_help_hu.ts298
-rw-r--r--translations/qt_hu.ts10537
-rw-r--r--translations/qtconfig_hu.ts920
-rw-r--r--translations/qvfb_hu.ts344
-rw-r--r--translations/translations.pri2
-rw-r--r--util/s60pixelmetrics/pixel_metrics.cpp21
530 files changed, 60647 insertions, 3608 deletions
diff --git a/.gitignore b/.gitignore
index 2069ad5..c8153fc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -57,6 +57,7 @@ bin/qmake*
bin/qdoc3*
bin/qt3to4*
bin/qtdemo*
+bin/qttracereplay*
bin/rcc*
bin/uic*
bin/patternist*
diff --git a/bin/patch_capabilities.bat b/bin/patch_capabilities.bat
new file mode 100644
index 0000000..6a0c4d7
--- /dev/null
+++ b/bin/patch_capabilities.bat
@@ -0,0 +1 @@
+@perl.exe -S %~dp0patch_capabilities.pl %*
diff --git a/bin/patch_capabilities.pl b/bin/patch_capabilities.pl
index b6bf5c3..8afe776 100755
--- a/bin/patch_capabilities.pl
+++ b/bin/patch_capabilities.pl
@@ -108,15 +108,57 @@ if (@ARGV)
open (NEW_PKG, ">>".$tempPkgFileName);
open (PKG, "<".$pkgFileName);
+ my $manufacturerElseBlock = 0;
+
# Parse each line.
while (<PKG>)
{
+ # Patch pkg UID
my $line = $_;
my $newLine = $line;
- if ( $line =~ m/^\#.*\(0x[0-9|a-f|A-F]*\).*$/)
+ if ($line =~ m/^\#.*\(0x[0-9|a-f|A-F]*\).*$/)
+ {
+ $newLine =~ s/\(0x./\(0xE/;
+ }
+
+ # Patch embedded sis name and UID
+ if ($line =~ m/^@.*\.sis.*\(0x[0-9|a-f|A-F]*\).*$/)
{
$newLine =~ s/\(0x./\(0xE/;
+ if ($line !~ m/^.*_selfsigned.sis.*$/)
+ {
+ $newLine =~ s/\.sis/_selfsigned\.sis/i;
+ }
+ }
+
+ # Remove all dependencies to other packages to reduce unnecessary error messages
+ # from depended packages that are also patched and therefore have different UID.
+ if ($line =~ m/^\(0x[0-9|a-f|A-F]*\).*\{.*\}$/)
+ {
+ $newLine = "\n"
}
+
+ # Remove manufacturer ifdef
+ if ($line =~ m/^.*\(MANUFACTURER\)\=\(.*\).*$/)
+ {
+ $newLine = "\n";
+ }
+
+ if ($line =~ m/^ELSEIF.*MANUFACTURER$/)
+ {
+ $manufacturerElseBlock = 1;
+ }
+
+ if ($manufacturerElseBlock eq 1)
+ {
+ $newLine = "\n";
+ }
+
+ if ($line =~ m/^ENDIF.*MANUFACTURER$/)
+ {
+ $manufacturerElseBlock = 0;
+ }
+
print NEW_PKG $newLine;
chomp ($line);
diff --git a/config.tests/unix/opengles1cl/opengles1cl.pro b/config.tests/unix/opengles1cl/opengles1cl.pro
deleted file mode 100644
index c4c069e..0000000
--- a/config.tests/unix/opengles1cl/opengles1cl.pro
+++ /dev/null
@@ -1,9 +0,0 @@
-SOURCES = opengles1cl.cpp
-INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1CL
-
-for(p, QMAKE_LIBDIR_OPENGL_ES1CL) {
- exists($$p):LIBS += -L$$p
-}
-
-CONFIG -= qt
-LIBS += $$QMAKE_LIBS_OPENGL_ES1CL
diff --git a/configure b/configure
index 19fe613..ae6d724 100755
--- a/configure
+++ b/configure
@@ -115,7 +115,7 @@ getQMakeConf1()
inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
current_dir=`dirname "$1"`
conf_file="$current_dir/$inc_file"
- if [ ! -e "$conf_file" ]; then
+ if [ ! -f "$conf_file" ]; then
echo "WARNING: Unable to find file $conf_file" >&2
continue
fi
@@ -1225,7 +1225,7 @@ while [ "$#" -gt 0 ]; do
opengl)
if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
[ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
- [ "$VAL" = "es1cl" ] || [ "$VAL" = "es1" ] || [ "$VAL" = "es2" ]; then
+ [ "$VAL" = "es1" ] || [ "$VAL" = "es2" ]; then
CFG_OPENGL="$VAL"
else
UNKNOWN_OPT=yes
@@ -2282,7 +2282,7 @@ if [ "$OPT_SHADOW" = "yes" ]; then
fi
# symlink fonts to be able to run application from build directory
-if [ "$PLATFORM_QWS" = "yes" ] && [ ! -e "${outpath}/lib/fonts" ]; then
+if [ "$PLATFORM_QWS" = "yes" ] && [ ! -d "${outpath}/lib/fonts" ]; then
if [ "$PLATFORM" = "$XPLATFORM" ]; then
mkdir -p "${outpath}/lib"
ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
@@ -3709,11 +3709,11 @@ Qt/X11 only:
+ -opengl <api> ...... Enable OpenGL support.
With no parameter, this will auto-detect the "best"
OpenGL API to use. If desktop OpenGL is available, it
- will be used. Use desktop, es1, es1cl or es2 for <api>
+ will be used. Use desktop, es1, or es2 for <api>
to force the use of the Desktop (OpenGL 1.x or 2.x),
- OpenGL ES 1.x Common profile, 1.x Common Lite profile
- or 2.x APIs instead. On X11, the EGL API will be used
- to manage GL contexts in the case of OpenGL ES
+ OpenGL ES 1.x Common profile, or 2.x APIs instead.
+ On X11, the EGL API will be used to manage GL
+ contexts in the case of OpenGL ES
-no-openvg ........ Do not support OpenVG.
+ -openvg ........... Enable OpenVG support.
@@ -3867,7 +3867,7 @@ Qt for Embedded Linux only:
-no-opengl .......... Do not support OpenGL.
-opengl <api> ....... Enable OpenGL ES support
With no parameter, this will attempt to auto-detect OpenGL ES 1.x
- or 2.x. Use es1, es1cl or es2 for <api> to override auto-detection.
+ or 2.x. Use es1 or es2 for <api> to override auto-detection.
NOTE: A QGLScreen driver for the hardware is required to support
OpenGL ES on Qt for Embedded Linux.
@@ -4972,7 +4972,7 @@ if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ]; then
CFG_EGL=yes
CFG_EGL_GLES_INCLUDES=yes
fi
- if ( [ "$CFG_OPENGL" = "es1" ] || [ "$CFG_OPENGL" = "es1cl" ] || [ "$CFG_OPENGL" = "es2" ] ) && [ "$CFG_EGL" != "yes" ]; then
+ if ( [ "$CFG_OPENGL" = "es1" ] || [ "$CFG_OPENGL" = "es2" ] ) && [ "$CFG_EGL" != "yes" ]; then
echo "The EGL functionality test failed!"
echo " EGL is required for OpenGL ES to manage contexts & surfaces."
echo " You might need to modify the include and library search paths by editing"
@@ -5072,7 +5072,7 @@ if [ "$PLATFORM_X11" = "yes" ]; then
exit 1
fi
- # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es1cl = ES 1.x common lite, es2 = OpenGL ES 2.x)
+ # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es2 = OpenGL ES 2.x)
if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
CFG_OPENGL=desktop
@@ -5080,8 +5080,6 @@ if [ "$PLATFORM_X11" = "yes" ]; then
CFG_OPENGL=es2
elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
CFG_OPENGL=es1
- elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1cl "OpenGL ES 1.x Lite" $L_FLAGS $I_FLAGS $l_FLAGS; then
- CFG_OPENGL=es1cl
else
if [ "$CFG_OPENGL" = "yes" ]; then
echo "All the OpenGL functionality tests failed!"
@@ -5105,16 +5103,6 @@ if [ "$PLATFORM_X11" = "yes" ]; then
*)
;;
esac
- elif [ "$CFG_OPENGL" = "es1cl" ]; then
- # OpenGL ES 1.x common lite
- "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1cl "OpenGL ES 1.x Lite" $L_FLAGS $I_FLAGS $l_FLAGS
- if [ $? != "0" ]; then
- echo "The OpenGL ES 1.x Common Lite Profile functionality test failed!"
- echo " You might need to modify the include and library search paths by editing"
- echo " QMAKE_INCDIR_OPENGL_ES1CL, QMAKE_LIBDIR_OPENGL_ES1CL and QMAKE_LIBS_OPENGL_ES1CL in"
- echo " ${XQMAKESPEC}."
- exit 1
- fi
elif [ "$CFG_OPENGL" = "es1" ]; then
# OpenGL ES 1.x
"$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS
@@ -5424,14 +5412,12 @@ fi
# QWS
if [ "$PLATFORM_QWS" = "yes" ]; then
- # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es1cl = ES 1.x common lite, es2 = OpenGL ES 2.x)
+ # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es2 = OpenGL ES 2.x)
if [ "$CFG_OPENGL" = "yes" ]; then
if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
CFG_OPENGL=es2
elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
CFG_OPENGL=es1
- elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1cl "OpenGL ES 1.x Lite" $L_FLAGS $I_FLAGS $l_FLAGS; then
- CFG_OPENGL=es1cl
else
echo "All the OpenGL ES functionality tests failed!"
echo " You might need to modify the include and library search paths by editing"
@@ -6072,7 +6058,7 @@ else
QT_CONFIG="$QT_CONFIG opengl"
fi
-if [ "$CFG_OPENGL" = "es1" ] || [ "$CFG_OPENGL" = "es1cl" ] || [ "$CFG_OPENGL" = "es2" ]; then
+if [ "$CFG_OPENGL" = "es1" ] || [ "$CFG_OPENGL" = "es2" ]; then
if [ "$PLATFORM_QWS" = "yes" ]; then
QCONFIG_FLAGS="$QCONFIG_FLAGS Q_BACKINGSTORE_SUBSURFACES"
QCONFIG_FLAGS="$QCONFIG_FLAGS Q_USE_EGLWINDOWSURFACE"
@@ -6085,11 +6071,6 @@ if [ "$CFG_OPENGL" = "es1" ]; then
QT_CONFIG="$QT_CONFIG opengles1"
fi
-if [ "$CFG_OPENGL" = "es1cl" ]; then
- QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_1_CL"
- QT_CONFIG="$QT_CONFIG opengles1cl"
-fi
-
if [ "$CFG_OPENGL" = "es2" ]; then
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
QT_CONFIG="$QT_CONFIG opengles2"
@@ -7513,8 +7494,6 @@ if [ "$CFG_OPENGL" = "desktop" ]; then
echo "OpenGL support ...... yes (Desktop OpenGL)"
elif [ "$CFG_OPENGL" = "es1" ]; then
echo "OpenGL support ...... yes (OpenGL ES 1.x Common profile)"
-elif [ "$CFG_OPENGL" = "es1cl" ]; then
- echo "OpenGL support ...... yes (OpenGL ES 1.x Common Lite profile)"
elif [ "$CFG_OPENGL" = "es2" ]; then
echo "OpenGL support ...... yes (OpenGL ES 2.x)"
else
@@ -7567,6 +7546,8 @@ elif [ "$CFG_OPENSSL" = "linked" ]; then
OPENSSL_LINKAGE="(linked)"
fi
echo "OpenSSL support ..... $CFG_OPENSSL $OPENSSL_LINKAGE"
+echo "Alsa support ........ $CFG_ALSA"
+echo
[ "$CFG_PTMALLOC" != "no" ] && echo "Use ptmalloc ........ $CFG_PTMALLOC"
@@ -7591,8 +7572,6 @@ if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG"
echo "NOTE: Mac OS X frameworks implicitly build debug and release Qt libraries."
echo
fi
-echo "alsa support ........ $CFG_ALSA"
-echo
sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
PROCS=1
diff --git a/configure.exe b/configure.exe
index d88da13..21fdcfa 100644
--- a/configure.exe
+++ b/configure.exe
Binary files differ
diff --git a/demos/demos.pro b/demos/demos.pro
index 86553dc..4c2318c 100644
--- a/demos/demos.pro
+++ b/demos/demos.pro
@@ -38,7 +38,7 @@ wince*: SUBDIRS = \
demos_undo \
demos_sub-attaq
-contains(QT_CONFIG, opengl):!contains(QT_CONFIG, opengles1):!contains(QT_CONFIG, opengles1cl):!contains(QT_CONFIG, opengles2):{
+contains(QT_CONFIG, opengl):!contains(QT_CONFIG, opengles1):!contains(QT_CONFIG, opengles2):{
SUBDIRS += demos_boxes
}
diff --git a/demos/embedded/fluidlauncher/backup_registration.xml b/demos/embedded/fluidlauncher/backup_registration.xml
new file mode 100644
index 0000000..794e11d
--- /dev/null
+++ b/demos/embedded/fluidlauncher/backup_registration.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" standalone="yes"?>
+<backup_registration>
+ <passive_backup>
+ <include_directory name = "\" />
+ </passive_backup>
+ <system_backup/>
+ <restore requires_reboot = "no"/>
+</backup_registration>
diff --git a/demos/embedded/fluidlauncher/fluidlauncher.pro b/demos/embedded/fluidlauncher/fluidlauncher.pro
index bb8835b..92d6e1e 100644
--- a/demos/embedded/fluidlauncher/fluidlauncher.pro
+++ b/demos/embedded/fluidlauncher/fluidlauncher.pro
@@ -207,8 +207,11 @@ symbian {
saxbookmarks.sources += $$PWD/../../../examples/xml/saxbookmarks/jennifer.xbel
saxbookmarks.path = /data/qt/saxbookmarks
+ fluidbackup.sources = backup_registration.xml
+ fluidbackup.path = /private/$$replace(TARGET.UID3, 0x,)
+
DEPLOYMENT += config files executables viewerimages saxbookmarks reg_resource resource \
- mifs desktopservices_music desktopservices_images
+ mifs desktopservices_music desktopservices_images fluidbackup
TARGET.EPOCHEAPSIZE = 100000 20000000
}
diff --git a/dist/changes-4.6.2 b/dist/changes-4.6.2
index d35f945..00509ed 100644
--- a/dist/changes-4.6.2
+++ b/dist/changes-4.6.2
@@ -40,8 +40,8 @@ Optimizations
QtCore
------
- - foo
- * bar
+ - QXmlStreamWriter
+ * [QTBUG-6893] Fixed adding extra Byte Order Marks when writing to a xml file.
QtGui
-----
@@ -49,6 +49,9 @@ QtGui
- foo
* bar
+ * [QTBUG-7029] Fixed a crash when re-creating QApplication object due to a
+ dangling gesture manager pointer.
+
QtDBus
------
@@ -64,8 +67,13 @@ QtNetwork
QtOpenGL
--------
- - foo
- * bar
+ - [QTBUG-7490] Better support for user-generated binary shaders.
+
+QtOpenVG
+--------
+
+ - [QTBUG-7791] Optimize single-rect IntersectClip in OpenVG using the scissor.
+ - [QTBUG-7864] Use OpenVG scissor on 90/180/270 rotations and simple clips.
QtScript
--------
@@ -85,6 +93,12 @@ QtXml
- foo
* bar
+QtMultimedia
+------------
+
+ - QAudioInput
+ * [QTBUG-7044]: QAudioInput stopped working correctly after suspend()/resume() on linux.
+
Qt Plugins
----------
@@ -110,8 +124,11 @@ Qt for Unix (X11 and Mac OS X)
Qt for Linux/X11
----------------
+ * Fix a bug where QPixmap::serialNumber was not set on a transformed pixmap
+ in Qt/X11.
- -
+ * Fixed a crash when an input method tries to create a widget after the
+ application is destroyed.
Qt for Windows
--------------
@@ -121,7 +138,10 @@ Qt for Windows
Qt for Mac OS X
---------------
- -
+ - [QTBUG-7312]: Menubar and dock disappear after hiding a fullscreen widget on Cocoa.
+ - [QTBUG-7522]: Drawing fake buttons using QMacStyle+QStyleOptionViewItemV4 lead to crash.
+ - [QTBUG-7625]: Calling showFullScreen() then showNormal() on a widget results in top menu hiding.
+
Qt for Embedded Linux
---------------------
@@ -130,7 +150,13 @@ Qt for Embedded Linux
DirectFB
--------
-
+ * Fix a bug where QPixmap::serialNumber was not set on a transformed pixmap
+ in DirectFB.
+ * Reimplement QPixmapData::scroll for QDirectFBPixmapData which optimizes
+ QPixmap::scroll
+ * Fix a rendering issue for semi-transparent top level windows in DirectFB.
+ * Make it possible to fall back to the raster engine for stretch blits in
+ DirectFB using QT_NO_DIRECTFB_STRETCHBLIT
-
Qt for Windows CE
@@ -143,7 +169,12 @@ Qt for Windows CE
****************************************************************************
- Designer
- * foo
+ * [QTBUG-6965] Enabled editing seconds of QDateTime-type properties
+ * [QTBUG-6757] Fixed bug where selection handles would be affected by
+ a style sheet set on the main form.
+
+ - uic3
+ * [QTBUG-7404] Added option to preserve layout names set by Qt 3 Designer.
- qdoc3
* bar
diff --git a/doc/src/development/assistant-manual.qdoc b/doc/src/development/assistant-manual.qdoc
index fde8782..7d56ea1 100644
--- a/doc/src/development/assistant-manual.qdoc
+++ b/doc/src/development/assistant-manual.qdoc
@@ -186,7 +186,7 @@
will appear. Click a sub-item to make its page appear in the \e{Documentation}
window. Click on the control next to an open item to hide its sub-items.
\o The \gui{Index} window is used to look up key words or phrases.
- See \l{The One-Minute Guide to Using Qt Assistant} for how to use this
+ See \l{Qt Assistant Manual#The One-Minute Guide to Using Qt Assistant}{The One-Minute Guide to Using Qt Assistant} for how to use this
window.
\o The \gui{Bookmarks} window lists any bookmarks you have made. Double
click a bookmark to make its page appear in the \e{Documentation} window.
diff --git a/doc/src/development/qmake-manual.qdoc b/doc/src/development/qmake-manual.qdoc
index d7aa0db..8fc4058 100644
--- a/doc/src/development/qmake-manual.qdoc
+++ b/doc/src/development/qmake-manual.qdoc
@@ -1977,7 +1977,7 @@ distinction between shared and
\section1 QMAKE_CFLAGS_WARN_OFF
This variable is not empty if the warn_off
- \l{#TEMPLATE}{TEMPLATE} option is specified. The value of this
+ \l{#CONFIG}{CONFIG} option is specified. The value of this
variable is typically handled by \c qmake or \l{#QMAKESPEC}{qmake.conf}
and rarely needs to be modified.
@@ -1985,7 +1985,7 @@ distinction between shared and
\section1 QMAKE_CFLAGS_WARN_ON
This variable is not empty if the warn_on
- \l{#TEMPLATE}{TEMPLATE} option is specified.
+ \l{#CONFIG}{CONFIG} option is specified.
The value of this variable is typically handled by
\c qmake or \l{#QMAKESPEC}{qmake.conf} and rarely needs
to be modified.
@@ -2252,11 +2252,11 @@ For example:
If the OpenGL implementation uses EGL (most OpenGL/ES systems),
then QMAKE_INCDIR_EGL may also need to be set.
- \section1 QMAKE_INCDIR_OPENGL_ES1, QMAKE_INCDIR_OPENGL_ES1CL, QMAKE_INCDIR_OPENGL_ES2
+ \section1 QMAKE_INCDIR_OPENGL_ES1, QMAKE_INCDIR_OPENGL_ES2
These variables contain the location of OpenGL headers files to be added
- to INCLUDEPATH when building an application with OpenGL ES 1, OpenGL ES 1 Common
- Lite or OpenGL ES 2 support respectively.
+ to INCLUDEPATH when building an application with OpenGL ES 1
+ or OpenGL ES 2 support respectively.
The value of this variable is typically handled by \c qmake or
\l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified.
@@ -2510,10 +2510,10 @@ For example:
variable is typically handled by \c qmake or
\l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified.
- \section1 QMAKE_LIBS_OPENGL_ES1, QMAKE_LIBS_OPENGL_ES1CL, QMAKE_LIBS_OPENGL_ES2
+ \section1 QMAKE_LIBS_OPENGL_ES1, QMAKE_LIBS_OPENGL_ES2
- These variables contain all the OpenGL libraries for OpenGL ES 1,
- OpenGL ES 1 Common Lite profile and OpenGL ES 2.
+ These variables contain all the OpenGL libraries for OpenGL ES 1
+ and OpenGL ES 2.
The value of these variables is typically handled by \c qmake or
\l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified.
diff --git a/doc/src/examples/svgalib.qdoc b/doc/src/examples/svgalib.qdoc
index 9142112..cf6512c 100644
--- a/doc/src/examples/svgalib.qdoc
+++ b/doc/src/examples/svgalib.qdoc
@@ -43,6 +43,9 @@
\example qws/svgalib
\title Accelerated Graphics Driver Example
+ \warning This example was designed to work with Qt 4.4 and will not work
+ with current versions of Qt. It will be removed from Qt 4.7.
+
The Accelerated Graphics Driver example shows how you can write
your own accelerated graphics driver and \l {add your graphics
driver to Qt for Embedded Linux}. In \l{Qt for Embedded Linux},
diff --git a/doc/src/frameworks-technologies/qthelp.qdoc b/doc/src/frameworks-technologies/qthelp.qdoc
index 079b080..3c80f04 100644
--- a/doc/src/frameworks-technologies/qthelp.qdoc
+++ b/doc/src/frameworks-technologies/qthelp.qdoc
@@ -264,7 +264,7 @@
help collection to keep track of a documentation set without relying
on its file name. The Qt help system uses a namespace as identifier
which is defined by the mandatory namespace tags. In the example
- above, the namespace is "mycompany.com.myapplication.1_0".
+ above, the namespace is "mycompany.com.myapplication.1.0".
\target Virtual Folders
\section2 Virtual Folders
diff --git a/doc/src/getting-started/examples.qdoc b/doc/src/getting-started/examples.qdoc
index 9cda95a..bc6404c 100644
--- a/doc/src/getting-started/examples.qdoc
+++ b/doc/src/getting-started/examples.qdoc
@@ -406,7 +406,7 @@
\clearfloat
\section1 \l{D-Bus Examples}{D-Bus}
\beginfloatleft
- \l{D-Bus Examples}{\inlineimage qt-embedded-examples.png
+ \l{D-Bus Examples}{\inlineimage dbus-examples.png
}
\endfloat
@@ -416,7 +416,7 @@
\clearfloat
\section1 \l{Qt for Embedded Linux Examples}{Qt for Embedded Linux}
\beginfloatleft
- \l{Qt for Embedded Linux Examples}{\inlineimage dbus-examples.png
+ \l{Qt for Embedded Linux Examples}{\inlineimage qt-embedded-examples.png
}
\endfloat
diff --git a/doc/src/getting-started/known-issues.qdoc b/doc/src/getting-started/known-issues.qdoc
index 5503ab9..b73e15d 100644
--- a/doc/src/getting-started/known-issues.qdoc
+++ b/doc/src/getting-started/known-issues.qdoc
@@ -52,7 +52,7 @@
on the Qt website.
An overview of known issues may also be found at:
- \l{http://qt.gitorious.org/qt/pages/Qt460KnownIssues}
+ \l{http://qt.gitorious.org/qt/pages/QtKnownIssues}
{Known Issues Wiki}.
\section1 Installation Issues
@@ -160,6 +160,6 @@
\list
\o Check known issues for Symbian at
- \l{http://qt.gitorious.org/qt/pages/Qt460KnownIssues} {Known Issues Wiki}.
+ \l{http://qt.gitorious.org/qt/pages/QtKnownIssues} {Known Issues Wiki}.
\endlist
*/
diff --git a/doc/src/images/container_bench.png b/doc/src/images/container_bench.png
new file mode 100644
index 0000000..a707b1a
--- /dev/null
+++ b/doc/src/images/container_bench.png
Binary files differ
diff --git a/doc/src/platforms/emb-install.qdoc b/doc/src/platforms/emb-install.qdoc
index c13fbef..623ba89 100644
--- a/doc/src/platforms/emb-install.qdoc
+++ b/doc/src/platforms/emb-install.qdoc
@@ -84,7 +84,9 @@
Before building the \l{Qt for Embedded Linux} library, run the \c
./configure script to configure the library for your development
architecture. You can list all of the configuration system's
- options by typing \c {./configure -help}.
+ options by typing
+
+ \snippet doc/src/snippets/code/doc_src_emb-install.qdoc embedded help
Note that by default, \l{Qt for Embedded Linux} is configured for
installation in the \c{/usr/local/Trolltech/QtEmbedded-%VERSION%}
diff --git a/doc/src/platforms/platform-notes.qdoc b/doc/src/platforms/platform-notes.qdoc
index 4a04a36..b64d67b 100644
--- a/doc/src/platforms/platform-notes.qdoc
+++ b/doc/src/platforms/platform-notes.qdoc
@@ -482,7 +482,7 @@
\section1 Known Issues
Known issues can be found by visiting the
- \l{http://qt.gitorious.org/qt/pages/Qt460KnownIssues}{wiki page} with an
+ \l{http://qt.gitorious.org/qt/pages/QtKnownIssues}{wiki page} with an
up-to-date list of known issues, and the list of bugs can be found by
\l{http://bugreports.qt.nokia.com/browse/QTBUG/component/19171}{browsing} the
S60 component in Qt's public task tracker, located at
diff --git a/doc/src/platforms/wince-opengl.qdoc b/doc/src/platforms/wince-opengl.qdoc
index afc1c0b..c1be4bc 100644
--- a/doc/src/platforms/wince-opengl.qdoc
+++ b/doc/src/platforms/wince-opengl.qdoc
@@ -53,7 +53,7 @@ Windows CE window manager.
\section2 Configure
-To configure Qt for Windows Mobile 5.0 and OpenGL ES Common Lite support
+To configure Qt for Windows Mobile 5.0 and OpenGL ES Common support
you can run \c{configure} like this:
\snippet doc/src/snippets/code/doc_src_wince-opengl.qdoc 0
@@ -61,17 +61,12 @@ you can run \c{configure} like this:
OpenGL ES includes profiles for floating-point and fixed-point arithmetic.
The floating point profile is called OpenGL ES CM (Common) and the
fixed-point profile is called OpenGL ES CL (Common Lite).
+The fixed-point profile is no longer supported since Qt 4.7.
You can run \c{configure} with the \c{-opengl-es-cm} option for the Common
-profile or \c{-opengl-es-cl} for the Common Lite profile. In both cases,
-ensure that the \c{lib} and \c{includes} paths include the OpenGL ES
+profile. Ensure that the \c{lib} and \c{includes} paths include the OpenGL ES
headers and libararies from your SDK. The OpenGL ES lib should be called
-either \c{libGLES_CM.lib} for the Common profile or \c{libGLES_CL.lib} for
-the Common Lite profile.
-
-The distinction between the Common and Common Lite profiles is important,
-because the Common Lite profile has less functionality and only supports a
-fixed-point vertex format.
+either \c{libGLES_CM.lib} for the Common profile.
To start programming with Qt and OpenGL ES on Windows CE, you can start
with the \l{Hello GL ES Example}. This example shows how to use QGLWidget
diff --git a/doc/src/snippets/code/doc_src_emb-install.qdoc b/doc/src/snippets/code/doc_src_emb-install.qdoc
index 60775d2..f24f087 100644
--- a/doc/src/snippets/code/doc_src_emb-install.qdoc
+++ b/doc/src/snippets/code/doc_src_emb-install.qdoc
@@ -41,18 +41,22 @@
//! [0]
cd <anywhere>
-gunzip qt-embedded-linux-commercial-src-%VERSION%.tar.gz
-tar xf qt-embedded-linux-commercial-src-%VERSION%.tar
+gunzip qt-everywhere-opensource-src-%VERSION%.tar.gz
+tar xf qt-everywhere-opensource-src-%VERSION%.tar
//! [0]
//! [1]
-~/qt-embedded-linux-commercial-src-%VERSION%
+~/qt-everywhere-opensource-src-%VERSION%
//! [1]
+//! [embedded help]
+./configure -embedded -help
+//! [embedded help]
+
//! [2]
-cd ~/qt-embedded-linux-commercial-src-%VERSION%
+cd ~/qt-everywhere-opensource-src-%VERSION%
./configure -embedded [architecture]
//! [2]
diff --git a/doc/src/snippets/code/doc_src_qthelp.qdoc b/doc/src/snippets/code/doc_src_qthelp.qdoc
index 017879d..f7b880a 100644
--- a/doc/src/snippets/code/doc_src_qthelp.qdoc
+++ b/doc/src/snippets/code/doc_src_qthelp.qdoc
@@ -110,7 +110,7 @@ if (links.count()) {
//! [7]
<?xml version="1.0" encoding="UTF-8"?>
<QtHelpProject version="1.0">
- <namespace>mycompany.com.myapplication.1_0</namespace>
+ <namespace>mycompany.com.myapplication.1.0</namespace>
<virtualFolder>doc</virtualFolder>
<customFilter name="My Application 1.0">
<filterAttribute>myapp</filterAttribute>
diff --git a/doc/src/snippets/code/doc_src_wince-opengl.qdoc b/doc/src/snippets/code/doc_src_wince-opengl.qdoc
index eef1540..601b00a 100644
--- a/doc/src/snippets/code/doc_src_wince-opengl.qdoc
+++ b/doc/src/snippets/code/doc_src_wince-opengl.qdoc
@@ -40,5 +40,5 @@
****************************************************************************/
//! [0]
-configure -platform win32-msvc2005 -xplatform wincewm50pocket-msvc2005 -opengl-es-cl
+configure -platform win32-msvc2005 -xplatform wincewm50pocket-msvc2005 -opengl-es-cm
//! [0]
diff --git a/doc/src/snippets/code/src_gui_graphicsview_qgraphicsitem.cpp b/doc/src/snippets/code/src_gui_graphicsview_qgraphicsitem.cpp
index 483c675..4f27661 100644
--- a/doc/src/snippets/code/src_gui_graphicsview_qgraphicsitem.cpp
+++ b/doc/src/snippets/code/src_gui_graphicsview_qgraphicsitem.cpp
@@ -260,3 +260,14 @@ class CustomItem : public QGraphicsItem
...
};
//! [QGraphicsItem type]
+
+//! [18]
+class QGraphicsPathItem : public QAbstractGraphicsShapeItem
+{
+ public:
+ enum { Type = 2 };
+ int type() const { return Type; }
+ ...
+};
+//! [18]
+
diff --git a/doc/src/windows-and-dialogs/mainwindow.qdoc b/doc/src/windows-and-dialogs/mainwindow.qdoc
index ea8411f..6adfa75 100644
--- a/doc/src/windows-and-dialogs/mainwindow.qdoc
+++ b/doc/src/windows-and-dialogs/mainwindow.qdoc
@@ -51,7 +51,7 @@
\nextpage The Application Main Window
- A \l{Widgets}{widget} that is not embedded in a parent widget is called a window.
+ A \l{Widgets Tutorial}{widget} that is not embedded in a parent widget is called a window.
Usually, windows have a frame and a title bar, although it is also possible to create
windows without such decoration using suitable window flags). In Qt, QMainWindow
and the various subclasses of QDialog are the most common window types.
diff --git a/examples/dbus/dbus-chat/chat_adaptor.cpp b/examples/dbus/dbus-chat/chat_adaptor.cpp
index dc07e1c..77e7ab0 100644
--- a/examples/dbus/dbus-chat/chat_adaptor.cpp
+++ b/examples/dbus/dbus-chat/chat_adaptor.cpp
@@ -38,10 +38,10 @@
** $QT_END_LICENSE$
**
**
-** This file was generated by dbusxml2cpp version 0.6
-** Command line was: dbusxml2cpp -i chat_adaptor.h -a :chat_adaptor.cpp com.trolltech.chat.xml
+** This file was generated by qdbusxml2cpp version 0.7
+** Command line was: qdbusxml2cpp -i chat_adaptor.h -a :chat_adaptor.cpp com.trolltech.chat.xml
**
-** dbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
**
** This is an auto-generated file.
** Do not edit! All changes made to it will be lost.
diff --git a/examples/dbus/dbus-chat/chat_adaptor.h b/examples/dbus/dbus-chat/chat_adaptor.h
index b1e66ad..831c4f5 100644
--- a/examples/dbus/dbus-chat/chat_adaptor.h
+++ b/examples/dbus/dbus-chat/chat_adaptor.h
@@ -38,10 +38,10 @@
** $QT_END_LICENSE$
**
**
-** This file was generated by dbusxml2cpp version 0.6
-** Command line was: dbusxml2cpp -a chat_adaptor.h: com.trolltech.chat.xml
+** This file was generated by qdbusxml2cpp version 0.7
+** Command line was: qdbusxml2cpp -a chat_adaptor.h: com.trolltech.chat.xml
**
-** dbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
**
** This is an auto-generated file.
** This file may have been hand-edited. Look for HAND-EDIT comments
@@ -49,20 +49,17 @@
**
****************************************************************************/
-#ifndef CHAT_ADAPTOR_H_142741156243605
-#define CHAT_ADAPTOR_H_142741156243605
+#ifndef CHAT_ADAPTOR_H_1257535021
+#define CHAT_ADAPTOR_H_1257535021
#include <QtCore/QObject>
#include <QtDBus/QtDBus>
-
-QT_BEGIN_NAMESPACE
class QByteArray;
template<class T> class QList;
template<class Key, class Value> class QMap;
class QString;
class QStringList;
class QVariant;
-QT_END_NAMESPACE
/*
* Adaptor class for interface com.trolltech.chat
@@ -72,14 +69,14 @@ class ChatAdaptor: public QDBusAbstractAdaptor
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "com.trolltech.chat")
Q_CLASSINFO("D-Bus Introspection", ""
-" <interface name=\"com.trolltech.chat\" >\n"
-" <signal name=\"message\" >\n"
-" <arg direction=\"out\" type=\"s\" name=\"nickname\" />\n"
-" <arg direction=\"out\" type=\"s\" name=\"text\" />\n"
+" <interface name=\"com.trolltech.chat\">\n"
+" <signal name=\"message\">\n"
+" <arg direction=\"out\" type=\"s\" name=\"nickname\"/>\n"
+" <arg direction=\"out\" type=\"s\" name=\"text\"/>\n"
" </signal>\n"
-" <signal name=\"action\" >\n"
-" <arg direction=\"out\" type=\"s\" name=\"nickname\" />\n"
-" <arg direction=\"out\" type=\"s\" name=\"text\" />\n"
+" <signal name=\"action\">\n"
+" <arg direction=\"out\" type=\"s\" name=\"nickname\"/>\n"
+" <arg direction=\"out\" type=\"s\" name=\"text\"/>\n"
" </signal>\n"
" </interface>\n"
"")
diff --git a/examples/dbus/dbus-chat/chat_interface.cpp b/examples/dbus/dbus-chat/chat_interface.cpp
index f187ee0..3aba098 100644
--- a/examples/dbus/dbus-chat/chat_interface.cpp
+++ b/examples/dbus/dbus-chat/chat_interface.cpp
@@ -38,10 +38,10 @@
** $QT_END_LICENSE$
**
**
-** This file was generated by dbusxml2cpp version 0.6
-** Command line was: dbusxml2cpp -i chat_interface.h -p :chat_interface.cpp chat/com.trolltech.chat.xml
+** This file was generated by qdbusxml2cpp version 0.7
+** Command line was: qdbusxml2cpp -i chat_interface.h -p :chat_interface.cpp com.trolltech.chat.xml
**
-** dbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
**
** This is an auto-generated file.
** This file may have been hand-edited. Look for HAND-EDIT comments
diff --git a/examples/dbus/dbus-chat/chat_interface.h b/examples/dbus/dbus-chat/chat_interface.h
index 3bf427b..a6aa2df 100644
--- a/examples/dbus/dbus-chat/chat_interface.h
+++ b/examples/dbus/dbus-chat/chat_interface.h
@@ -38,18 +38,18 @@
** $QT_END_LICENSE$
**
**
-** This file was generated by dbusxml2cpp version 0.6
-** Command line was: dbusxml2cpp -p chat_interface.h: com.trolltech.chat.xml
+** This file was generated by qdbusxml2cpp version 0.7
+** Command line was: qdbusxml2cpp -p chat_interface.h: com.trolltech.chat.xml
**
-** dbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
**
** This is an auto-generated file.
** Do not edit! All changes made to it will be lost.
**
****************************************************************************/
-#ifndef CHAT_INTERFACE_H_143021156243606
-#define CHAT_INTERFACE_H_143021156243606
+#ifndef CHAT_INTERFACE_H_1257535021
+#define CHAT_INTERFACE_H_1257535021
#include <QtCore/QObject>
#include <QtCore/QByteArray>
diff --git a/examples/dbus/remotecontrolledcar/car/car.pro b/examples/dbus/remotecontrolledcar/car/car.pro
index 9b426d3..d362dc9 100644
--- a/examples/dbus/remotecontrolledcar/car/car.pro
+++ b/examples/dbus/remotecontrolledcar/car/car.pro
@@ -10,7 +10,7 @@ CONFIG += qdbus
# Input
# DBUS_ADAPTORS += car.xml
-HEADERS += car.h car_adaptor_p.h
+HEADERS += car.h car_adaptor.h
SOURCES += car.cpp main.cpp car_adaptor.cpp
# install
diff --git a/examples/dbus/remotecontrolledcar/car/car_adaptor.cpp b/examples/dbus/remotecontrolledcar/car/car_adaptor.cpp
index bd4832e..da7505b 100644
--- a/examples/dbus/remotecontrolledcar/car/car_adaptor.cpp
+++ b/examples/dbus/remotecontrolledcar/car/car_adaptor.cpp
@@ -38,17 +38,17 @@
** $QT_END_LICENSE$
**
**
-** This file was generated by dbusxml2cpp version 0.6
-** Command line was: dbusxml2cpp -c CarAdaptor -a car_adaptor_p.h:car_adaptor.cpp car.xml
+** This file was generated by qdbusxml2cpp version 0.7
+** Command line was: qdbusxml2cpp -i car_adaptor.h -a :car_adaptor.cpp car.xml
**
-** dbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
**
** This is an auto-generated file.
** Do not edit! All changes made to it will be lost.
**
****************************************************************************/
-#include "car_adaptor_p.h"
+#include "car_adaptor.h"
#include <QtCore/QMetaObject>
#include <QtCore/QByteArray>
#include <QtCore/QList>
@@ -58,40 +58,40 @@
#include <QtCore/QVariant>
/*
- * Implementation of adaptor class CarAdaptor
+ * Implementation of adaptor class CarInterfaceAdaptor
*/
-CarAdaptor::CarAdaptor(QObject *parent)
+CarInterfaceAdaptor::CarInterfaceAdaptor(QObject *parent)
: QDBusAbstractAdaptor(parent)
{
// constructor
setAutoRelaySignals(true);
}
-CarAdaptor::~CarAdaptor()
+CarInterfaceAdaptor::~CarInterfaceAdaptor()
{
// destructor
}
-void CarAdaptor::accelerate()
+void CarInterfaceAdaptor::accelerate()
{
// handle method call com.trolltech.Examples.CarInterface.accelerate
QMetaObject::invokeMethod(parent(), "accelerate");
}
-void CarAdaptor::decelerate()
+void CarInterfaceAdaptor::decelerate()
{
// handle method call com.trolltech.Examples.CarInterface.decelerate
QMetaObject::invokeMethod(parent(), "decelerate");
}
-void CarAdaptor::turnLeft()
+void CarInterfaceAdaptor::turnLeft()
{
// handle method call com.trolltech.Examples.CarInterface.turnLeft
QMetaObject::invokeMethod(parent(), "turnLeft");
}
-void CarAdaptor::turnRight()
+void CarInterfaceAdaptor::turnRight()
{
// handle method call com.trolltech.Examples.CarInterface.turnRight
QMetaObject::invokeMethod(parent(), "turnRight");
diff --git a/examples/dbus/remotecontrolledcar/car/car_adaptor_p.h b/examples/dbus/remotecontrolledcar/car/car_adaptor.h
index 5f769cd..d109883 100644
--- a/examples/dbus/remotecontrolledcar/car/car_adaptor_p.h
+++ b/examples/dbus/remotecontrolledcar/car/car_adaptor.h
@@ -1,17 +1,17 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** 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 examples 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.
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Nokia.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
@@ -25,23 +25,23 @@
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
** $QT_END_LICENSE$
**
**
-** This file was generated by dbusxml2cpp version 0.6
-** Command line was: dbusxml2cpp -c CarAdaptor -a car_adaptor_p.h:car_adaptor.cpp car.xml
+** This file was generated by qdbusxml2cpp version 0.7
+** Command line was: qdbusxml2cpp -a car_adaptor.h: car.xml
**
-** dbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** qdbusxml2cpp is Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
**
** This is an auto-generated file.
** This file may have been hand-edited. Look for HAND-EDIT comments
@@ -49,40 +49,37 @@
**
****************************************************************************/
-#ifndef CAR_ADAPTOR_P_H_1157030132
-#define CAR_ADAPTOR_P_H_1157030132
+#ifndef CAR_ADAPTOR_H_1264773009
+#define CAR_ADAPTOR_H_1264773009
#include <QtCore/QObject>
#include <QtDBus/QtDBus>
-
-QT_BEGIN_NAMESPACE
class QByteArray;
template<class T> class QList;
template<class Key, class Value> class QMap;
class QString;
class QStringList;
class QVariant;
-QT_END_NAMESPACE
/*
* Adaptor class for interface com.trolltech.Examples.CarInterface
*/
-class CarAdaptor: public QDBusAbstractAdaptor
+class CarInterfaceAdaptor: public QDBusAbstractAdaptor
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "com.trolltech.Examples.CarInterface")
Q_CLASSINFO("D-Bus Introspection", ""
-" <interface name=\"com.trolltech.Examples.CarInterface\" >\n"
-" <method name=\"accelerate\" />\n"
-" <method name=\"decelerate\" />\n"
-" <method name=\"turnLeft\" />\n"
-" <method name=\"turnRight\" />\n"
-" <signal name=\"crashed\" />\n"
+" <interface name=\"com.trolltech.Examples.CarInterface\">\n"
+" <method name=\"accelerate\"/>\n"
+" <method name=\"decelerate\"/>\n"
+" <method name=\"turnLeft\"/>\n"
+" <method name=\"turnRight\"/>\n"
+" <signal name=\"crashed\"/>\n"
" </interface>\n"
"")
public:
- CarAdaptor(QObject *parent);
- virtual ~CarAdaptor();
+ CarInterfaceAdaptor(QObject *parent);
+ virtual ~CarInterfaceAdaptor();
public: // PROPERTIES
public Q_SLOTS: // METHODS
diff --git a/examples/dbus/remotecontrolledcar/car/main.cpp b/examples/dbus/remotecontrolledcar/car/main.cpp
index 85b206c..eab82a7 100644
--- a/examples/dbus/remotecontrolledcar/car/main.cpp
+++ b/examples/dbus/remotecontrolledcar/car/main.cpp
@@ -40,7 +40,7 @@
****************************************************************************/
#include "car.h"
-#include "car_adaptor_p.h"
+#include "car_adaptor.h"
#include <QtGui/QApplication>
#include <QtGui/QGraphicsView>
#include <QtGui/QGraphicsScene>
@@ -64,7 +64,7 @@ int main(int argc, char *argv[])
view.resize(400, 300);
view.show();
- new CarAdaptor(car);
+ new CarInterfaceAdaptor(car);
QDBusConnection connection = QDBusConnection::sessionBus();
connection.registerObject("/Car", car);
connection.registerService("com.trolltech.CarExample");
diff --git a/examples/dbus/remotecontrolledcar/controller/car_interface.cpp b/examples/dbus/remotecontrolledcar/controller/car_interface.cpp
index 01be1bf..21662b4 100644
--- a/examples/dbus/remotecontrolledcar/controller/car_interface.cpp
+++ b/examples/dbus/remotecontrolledcar/controller/car_interface.cpp
@@ -38,10 +38,10 @@
** $QT_END_LICENSE$
**
**
-** This file was generated by dbusxml2cpp version 0.6
-** Command line was: dbusxml2cpp -c CarInterface -p car_interface_p.h:car_interface.cpp car.xml
+** This file was generated by qdbusxml2cpp version 0.7
+** Command line was: qdbusxml2cpp -i car_interface.h -p :car_interface.cpp car.xml
**
-** dbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** qqdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
**
** This is an auto-generated file.
** This file may have been hand-edited. Look for HAND-EDIT comments
@@ -49,18 +49,17 @@
**
****************************************************************************/
-#include "car_interface_p.h"
-
+#include "car_interface.h"
/*
- * Implementation of interface class CarInterface
+ * Implementation of interface class ComTrolltechExamplesCarInterfaceInterface
*/
-CarInterface::CarInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent)
+ComTrolltechExamplesCarInterfaceInterface::ComTrolltechExamplesCarInterfaceInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent)
: QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent)
{
}
-CarInterface::~CarInterface()
+ComTrolltechExamplesCarInterfaceInterface::~ComTrolltechExamplesCarInterfaceInterface()
{
}
diff --git a/examples/dbus/remotecontrolledcar/controller/car_interface_p.h b/examples/dbus/remotecontrolledcar/controller/car_interface.h
index 8a5a907..c2d281a 100644
--- a/examples/dbus/remotecontrolledcar/controller/car_interface_p.h
+++ b/examples/dbus/remotecontrolledcar/controller/car_interface.h
@@ -1,17 +1,17 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** 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 examples 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.
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Nokia.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
@@ -25,31 +25,31 @@
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
** $QT_END_LICENSE$
**
**
-** This file was generated by dbusxml2cpp version 0.6
-** Command line was: dbusxml2cpp -c CarInterface -p car_interface_p.h:car_interface.cpp car.xml
+** This file was generated by qdbusxml2cpp version 0.7
+** Command line was: qdbusxml2cpp -p car_interface.h: car.xml
**
-** dbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** qdbusxml2cpp is Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
**
** This is an auto-generated file.
** Do not edit! All changes made to it will be lost.
**
****************************************************************************/
-#ifndef CAR_INTERFACE_P_H_1156853585
-#define CAR_INTERFACE_P_H_1156853585
+#ifndef CAR_INTERFACE_H_1264772826
+#define CAR_INTERFACE_H_1264772826
#include <QtCore/QObject>
#include <QtCore/QByteArray>
@@ -63,7 +63,7 @@
/*
* Proxy class for interface com.trolltech.Examples.CarInterface
*/
-class CarInterface: public QDBusAbstractInterface
+class ComTrolltechExamplesCarInterfaceInterface: public QDBusAbstractInterface
{
Q_OBJECT
public:
@@ -71,33 +71,33 @@ public:
{ return "com.trolltech.Examples.CarInterface"; }
public:
- CarInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
+ ComTrolltechExamplesCarInterfaceInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
- ~CarInterface();
+ ~ComTrolltechExamplesCarInterfaceInterface();
public Q_SLOTS: // METHODS
- inline QDBusReply<void> accelerate()
+ inline QDBusPendingReply<> accelerate()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("accelerate"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("accelerate"), argumentList);
}
- inline QDBusReply<void> decelerate()
+ inline QDBusPendingReply<> decelerate()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("decelerate"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("decelerate"), argumentList);
}
- inline QDBusReply<void> turnLeft()
+ inline QDBusPendingReply<> turnLeft()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("turnLeft"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("turnLeft"), argumentList);
}
- inline QDBusReply<void> turnRight()
+ inline QDBusPendingReply<> turnRight()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("turnRight"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("turnRight"), argumentList);
}
Q_SIGNALS: // SIGNALS
@@ -107,7 +107,7 @@ Q_SIGNALS: // SIGNALS
namespace com {
namespace trolltech {
namespace Examples {
- typedef ::CarInterface CarInterface;
+ typedef ::ComTrolltechExamplesCarInterfaceInterface CarInterface;
}
}
}
diff --git a/examples/dbus/remotecontrolledcar/controller/controller.cpp b/examples/dbus/remotecontrolledcar/controller/controller.cpp
index 00a8875..5fca9e3 100644
--- a/examples/dbus/remotecontrolledcar/controller/controller.cpp
+++ b/examples/dbus/remotecontrolledcar/controller/controller.cpp
@@ -42,13 +42,13 @@
#include <QtGui>
#include "controller.h"
-#include "car_interface_p.h"
+#include "car_interface.h"
Controller::Controller(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
- car = new CarInterface("com.trolltech.CarExample", "/Car",
+ car = new com::trolltech::Examples::CarInterface("com.trolltech.CarExample", "/Car",
QDBusConnection::sessionBus(), this);
startTimer(1000);
}
diff --git a/examples/dbus/remotecontrolledcar/controller/controller.h b/examples/dbus/remotecontrolledcar/controller/controller.h
index 07a1355..caadff9 100644
--- a/examples/dbus/remotecontrolledcar/controller/controller.h
+++ b/examples/dbus/remotecontrolledcar/controller/controller.h
@@ -43,8 +43,7 @@
#define CONTROLLER_H
#include "ui_controller.h"
-
-class CarInterface;
+#include "car_interface.h"
class Controller : public QWidget
{
@@ -64,7 +63,7 @@ private slots:
private:
Ui::Controller ui;
- CarInterface *car;
+ com::trolltech::Examples::CarInterface *car;
};
#endif
diff --git a/examples/dbus/remotecontrolledcar/controller/controller.pro b/examples/dbus/remotecontrolledcar/controller/controller.pro
index 159e3b1..375b9d7 100644
--- a/examples/dbus/remotecontrolledcar/controller/controller.pro
+++ b/examples/dbus/remotecontrolledcar/controller/controller.pro
@@ -11,7 +11,7 @@ CONFIG += qdbus
# Input
# DBUS_INTERFACES += car.xml
FORMS += controller.ui
-HEADERS += car_interface_p.h controller.h
+HEADERS += car_interface.h controller.h
SOURCES += main.cpp car_interface.cpp controller.cpp
# install
diff --git a/examples/designer/taskmenuextension/tictactoedialog.h b/examples/designer/taskmenuextension/tictactoedialog.h
index aeaaaf4..3d810dd 100644
--- a/examples/designer/taskmenuextension/tictactoedialog.h
+++ b/examples/designer/taskmenuextension/tictactoedialog.h
@@ -55,7 +55,7 @@ class TicTacToeDialog : public QDialog
Q_OBJECT
public:
- TicTacToeDialog(TicTacToe *plugin = 0, QWidget *parent = 0);
+ explicit TicTacToeDialog(TicTacToe *plugin = 0, QWidget *parent = 0);
QSize sizeHint() const;
diff --git a/examples/network/googlesuggest/googlesuggest.cpp b/examples/network/googlesuggest/googlesuggest.cpp
index 79bc448..0c85773 100644
--- a/examples/network/googlesuggest/googlesuggest.cpp
+++ b/examples/network/googlesuggest/googlesuggest.cpp
@@ -231,4 +231,5 @@ void GSuggestCompletion::handleNetworkData(QNetworkReply *networkReply)
networkReply->deleteLater();
}
-//! [9] \ No newline at end of file
+//! [9]
+
diff --git a/examples/network/googlesuggest/searchbox.cpp b/examples/network/googlesuggest/searchbox.cpp
index 69dc20e..8ef6f00 100644
--- a/examples/network/googlesuggest/searchbox.cpp
+++ b/examples/network/googlesuggest/searchbox.cpp
@@ -69,4 +69,5 @@ void SearchBox::doSearch()
QString url = QString(GSEARCH_URL).arg(text());
QDesktopServices::openUrl(QUrl(url));
}
-//! [2] \ No newline at end of file
+//! [2]
+
diff --git a/examples/network/network-chat/chatdialog.cpp b/examples/network/network-chat/chatdialog.cpp
index d8bcb30..da65270 100644
--- a/examples/network/network-chat/chatdialog.cpp
+++ b/examples/network/network-chat/chatdialog.cpp
@@ -79,7 +79,7 @@ void ChatDialog::appendMessage(const QString &from, const QString &message)
QTextCursor cursor(textEdit->textCursor());
cursor.movePosition(QTextCursor::End);
QTextTable *table = cursor.insertTable(1, 2, tableFormat);
- table->cellAt(0, 0).firstCursorPosition().insertText("<" + from + "> ");
+ table->cellAt(0, 0).firstCursorPosition().insertText('<' + from + "> ");
table->cellAt(0, 1).firstCursorPosition().insertText(message);
QScrollBar *bar = textEdit->verticalScrollBar();
bar->setValue(bar->maximum());
diff --git a/examples/network/network-chat/client.cpp b/examples/network/network-chat/client.cpp
index 2b8725c..f516783 100644
--- a/examples/network/network-chat/client.cpp
+++ b/examples/network/network-chat/client.cpp
@@ -69,8 +69,8 @@ void Client::sendMessage(const QString &message)
QString Client::nickName() const
{
- return QString(peerManager->userName()) + "@" + QHostInfo::localHostName()
- + ":" + QString::number(server.serverPort());
+ return QString(peerManager->userName()) + '@' + QHostInfo::localHostName()
+ + ':' + QString::number(server.serverPort());
}
bool Client::hasConnection(const QHostAddress &senderIp, int senderPort) const
diff --git a/examples/network/network-chat/connection.cpp b/examples/network/network-chat/connection.cpp
index 1df8a2d..5c636b9 100644
--- a/examples/network/network-chat/connection.cpp
+++ b/examples/network/network-chat/connection.cpp
@@ -83,7 +83,7 @@ bool Connection::sendMessage(const QString &message)
return false;
QByteArray msg = message.toUtf8();
- QByteArray data = "MESSAGE " + QByteArray::number(msg.size()) + " " + msg;
+ QByteArray data = "MESSAGE " + QByteArray::number(msg.size()) + ' ' + msg;
return write(data) == data.size();
}
@@ -118,7 +118,7 @@ void Connection::processReadyRead()
return;
}
- username = QString(buffer) + "@" + peerAddress().toString() + ":"
+ username = QString(buffer) + '@' + peerAddress().toString() + ':'
+ QString::number(peerPort());
currentDataType = Undefined;
numBytesForCurrentDataType = 0;
@@ -162,7 +162,7 @@ void Connection::sendPing()
void Connection::sendGreetingMessage()
{
QByteArray greeting = greetingMessage.toUtf8();
- QByteArray data = "GREETING " + QByteArray::number(greeting.size()) + " " + greeting;
+ QByteArray data = "GREETING " + QByteArray::number(greeting.size()) + ' ' + greeting;
if (write(data) == data.size())
isGreetingMessageSent = true;
}
diff --git a/examples/network/network-chat/peermanager.cpp b/examples/network/network-chat/peermanager.cpp
index 5ad2dc7..430031b 100644
--- a/examples/network/network-chat/peermanager.cpp
+++ b/examples/network/network-chat/peermanager.cpp
@@ -61,7 +61,7 @@ PeerManager::PeerManager(Client *client)
foreach (QString string, envVariables) {
int index = environment.indexOf(QRegExp(string));
if (index != -1) {
- QStringList stringList = environment.at(index).split("=");
+ QStringList stringList = environment.at(index).split('=');
if (stringList.size() == 2) {
username = stringList.at(1).toUtf8();
break;
diff --git a/examples/network/qftp/ftpwindow.cpp b/examples/network/qftp/ftpwindow.cpp
index ae3a2b6..3fd62f8 100644
--- a/examples/network/qftp/ftpwindow.cpp
+++ b/examples/network/qftp/ftpwindow.cpp
@@ -324,7 +324,8 @@ void FtpWindow::processItem(QTreeWidgetItem *item, int /*column*/)
if (isDirectory.value(name)) {
fileList->clear();
isDirectory.clear();
- currentPath += "/" + name;
+ currentPath += '/';
+ currentPath += name;
ftp->cd(name);
ftp->list();
cdToParentButton->setEnabled(true);
diff --git a/examples/network/qftp/sym_iap_util.h b/examples/network/qftp/sym_iap_util.h
index 8079d2c..41e43a9 100644
--- a/examples/network/qftp/sym_iap_util.h
+++ b/examples/network/qftp/sym_iap_util.h
@@ -298,7 +298,7 @@ QString qt_TDesC2QStringL(const TDesC& aDescriptor)
#ifdef QT_NO_UNICODE
return QString::fromLocal8Bit(aDescriptor.Ptr(), aDescriptor.Length());
#else
- return QString::fromUtf16(aDescriptor.Ptr(), aDescriptor.Length());
+ return QString((const QChar *)aDescriptor.Ptr(), aDescriptor.Length());
#endif
}
diff --git a/examples/network/securesocketclient/sslclient.cpp b/examples/network/securesocketclient/sslclient.cpp
index 1422f1c..0d6a581 100644
--- a/examples/network/securesocketclient/sslclient.cpp
+++ b/examples/network/securesocketclient/sslclient.cpp
@@ -177,7 +177,7 @@ void SslClient::socketReadyRead()
void SslClient::sendData()
{
QString input = form->sessionInput->text();
- appendString(input + "\n");
+ appendString(input + '\n');
socket->write(input.toUtf8() + "\r\n");
form->sessionInput->clear();
}
diff --git a/examples/network/torrent/trackerclient.cpp b/examples/network/torrent/trackerclient.cpp
index 4f23d54..2397737 100644
--- a/examples/network/torrent/trackerclient.cpp
+++ b/examples/network/torrent/trackerclient.cpp
@@ -105,7 +105,7 @@ void TrackerClient::fetchPeerList()
QString passkey = "?";
if (fullUrl.contains("?passkey")) {
passkey = metaInfo.announceUrl().mid(fullUrl.indexOf("?passkey"), -1);
- passkey += "&";
+ passkey += '&';
}
// Percent encode the hash
diff --git a/examples/opengl/hellogl_es/cl_helper.h b/examples/opengl/hellogl_es/cl_helper.h
deleted file mode 100644
index 4f4c2bd..0000000
--- a/examples/opengl/hellogl_es/cl_helper.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the examples 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$
-**
-****************************************************************************/
-
-#ifdef QT_OPENGL_ES_1_CL
-
-//! [0]
-#define FLOAT2X(f) ((int) ( (f) * (65536)))
-#define X2FLOAT(x) ((float)(x) / 65536.0f)
-
-#define f2vt(f) FLOAT2X(f)
-#define vt2f(x) X2FLOAT(x)
-
-#define q_vertexType GLfixed
-#define q_vertexTypeEnum GL_FIXED
-
-#define q_glFog glFogx
-#define q_glFogv glFogxv
-//! [0]
-
-#define q_glLight glLightx
-#define q_glLightv glLightxv
-#define q_glLightModel glLightModelx
-#define q_glLightModelv glLightModelxv
-
-#define q_glAlphaFunc glAlphaFuncx
-
-#define q_glMaterial glMaterialx
-#define q_glMaterialv glMaterialxv
-#define q_glColor4 glColor4x
-
-#define q_glTexParameter glTexParameterx
-#define q_glTexEnv glTexEnvx
-
-#define q_glOrtho glOrthox
-#define q_glFrustum glFrustumx
-
-#define q_glTranslate glTranslatex
-#define q_glScale glScalex
-#define q_glRotate glRotatex
-#define q_glLoadMatrix glLoadMatrixx
-
-#define q_glClearColor glClearColorx
-
-#define q_glMultMatrix glMultMatrixx
-
-#define q_glNormal3 glNormal3x
-
-#define q_glPolygonOffset glPolygonOffsetx
-#define q_glPointSize glPointSizex
-
-//! [1]
-#else
-
-#define f2vt(f) (f)
-#define vt2f(x) (x)
-
-#define q_vertexType GLfloat
-#define q_vertexTypeEnum GL_FLOAT
-
-#define q_glFog glFogf
-#define q_glFogv glFogfv
-//! [1]
-
-#define q_glLight glLightf
-#define q_glLightv glLightfv
-#define q_glLightModel glLightModelf
-#define q_glLightModelv glLightModelfv
-
-#define q_glAlphaFunc glAlphaFuncf
-
-#define q_glMaterial glMaterialf
-#define q_glMaterialv glMaterialfv
-#define q_glColor4 glColor4f
-
-#define q_glTexParameter glTexParameterf
-#define q_glTexEnv glTexEnvf
-
-#define q_glOrtho glOrthof
-#define q_glFrustum glFrustumf
-
-#define q_glTranslate glTranslatef
-#define q_glScale glScalef
-#define q_glRotate glRotatef
-#define q_glLoadMatrix glLoadMatrixf
-
-#define q_glClearColor glClearColor
-
-#define q_glMultMatrix glMultMatrixf
-
-#define q_glNormal3 glNormal3f
-
-#define q_glPolygonOffset glPolygonOffsetf
-#define q_glPointSize glPointSizef
-
-#endif
diff --git a/examples/opengl/hellogl_es/glwidget.cpp b/examples/opengl/hellogl_es/glwidget.cpp
index 9a45a11..8a6543d 100644
--- a/examples/opengl/hellogl_es/glwidget.cpp
+++ b/examples/opengl/hellogl_es/glwidget.cpp
@@ -44,7 +44,6 @@
#include <math.h>
#include "bubble.h"
-#include "cl_helper.h"
const int bubbleNum = 8;
@@ -114,9 +113,9 @@ void GLWidget::paintQtLogo()
{
glDisable(GL_TEXTURE_2D);
glEnableClientState(GL_VERTEX_ARRAY);
- glVertexPointer(3,q_vertexTypeEnum,0, createdVertices);
+ glVertexPointer(3,GL_FLOAT,0, createdVertices);
glEnableClientState(GL_NORMAL_ARRAY);
- glNormalPointer(q_vertexTypeEnum,0,createdNormals);
+ glNormalPointer(GL_FLOAT,0,createdNormals);
glDrawArrays(GL_TRIANGLES, 0, m_vertexNumber / 3);
}
//! [2]
@@ -125,83 +124,83 @@ void GLWidget::paintTexturedCube()
{
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, m_uiTexture);
- q_vertexType afVertices[] = {
- f2vt(-0.5), f2vt(0.5), f2vt(0.5), f2vt(0.5),f2vt(-0.5),f2vt(0.5),f2vt(-0.5),f2vt(-0.5),f2vt(0.5),
- f2vt(0.5), f2vt(-0.5), f2vt(0.5), f2vt(-0.5),f2vt(0.5),f2vt(0.5),f2vt(0.5),f2vt(0.5),f2vt(0.5),
- f2vt(-0.5), f2vt(-0.5), f2vt(-0.5), f2vt(0.5),f2vt(-0.5),f2vt(-0.5),f2vt(-0.5),f2vt(0.5),f2vt(-0.5),
- f2vt(0.5), f2vt(0.5), f2vt(-0.5), f2vt(-0.5),f2vt(0.5),f2vt(-0.5),f2vt(0.5),f2vt(-0.5),f2vt(-0.5),
-
- f2vt(0.5), f2vt(-0.5), f2vt(-0.5), f2vt(0.5),f2vt(-0.5),f2vt(0.5),f2vt(0.5),f2vt(0.5),f2vt(-0.5),
- f2vt(0.5), f2vt(0.5), f2vt(0.5), f2vt(0.5),f2vt(0.5),f2vt(-0.5),f2vt(0.5),f2vt(-0.5),f2vt(0.5),
- f2vt(-0.5), f2vt(0.5), f2vt(-0.5), f2vt(-0.5),f2vt(-0.5),f2vt(0.5),f2vt(-0.5),f2vt(-0.5),f2vt(-0.5),
- f2vt(-0.5), f2vt(-0.5), f2vt(0.5), f2vt(-0.5),f2vt(0.5),f2vt(-0.5),f2vt(-0.5),f2vt(0.5),f2vt(0.5),
-
- f2vt(0.5), f2vt(0.5), f2vt(-0.5), f2vt(-0.5), f2vt(0.5), f2vt(0.5), f2vt(-0.5), f2vt(0.5), f2vt(-0.5),
- f2vt(-0.5), f2vt(0.5), f2vt(0.5), f2vt(0.5), f2vt(0.5), f2vt(-0.5), f2vt(0.5), f2vt(0.5), f2vt(0.5),
- f2vt(-0.5), f2vt(-0.5), f2vt(-0.5), f2vt(-0.5), f2vt(-0.5), f2vt(0.5), f2vt(0.5), f2vt(-0.5), f2vt(-0.5),
- f2vt(0.5), f2vt(-0.5), f2vt(0.5), f2vt(0.5), f2vt(-0.5), f2vt(-0.5), f2vt(-0.5), f2vt(-0.5), f2vt(0.5)
+ GLfloat afVertices[] = {
+ -0.5, 0.5, 0.5, 0.5,-0.5,0.5,-0.5,-0.5,0.5,
+ 0.5, -0.5, 0.5, -0.5,0.5,0.5,0.5,0.5,0.5,
+ -0.5, -0.5, -0.5, 0.5,-0.5,-0.5,-0.5,0.5,-0.5,
+ 0.5, 0.5, -0.5, -0.5,0.5,-0.5,0.5,-0.5,-0.5,
+
+ 0.5, -0.5, -0.5, 0.5,-0.5,0.5,0.5,0.5,-0.5,
+ 0.5, 0.5, 0.5, 0.5,0.5,-0.5,0.5,-0.5,0.5,
+ -0.5, 0.5, -0.5, -0.5,-0.5,0.5,-0.5,-0.5,-0.5,
+ -0.5, -0.5, 0.5, -0.5,0.5,-0.5,-0.5,0.5,0.5,
+
+ 0.5, 0.5, -0.5, -0.5, 0.5, 0.5, -0.5, 0.5, -0.5,
+ -0.5, 0.5, 0.5, 0.5, 0.5, -0.5, 0.5, 0.5, 0.5,
+ -0.5, -0.5, -0.5, -0.5, -0.5, 0.5, 0.5, -0.5, -0.5,
+ 0.5, -0.5, 0.5, 0.5, -0.5, -0.5, -0.5, -0.5, 0.5
};
glEnableClientState(GL_VERTEX_ARRAY);
- glVertexPointer(3,q_vertexTypeEnum,0,afVertices);
-
- q_vertexType afTexCoord[] = {
- f2vt(0.0f),f2vt(0.0f), f2vt(1.0f),f2vt(1.0f), f2vt(1.0f),f2vt(0.0f),
- f2vt(1.0f),f2vt(1.0f), f2vt(0.0f),f2vt(0.0f), f2vt(0.0f),f2vt(1.0f),
- f2vt(1.0f),f2vt(1.0f), f2vt(1.0f),f2vt(0.0f), f2vt(0.0f),f2vt(1.0f),
- f2vt(0.0f),f2vt(0.0f), f2vt(0.0f),f2vt(1.0f), f2vt(1.0f),f2vt(0.0f),
-
- f2vt(1.0f),f2vt(1.0f), f2vt(1.0f),f2vt(0.0f), f2vt(0.0f),f2vt(1.0f),
- f2vt(0.0f),f2vt(0.0f), f2vt(0.0f),f2vt(1.0f), f2vt(1.0f),f2vt(0.0f),
- f2vt(0.0f),f2vt(0.0f), f2vt(1.0f),f2vt(1.0f), f2vt(1.0f),f2vt(0.0f),
- f2vt(1.0f),f2vt(1.0f), f2vt(0.0f),f2vt(0.0f), f2vt(0.0f),f2vt(1.0f),
-
- f2vt(0.0f),f2vt(1.0f), f2vt(1.0f),f2vt(0.0f), f2vt(1.0f),f2vt(1.0f),
- f2vt(1.0f),f2vt(0.0f), f2vt(0.0f),f2vt(1.0f), f2vt(0.0f),f2vt(0.0f),
- f2vt(1.0f),f2vt(0.0f), f2vt(1.0f),f2vt(1.0f), f2vt(0.0f),f2vt(0.0f),
- f2vt(0.0f),f2vt(1.0f), f2vt(0.0f),f2vt(0.0f), f2vt(1.0f),f2vt(1.0f)
+ glVertexPointer(3,GL_FLOAT,0,afVertices);
+
+ GLfloat afTexCoord[] = {
+ 0.0f,0.0f, 1.0f,1.0f, 1.0f,0.0f,
+ 1.0f,1.0f, 0.0f,0.0f, 0.0f,1.0f,
+ 1.0f,1.0f, 1.0f,0.0f, 0.0f,1.0f,
+ 0.0f,0.0f, 0.0f,1.0f, 1.0f,0.0f,
+
+ 1.0f,1.0f, 1.0f,0.0f, 0.0f,1.0f,
+ 0.0f,0.0f, 0.0f,1.0f, 1.0f,0.0f,
+ 0.0f,0.0f, 1.0f,1.0f, 1.0f,0.0f,
+ 1.0f,1.0f, 0.0f,0.0f, 0.0f,1.0f,
+
+ 0.0f,1.0f, 1.0f,0.0f, 1.0f,1.0f,
+ 1.0f,0.0f, 0.0f,1.0f, 0.0f,0.0f,
+ 1.0f,0.0f, 1.0f,1.0f, 0.0f,0.0f,
+ 0.0f,1.0f, 0.0f,0.0f, 1.0f,1.0f
};
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
- glTexCoordPointer(2,q_vertexTypeEnum,0,afTexCoord);
+ glTexCoordPointer(2,GL_FLOAT,0,afTexCoord);
- q_vertexType afNormals[] = {
+ GLfloat afNormals[] = {
- f2vt(0),f2vt(0),f2vt(-1), f2vt(0),f2vt(0),f2vt(-1), f2vt(0),f2vt(0),f2vt(-1),
- f2vt(0),f2vt(0),f2vt(-1), f2vt(0),f2vt(0),f2vt(-1), f2vt(0),f2vt(0),f2vt(-1),
- f2vt(0),f2vt(0),f2vt(1), f2vt(0),f2vt(0),f2vt(1), f2vt(0),f2vt(0),f2vt(1),
- f2vt(0),f2vt(0),f2vt(1), f2vt(0),f2vt(0),f2vt(1), f2vt(0),f2vt(0),f2vt(1),
+ 0,0,-1, 0,0,-1, 0,0,-1,
+ 0,0,-1, 0,0,-1, 0,0,-1,
+ 0,0,1, 0,0,1, 0,0,1,
+ 0,0,1, 0,0,1, 0,0,1,
- f2vt(-1),f2vt(0),f2vt(0), f2vt(-1),f2vt(0),f2vt(0), f2vt(-1),f2vt(0),f2vt(0),
- f2vt(-1),f2vt(0),f2vt(0), f2vt(-1),f2vt(0),f2vt(0), f2vt(-1),f2vt(0),f2vt(0),
- f2vt(1),f2vt(0),f2vt(0), f2vt(1),f2vt(0),f2vt(0), f2vt(1),f2vt(0),f2vt(0),
- f2vt(1),f2vt(0),f2vt(0), f2vt(1),f2vt(0),f2vt(0), f2vt(1),f2vt(0),f2vt(0),
+ -1,0,0, -1,0,0, -1,0,0,
+ -1,0,0, -1,0,0, -1,0,0,
+ 1,0,0, 1,0,0, 1,0,0,
+ 1,0,0, 1,0,0, 1,0,0,
- f2vt(0),f2vt(-1),f2vt(0), f2vt(0),f2vt(-1),f2vt(0), f2vt(0),f2vt(-1),f2vt(0),
- f2vt(0),f2vt(-1),f2vt(0), f2vt(0),f2vt(-1),f2vt(0), f2vt(0),f2vt(-1),f2vt(0),
- f2vt(0),f2vt(1),f2vt(0), f2vt(0),f2vt(1),f2vt(0), f2vt(0),f2vt(1),f2vt(0),
- f2vt(0),f2vt(1),f2vt(0), f2vt(0),f2vt(1),f2vt(0), f2vt(0),f2vt(1),f2vt(0)
+ 0,-1,0, 0,-1,0, 0,-1,0,
+ 0,-1,0, 0,-1,0, 0,-1,0,
+ 0,1,0, 0,1,0, 0,1,0,
+ 0,1,0, 0,1,0, 0,1,0
};
glEnableClientState(GL_NORMAL_ARRAY);
- glNormalPointer(q_vertexTypeEnum,0,afNormals);
+ glNormalPointer(GL_FLOAT,0,afNormals);
glDrawArrays(GL_TRIANGLES, 0, 36);
}
void GLWidget::initializeGL ()
{
- q_glClearColor(f2vt(0.1f), f2vt(0.1f), f2vt(0.2f), f2vt(1.0f));
+ glClearColor(0.1f, 0.1f, 0.2f, 1.0f);
glEnable(GL_TEXTURE_2D);
glGenTextures(1, &m_uiTexture);
m_uiTexture = bindTexture(QImage(":/qt.png"));
- q_glTexParameter(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
- q_glTexParameter(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
- q_vertexType aLightPosition[] = {f2vt(0.0f),f2vt(0.3f),f2vt(1.0f),f2vt(0.0f)};
+ GLfloat aLightPosition[] = {0.0f,0.3f,1.0f,0.0f};
- q_glLightv(GL_LIGHT0, GL_SPOT_DIRECTION, aLightPosition);
+ glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, aLightPosition);
m_fAngle = 0;
m_fScale = 1;
createGeometry();
@@ -230,12 +229,12 @@ void GLWidget::paintGL()
//Since OpenGL ES does not support glPush/PopAttrib(GL_ALL_ATTRIB_BITS)
//we have to take care of the states ourselves
- q_glClearColor(f2vt(0.1f), f2vt(0.1f), f2vt(0.2f), f2vt(1.0f));
+ glClearColor(0.1f, 0.1f, 0.2f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_TEXTURE_2D);
- q_glTexParameter(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
- q_glTexParameter(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
@@ -248,14 +247,14 @@ void GLWidget::paintGL()
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
- q_glRotate(f2vt(m_fAngle), f2vt(0.0), f2vt(1.0), f2vt(0.0));
- q_glRotate(f2vt(m_fAngle), f2vt(1.0), f2vt(0.0), f2vt(0.0));
- q_glRotate(f2vt(m_fAngle), f2vt(0.0), f2vt(0.0), f2vt(1.0));
- q_glScale(f2vt(m_fScale), f2vt(m_fScale),f2vt(m_fScale));
- q_glTranslate(f2vt(0),f2vt(-0.2),f2vt(0));
+ glRotatef(m_fAngle, 0.0f, 1.0f, 0.0f);
+ glRotatef(m_fAngle, 1.0f, 0.0f, 0.0f);
+ glRotatef(m_fAngle, 0.0f, 0.0f, 1.0f);
+ glScalef(m_fScale, m_fScale,m_fScale);
+ glTranslatef(0.0f,-0.2f,0.0f);
- q_vertexType matDiff[] = {f2vt(0.40), f2vt(1.0), f2vt(0.0), f2vt(1.0)};
- q_glMaterialv(GL_FRONT_AND_BACK, GL_DIFFUSE, matDiff);
+ GLfloat matDiff[] = {0.40f, 1.0f, 0.0f, 1.0f};
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, matDiff);
if (qtLogo)
paintQtLogo();
@@ -376,11 +375,11 @@ void GLWidget::createGeometry()
//! [1]
m_vertexNumber = vertices.size();
- createdVertices = new q_vertexType[m_vertexNumber];
- createdNormals = new q_vertexType[m_vertexNumber];
+ createdVertices = new GLfloat[m_vertexNumber];
+ createdNormals = new GLfloat[m_vertexNumber];
for (int i = 0;i < m_vertexNumber;i++) {
- createdVertices[i] = f2vt(vertices.at(i) * 2);
- createdNormals[i] = f2vt(normals.at(i));
+ createdVertices[i] = vertices.at(i) * 2;
+ createdNormals[i] = normals.at(i);
}
vertices.clear();
normals.clear();
diff --git a/examples/opengl/hellogl_es/glwidget.h b/examples/opengl/hellogl_es/glwidget.h
index 7a8df53..3b2b5d4 100644
--- a/examples/opengl/hellogl_es/glwidget.h
+++ b/examples/opengl/hellogl_es/glwidget.h
@@ -45,7 +45,6 @@
#include <QGLWidget>
#include <QTime>
-#include "cl_helper.h"
class Bubble;
@@ -76,8 +75,8 @@ private:
void extrude(qreal x1, qreal y1, qreal x2, qreal y2);
QList<qreal> vertices;
QList<qreal> normals;
- q_vertexType *createdVertices;
- q_vertexType *createdNormals;
+ GLfloat *createdVertices;
+ GLfloat *createdNormals;
int m_vertexNumber;
bool qtLogo;
QList<Bubble*> bubbles;
diff --git a/examples/opengl/opengl.pro b/examples/opengl/opengl.pro
index eaac9b8..c3fbc77 100644
--- a/examples/opengl/opengl.pro
+++ b/examples/opengl/opengl.pro
@@ -1,14 +1,12 @@
TEMPLATE = subdirs
-contains(QT_CONFIG, opengles1)|contains(QT_CONFIG, opengles1cl)|contains(QT_CONFIG, opengles2){
+contains(QT_CONFIG, opengles1)|contains(QT_CONFIG, opengles2){
contains(QT_CONFIG, opengles2) {
SUBDIRS = hellogl_es2
} else {
SUBDIRS = hellogl_es
}
- !contains(QT_CONFIG, opengles1cl) {
- SUBDIRS += textures
- }
+ SUBDIRS += textures
contains(QT_CONFIG, opengles1) {
SUBDIRS += hellogl
}
diff --git a/examples/qtestlib/tutorial5/containers.cpp b/examples/qtestlib/tutorial5/containers.cpp
new file mode 100644
index 0000000..fe68c85
--- /dev/null
+++ b/examples/qtestlib/tutorial5/containers.cpp
@@ -0,0 +1,269 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+// This file contains benchmarks for comparing QVector against std::vector
+
+#include <QtCore>
+#include <QVector>
+#include <vector>
+
+#include <qtest.h>
+
+template <typename T> // T is the item type
+class UseCases {
+public:
+ virtual ~UseCases() {}
+
+ // Use case: Insert \a size items into the vector.
+ virtual void insert(int size) = 0;
+
+ // Use case: Lookup \a size items from the vector.
+ virtual void lookup(int size) = 0;
+};
+
+template <typename T>
+T * f(T *ts) // dummy function to prevent code from being optimized away by the compiler
+{
+ return ts;
+}
+
+// This subclass implements the use cases using QVector as efficiently as possible.
+template <typename T>
+class UseCases_QVector : public UseCases<T>
+{
+ void insert(int size)
+ {
+ QVector<T> v;
+ T t;
+ QBENCHMARK {
+ for (int i = 0; i < size; ++i)
+ v.append(t);
+ }
+ }
+
+ void lookup(int size)
+ {
+ QVector<T> v;
+
+ T t;
+ for (int i = 0; i < size; ++i)
+ v.append(t);
+
+ T *ts = new T[size];
+ QBENCHMARK {
+ for (int i = 0; i < size; ++i)
+ ts[i] = v.value(i);
+ }
+ f<T>(ts);
+ delete[] ts;
+ }
+};
+
+// This subclass implements the use cases using std::vector as efficiently as possible.
+template <typename T>
+class UseCases_stdvector : public UseCases<T>
+{
+ void insert(int size)
+ {
+ std::vector<T> v;
+ T t;
+ QBENCHMARK {
+ for (int i = 0; i < size; ++i)
+ v.push_back(t);
+ }
+ }
+
+ void lookup(int size)
+ {
+ std::vector<T> v;
+
+ T t;
+ for (int i = 0; i < size; ++i)
+ v.push_back(t);
+
+ T *ts = new T[size];
+ QBENCHMARK {
+ for (int i = 0; i < size; ++i)
+ ts[i] = v[i];
+ }
+ f<T>(ts);
+ delete[] ts;
+ }
+};
+
+struct Large { // A "large" item type
+ int x[1000];
+};
+
+// Symbian devices typically have limited memory
+#ifdef Q_OS_SYMBIAN
+# define LARGE_MAX_SIZE 2000
+#else
+# define LARGE_MAX_SIZE 20000
+#endif
+
+class tst_vector_vs_std : public QObject
+{
+ Q_OBJECT
+public:
+ tst_vector_vs_std()
+ {
+ useCases_QVector_int = new UseCases_QVector<int>;
+ useCases_stdvector_int = new UseCases_stdvector<int>;
+
+ useCases_QVector_Large = new UseCases_QVector<Large>;
+ useCases_stdvector_Large = new UseCases_stdvector<Large>;
+ }
+
+private:
+ UseCases<int> *useCases_QVector_int;
+ UseCases<int> *useCases_stdvector_int;
+ UseCases<Large> *useCases_QVector_Large;
+ UseCases<Large> *useCases_stdvector_Large;
+
+private slots:
+ void insert_int_data();
+ void insert_int();
+ void insert_Large_data();
+ void insert_Large();
+ void lookup_int_data();
+ void lookup_int();
+ void lookup_Large_data();
+ void lookup_Large();
+};
+
+void tst_vector_vs_std::insert_int_data()
+{
+ QTest::addColumn<bool>("useStd");
+ QTest::addColumn<int>("size");
+
+ for (int size = 10; size < 20000; size += 100) {
+ const QByteArray sizeString = QByteArray::number(size);
+ QTest::newRow(("std::vector-int--" + sizeString).constData()) << true << size;
+ QTest::newRow(("QVector-int--" + sizeString).constData()) << false << size;
+ }
+}
+
+void tst_vector_vs_std::insert_int()
+{
+ QFETCH(bool, useStd);
+ QFETCH(int, size);
+
+ if (useStd)
+ useCases_stdvector_int->insert(size);
+ else
+ useCases_QVector_int->insert(size);
+}
+
+void tst_vector_vs_std::insert_Large_data()
+{
+ QTest::addColumn<bool>("useStd");
+ QTest::addColumn<int>("size");
+
+ for (int size = 10; size < LARGE_MAX_SIZE; size += 100) {
+ const QByteArray sizeString = QByteArray::number(size);
+ QTest::newRow(("std::vector-Large--" + sizeString).constData()) << true << size;
+ QTest::newRow(("QVector-Large--" + sizeString).constData()) << false << size;
+ }
+}
+
+void tst_vector_vs_std::insert_Large()
+{
+ QFETCH(bool, useStd);
+ QFETCH(int, size);
+
+ if (useStd)
+ useCases_stdvector_Large->insert(size);
+ else
+ useCases_QVector_Large->insert(size);
+}
+
+//! [1]
+void tst_vector_vs_std::lookup_int_data()
+{
+ QTest::addColumn<bool>("useStd");
+ QTest::addColumn<int>("size");
+
+ for (int size = 10; size < 20000; size += 100) {
+ const QByteArray sizeString = QByteArray::number(size);
+ QTest::newRow(("std::vector-int--" + sizeString).constData()) << true << size;
+ QTest::newRow(("QVector-int--" + sizeString).constData()) << false << size;
+ }
+}
+//! [1]
+
+//! [2]
+void tst_vector_vs_std::lookup_int()
+{
+ QFETCH(bool, useStd);
+ QFETCH(int, size);
+
+ if (useStd)
+ useCases_stdvector_int->lookup(size); // Create a std::vector and run the benchmark.
+ else
+ useCases_QVector_int->lookup(size); // Create a QVector and run the benchmark.
+}
+//! [2]
+
+void tst_vector_vs_std::lookup_Large_data()
+{
+ QTest::addColumn<bool>("useStd");
+ QTest::addColumn<int>("size");
+
+ for (int size = 10; size < LARGE_MAX_SIZE; size += 100) {
+ const QByteArray sizeString = QByteArray::number(size);
+ QTest::newRow(("std::vector-Large--" + sizeString).constData()) << true << size;
+ QTest::newRow(("QVector-Large--" + sizeString).constData()) << false << size;
+ }
+}
+
+void tst_vector_vs_std::lookup_Large()
+{
+ QFETCH(bool, useStd);
+ QFETCH(int, size);
+
+ if (useStd)
+ useCases_stdvector_Large->lookup(size);
+ else
+ useCases_QVector_Large->lookup(size);
+}
+
+QTEST_MAIN(tst_vector_vs_std)
+#include "main.moc"
diff --git a/examples/tools/customtype/message.cpp b/examples/tools/customtype/message.cpp
index 4ef041a..d27159e 100644
--- a/examples/tools/customtype/message.cpp
+++ b/examples/tools/customtype/message.cpp
@@ -64,7 +64,7 @@ Message::Message(const QString &body, const QStringList &headers)
}
//! [custom type streaming operator]
-QDebug &operator<<(QDebug &dbg, const Message &message)
+QDebug operator<<(QDebug dbg, const Message &message)
{
QStringList pieces = message.body().split("\r\n", QString::SkipEmptyParts);
if (pieces.isEmpty())
diff --git a/examples/tools/customtype/message.h b/examples/tools/customtype/message.h
index 361f803..4ef48d4 100644
--- a/examples/tools/customtype/message.h
+++ b/examples/tools/customtype/message.h
@@ -70,7 +70,7 @@ Q_DECLARE_METATYPE(Message);
//! [custom type meta-type declaration]
//! [custom type streaming operator]
-QDebug &operator<<(QDebug &dbg, const Message &message);
+QDebug operator<<(QDebug dbg, const Message &message);
//! [custom type streaming operator]
#endif
diff --git a/examples/uitools/textfinder/textfinder.cpp b/examples/uitools/textfinder/textfinder.cpp
index 855f11f..1b7c14b 100644
--- a/examples/uitools/textfinder/textfinder.cpp
+++ b/examples/uitools/textfinder/textfinder.cpp
@@ -116,7 +116,7 @@ void TextFinder::on_findButton_clicked()
if (isFirstTime == false)
document->undo();
- if (searchString == "") {
+ if (searchString.isEmpty()) {
QMessageBox::information(this, tr("Empty Search Field"),
"The search field is empty. Please enter a word and click Find.");
} else {
diff --git a/examples/webkit/framecapture/framecapture.pro b/examples/webkit/framecapture/framecapture.pro
index 6f2f093..11960b9 100644
--- a/examples/webkit/framecapture/framecapture.pro
+++ b/examples/webkit/framecapture/framecapture.pro
@@ -1,4 +1,4 @@
-QT += webkit
+QT += webkit network
HEADERS = framecapture.h
SOURCES = main.cpp \
diff --git a/examples/webkit/simpleselector/simpleselector.pro b/examples/webkit/simpleselector/simpleselector.pro
index acd0ae7..3ddd6db 100644
--- a/examples/webkit/simpleselector/simpleselector.pro
+++ b/examples/webkit/simpleselector/simpleselector.pro
@@ -1,4 +1,4 @@
-QT += webkit
+QT += webkit network
FORMS = window.ui
HEADERS = window.h
SOURCES = main.cpp \
diff --git a/mkspecs/common/aix/qplatformdefs.h b/mkspecs/common/aix/qplatformdefs.h
index 57c5a76..b3abf68 100644
--- a/mkspecs/common/aix/qplatformdefs.h
+++ b/mkspecs/common/aix/qplatformdefs.h
@@ -101,6 +101,16 @@
#define QT_SOCKOPTLEN_T int
#endif
+#ifdef QT_LARGEFILE_SUPPORT
+#undef QT_DIR
+#undef QT_OPENDIR
+#undef QT_CLOSEDIR
+
+#define QT_DIR DIR64
+#define QT_OPENDIR ::opendir64
+#define QT_CLOSEDIR ::closedir64
+#endif
+
#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE-0 >= 500)
// AIX 4.3 and better
#define QT_SNPRINTF ::snprintf
diff --git a/mkspecs/common/linux.conf b/mkspecs/common/linux.conf
index 1ae5608..4fbe2dc 100644
--- a/mkspecs/common/linux.conf
+++ b/mkspecs/common/linux.conf
@@ -15,8 +15,6 @@ QMAKE_INCDIR_OPENGL = /usr/X11R6/include
QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
QMAKE_INCDIR_OPENGL_ES1 = $$QMAKE_INCDIR_OPENGL
QMAKE_LIBDIR_OPENGL_ES1 = $$QMAKE_LIBDIR_OPENGL
-QMAKE_INCDIR_OPENGL_ES1CL = $$QMAKE_INCDIR_OPENGL
-QMAKE_LIBDIR_OPENGL_ES1CL = $$QMAKE_LIBDIR_OPENGL
QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL
QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL
QMAKE_INCDIR_EGL =
@@ -33,7 +31,6 @@ QMAKE_LIBS_EGL = -lEGL
QMAKE_LIBS_OPENGL = -lGLU -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_OPENGL_ES1 = -lGLES_CM
-QMAKE_LIBS_OPENGL_ES1CL = -lGLES_CL
QMAKE_LIBS_OPENGL_ES2 = -lGLESv2
QMAKE_LIBS_OPENVG = -lOpenVG
QMAKE_LIBS_THREAD = -lpthread
diff --git a/mkspecs/common/posix/qplatformdefs.h b/mkspecs/common/posix/qplatformdefs.h
index fe50de2..e29bc6f 100644
--- a/mkspecs/common/posix/qplatformdefs.h
+++ b/mkspecs/common/posix/qplatformdefs.h
@@ -132,6 +132,22 @@
// Posix extensions to C89
#define QT_FILENO fileno
+// Directory iteration
+#define QT_DIR DIR
+
+#define QT_OPENDIR ::opendir
+#define QT_CLOSEDIR ::closedir
+
+#if defined(QT_USE_XOPEN_LFS_EXTENSIONS) && defined(QT_LARGEFILE_SUPPORT)
+#define QT_DIRENT struct dirent64
+#define QT_READDIR ::readdir64
+#define QT_READDIR_R ::readdir64_r
+#else
+#define QT_DIRENT struct dirent
+#define QT_READDIR ::readdir
+#define QT_READDIR_R ::readdir_r
+#endif
+
#define QT_SOCKLEN_T socklen_t
#define QT_SOCKET_CONNECT ::connect
diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf
index 95f7dc3..9df48f5 100644
--- a/mkspecs/common/symbian/symbian.conf
+++ b/mkspecs/common/symbian/symbian.conf
@@ -30,6 +30,7 @@ QMAKE_CXX = g++
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
QMAKE_CXXFLAGS.CW =
QMAKE_CXXFLAGS.ARMCC = --visibility_inlines_hidden
+QMAKE_CXXFLAGS.GCCE = -fvisibility-inlines-hidden
QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
@@ -65,11 +66,11 @@ QMAKE_LINK_OBJECT_SCRIPT=
QMAKE_LIBS = -llibc -llibm -leuser -llibdl
QMAKE_LIBS_CORE = $$QMAKE_LIBS -llibpthread -lefsrv
-QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lhal -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc
+QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lhal -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lcentralrepository
QMAKE_LIBS_NETWORK =
QMAKE_LIBS_EGL = -llibEGL
QMAKE_LIBS_OPENGL =
-QMAKE_LIBS_OPENVG = -llibOpenVG -lgraphicsresource
+QMAKE_LIBS_OPENVG = -llibOpenVG -lgraphicsresource -lfbscli -lbitgdi -lgdi
QMAKE_LIBS_COMPAT =
QMAKE_LIBS_QT_ENTRY = -llibcrt0.lib
QMAKE_LIBS_S60 = -lavkon
diff --git a/mkspecs/common/wince/qmake.conf b/mkspecs/common/wince/qmake.conf
index ff99f1b..705cdc3 100644
--- a/mkspecs/common/wince/qmake.conf
+++ b/mkspecs/common/wince/qmake.conf
@@ -66,7 +66,6 @@ QMAKE_LIBS_COMPAT =
QMAKE_LIBS_EGL = libEGL.lib
QMAKE_LIBS_OPENGL_ES1 = libGLES_CM.lib
-QMAKE_LIBS_OPENGL_ES1CL = libGLES_CL.lib
QMAKE_LIBS_OPENGL_ES2 = libGLESv2.lib
QMAKE_LIBS_QT_ENTRY = -lqtmain
diff --git a/mkspecs/features/egl.prf b/mkspecs/features/egl.prf
index 00f70d3..7e7d098 100644
--- a/mkspecs/features/egl.prf
+++ b/mkspecs/features/egl.prf
@@ -11,14 +11,6 @@ wince*:contains(QT_CONFIG, opengles1) {
exists($$p):LIBS_PRIVATE += -L$$p
}
DEFINES += QT_GLES_EGL
-} else:wince*:contains(QT_CONFIG, opengles1cl) {
- INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1CL
- LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1CL
- LIBS += $$QMAKE_LFLAGS_EGL
- for(p, QMAKE_LIBDIR_OPENGL_ES1CL) {
- exists($$p):LIBS_PRIVATE += -L$$p
- }
- DEFINES += QT_GLES_EGL
} else {
INCLUDEPATH += $$QMAKE_INCDIR_EGL
LIBS_PRIVATE += $$QMAKE_LIBS_EGL
diff --git a/mkspecs/features/symbian/def_files.prf b/mkspecs/features/symbian/def_files.prf
new file mode 100644
index 0000000..c29d4ec
--- /dev/null
+++ b/mkspecs/features/symbian/def_files.prf
@@ -0,0 +1,26 @@
+# With DEF files enabled, removed exported symbols are treated as errors
+# and there is binary compatibility between successive builds.
+
+CONFIG -= def_files_disabled
+
+!isEmpty(defFilePath) {
+ defBlock = \
+ "$${LITERAL_HASH}ifdef WINSCW" \
+ "DEFFILE $$defFilePath/bwins/$${TARGET}.def" \
+ "$${LITERAL_HASH}elif defined EABI" \
+ "DEFFILE $$defFilePath/eabi/$${TARGET}.def" \
+ "$${LITERAL_HASH}endif"
+
+ MMP_RULES += defBlock
+} else {
+ # If defFilePath is not defined, then put the folders containing the DEF files at the
+ # same level as the .pro (and generated MMP) file(s)
+ defBlock = \
+ "$${LITERAL_HASH}ifdef WINSCW" \
+ "DEFFILE ./bwins/$${TARGET}.def" \
+ "$${LITERAL_HASH}elif defined EABI" \
+ "DEFFILE ./eabi/$${TARGET}.def" \
+ "$${LITERAL_HASH}endif"
+
+ MMP_RULES += defBlock
+}
diff --git a/mkspecs/features/symbian/def_files_disabled.prf b/mkspecs/features/symbian/def_files_disabled.prf
new file mode 100644
index 0000000..d5c9505
--- /dev/null
+++ b/mkspecs/features/symbian/def_files_disabled.prf
@@ -0,0 +1,7 @@
+# With DEF files disabled, binary compatibility is broken every time you build
+
+CONFIG -= def_files
+
+# with EXPORTUNFROZEN enabled, new exports are included in the dll without
+# needing to run abld/sbs freeze
+MMP_RULES += EXPORTUNFROZEN
diff --git a/mkspecs/features/unix/opengl.prf b/mkspecs/features/unix/opengl.prf
index f2db819..74a5149 100644
--- a/mkspecs/features/unix/opengl.prf
+++ b/mkspecs/features/unix/opengl.prf
@@ -3,11 +3,6 @@ contains(QT_CONFIG, opengles1) {
!isEmpty(QMAKE_LIBDIR_OPENGL_ES1):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES1
target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1
else:LIBS += $$QMAKE_LIBS_OPENGL_ES1
-} else:contains(QT_CONFIG, opengles1cl) {
- INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1CL
- !isEmpty(QMAKE_LIBDIR_OPENGL_ES1CL):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES1CL
- target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1CL
- else:LIBS += $$QMAKE_LIBS_OPENGL_ES1CL
} else:contains(QT_CONFIG, opengles2) {
INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES2
!isEmpty(QMAKE_LIBDIR_OPENGL_ES2):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES2
diff --git a/mkspecs/unsupported/linux-host-g++/qmake.conf b/mkspecs/unsupported/linux-host-g++/qmake.conf
index 8a480c4..7b17789 100644
--- a/mkspecs/unsupported/linux-host-g++/qmake.conf
+++ b/mkspecs/unsupported/linux-host-g++/qmake.conf
@@ -88,8 +88,6 @@ QMAKE_INCDIR_OPENGL = /usr/X11R6/include
QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
QMAKE_INCDIR_OPENGL_ES1 = $$QMAKE_INCDIR_OPENGL
QMAKE_LIBDIR_OPENGL_ES1 = $$QMAKE_LIBDIR_OPENGL
-QMAKE_INCDIR_OPENGL_ES1CL = $$QMAKE_INCDIR_OPENGL
-QMAKE_LIBDIR_OPENGL_ES1CL = $$QMAKE_LIBDIR_OPENGL
QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL
QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL
QMAKE_INCDIR_EGL =
@@ -106,7 +104,6 @@ QMAKE_LIBS_EGL = -lEGL
QMAKE_LIBS_OPENGL = -lGLU -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_OPENGL_ES1 = -lGLES_CM
-QMAKE_LIBS_OPENGL_ES1CL = -lGLES_CL
QMAKE_LIBS_OPENGL_ES2 = -lGLESv2
QMAKE_LIBS_OPENVG = -lOpenVG
QMAKE_LIBS_THREAD = -lpthread
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index 0f5bdcd..b0a8011 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -1519,6 +1519,19 @@ MakefileGenerator::replaceExtraCompilerVariables(const QString &orig_var, const
base = fi.fileName();
val += base;
}
+ } else if(var == QLatin1String("QMAKE_FILE_EXT")) {
+ filePath = true;
+ for(int i = 0; i < in.size(); ++i) {
+ QFileInfo fi(fileInfo(Option::fixPathToLocalOS(in.at(i))));
+ QString ext;
+ // Ensure complementarity with QMAKE_FILE_BASE
+ int baseLen = fi.completeBaseName().length();
+ if(baseLen == 0)
+ ext = fi.fileName();
+ else
+ ext = fi.fileName().remove(0, baseLen);
+ val += ext;
+ }
} else if(var == QLatin1String("QMAKE_FILE_PATH") || var == QLatin1String("QMAKE_FILE_IN_PATH")) {
filePath = true;
for(int i = 0; i < in.size(); ++i)
@@ -1830,11 +1843,12 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
cleans.append(files);
}
}
- if(!cleans.isEmpty())
+ if(!cleans.isEmpty()) {
if (isForSymbian())
t << valGlue(cleans, "\n\t" + del_statement, " " NO_STDERR "\n\t" + del_statement, " " NO_STDERR);
else
t << valGlue(cleans, "\n\t" + del_statement, "\n\t" + del_statement, "");
+ }
if(!wrote_clean_cmds) {
for(QStringList::ConstIterator input = tmp_inputs.begin(); input != tmp_inputs.end(); ++input) {
t << "\n\t" << replaceExtraCompilerVariables(tmp_clean_cmds, (*input),
@@ -2541,6 +2555,7 @@ MakefileGenerator::writeSubTargets(QTextStream &t, QList<MakefileGenerator::SubT
QString ofile = Option::fixPathToTargetOS(fileFixify(Option::output.fileName()));
if(!ofile.isEmpty())
t << "\t-$(DEL_FILE) " << ofile << endl;
+ t << varGlue("QMAKE_DISTCLEAN","\t-$(DEL_FILE) "," ","\n");
} else if(project->isActiveConfig("no_empty_targets")) {
t << "\t" << "@cd ." << endl;
}
diff --git a/qmake/generators/makefiledeps.cpp b/qmake/generators/makefiledeps.cpp
index 40304a6..21e1273 100644
--- a/qmake/generators/makefiledeps.cpp
+++ b/qmake/generators/makefiledeps.cpp
@@ -397,7 +397,7 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
buffer = getBuffer(fst.st_size);
for(int have_read = 0;
(have_read = QT_READ(fd, buffer + buffer_len, fst.st_size - buffer_len));
- buffer_len += have_read);
+ buffer_len += have_read) ;
QT_CLOSE(fd);
}
if(!buffer)
@@ -418,22 +418,22 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
++x;
if(buffer_len >= x + 12 && !strncmp(buffer + x, "includehint", 11) &&
(*(buffer + x + 11) == ' ' || *(buffer + x + 11) == '>')) {
- for(x += 11; *(buffer + x) != '>'; ++x);
+ for(x += 11; *(buffer + x) != '>'; ++x) ;
int inc_len = 0;
- for(x += 1 ; *(buffer + x + inc_len) != '<'; ++inc_len);
+ for(x += 1 ; *(buffer + x + inc_len) != '<'; ++inc_len) ;
*(buffer + x + inc_len) = '\0';
inc = buffer + x;
} else if(buffer_len >= x + 13 && !strncmp(buffer + x, "customwidget", 12) &&
(*(buffer + x + 12) == ' ' || *(buffer + x + 12) == '>')) {
- for(x += 13; *(buffer + x) != '>'; ++x); //skip up to >
+ for(x += 13; *(buffer + x) != '>'; ++x) ; //skip up to >
while(x < buffer_len) {
- for(x++; *(buffer + x) != '<'; ++x); //skip up to <
+ for(x++; *(buffer + x) != '<'; ++x) ; //skip up to <
x++;
if(buffer_len >= x + 7 && !strncmp(buffer+x, "header", 6) &&
(*(buffer + x + 6) == ' ' || *(buffer + x + 6) == '>')) {
- for(x += 7; *(buffer + x) != '>'; ++x); //skip up to >
+ for(x += 7; *(buffer + x) != '>'; ++x) ; //skip up to >
int inc_len = 0;
- for(x += 1 ; *(buffer + x + inc_len) != '<'; ++inc_len);
+ for(x += 1 ; *(buffer + x + inc_len) != '<'; ++inc_len) ;
*(buffer + x + inc_len) = '\0';
inc = buffer + x;
break;
@@ -448,10 +448,10 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
for(x += 8; *(buffer + x) != '>'; ++x) {
if(buffer_len >= x + 9 && *(buffer + x) == 'i' &&
!strncmp(buffer + x, "impldecl", 8)) {
- for(x += 8; *(buffer + x) != '='; ++x);
+ for(x += 8; *(buffer + x) != '='; ++x) ;
if(*(buffer + x) != '=')
continue;
- for(++x; *(buffer+x) == '\t' || *(buffer+x) == ' '; ++x);
+ for(++x; *(buffer+x) == '\t' || *(buffer+x) == ' '; ++x) ;
char quote = 0;
if(*(buffer+x) == '\'' || *(buffer+x) == '"') {
quote = *(buffer + x);
@@ -475,13 +475,13 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
}
}
int inc_len = 0;
- for(x += 1 ; *(buffer + x + inc_len) != '<'; ++inc_len);
+ for(x += 1 ; *(buffer + x + inc_len) != '<'; ++inc_len) ;
*(buffer + x + inc_len) = '\0';
inc = buffer + x;
}
}
//read past new line now..
- for(; x < buffer_len && !qmake_endOfLine(*(buffer + x)); ++x);
+ for(; x < buffer_len && !qmake_endOfLine(*(buffer + x)); ++x) ;
++line_count;
} else if(file->type == QMakeSourceFileInfo::TYPE_QRC) {
} else if(file->type == QMakeSourceFileInfo::TYPE_C) {
@@ -494,7 +494,7 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
++x;
if(buffer_len >= x) {
if(*(buffer+x) == '/') { //c++ style comment
- for(; x < buffer_len && !qmake_endOfLine(*(buffer + x)); ++x);
+ for(; x < buffer_len && !qmake_endOfLine(*(buffer + x)); ++x) ;
beginning = 1;
} else if(*(buffer+x) == '*') { //c style comment
for(++x; x < buffer_len; ++x) {
@@ -558,7 +558,7 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
*(buffer+x+keyword_len) != '_') {
for(x+=keyword_len; //skip spaces after keyword
x < buffer_len && (*(buffer+x) == ' ' || *(buffer+x) == '\t');
- x++);
+ x++) ;
break;
} else if(qmake_endOfLine(*(buffer+x+keyword_len))) {
x += keyword_len-1;
@@ -579,7 +579,7 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
x++;
int inc_len;
- for(inc_len = 0; *(buffer + x + inc_len) != term && !qmake_endOfLine(*(buffer + x + inc_len)); ++inc_len);
+ for(inc_len = 0; *(buffer + x + inc_len) != term && !qmake_endOfLine(*(buffer + x + inc_len)); ++inc_len) ;
*(buffer + x + inc_len) = '\0';
inc = buffer + x;
x += inc_len;
@@ -594,7 +594,7 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
int msg_len;
for(msg_len = 0; (term && *(buffer + x + msg_len) != term) &&
- !qmake_endOfLine(*(buffer + x + msg_len)); ++msg_len);
+ !qmake_endOfLine(*(buffer + x + msg_len)); ++msg_len) ;
*(buffer + x + msg_len) = '\0';
debug_msg(0, "%s:%d %s -- %s", file->file.local().toLatin1().constData(), line_count, keyword, buffer+x);
x += msg_len;
@@ -706,7 +706,7 @@ bool QMakeSourceFileInfo::findMocs(SourceFile *file)
buffer = getBuffer(fst.st_size);
for(int have_read = buffer_len = 0;
(have_read = QT_READ(fd, buffer + buffer_len, fst.st_size - buffer_len));
- buffer_len += have_read);
+ buffer_len += have_read) ;
QT_CLOSE(fd);
}
@@ -720,7 +720,7 @@ bool QMakeSourceFileInfo::findMocs(SourceFile *file)
++x;
if(buffer_len >= x) {
if(*(buffer + x) == '/') { //c++ style comment
- for(;x < buffer_len && !qmake_endOfLine(*(buffer + x)); ++x);
+ for(;x < buffer_len && !qmake_endOfLine(*(buffer + x)); ++x) ;
} else if(*(buffer + x) == '*') { //c style comment
for(++x; x < buffer_len; ++x) {
if(*(buffer + x) == 't' || *(buffer + x) == 'q') { //ignore
diff --git a/qmake/generators/symbian/symmake.cpp b/qmake/generators/symbian/symmake.cpp
index 2c1ce18..13c4fd4 100644
--- a/qmake/generators/symbian/symmake.cpp
+++ b/qmake/generators/symbian/symmake.cpp
@@ -100,6 +100,11 @@
#define PRINT_FILE_CREATE_ERROR(filename) fprintf(stderr, "Error: Could not create '%s'\n", qPrintable(filename));
+#define MANUFACTURER_NOTE_FILE "manufacturer_note.txt"
+#define DEFAULT_MANUFACTURER_NOTE \
+ "The package is not supported for devices from this manufacturer. Please try the selfsigned " \
+ "version of the package instead."
+
QString SymbianMakefileGenerator::fixPathForMmp(const QString& origPath, const QDir& parentDir)
{
static QString epocRootStr;
@@ -233,7 +238,9 @@ bool SymbianMakefileGenerator::writeMakefile(QTextStream &t)
QString wrapperFileName("Makefile");
QString outputFileName = fileInfo(Option::output.fileName()).fileName();
if (outputFileName != BLD_INF_FILENAME) {
- wrapperFileName.append(".").append((outputFileName.size() > BLD_INF_FILENAME_LEN && outputFileName.left(BLD_INF_FILENAME_LEN) == BLD_INF_FILENAME) ? outputFileName.mid(8) : outputFileName);
+ wrapperFileName.append(".").append(outputFileName.startsWith(BLD_INF_FILENAME)
+ ? outputFileName.mid(sizeof(BLD_INF_FILENAME))
+ : outputFileName);
isPrimaryMakefile = false;
}
@@ -267,7 +274,7 @@ bool SymbianMakefileGenerator::writeMakefile(QTextStream &t)
writeMmpFile(mmpFilename, symbianLangCodes);
if (targetType == TypeExe) {
- if (!project->values("CONFIG").contains("no_icon", Qt::CaseInsensitive)) {
+ if (!project->isActiveConfig("no_icon")) {
writeRegRssFile(userRssRules);
writeRssFile(numberOfIcons, iconFile);
writeLocFile(symbianLangCodes);
@@ -360,6 +367,17 @@ void SymbianMakefileGenerator::generatePkgFile(const QString &iconFile, Deployme
t << endl;
}
+ // Begin Manufacturer block
+ if (!project->values("DEPLOYMENT.manufacturers").isEmpty()) {
+ QString manufacturerStr("IF ");
+ foreach(QString manufacturer, project->values("DEPLOYMENT.manufacturers")) {
+ manufacturerStr.append(QString("(MANUFACTURER)=(%1) OR \n ").arg(manufacturer));
+ }
+ // Remove the final OR
+ manufacturerStr.chop(8);
+ t << manufacturerStr << endl;
+ }
+
// Install paths on the phone *** should be dynamic at some point
QString installPathBin = "!:\\sys\\bin";
QString installPathResource = "!:\\resource\\apps";
@@ -381,7 +399,7 @@ void SymbianMakefileGenerator::generatePkgFile(const QString &iconFile, Deployme
.arg(exeFile) << endl;
// deploy rsc & reg_rsc file
- if (!project->values("CONFIG").contains("no_icon", Qt::CaseInsensitive)) {
+ if (!project->isActiveConfig("no_icon")) {
t << QString("\"%1epoc32/data/z/resource/apps/%2\" - \"%3\\%4\"")
.arg(epocRoot())
.arg(fixedTarget + ".rsc")
@@ -434,6 +452,30 @@ void SymbianMakefileGenerator::generatePkgFile(const QString &iconFile, Deployme
t << endl;
}
}
+
+ // Close Manufacturer block
+ if (!project->values("DEPLOYMENT.manufacturers").isEmpty()) {
+ QString manufacturerFailNoteFile;
+ if (project->values("DEPLOYMENT.manufacturers.fail_note").isEmpty()) {
+ manufacturerFailNoteFile = QString("%1_" MANUFACTURER_NOTE_FILE).arg(uid3);
+ QFile ft(manufacturerFailNoteFile);
+ if (ft.open(QIODevice::WriteOnly)) {
+ generatedFiles << ft.fileName();
+ QTextStream t2(&ft);
+
+ t2 << QString(DEFAULT_MANUFACTURER_NOTE) << endl;
+ } else {
+ PRINT_FILE_CREATE_ERROR(manufacturerFailNoteFile)
+ }
+ } else {
+ manufacturerFailNoteFile = project->values("DEPLOYMENT.manufacturers.fail_note").join("");
+ }
+
+ t << "ELSEIF NOT(0) ; MANUFACTURER" << endl
+ << "\"" << fileInfo(manufacturerFailNoteFile).absoluteFilePath() << "\""
+ << " - \"\", FILETEXT, TEXTEXIT" << endl
+ << "ENDIF ; MANUFACTURER" << endl;
+ }
}
bool SymbianMakefileGenerator::containsStartWithItem(const QChar &c, const QStringList& src)
@@ -450,7 +492,7 @@ bool SymbianMakefileGenerator::containsStartWithItem(const QChar &c, const QStri
void SymbianMakefileGenerator::writeCustomDefFile()
{
- if (targetType == TypePlugin && !project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive)) {
+ if (targetType == TypePlugin && !project->isActiveConfig("stdbinary")) {
// Create custom def file for plugin
QFile ft(QLatin1String(PLUGIN_COMMON_DEF_FILE_ACTUAL));
@@ -515,9 +557,9 @@ void SymbianMakefileGenerator::init()
targetType = TypeExe;
else if ((project->values("TEMPLATE")).contains("lib")) {
// Check CONFIG to see if we are to build staticlib or dll
- if (project->values("CONFIG").contains("staticlib") || project->values("CONFIG").contains("static"))
+ if (project->isActiveConfig("staticlib") || project->isActiveConfig("static"))
targetType = TypeLib;
- else if (project->values("CONFIG").contains("plugin"))
+ else if (project->isActiveConfig("plugin"))
targetType = TypePlugin;
else
targetType = TypeDll;
@@ -527,7 +569,7 @@ void SymbianMakefileGenerator::init()
if (0 != project->values("TARGET.UID2").size()) {
uid2 = project->first("TARGET.UID2");
- } else if (project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive)) {
+ } else if (project->isActiveConfig("stdbinary")) {
uid2 = "0x20004C45";
} else {
if (targetType == TypeExe) {
@@ -794,7 +836,7 @@ void SymbianMakefileGenerator::writeMmpFile(QString &filename, QStringList &symb
}
t << endl;
- if (!project->values("CONFIG").contains("static") && !project->values("CONFIG").contains("staticlib")) {
+ if (!project->isActiveConfig("static") && !project->isActiveConfig("staticlib")) {
writeMmpFileLibraryPart(t);
}
@@ -847,7 +889,7 @@ void SymbianMakefileGenerator::writeMmpFileTargetPart(QTextStream& t)
if (targetType == TypeExe) {
t << MMP_TARGET "\t\t" << fixedTarget << ".exe" << endl;
if (!skipTargetType) {
- if (project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive))
+ if (project->isActiveConfig("stdbinary"))
t << MMP_TARGETTYPE "\t\tSTDEXE" << endl;
else
t << MMP_TARGETTYPE "\t\tEXE" << endl;
@@ -855,7 +897,7 @@ void SymbianMakefileGenerator::writeMmpFileTargetPart(QTextStream& t)
} else if (targetType == TypeDll || targetType == TypePlugin) {
t << MMP_TARGET "\t\t" << fixedTarget << ".dll" << endl;
if (!skipTargetType) {
- if (project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive))
+ if (project->isActiveConfig("stdbinary"))
t << MMP_TARGETTYPE "\t\tSTDDLL" << endl;
else
t << MMP_TARGETTYPE "\t\tDLL" << endl;
@@ -863,7 +905,7 @@ void SymbianMakefileGenerator::writeMmpFileTargetPart(QTextStream& t)
} else if (targetType == TypeLib) {
t << MMP_TARGET "\t\t" << fixedTarget << ".lib" << endl;
if (!skipTargetType) {
- if (project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive))
+ if (project->isActiveConfig("stdbinary"))
t << MMP_TARGETTYPE "\t\tSTDLIB" << endl;
else
t << MMP_TARGETTYPE "\t\tLIB" << endl;
@@ -899,7 +941,7 @@ void SymbianMakefileGenerator::writeMmpFileTargetPart(QTextStream& t)
if (0 != project->values("TARGET.EPOCALLOWDLLDATA").size())
t << MMP_EPOCALLOWDLLDATA << endl;
- if (targetType == TypePlugin && !project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive)) {
+ if (targetType == TypePlugin && !project->isActiveConfig("stdbinary")) {
// Use custom def file for Qt plugins
t << "DEFFILE " PLUGIN_COMMON_DEF_FILE_FOR_MMP << endl;
}
@@ -915,7 +957,7 @@ void SymbianMakefileGenerator::writeMmpFileTargetPart(QTextStream& t)
void SymbianMakefileGenerator::writeMmpFileResourcePart(QTextStream& t, QStringList &symbianLangCodes)
{
if ((targetType == TypeExe) &&
- !project->values("CONFIG").contains("no_icon", Qt::CaseInsensitive)) {
+ !project->isActiveConfig("no_icon")) {
QString locTarget = fixedTarget;
locTarget.append(".rss");
@@ -1273,7 +1315,7 @@ void SymbianMakefileGenerator::writeBldInfContent(QTextStream &t, bool addDeploy
// Add project mmps and old style extension makefiles
QString mmpTag;
- if (project->values("CONFIG").contains("symbian_test", Qt::CaseInsensitive))
+ if (project->isActiveConfig("symbian_test"))
mmpTag = QLatin1String(BLD_INF_TAG_TESTMMPFILES);
else
mmpTag = QLatin1String(BLD_INF_TAG_MMPFILES);
@@ -1520,7 +1562,7 @@ void SymbianMakefileGenerator::readRssRules(QString &numberOfIcons, QString &ico
if (!numberOfIcons.isEmpty()) {
bool ok;
numberOfIcons = numberOfIcons.simplified();
- int tmp = numberOfIcons.toInt(&ok);
+ numberOfIcons.toInt(&ok);
if (!ok) {
numberOfIcons.clear();
iconFile.clear();
diff --git a/qmake/generators/symbian/symmake_abld.cpp b/qmake/generators/symbian/symmake_abld.cpp
index 9954783..26dd3fd 100644
--- a/qmake/generators/symbian/symmake_abld.cpp
+++ b/qmake/generators/symbian/symmake_abld.cpp
@@ -172,7 +172,7 @@ void SymbianAbldMakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, bool
releasePlatforms.removeAll("winscw"); // No release for emulator
QString testClause;
- if (project->values("CONFIG").contains("symbian_test", Qt::CaseInsensitive))
+ if (project->isActiveConfig("symbian_test"))
testClause = QLatin1String(" test");
else
testClause = QLatin1String("");
diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp
index 5adf30d..e081b19 100644
--- a/qmake/generators/symbian/symmake_sbsv2.cpp
+++ b/qmake/generators/symbian/symmake_sbsv2.cpp
@@ -106,7 +106,7 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo
releasePlatforms.removeAll("winscw"); // No release for emulator
QString testClause;
- if (project->values("CONFIG").contains("symbian_test", Qt::CaseInsensitive))
+ if (project->isActiveConfig("symbian_test"))
testClause = QLatin1String(".test");
else
testClause = QLatin1String("");
diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp
index efdf8ac..9d3b4c6 100644
--- a/qmake/generators/win32/winmakefile.cpp
+++ b/qmake/generators/win32/winmakefile.cpp
@@ -467,11 +467,12 @@ void Win32MakefileGenerator::processRcFileVar()
resFile.replace(".rc", Option::res_ext);
project->values("RES_FILE").prepend(fileInfo(resFile).fileName());
- if (!project->values("OBJECTS_DIR").isEmpty())
+ if (!project->values("OBJECTS_DIR").isEmpty()) {
if(project->isActiveConfig("staticlib"))
project->values("RES_FILE").first().prepend(fileInfo(project->values("DESTDIR").first()).absoluteFilePath() + Option::dir_sep);
else
project->values("RES_FILE").first().prepend(project->values("OBJECTS_DIR").first() + Option::dir_sep);
+ }
project->values("RES_FILE").first() = Option::fixPathToTargetOS(project->values("RES_FILE").first(), false, false);
project->values("POST_TARGETDEPS") += project->values("RES_FILE");
project->values("CLEAN_FILES") += project->values("RES_FILE");
diff --git a/qmake/meta.cpp b/qmake/meta.cpp
index 1c71d60..5b36682 100644
--- a/qmake/meta.cpp
+++ b/qmake/meta.cpp
@@ -119,10 +119,11 @@ QMakeMetaInfo::findLib(QString lib)
}
}
}
- if(ret.isNull())
+ if(ret.isNull()) {
debug_msg(2, "QMakeMetaInfo: Cannot find info file for %s", lib.toLatin1().constData());
- else
+ } else {
debug_msg(2, "QMakeMetaInfo: Found info file %s for %s", ret.toLatin1().constData(), lib.toLatin1().constData());
+ }
return ret;
}
diff --git a/qmake/option.cpp b/qmake/option.cpp
index 4eb14e2..5e06721 100644
--- a/qmake/option.cpp
+++ b/qmake/option.cpp
@@ -644,8 +644,8 @@ Option::fixString(QString string, uchar flags)
string = string.replace('/', Option::dir_sep).replace('\\', Option::dir_sep);
}
- if (string.startsWith("\"") && string.endsWith("\"") ||
- string.startsWith("\'") && string.endsWith("\'"))
+ if ((string.startsWith("\"") && string.endsWith("\"")) ||
+ (string.startsWith("\'") && string.endsWith("\'")))
string = string.mid(1, string.length()-2);
//cache
diff --git a/qmake/project.cpp b/qmake/project.cpp
index c2e033e..4ce8ba4 100644
--- a/qmake/project.cpp
+++ b/qmake/project.cpp
@@ -3067,7 +3067,7 @@ QStringList &QMakeProject::values(const QString &_var, QMap<QString, QStringList
place[var] = QStringList(pfile);
} else if(var == QLatin1String("_PRO_FILE_PWD_")) {
var = ".BUILTIN." + var;
- place[var] = QStringList(QFileInfo(pfile).absolutePath());
+ place[var] = QStringList(pfile.isEmpty() ? qmake_getpwd() : QFileInfo(pfile).absolutePath());
} else if(var == QLatin1String("_QMAKE_CACHE_")) {
var = ".BUILTIN." + var;
if(Option::mkfile::do_cache)
diff --git a/src/3rdparty/phonon/mmf/environmentalreverb.cpp b/src/3rdparty/phonon/mmf/environmentalreverb.cpp
index 89f8d60..4a6ce29 100644
--- a/src/3rdparty/phonon/mmf/environmentalreverb.cpp
+++ b/src/3rdparty/phonon/mmf/environmentalreverb.cpp
@@ -140,55 +140,75 @@ bool EnvironmentalReverb::getParameters(CMdaAudioOutputStream *stream,
TUint32 umin, umax;
// DecayHFRatio
+ // Ratio of high-frequency decay time to the value specified by
+ // DecayTime.
effect->DecayHFRatioRange(umin, umax);
parameters.append(createParameter(
DecayHFRatio, tr("Decay HF ratio (%)"), effect->DecayHFRatio(),
umin, umax));
// DecayTime
+ // Time over which reverberation is diminished.
effect->DecayTimeRange(umin, umax);
parameters.append(createParameter(
DecayTime, tr("Decay time (ms)"), effect->DecayTime(),
umin, umax));
// Density
+ // Delay between first and subsequent reflections.
+ // Note that the S60 platform documentation does not make clear
+ // the distinction between this value and the Diffusion value.
parameters.append(createParameter(
Density, tr("Density (%)"), effect->Density(), 0, 100));
// Diffusion
+ // Delay between first and subsequent reflections.
+ // Note that the S60 platform documentation does not make clear
+ // the distinction between this value and the Density value.
parameters.append(createParameter(
Diffusion, tr("Diffusion (%)"), effect->Diffusion(), 0, 100));
// ReflectionsDelay
+ // Amount of delay between the arrival the direct path from the
+ // source and the arrival of the first reflection.
parameters.append(createParameter(
ReflectionsDelay, tr("Reflections delay (ms)"),
effect->ReflectionsDelay(), 0, effect->ReflectionsDelayMax()));
// ReflectionsLevel
- effect->ReflectionLevelRange(min, max);
+ // Amplitude of reflections. This value is corrected by the RoomLevel
+ // to give the final reflection amplitude.
+ effect->ReflectionLevelRange(min, max);
parameters.append(createParameter(
ReflectionsLevel, tr("Reflections level (mB)"),
effect->ReflectionsLevel(),
min, max, EffectParameter::LogarithmicHint));
// ReverbDelay
+ // Amount of time between arrival of the first reflection and start of
+ // the late reverberation.
parameters.append(createParameter(
ReverbDelay, tr("Reverb delay (ms)"), effect->ReverbDelay(),
0, effect->ReverbDelayMax()));
// ReverbLevel
+ // Amplitude of reverberations. This value is corrected by the
+ // RoomLevel to give the final reverberation amplitude.
effect->ReverbLevelRange(min, max);
parameters.append(createParameter(
ReverbLevel, tr("Reverb level (mB)"), effect->ReverbLevel(),
min, max, EffectParameter::LogarithmicHint));
// RoomHFLevel
+ // Amplitude of low-pass filter used to attenuate the high frequency
+ // component of reflected sound.
effect->RoomHFLevelRange(min, max);
parameters.append(createParameter(
RoomHFLevel, tr("Room HF level"), effect->RoomHFLevel(),
min, max));
// RoomLevel
+ // Master volume control for all reflected sound.
effect->RoomLevelRange(min, max);
parameters.append(createParameter(
RoomLevel, tr("Room level (mB)"), effect->RoomLevel(),
diff --git a/src/3rdparty/phonon/mmf/utils.h b/src/3rdparty/phonon/mmf/utils.h
index 56ccafc..acad55a 100644
--- a/src/3rdparty/phonon/mmf/utils.h
+++ b/src/3rdparty/phonon/mmf/utils.h
@@ -44,7 +44,7 @@ enum PanicCode {
class Utils
{
- Q_DECLARE_TR_FUNCTIONS(Utils)
+ Q_DECLARE_TR_FUNCTIONS(Phonon::MMF)
public:
/**
diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION
index 9dd9377..c304876 100644
--- a/src/3rdparty/webkit/VERSION
+++ b/src/3rdparty/webkit/VERSION
@@ -8,4 +8,4 @@ The commit imported was from the
and has the sha1 checksum
- e15bd5454732bab9ffff4e1e5a755f41fd4e2eff
+ 69dd29fbeb12d076741dce70ac6bc155101ccd6f
diff --git a/src/3rdparty/webkit/WebCore/ChangeLog b/src/3rdparty/webkit/WebCore/ChangeLog
index 8e1c965..18d119a 100644
--- a/src/3rdparty/webkit/WebCore/ChangeLog
+++ b/src/3rdparty/webkit/WebCore/ChangeLog
@@ -1,3 +1,97 @@
+2010-02-01 Andreas Kling <andreas.kling@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Use the fallback style on Maemo 5
+
+ https://bugs.webkit.org/show_bug.cgi?id=34376
+
+ * platform/qt/RenderThemeQt.cpp:
+ (WebCore::RenderThemeQt::RenderThemeQt):
+ (WebCore::RenderThemeQt::fallbackStyle):
+ (WebCore::RenderThemeQt::qStyle):
+ (WebCore::RenderThemeQt::setPaletteFromPageClientIfExists):
+ * platform/qt/RenderThemeQt.h:
+
+2010-01-29 Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Speed up the WebCore::String -> QString conversion
+
+ Use QString(const QChar *, int len) constructor instead of QString::fromUtf16 to
+ avoid BOM checks and byteswapping.
+
+ * bridge/qt/qt_class.cpp:
+ (JSC::Bindings::QtClass::fieldNamed):
+ * bridge/qt/qt_runtime.cpp:
+ (JSC::Bindings::convertValueToQVariant):
+
+2010-01-14 Andreas Kling <andreas.kling@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Enable scrolling optimization for pages with embedded widgets
+
+ https://bugs.webkit.org/show_bug.cgi?id=33373
+
+ Added a basic manual test for scrolling of embedded QWidgets.
+
+ * manual-tests/qt/qtplugin-scrolling.html: Added.
+ * platform/ScrollView.cpp:
+ (WebCore::ScrollView::scrollContents):
+ (WebCore::ScrollView::setParent):
+ * platform/ScrollView.h:
+ * platform/qt/ScrollViewQt.cpp:
+ (WebCore::ScrollView::platformInit):
+ (WebCore::ScrollView::platformAddChild):
+ (WebCore::ScrollView::platformRemoveChild):
+ * plugins/qt/PluginViewQt.cpp:
+ (WebCore::PluginView::updatePluginWidget):
+ (WebCore::PluginView::invalidateRect):
+
+2010-01-29 Laszlo Gombos <laszlo.1.gombos@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Turn off websocket support by default for Qt 4.6.x
+ https://bugs.webkit.org/show_bug.cgi?id=34284
+
+ * WebCore.pro:
+
+2010-01-26 Holger Hans Peter Freyther <zecke@selfish.org>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] JavaScript prompt is currently broken.
+ https://bugs.webkit.org/show_bug.cgi?id=30914
+
+ Remove the manual test case in favor of an automated
+ test case in WebKit/qt/tests/qwebpage.
+
+ * manual-tests/qt/java-script-prompt.html: Removed.
+
+2010-01-25 Janne Koskinen <janne.p.koskinen@digia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Phone backup support for QtWebkit for Symbian devices.
+ https://bugs.webkit.org/show_bug.cgi?id=34077
+
+ * WebCore.pro:
+
+2010-01-21 Thiago Macieira <thiago.macieira@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Fix incorrect dependency to QtXmlPatterns in generated include/QtWebKit/QtWebKit header
+
+ The generated file includes QtXmlPatterns/QtXmlPatterns, which is neither used/required by
+ the public QtWebKit API nor will it be available if Qt is configured with -no-xmlpatterns.
+
+ * WebCore.pro: Trick syncqt to believe that xmlpatterns is not a dependency, so that it's not
+ included in the generated file. It'll still be used and linked to with this trick.
+
2010-01-17 Srinidhi Shreedhara <srinidhi.shreedhara@nokia.com>
Reviewed by Simon Hausmann.
diff --git a/src/3rdparty/webkit/WebCore/WebCore.pro b/src/3rdparty/webkit/WebCore/WebCore.pro
index 04aba62..7b0366d 100644
--- a/src/3rdparty/webkit/WebCore/WebCore.pro
+++ b/src/3rdparty/webkit/WebCore/WebCore.pro
@@ -6,6 +6,7 @@ symbian: {
TARGET.EPOCALLOWDLLDATA=1
TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 // Min 128kB, Max 32MB
TARGET.CAPABILITY = All -Tcb
+ TARGET.UID3 = 0x200267C2
webkitlibs.sources = QtWebKit.dll
webkitlibs.path = /sys/bin
@@ -18,9 +19,11 @@ symbian: {
" "
webkitlibs.pkg_prerules = vendorinfo
- DEPLOYMENT += webkitlibs
+ webkitbackup.sources = ../WebKit/qt/symbian/backup_registration.xml
+ webkitbackup.path = /private/10202D56/import/packages/$$replace(TARGET.UID3, 0x,)
+
+ DEPLOYMENT += webkitlibs webkitbackup
- TARGET.UID3 = 0x200267C2
# RO text (code) section in qtwebkit.dll exceeds allocated space for gcce udeb target.
# Move RW-section base address to start from 0xE00000 instead of the toolchain default 0x400000.
MMP_RULES += "LINKEROPTION armcc --rw-base 0xE00000"
@@ -183,7 +186,7 @@ contains(DEFINES, ENABLE_SINGLE_THREADED=1) {
}
# Web Socket support.
-!contains(DEFINES, ENABLE_WEB_SOCKETS=.): DEFINES += ENABLE_WEB_SOCKETS=1
+!contains(DEFINES, ENABLE_WEB_SOCKETS=.): DEFINES += ENABLE_WEB_SOCKETS=0
# XSLT support with QtXmlPatterns
!contains(DEFINES, ENABLE_XSLT=.) {
@@ -2780,7 +2783,7 @@ unix:!mac:CONFIG += link_pkgconfig
contains(DEFINES, ENABLE_XSLT=1) {
FEATURE_DEFINES_JAVASCRIPT += ENABLE_XSLT=1
- QT += xmlpatterns
+ tobe|!tobe: QT += xmlpatterns
SOURCES += \
bindings/js/JSXSLTProcessorConstructor.cpp \
@@ -3415,14 +3418,8 @@ CONFIG(QTDIR_build):isEqual(QT_MAJOR_VERSION, 4):greaterThan(QT_MINOR_VERSION, 4
symbian {
shared {
- contains(MMP_RULES, defBlock) {
- MMP_RULES -= defBlock
-
- MMP_RULES += "$${LITERAL_HASH}ifdef WINSCW" \
- "DEFFILE ../WebKit/qt/symbian/bwins/$${TARGET}.def" \
- "$${LITERAL_HASH}elif defined EABI" \
- "DEFFILE ../WebKit/qt/symbian/eabi/$${TARGET}.def" \
- "$${LITERAL_HASH}endif"
+ contains(CONFIG, def_files) {
+ defFilePath=../WebKit/qt/symbian
}
}
}
diff --git a/src/3rdparty/webkit/WebCore/bridge/qt/qt_class.cpp b/src/3rdparty/webkit/WebCore/bridge/qt/qt_class.cpp
index c39b3af..09a1544 100644
--- a/src/3rdparty/webkit/WebCore/bridge/qt/qt_class.cpp
+++ b/src/3rdparty/webkit/WebCore/bridge/qt/qt_class.cpp
@@ -127,7 +127,7 @@ Field* QtClass::fieldNamed(const Identifier& identifier, Instance* instance) con
QObject* obj = qtinst->getObject();
UString ustring = identifier.ustring();
- QString objName(QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size()));
+ QString objName((const QChar*)ustring.rep()->data(), ustring.size());
QByteArray ba = objName.toAscii();
// First check for a cached field
diff --git a/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp b/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp
index 6887325..ee7aa1a 100644
--- a/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp
+++ b/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp
@@ -305,7 +305,7 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
return QString();
} else {
UString ustring = value.toString(exec);
- ret = QVariant(QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size()));
+ ret = QVariant(QString((const QChar*)ustring.rep()->data(), ustring.size()));
if (type == String)
dist = 0;
else
@@ -329,7 +329,7 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
QVariant v = convertValueToQVariant(exec, val, QMetaType::Void, &objdist, visitedObjects);
if (objdist >= 0) {
UString ustring = (*it).ustring();
- QString id = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size());
+ QString id = QString((const QChar*)ustring.rep()->data(), ustring.size());
result.insert(id, v);
}
}
@@ -404,7 +404,7 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
for (int i = 0; i < len; ++i) {
JSValue val = rtarray->getConcreteArray()->valueAt(exec, i);
UString ustring = val.toString(exec);
- QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size());
+ QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size());
result.append(qstring);
}
@@ -418,7 +418,7 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
for (int i = 0; i < len; ++i) {
JSValue val = array->get(exec, i);
UString ustring = val.toString(exec);
- QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size());
+ QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size());
result.append(qstring);
}
@@ -427,7 +427,7 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
} else {
// Make a single length array
UString ustring = value.toString(exec);
- QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size());
+ QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size());
QStringList result;
result.append(qstring);
ret = QVariant(result);
@@ -443,7 +443,7 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
dist = 0;
} else {
UString ustring = value.toString(exec);
- ret = QVariant(QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size()).toLatin1());
+ ret = QVariant(QString((const QChar*)ustring.rep()->data(), ustring.size()).toLatin1());
if (type == String)
dist = 5;
else
@@ -485,7 +485,7 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
}
} else if (type == String) {
UString ustring = value.toString(exec);
- QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size());
+ QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size());
if (hint == QMetaType::QDateTime) {
QDateTime dt = QDateTime::fromString(qstring, Qt::ISODate);
@@ -534,7 +534,7 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
*/
// Attempt to convert.. a bit risky
UString ustring = value.toString(exec);
- QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size());
+ QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size());
// this is of the form '/xxxxxx/i'
int firstSlash = qstring.indexOf(QLatin1Char('/'));
@@ -554,7 +554,7 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
}
} else if (type == String) {
UString ustring = value.toString(exec);
- QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size());
+ QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size());
QRegExp re(qstring);
if (re.isValid()) {
diff --git a/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.cpp b/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.cpp
index 12edc42..d270e37 100644
--- a/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.cpp
+++ b/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.cpp
@@ -216,7 +216,6 @@
#include "JSWebKitCSSTransformValue.h"
#include "JSWebKitPoint.h"
#include "JSWebKitTransitionEvent.h"
-#include "JSWebSocket.h"
#include "JSWheelEvent.h"
#include "JSWorker.h"
#include "JSXMLHttpRequest.h"
@@ -247,7 +246,7 @@ ASSERT_CLASS_FITS_IN_CELL(JSDOMWindow);
/* Hash table */
-static const HashTableValue JSDOMWindowTableValues[297] =
+static const HashTableValue JSDOMWindowTableValues[296] =
{
{ "screen", DontDelete|ReadOnly, (intptr_t)jsDOMWindowScreen, (intptr_t)0 },
{ "history", DontDelete|ReadOnly, (intptr_t)jsDOMWindowHistory, (intptr_t)0 },
@@ -540,7 +539,6 @@ static const HashTableValue JSDOMWindowTableValues[297] =
{ "MessageChannel", DontDelete, (intptr_t)jsDOMWindowMessageChannelConstructor, (intptr_t)setJSDOMWindowMessageChannelConstructor },
{ "Worker", DontDelete, (intptr_t)jsDOMWindowWorkerConstructor, (intptr_t)setJSDOMWindowWorkerConstructor },
{ "SharedWorker", DontDelete, (intptr_t)jsDOMWindowSharedWorkerConstructor, (intptr_t)setJSDOMWindowSharedWorkerConstructor },
- { "WebSocket", DontDelete, (intptr_t)jsDOMWindowWebSocketConstructor, (intptr_t)setJSDOMWindowWebSocketConstructor },
{ "Plugin", DontDelete, (intptr_t)jsDOMWindowPluginConstructor, (intptr_t)setJSDOMWindowPluginConstructor },
{ "PluginArray", DontDelete, (intptr_t)jsDOMWindowPluginArrayConstructor, (intptr_t)setJSDOMWindowPluginArrayConstructor },
{ "MimeType", DontDelete, (intptr_t)jsDOMWindowMimeTypeConstructor, (intptr_t)setJSDOMWindowMimeTypeConstructor },
@@ -588,7 +586,7 @@ static JSC_CONST_HASHTABLE HashTable JSDOMWindowTable =
#if ENABLE(PERFECT_HASH_SIZE)
{ 65535, JSDOMWindowTableValues, 0 };
#else
- { 1068, 1023, JSDOMWindowTableValues, 0 };
+ { 1067, 1023, JSDOMWindowTableValues, 0 };
#endif
/* Hash table for prototype */
@@ -3275,14 +3273,6 @@ JSValue jsDOMWindowSharedWorkerConstructor(ExecState* exec, const Identifier&, c
return castedThis->sharedWorker(exec);
}
-JSValue jsDOMWindowWebSocketConstructor(ExecState* exec, const Identifier&, const PropertySlot& slot)
-{
- JSDOMWindow* castedThis = static_cast<JSDOMWindow*>(asObject(slot.slotBase()));
- if (!castedThis->allowsAccessFrom(exec))
- return jsUndefined();
- return castedThis->webSocket(exec);
-}
-
JSValue jsDOMWindowPluginConstructor(ExecState* exec, const Identifier&, const PropertySlot& slot)
{
JSDOMWindow* castedThis = static_cast<JSDOMWindow*>(asObject(slot.slotBase()));
@@ -5678,14 +5668,6 @@ void setJSDOMWindowSharedWorkerConstructor(ExecState* exec, JSObject* thisObject
static_cast<JSDOMWindow*>(thisObject)->putDirect(Identifier(exec, "SharedWorker"), value);
}
-void setJSDOMWindowWebSocketConstructor(ExecState* exec, JSObject* thisObject, JSValue value)
-{
- if (!static_cast<JSDOMWindow*>(thisObject)->allowsAccessFrom(exec))
- return;
- // Shadowing a built-in constructor
- static_cast<JSDOMWindow*>(thisObject)->putDirect(Identifier(exec, "WebSocket"), value);
-}
-
void setJSDOMWindowPluginConstructor(ExecState* exec, JSObject* thisObject, JSValue value)
{
if (!static_cast<JSDOMWindow*>(thisObject)->allowsAccessFrom(exec))
diff --git a/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.h b/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.h
index afc8106..5a087e7 100644
--- a/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.h
+++ b/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.h
@@ -82,7 +82,6 @@ public:
JSC::JSValue messageChannel(JSC::ExecState*) const;
JSC::JSValue worker(JSC::ExecState*) const;
JSC::JSValue sharedWorker(JSC::ExecState*) const;
- JSC::JSValue webSocket(JSC::ExecState*) const;
JSC::JSValue audio(JSC::ExecState*) const;
// Custom functions
@@ -679,8 +678,6 @@ JSC::JSValue jsDOMWindowWorkerConstructor(JSC::ExecState*, const JSC::Identifier
void setJSDOMWindowWorkerConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue);
JSC::JSValue jsDOMWindowSharedWorkerConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&);
void setJSDOMWindowSharedWorkerConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue);
-JSC::JSValue jsDOMWindowWebSocketConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&);
-void setJSDOMWindowWebSocketConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue);
JSC::JSValue jsDOMWindowPluginConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&);
void setJSDOMWindowPluginConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue);
JSC::JSValue jsDOMWindowPluginArrayConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&);
diff --git a/src/3rdparty/webkit/WebCore/platform/PopupMenu.h b/src/3rdparty/webkit/WebCore/platform/PopupMenu.h
index 2315f02..c150a94 100644
--- a/src/3rdparty/webkit/WebCore/platform/PopupMenu.h
+++ b/src/3rdparty/webkit/WebCore/platform/PopupMenu.h
@@ -44,6 +44,9 @@ typedef struct HBITMAP__* HBITMAP;
namespace WebCore {
class QWebPopup;
}
+QT_BEGIN_NAMESPACE
+class QGraphicsProxyWidget;
+QT_END_NAMESPACE
#elif PLATFORM(GTK)
typedef struct _GtkMenu GtkMenu;
typedef struct _GtkMenuItem GtkMenuItem;
@@ -147,6 +150,7 @@ private:
void clear();
void populate(const IntRect&);
QWebPopup* m_popup;
+ QGraphicsProxyWidget* m_proxy;
#elif PLATFORM(WIN)
// ScrollBarClient
virtual void valueChanged(Scrollbar*);
diff --git a/src/3rdparty/webkit/WebCore/platform/ScrollView.cpp b/src/3rdparty/webkit/WebCore/platform/ScrollView.cpp
index ee8726a..e67daf9 100644
--- a/src/3rdparty/webkit/WebCore/platform/ScrollView.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/ScrollView.cpp
@@ -507,7 +507,7 @@ void ScrollView::scrollContents(const IntSize& scrollDelta)
hostWindow()->repaint(panScrollIconDirtyRect, true);
}
- if (canBlitOnScroll() && !rootPreventsBlitting()) { // The main frame can just blit the WebView window
+ if (canBlitOnScroll()) { // The main frame can just blit the WebView window
// FIXME: Find a way to blit subframes without blitting overlapping content
hostWindow()->scroll(-scrollDelta, scrollViewRect, clipRect);
} else {
@@ -597,14 +597,6 @@ void ScrollView::setParent(ScrollView* parentView)
if (m_scrollbarsAvoidingResizer && parent())
parent()->adjustScrollbarsAvoidingResizerCount(-m_scrollbarsAvoidingResizer);
-#if PLATFORM(QT)
- if (m_widgetsPreventingBlitting && parent())
- parent()->adjustWidgetsPreventingBlittingCount(-m_widgetsPreventingBlitting);
-
- if (m_widgetsPreventingBlitting && parentView)
- parentView->adjustWidgetsPreventingBlittingCount(m_widgetsPreventingBlitting);
-#endif
-
Widget::setParent(parentView);
if (m_scrollbarsAvoidingResizer && parent())
diff --git a/src/3rdparty/webkit/WebCore/platform/ScrollView.h b/src/3rdparty/webkit/WebCore/platform/ScrollView.h
index 1950a54..5dacff5 100644
--- a/src/3rdparty/webkit/WebCore/platform/ScrollView.h
+++ b/src/3rdparty/webkit/WebCore/platform/ScrollView.h
@@ -305,16 +305,6 @@ private:
NSScrollView<WebCoreFrameScrollView>* scrollView() const;
#endif
-#if PLATFORM(QT)
-public:
- void adjustWidgetsPreventingBlittingCount(int delta);
-private:
- bool rootPreventsBlitting() const { return root()->m_widgetsPreventingBlitting > 0; }
- unsigned m_widgetsPreventingBlitting;
-#else
- bool rootPreventsBlitting() const { return false; }
-#endif
-
#if PLATFORM(GTK)
public:
void setGtkAdjustments(GtkAdjustment* hadj, GtkAdjustment* vadj);
diff --git a/src/3rdparty/webkit/WebCore/platform/qt/PopupMenuQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/PopupMenuQt.cpp
index f6ec4f7..714cac9 100644
--- a/src/3rdparty/webkit/WebCore/platform/qt/PopupMenuQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/qt/PopupMenuQt.cpp
@@ -1,6 +1,7 @@
/*
* This file is part of the popup menu implementation for <select> elements in WebCore.
*
+ * Copyright (C) 2009 Girish Ramakrishnan <girish@forwardbias.in>
* Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
* Copyright (C) 2006 Apple Computer, Inc.
* Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com
@@ -35,6 +36,10 @@
#include <QAction>
#include <QDebug>
+#include <QGraphicsProxyWidget>
+#include <QGraphicsScene>
+#include <QGraphicsView>
+#include <QGraphicsWebView>
#include <QListWidget>
#include <QListWidgetItem>
#include <QMenu>
@@ -46,13 +51,17 @@ namespace WebCore {
PopupMenu::PopupMenu(PopupMenuClient* client)
: m_popupClient(client)
+ , m_proxy(0)
{
m_popup = new QWebPopup(client);
}
PopupMenu::~PopupMenu()
{
- delete m_popup;
+ // If we create a proxy, then the deletion of the proxy and the
+ // combo will be done by the proxy's parent (QGraphicsWebView)
+ if (!m_proxy)
+ delete m_popup;
}
void PopupMenu::clear()
@@ -92,8 +101,18 @@ void PopupMenu::show(const IntRect& r, FrameView* v, int index)
rect.moveTopLeft(v->contentsToWindow(r.topLeft()));
rect.setHeight(m_popup->sizeHint().height());
- m_popup->setParent(client->ownerWidget());
- m_popup->setGeometry(rect);
+ if (QGraphicsView* view = qobject_cast<QGraphicsView*>(client->ownerWidget())) {
+ if (!m_proxy) {
+ m_proxy = new QGraphicsProxyWidget(qobject_cast<QGraphicsWebView*>(client->pluginParent()));
+ m_proxy->setWidget(m_popup);
+ } else
+ m_proxy->setVisible(true);
+ m_proxy->setGeometry(rect);
+ } else {
+ m_popup->setParent(client->ownerWidget());
+ m_popup->setGeometry(rect);
+ }
+
m_popup->setCurrentIndex(index);
m_popup->exec();
}
diff --git a/src/3rdparty/webkit/WebCore/platform/qt/QWebPopup.cpp b/src/3rdparty/webkit/WebCore/platform/qt/QWebPopup.cpp
index d077079..48bca19 100644
--- a/src/3rdparty/webkit/WebCore/platform/qt/QWebPopup.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/qt/QWebPopup.cpp
@@ -26,6 +26,7 @@
#include <QApplication>
#include <QInputContext>
#include <QMouseEvent>
+#include <QGraphicsProxyWidget>
namespace WebCore {
@@ -35,7 +36,9 @@ QWebPopup::QWebPopup(PopupMenuClient* client)
{
Q_ASSERT(m_client);
+#if !defined(Q_WS_S60) && !defined(Q_WS_MAEMO_5)
setFont(m_client->menuStyle().font().font());
+#endif
connect(this, SIGNAL(activated(int)),
SLOT(activeChanged(int)), Qt::QueuedConnection);
}
@@ -43,9 +46,16 @@ QWebPopup::QWebPopup(PopupMenuClient* client)
void QWebPopup::exec()
{
+ // QCursor::pos() is not a great idea for a touch screen, but we don't need the coordinates
+ // as comboboxes with Qt on Maemo 5 come up in their full width on the screen.
+ // On the other platforms it's okay to use QCursor::pos().
+#if defined(Q_WS_MAEMO_5)
+ showPopup();
+#else
QMouseEvent event(QEvent::MouseButtonPress, QCursor::pos(), Qt::LeftButton,
Qt::LeftButton, Qt::NoModifier);
QCoreApplication::sendEvent(this, &event);
+#endif
}
void QWebPopup::showPopup()
@@ -67,6 +77,10 @@ void QWebPopup::hidePopup()
}
QComboBox::hidePopup();
+
+ if (QGraphicsProxyWidget* proxy = graphicsProxyWidget())
+ proxy->setVisible(false);
+
if (!m_popupVisible)
return;
diff --git a/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp
index 501a28b..6a1eee8 100644
--- a/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp
@@ -125,7 +125,6 @@ PassRefPtr<RenderTheme> RenderTheme::themeForPage(Page* page)
RenderThemeQt::RenderThemeQt(Page* page)
: RenderTheme()
, m_page(page)
- , m_fallbackStyle(0)
{
QPushButton button;
button.setAttribute(Qt::WA_MacSmallSize);
@@ -135,6 +134,8 @@ RenderThemeQt::RenderThemeQt(Page* page)
#ifdef Q_WS_MAC
m_buttonFontPixelSize = fontInfo.pixelSize();
#endif
+
+ m_fallbackStyle = QStyleFactory::create(QLatin1String("windows"));
}
RenderThemeQt::~RenderThemeQt()
@@ -143,19 +144,17 @@ RenderThemeQt::~RenderThemeQt()
}
// for some widget painting, we need to fallback to Windows style
-QStyle* RenderThemeQt::fallbackStyle()
+QStyle* RenderThemeQt::fallbackStyle() const
{
- if (!m_fallbackStyle)
- m_fallbackStyle = QStyleFactory::create(QLatin1String("windows"));
-
- if (!m_fallbackStyle)
- m_fallbackStyle = QApplication::style();
-
- return m_fallbackStyle;
+ return (m_fallbackStyle) ? m_fallbackStyle : QApplication::style();
}
QStyle* RenderThemeQt::qStyle() const
{
+#ifdef Q_WS_MAEMO_5
+ return fallbackStyle();
+#endif
+
if (m_page) {
ChromeClientQt* client = static_cast<ChromeClientQt*>(m_page->chrome()->client());
@@ -758,6 +757,10 @@ ControlPart RenderThemeQt::applyTheme(QStyleOption& option, RenderObject* o) con
if (result == RadioPart || result == CheckboxPart)
option.state |= (isChecked(o) ? QStyle::State_On : QStyle::State_Off);
+#ifdef Q_WS_MAEMO_5
+ static QPalette lightGrayPalette(Qt::lightGray);
+ option.palette = lightGrayPalette;
+#else
// If the owner widget has a custom palette, use it
Page* page = o->document()->page();
if (page) {
@@ -766,6 +769,7 @@ ControlPart RenderThemeQt::applyTheme(QStyleOption& option, RenderObject* o) con
if (pageClient)
option.palette = pageClient->palette();
}
+#endif
return result;
}
diff --git a/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.h b/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.h
index 617c875..19337ac 100644
--- a/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.h
+++ b/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.h
@@ -138,7 +138,7 @@ private:
void setPopupPadding(RenderStyle*) const;
QStyle* qStyle() const;
- QStyle* fallbackStyle();
+ QStyle* fallbackStyle() const;
Page* m_page;
diff --git a/src/3rdparty/webkit/WebCore/platform/qt/ScrollViewQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/ScrollViewQt.cpp
index ccbd751..17ad253 100644
--- a/src/3rdparty/webkit/WebCore/platform/qt/ScrollViewQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/qt/ScrollViewQt.cpp
@@ -36,32 +36,19 @@ namespace WebCore {
void ScrollView::platformInit()
{
- m_widgetsPreventingBlitting = 0;
}
void ScrollView::platformDestroy()
{
}
-// Windowed plugins are using native windows and are thus preventing
-// us from doing any kind of scrolling optimization.
-
-void ScrollView::adjustWidgetsPreventingBlittingCount(int delta)
-{
- m_widgetsPreventingBlitting += delta;
- if (parent())
- parent()->adjustWidgetsPreventingBlittingCount(delta);
-}
-
void ScrollView::platformAddChild(Widget*)
{
- adjustWidgetsPreventingBlittingCount(1);
}
void ScrollView::platformRemoveChild(Widget* child)
{
child->hide();
- adjustWidgetsPreventingBlittingCount(-1);
}
}
diff --git a/src/3rdparty/webkit/WebCore/plugins/qt/PluginViewQt.cpp b/src/3rdparty/webkit/WebCore/plugins/qt/PluginViewQt.cpp
index e61736b..476ab8a 100644
--- a/src/3rdparty/webkit/WebCore/plugins/qt/PluginViewQt.cpp
+++ b/src/3rdparty/webkit/WebCore/plugins/qt/PluginViewQt.cpp
@@ -126,6 +126,10 @@ void PluginView::updatePluginWidget()
// scroll, we need to move/resize immediately.
if (!m_windowRect.intersects(frameView->frameRect()))
setNPWindowIfNeeded();
+
+ // Make sure we get repainted afterwards. This is necessary for downward
+ // scrolling to move the plugin widget properly.
+ invalidate();
}
void PluginView::setFocus()
@@ -657,7 +661,8 @@ NPError PluginView::getValue(NPNVariable variable, void* value)
void PluginView::invalidateRect(const IntRect& rect)
{
if (m_isWindowed) {
- platformWidget()->update(rect);
+ if (platformWidget())
+ platformWidget()->update(rect);
return;
}
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp
index 29bde0d..e4c2afc 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp
@@ -1369,6 +1369,11 @@ void QWebFrame::print(QPrinter *printer) const
// paranoia check
fromPage = qMax(1, fromPage);
toPage = qMin(printContext.pageCount(), toPage);
+ if (toPage < fromPage) {
+ // if the user entered a page range outside the actual number
+ // of printable pages, just return
+ return;
+ }
if (printer->pageOrder() == QPrinter::LastPageFirst) {
int tmp = fromPage;
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp
index 1d4b46f..79538ff 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp
@@ -57,6 +57,106 @@ void QWebViewPrivate::_q_pageDestroyed()
view->setPage(0);
}
+#ifdef Q_WS_MAEMO_5
+#include "qabstractkineticscroller.h"
+
+class QWebViewKineticScroller : public QAbstractKineticScroller {
+public:
+ QWebViewKineticScroller() : QAbstractKineticScroller() {}
+ // remember the frame where the button was pressed
+ bool eventFilter(QObject* o, QEvent* ev)
+ {
+ switch (ev->type()) {
+ case QEvent::MouseButtonPress: {
+ QWebFrame* hitFrame = scrollingFrameAt(static_cast<QMouseEvent*>(ev)->pos());
+ if (hitFrame)
+ m_frame = hitFrame;
+ break;
+ }
+ default:
+ break;
+ }
+ return QAbstractKineticScroller::eventFilter(o, ev);
+ }
+
+protected:
+ QWebFrame* currentFrame() const
+ {
+ if (!m_frame.isNull())
+ return m_frame.data();
+
+ QWebView* view = static_cast<QWebView*>(widget());
+ QWebFrame* frame = view->page()->mainFrame();
+ return frame;
+ }
+
+ // Returns the innermost frame at the given position that can scroll.
+ QWebFrame* scrollingFrameAt(const QPoint& pos) const
+ {
+ QWebView* view = static_cast<QWebView*>(widget());
+ QWebFrame* mainFrame = view->page()->mainFrame();
+ QWebFrame* hitFrame = mainFrame->hitTestContent(pos).frame();
+ QSize range = hitFrame->contentsSize() - hitFrame->geometry().size();
+
+ while (hitFrame && range.width() <= 1 && range.height() <= 1)
+ hitFrame = hitFrame->parentFrame();
+
+ return hitFrame;
+ }
+
+ void attachToWidget()
+ {
+ QWebView* view = static_cast<QWebView*>(widget());
+ QWebFrame* mainFrame = view->page()->mainFrame();
+ m_oldHorizontalScrollBarPolicy = mainFrame->scrollBarPolicy(Qt::Horizontal);
+ m_oldVerticalScrollBarPolicy = mainFrame->scrollBarPolicy(Qt::Vertical);
+ mainFrame->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
+ mainFrame->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);
+ view->installEventFilter(this);
+ }
+
+ void removeFromWidget()
+ {
+ QWebView* view = static_cast<QWebView*>(widget());
+ view->removeEventFilter(this);
+ QWebFrame* mainFrame = view->page()->mainFrame();
+ mainFrame->setScrollBarPolicy(Qt::Vertical, m_oldVerticalScrollBarPolicy);
+ mainFrame->setScrollBarPolicy(Qt::Horizontal, m_oldHorizontalScrollBarPolicy);
+ }
+
+ QRect positionRange() const
+ {
+ QRect r;
+ QWebFrame* frame = currentFrame();
+ r.setSize(frame->contentsSize() - frame->geometry().size());
+ return r;
+ }
+
+ QPoint position() const
+ {
+ QWebFrame* frame = currentFrame();
+ return frame->scrollPosition();
+ }
+
+ QSize viewportSize() const
+ {
+ return static_cast<QWebView*>(widget())->page()->viewportSize();
+ }
+
+ void setPosition(const QPoint& point, const QPoint& /* overShootDelta */)
+ {
+ QWebFrame* frame = currentFrame();
+ frame->setScrollPosition(point);
+ }
+
+ QPointer<QWebFrame> m_frame;
+ Qt::ScrollBarPolicy m_oldVerticalScrollBarPolicy;
+ Qt::ScrollBarPolicy m_oldHorizontalScrollBarPolicy;
+};
+
+#endif // Q_WS_MAEMO_5
+
+
/*!
\class QWebView
\since 4.4
@@ -153,6 +253,10 @@ QWebView::QWebView(QWidget *parent)
setAttribute(Qt::WA_InputMethodEnabled);
#endif
+#if defined(Q_WS_MAEMO_5)
+ QAbstractKineticScroller* scroller = new QWebViewKineticScroller();
+ scroller->setWidget(this);
+#endif
setAcceptDrops(true);
setMouseTracking(true);
diff --git a/src/3rdparty/webkit/WebKit/qt/ChangeLog b/src/3rdparty/webkit/WebKit/qt/ChangeLog
index ee555f3..1026ac5 100644
--- a/src/3rdparty/webkit/WebKit/qt/ChangeLog
+++ b/src/3rdparty/webkit/WebKit/qt/ChangeLog
@@ -1,3 +1,107 @@
+2010-01-28 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ Reviewed by Simon Hausmann.
+
+ Do not set the combobox font on Maemo5 and S60; use the
+ default instead.
+
+ * WebCoreSupport/QtFallbackWebPopup.cpp:
+ (WebCore::QtFallbackWebPopup::populate):
+
+2010-01-28 Andreas Kling <andreas.kling@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Support kinetic scrolling on Maemo 5
+
+ https://bugs.webkit.org/show_bug.cgi?id=34267
+
+ Patch by Ralf Engels <ralf.engels@nokia.com> and
+ Robert Griebl <rgriebl@trolltech.com>
+
+ * Api/qwebview.cpp:
+ (QWebViewKineticScroller::QWebViewKineticScroller):
+ (QWebViewKineticScroller::eventFilter):
+ (QWebViewKineticScroller::currentFrame):
+ (QWebViewKineticScroller::scrollingFrameAt):
+ (QWebViewKineticScroller::attachToWidget):
+ (QWebViewKineticScroller::removeFromWidget):
+ (QWebViewKineticScroller::positionRange):
+ (QWebViewKineticScroller::position):
+ (QWebViewKineticScroller::viewportSize):
+ (QWebViewKineticScroller::setPosition):
+ (QWebView::QWebView):
+
+2010-01-29 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ Reviewed by Simon Hausmann
+
+ Disable auto-uppercase and predictive text on Maemo5, just like the
+ build-in MicroB Browser.
+
+ * WebCoreSupport/EditorClientQt.cpp:
+ (WebCore::EditorClientQt::setInputMethodState):
+
+2010-01-28 Trond Kjernåsen <trond@trolltech.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Fix for endless print loop when printing web pages
+
+ * Api/qwebframe.cpp:
+ (QWebFrame::print):
+
+2010-01-26 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Show comboboxes on Maemo 5
+ https://bugs.webkit.org/show_bug.cgi?id=34088
+
+ Don't try to show the combobox by simulating a mouse event from QCursor::pos() to
+ get the combobox position right. The position on Maemo 5 is independent from the mouse
+ and there's no QCursor::pos().
+
+ * WebCoreSupport/QtFallbackWebPopup.cpp:
+ (WebCore::QtFallbackWebPopup::show):
+
+2010-01-26 Holger Hans Peter Freyther <zecke@selfish.org>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] JavaScript prompt is currently broken
+ https://bugs.webkit.org/show_bug.cgi?id=30914
+
+ In r52152 a patch was landed to convert a null QString
+ to an empty WebCore::String in case the prompt was accepted
+ but the default implementation returned the null QString.
+
+ The patch tried to avoid assign to result twice and
+ was not checking the QString if it is null but the default
+ value. This lead to always returning an empty string on
+ successful prompts. Fix it by checking the variable 'x'
+ for isNull.
+
+ The manual test case used didn't cover the case of non
+ empty input, replace it with an automatic test case that
+ should cover all cases.
+
+ * WebCoreSupport/ChromeClientQt.cpp:
+ (WebCore::ChromeClientQt::runJavaScriptPrompt): Fix the bug.
+ * tests/qwebpage/tst_qwebpage.cpp: Add automatic test case
+ (JSPromptPage::JSPromptPage):
+ (JSPromptPage::javaScriptPrompt):
+ (tst_QWebPage::testJSPrompt):
+
+2010-01-25 Janne Koskinen <janne.p.koskinen@digia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Phone backup support for QtWebkit for Symbian devices.
+ https://bugs.webkit.org/show_bug.cgi?id=34077
+
+ * symbian/backup_registration.xml: Added.
+
2009-11-19 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
index c5d2792..0c5df4a 100644
--- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
@@ -281,7 +281,7 @@ bool ChromeClientQt::runJavaScriptPrompt(Frame* f, const String& message, const
// Fix up a quirk in the QInputDialog class. If no input happened the string should be empty
// but it is null. See https://bugs.webkit.org/show_bug.cgi?id=30914.
- if (rc && result.isNull())
+ if (rc && x.isNull())
result = String("");
else
result = x;
diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
index 34241f0..2d1a1eb 100644
--- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
@@ -615,7 +615,12 @@ void EditorClientQt::setInputMethodState(bool active)
}
}
webPageClient->setInputMethodHint(Qt::ImhHiddenText, isPasswordField);
-#endif
+#ifdef Q_WS_MAEMO_5
+ // Maemo 5 MicroB Browser disables auto-uppercase and predictive text, thus, so do we.
+ webPageClient->setInputMethodHint(Qt::ImhNoAutoUppercase, true);
+ webPageClient->setInputMethodHint(Qt::ImhNoPredictiveText, true);
+#endif // Q_WS_MAEMO_5
+#endif // QT_VERSION check
webPageClient->setInputMethodEnabled(active);
}
emit m_page->microFocusChanged();
diff --git a/src/3rdparty/webkit/WebKit/qt/symbian/backup_registration.xml b/src/3rdparty/webkit/WebKit/qt/symbian/backup_registration.xml
new file mode 100644
index 0000000..e026140
--- /dev/null
+++ b/src/3rdparty/webkit/WebKit/qt/symbian/backup_registration.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" standalone="yes"?>
+<backup_registration>
+ <system_backup/>
+ <restore requires_reboot = "no"/>
+</backup_registration>
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
index ee1969d..0e04acc 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
@@ -1,6 +1,7 @@
/*
Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
Copyright (C) 2009 Girish Ramakrishnan <girish@forwardbias.in>
+ Copyright (C) 2010 Holger Hans Peter Freyther
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
@@ -154,6 +155,7 @@ private slots:
void screenshot();
void originatingObjectInNetworkRequests();
+ void testJSPrompt();
private:
QWebView* m_view;
@@ -1781,5 +1783,72 @@ void tst_QWebPage::originatingObjectInNetworkRequests()
#endif
}
+/**
+ * Test fixups for https://bugs.webkit.org/show_bug.cgi?id=30914
+ *
+ * From JS we test the following conditions.
+ *
+ * OK + QString() => SUCCESS, empty string (but not null)
+ * OK + "text" => SUCCESS, "text"
+ * CANCEL + QString() => CANCEL, null string
+ * CANCEL + "text" => CANCEL, null string
+ */
+class JSPromptPage : public QWebPage {
+ Q_OBJECT
+public:
+ JSPromptPage()
+ {}
+
+ bool javaScriptPrompt(QWebFrame* frame, const QString& msg, const QString& defaultValue, QString* result)
+ {
+ if (msg == QLatin1String("test1")) {
+ *result = QString();
+ return true;
+ } else if (msg == QLatin1String("test2")) {
+ *result = QLatin1String("text");
+ return true;
+ } else if (msg == QLatin1String("test3")) {
+ *result = QString();
+ return false;
+ } else if (msg == QLatin1String("test4")) {
+ *result = QLatin1String("text");
+ return false;
+ }
+
+ qFatal("Unknown msg.");
+ return QWebPage::javaScriptPrompt(frame, msg, defaultValue, result);
+ }
+};
+
+void tst_QWebPage::testJSPrompt()
+{
+ JSPromptPage page;
+ bool res;
+
+ // OK + QString()
+ res = page.mainFrame()->evaluateJavaScript(
+ "var retval = prompt('test1');"
+ "retval=='' && retval.length == 0;").toBool();
+ QVERIFY(res);
+
+ // OK + "text"
+ res = page.mainFrame()->evaluateJavaScript(
+ "var retval = prompt('test2');"
+ "retval=='text' && retval.length == 4;").toBool();
+ QVERIFY(res);
+
+ // Cancel + QString()
+ res = page.mainFrame()->evaluateJavaScript(
+ "var retval = prompt('test3');"
+ "retval===null;").toBool();
+ QVERIFY(res);
+
+ // Cancel + "text"
+ res = page.mainFrame()->evaluateJavaScript(
+ "var retval = prompt('test4');"
+ "retval===null;").toBool();
+ QVERIFY(res);
+}
+
QTEST_MAIN(tst_QWebPage)
#include "tst_qwebpage.moc"
diff --git a/src/corelib/animation/qabstractanimation.cpp b/src/corelib/animation/qabstractanimation.cpp
index f5a9d16..f834a80 100644
--- a/src/corelib/animation/qabstractanimation.cpp
+++ b/src/corelib/animation/qabstractanimation.cpp
@@ -306,8 +306,6 @@ void QUnifiedTimer::registerRunningAnimation(QAbstractAnimation *animation)
return;
if (QAbstractAnimationPrivate::get(animation)->isPause) {
- if (animation->duration() == -1)
- qDebug() << "toto";
runningPauseAnimations << animation;
} else
runningLeafAnimations++;
diff --git a/src/corelib/codecs/qutfcodec.cpp b/src/corelib/codecs/qutfcodec.cpp
index f7d3b06..7655c51 100644
--- a/src/corelib/codecs/qutfcodec.cpp
+++ b/src/corelib/codecs/qutfcodec.cpp
@@ -326,11 +326,11 @@ QString QUtf16::convertToUnicode(const char *chars, int len, QTextCodec::Convert
ch.setCell(*chars++);
}
if (!headerdone) {
+ headerdone = true;
if (endian == DetectEndianness) {
- if (ch == QChar::ByteOrderSwapped && endian != BigEndianness) {
+ if (ch == QChar::ByteOrderSwapped) {
endian = LittleEndianness;
- } else if (ch == QChar::ByteOrderMark && endian != LittleEndianness) {
- // ignore BOM
+ } else if (ch == QChar::ByteOrderMark) {
endian = BigEndianness;
} else {
if (QSysInfo::ByteOrder == QSysInfo::BigEndian) {
@@ -344,7 +344,6 @@ QString QUtf16::convertToUnicode(const char *chars, int len, QTextCodec::Convert
} else if (ch != QChar::ByteOrderMark) {
*qch++ = ch;
}
- headerdone = true;
} else {
*qch++ = ch;
}
diff --git a/src/corelib/corelib.pro b/src/corelib/corelib.pro
index 9a15bf1..7f33791 100644
--- a/src/corelib/corelib.pro
+++ b/src/corelib/corelib.pro
@@ -35,4 +35,6 @@ symbian: {
# Workaroud for problems with paging this dll
MMP_RULES -= PAGED
MMP_RULES *= UNPAGED
+ # Timezone server
+ LIBS += -ltzclient
}
diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h
index 38e1886..177bee4 100644
--- a/src/corelib/global/qnamespace.h
+++ b/src/corelib/global/qnamespace.h
@@ -497,6 +497,9 @@ public:
WA_WState_AcceptedTouchBeginEvent = 122,
WA_TouchPadAcceptSingleTouchEvents = 123,
+ WA_MergeSoftkeys = 124,
+ WA_MergeSoftkeysRecursively = 125,
+
// Add new attributes before this line
WA_AttributeCount
};
diff --git a/src/corelib/global/qnamespace.qdoc b/src/corelib/global/qnamespace.qdoc
index 871dd5c..6627c76 100644
--- a/src/corelib/global/qnamespace.qdoc
+++ b/src/corelib/global/qnamespace.qdoc
@@ -524,11 +524,11 @@
receiver are in the same thread. Same as QueuedConnection,
if the emitter and receiver are in different threads.
- \value DirectConnection
+ \value DirectConnection
The slot is invoked immediately, when the signal is
emitted.
- \value QueuedConnection
+ \value QueuedConnection
The slot is invoked when control returns to the event loop
of the receiver's thread. The slot is executed in the
receiver's thread.
@@ -1243,6 +1243,17 @@
\value WA_TouchPadAcceptSingleTouchEvents Allows touchpad single
touch events to be sent to the widget.
+ \value WA_MergeSoftkeys Allows widget to merge softkeys with parent widget,
+ i.e. widget can set only one softkeys and request softkey implementation
+ to take rest of the softkeys from the parent. Note parents are traversed until
+ WA_MergeSoftkeys is not set. See also Qt::WA_MergeSoftkeysRecursively
+ This attribute currently has effect only on Symbian platforms
+
+ \value WA_MergeSoftkeysRecursively Allows widget to merge softkeys recursively
+ with all parents. If this attribute is set, the widget parents are traversed until
+ window boundary (widget without parent or dialog) is found.
+ This attribute currently has effect only on Symbian platforms
+
\omitvalue WA_SetLayoutDirection
\omitvalue WA_InputMethodTransparent
\omitvalue WA_WState_CompressKeys
diff --git a/src/corelib/io/qdatastream.cpp b/src/corelib/io/qdatastream.cpp
index 27f7632..7c1887e 100644
--- a/src/corelib/io/qdatastream.cpp
+++ b/src/corelib/io/qdatastream.cpp
@@ -571,6 +571,7 @@ void QDataStream::setByteOrder(ByteOrder bo)
\value Qt_4_4 Version 10 (Qt 4.4)
\value Qt_4_5 Version 11 (Qt 4.5)
\value Qt_4_6 Version 12 (Qt 4.6)
+ \value Qt_4_7 Same as Qt_4_6.
\sa setVersion(), version()
*/
diff --git a/src/corelib/io/qdebug.h b/src/corelib/io/qdebug.h
index 1c68716..bc68599 100644
--- a/src/corelib/io/qdebug.h
+++ b/src/corelib/io/qdebug.h
@@ -83,7 +83,7 @@ public:
if(stream->message_output) {
QT_TRY {
qt_message_output(stream->type, stream->buffer.toLocal8Bit().data());
- } QT_CATCH(std::bad_alloc) { /* We're out of memory - give up. */ }
+ } QT_CATCH(std::bad_alloc&) { /* We're out of memory - give up. */ }
}
delete stream;
}
diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp
index dc7f17e..f5d803e 100644
--- a/src/corelib/io/qdir.cpp
+++ b/src/corelib/io/qdir.cpp
@@ -52,13 +52,13 @@
#include "qregexp.h"
#include "qvector.h"
#include "qalgorithms.h"
+#include "qvarlengtharray.h"
+
#ifdef QT_BUILD_CORE_LIB
-# include "qresource.h"
+# include "qresource.h"
+# include "private/qcoreglobaldata_p.h"
#endif
-#include "qvarlengtharray.h"
-
-#include "private/qcoreglobaldata_p.h"
#include <stdlib.h>
QT_BEGIN_NAMESPACE
@@ -83,12 +83,10 @@ static QString driveSpec(const QString &path)
//************* QDirPrivate
class QDirPrivate
{
- QDir *q_ptr;
- Q_DECLARE_PUBLIC(QDir)
-
friend struct QScopedPointerDeleter<QDirPrivate>;
-protected:
- QDirPrivate(QDir*, const QDir *copy=0);
+
+public:
+ QDirPrivate(const QDir *copy = 0);
~QDirPrivate();
QString initFileEngine(const QString &file);
@@ -96,7 +94,6 @@ protected:
void updateFileLists() const;
void sortFileList(QDir::SortFlags, QFileInfoList &, QStringList *, QFileInfoList *) const;
-private:
#ifdef QT3_SUPPORT
QChar filterSepChar;
bool matchAllDirs;
@@ -109,28 +106,30 @@ private:
sep = QChar(QLatin1Char(' '));
return sep;
}
- static inline QStringList splitFilters(const QString &nameFilter, QChar sep=0) {
- if(sep == 0)
+ static inline QStringList splitFilters(const QString &nameFilter, QChar sep = 0) {
+ if (sep == 0)
sep = getFilterSepChar(nameFilter);
QStringList ret = nameFilter.split(sep);
- for(int i = 0; i < ret.count(); i++)
+ for (int i = 0; i < ret.count(); ++i)
ret[i] = ret[i].trimmed();
return ret;
}
struct Data {
inline Data()
- : ref(1), fileEngine(0)
- { clear(); }
+ : ref(1), fileEngine(0), listsDirty(1)
+ {}
inline Data(const Data &copy)
: ref(1), path(copy.path), nameFilters(copy.nameFilters), sort(copy.sort),
- filters(copy.filters), fileEngine(0)
- { clear(); }
+ filters(copy.filters), fileEngine(0), listsDirty(1)
+ {}
inline ~Data()
{ delete fileEngine; }
inline void clear() {
listsDirty = 1;
+ files.clear();
+ fileInfos.clear();
}
mutable QAtomicInt ref;
@@ -147,7 +146,6 @@ private:
} *data;
inline void setPath(const QString &p)
{
- detach(false);
QString path = p;
if ((path.endsWith(QLatin1Char('/')) || path.endsWith(QLatin1Char('\\')))
&& path.length() > 1) {
@@ -156,12 +154,9 @@ private:
#endif
path.truncate(path.length() - 1);
}
- if(!data->fileEngine || !QDir::isRelativePath(path))
- path = initFileEngine(path);
- data->fileEngine->setFileName(path);
+
// set the path to be the qt friendly version so then we can operate on it using just /
- data->path = data->fileEngine->fileName(QAbstractFileEngine::DefaultName);
- data->clear();
+ data->path = initFileEngine(path);
}
inline void reset() {
detach();
@@ -170,18 +165,16 @@ private:
void detach(bool createFileEngine = true);
};
-QDirPrivate::QDirPrivate(QDir *qq, const QDir *copy) : q_ptr(qq)
+QDirPrivate::QDirPrivate(const QDir *copy)
#ifdef QT3_SUPPORT
- , filterSepChar(0)
- , matchAllDirs(false)
+ : filterSepChar(0), matchAllDirs(false)
#endif
{
- if(copy) {
+ if (copy) {
copy->d_func()->data->ref.ref();
data = copy->d_func()->data;
} else {
data = new QDirPrivate::Data;
- data->clear();
}
}
@@ -190,18 +183,19 @@ QDirPrivate::~QDirPrivate()
if (!data->ref.deref())
delete data;
data = 0;
- q_ptr = 0;
}
/* For sorting */
-struct QDirSortItem {
+struct QDirSortItem
+{
mutable QString filename_cache;
mutable QString suffix_cache;
QFileInfo item;
};
-class QDirSortItemComparator {
+class QDirSortItemComparator
+{
int qt_cmp_si_sort_flags;
public:
QDirSortItemComparator(int flags) : qt_cmp_si_sort_flags(flags) {}
@@ -240,7 +234,7 @@ bool QDirSortItemComparator::operator()(const QDirSortItem &n1, const QDirSortIt
f2->suffix_cache = ic ? f2->item.suffix().toLower()
: f2->item.suffix();
- r = qt_cmp_si_sort_flags & QDir::LocaleAware
+ r = qt_cmp_si_sort_flags & QDir::LocaleAware
? f1->suffix_cache.localeAwareCompare(f2->suffix_cache)
: f1->suffix_cache.compare(f2->suffix_cache);
}
@@ -260,7 +254,7 @@ bool QDirSortItemComparator::operator()(const QDirSortItem &n1, const QDirSortIt
f2->filename_cache = ic ? f2->item.fileName().toLower()
: f2->item.fileName();
- r = qt_cmp_si_sort_flags & QDir::LocaleAware
+ r = qt_cmp_si_sort_flags & QDir::LocaleAware
? f1->filename_cache.localeAwareCompare(f2->filename_cache)
: f1->filename_cache.compare(f2->filename_cache);
}
@@ -274,16 +268,13 @@ bool QDirSortItemComparator::operator()(const QDirSortItem &n1, const QDirSortIt
inline void QDirPrivate::sortFileList(QDir::SortFlags sort, QFileInfoList &l,
QStringList *names, QFileInfoList *infos) const
{
- if(names)
- names->clear();
- if(infos)
- infos->clear();
+ // names and infos are always empty lists or 0 here
int n = l.size();
- if(n > 0) {
+ if (n > 0) {
if (n == 1 || (sort & QDir::SortByMask) == QDir::Unsorted) {
- if(infos)
+ if (infos)
*infos = l;
- if(names) {
+ if (names) {
for (int i = 0; i < n; ++i)
names->append(l.at(i).fileName());
}
@@ -291,13 +282,13 @@ inline void QDirPrivate::sortFileList(QDir::SortFlags sort, QFileInfoList &l,
QScopedArrayPointer<QDirSortItem> si(new QDirSortItem[n]);
for (int i = 0; i < n; ++i)
si[i].item = l.at(i);
- qSort(si.data(), si.data()+n, QDirSortItemComparator(sort));
+ qSort(si.data(), si.data() + n, QDirSortItemComparator(sort));
// put them back in the list(s)
- if(infos) {
+ if (infos) {
for (int i = 0; i < n; ++i)
infos->append(si[i].item);
}
- if(names) {
+ if (names) {
for (int i = 0; i < n; ++i)
names->append(si[i].item.fileName());
}
@@ -307,7 +298,7 @@ inline void QDirPrivate::sortFileList(QDir::SortFlags sort, QFileInfoList &l,
inline void QDirPrivate::updateFileLists() const
{
- if(data->listsDirty) {
+ if (data->listsDirty) {
QFileInfoList l;
QDirIterator it(data->path, data->nameFilters, data->filters);
while (it.hasNext()) {
@@ -319,12 +310,11 @@ inline void QDirPrivate::updateFileLists() const
}
}
-QString QDirPrivate::initFileEngine(const QString &path)
+inline QString QDirPrivate::initFileEngine(const QString &path)
{
detach(false);
- delete data->fileEngine;
- data->fileEngine = 0;
data->clear();
+ delete data->fileEngine;
data->fileEngine = QAbstractFileEngine::create(path);
return data->fileEngine->fileName(QAbstractFileEngine::DefaultName);
}
@@ -520,8 +510,7 @@ void QDirPrivate::detach(bool createFileEngine)
\sa currentPath()
*/
-
-QDir::QDir(const QString &path) : d_ptr(new QDirPrivate(this))
+QDir::QDir(const QString &path) : d_ptr(new QDirPrivate)
{
Q_D(QDir);
d->setPath(path.isEmpty() ? QString::fromLatin1(".") : path);
@@ -548,18 +537,17 @@ QDir::QDir(const QString &path) : d_ptr(new QDirPrivate(this))
\sa exists(), setPath(), setNameFilter(), setFilter(), setSorting()
*/
-
QDir::QDir(const QString &path, const QString &nameFilter,
- SortFlags sort, Filters filters) : d_ptr(new QDirPrivate(this))
+ SortFlags sort, Filters filters) : d_ptr(new QDirPrivate)
{
Q_D(QDir);
d->setPath(path.isEmpty() ? QString::fromLatin1(".") : path);
d->data->nameFilters = QDir::nameFiltersFromString(nameFilter);
bool empty = d->data->nameFilters.isEmpty();
- if(!empty) {
+ if (!empty) {
empty = true;
- for(int i = 0; i < d->data->nameFilters.size(); ++i) {
- if(!d->data->nameFilters.at(i).isEmpty()) {
+ for (int i = 0; i < d->data->nameFilters.size(); ++i) {
+ if (!d->data->nameFilters.at(i).isEmpty()) {
empty = false;
break;
}
@@ -577,8 +565,7 @@ QDir::QDir(const QString &path, const QString &nameFilter,
\sa operator=()
*/
-
-QDir::QDir(const QDir &dir) : d_ptr(new QDirPrivate(this, &dir))
+QDir::QDir(const QDir &dir) : d_ptr(new QDirPrivate(&dir))
{
}
@@ -586,7 +573,6 @@ QDir::QDir(const QDir &dir) : d_ptr(new QDirPrivate(this, &dir))
Destroys the QDir object frees up its resources. This has no
effect on the underlying directory in the file system.
*/
-
QDir::~QDir()
{
}
@@ -607,7 +593,6 @@ QDir::~QDir()
\sa path(), absolutePath(), exists(), cleanPath(), dirName(),
absoluteFilePath(), isRelative(), makeAbsolute()
*/
-
void QDir::setPath(const QString &path)
{
Q_D(QDir);
@@ -624,7 +609,6 @@ void QDir::setPath(const QString &path)
\sa setPath(), absolutePath(), exists(), cleanPath(), dirName(),
absoluteFilePath(), toNativeSeparators(), makeAbsolute()
*/
-
QString QDir::path() const
{
Q_D(const QDir);
@@ -639,7 +623,6 @@ QString QDir::path() const
\sa setPath(), canonicalPath(), exists(), cleanPath(),
dirName(), absoluteFilePath()
*/
-
QString QDir::absolutePath() const
{
Q_D(const QDir);
@@ -649,7 +632,6 @@ QString QDir::absolutePath() const
return cleanPath(ret);
}
-
/*!
Returns the canonical path, i.e. a path without symbolic links or
redundant "." or ".." elements.
@@ -666,12 +648,11 @@ QString QDir::absolutePath() const
\sa path(), absolutePath(), exists(), cleanPath(), dirName(),
absoluteFilePath()
*/
-
QString QDir::canonicalPath() const
{
Q_D(const QDir);
- if(!d->data->fileEngine)
+ if (!d->data->fileEngine)
return QLatin1String("");
return cleanPath(d->data->fileEngine->fileName(QAbstractFileEngine::CanonicalName));
}
@@ -687,7 +668,6 @@ QString QDir::canonicalPath() const
\sa path(), filePath(), absolutePath(), absoluteFilePath()
*/
-
QString QDir::dirName() const
{
Q_D(const QDir);
@@ -706,7 +686,6 @@ QString QDir::dirName() const
\sa dirName() absoluteFilePath(), isRelative(), canonicalPath()
*/
-
QString QDir::filePath(const QString &fileName) const
{
Q_D(const QDir);
@@ -714,7 +693,7 @@ QString QDir::filePath(const QString &fileName) const
return QString(fileName);
QString ret = d->data->path;
- if(!fileName.isEmpty()) {
+ if (!fileName.isEmpty()) {
if (!ret.isEmpty() && ret[(int)ret.length()-1] != QLatin1Char('/') && fileName[0] != QLatin1Char('/'))
ret += QLatin1Char('/');
ret += fileName;
@@ -730,13 +709,12 @@ QString QDir::filePath(const QString &fileName) const
\sa relativeFilePath() filePath() canonicalPath()
*/
-
QString QDir::absoluteFilePath(const QString &fileName) const
{
Q_D(const QDir);
if (isAbsolutePath(fileName))
return fileName;
- if(!d->data->fileEngine)
+ if (!d->data->fileEngine)
return fileName;
QString ret;
@@ -744,7 +722,7 @@ QString QDir::absoluteFilePath(const QString &fileName) const
if (isRelativePath(d->data->path)) //get pwd
ret = QFSFileEngine::currentPath(fileName);
#endif
- if(!d->data->path.isEmpty() && d->data->path != QLatin1String(".")) {
+ if (!d->data->path.isEmpty() && d->data->path != QLatin1String(".")) {
if (!ret.isEmpty() && !ret.endsWith(QLatin1Char('/')))
ret += QLatin1Char('/');
ret += d->data->path;
@@ -764,7 +742,6 @@ QString QDir::absoluteFilePath(const QString &fileName) const
\sa absoluteFilePath() filePath() canonicalPath()
*/
-
QString QDir::relativeFilePath(const QString &fileName) const
{
QString dir = absolutePath();
@@ -851,7 +828,7 @@ QString QDir::toNativeSeparators(const QString &pathName)
{
QString n(pathName);
#if defined(Q_FS_FAT) || defined(Q_OS_OS2EMX) || defined(Q_OS_SYMBIAN)
- for (int i=0; i<(int)n.length(); i++) {
+ for (int i = 0; i < (int)n.length(); ++i) {
if (n[i] == QLatin1Char('/'))
n[i] = QLatin1Char('\\');
}
@@ -875,7 +852,7 @@ QString QDir::fromNativeSeparators(const QString &pathName)
{
QString n(pathName);
#if defined(Q_FS_FAT) || defined(Q_OS_OS2EMX) || defined(Q_OS_SYMBIAN)
- for (int i=0; i<(int)n.length(); i++) {
+ for (int i = 0; i < (int)n.length(); ++i) {
if (n[i] == QLatin1Char('\\'))
n[i] = QLatin1Char('/');
}
@@ -894,7 +871,6 @@ QString QDir::fromNativeSeparators(const QString &pathName)
\sa cdUp(), isReadable(), exists(), path()
*/
-
bool QDir::cd(const QString &dirName)
{
Q_D(QDir);
@@ -930,14 +906,13 @@ bool QDir::cd(const QString &dirName)
}
}
}
- {
- QFileInfo fi(newPath);
- if (!(fi.exists() && fi.isDir()))
- return false;
- }
- d->setPath(newPath);
- refresh();
+ QDir dir(*this);
+ dir.setPath(newPath);
+ if (!dir.exists())
+ return false;
+
+ *this = dir;
return true;
}
@@ -951,7 +926,6 @@ bool QDir::cd(const QString &dirName)
\sa cd(), isReadable(), exists(), path()
*/
-
bool QDir::cdUp()
{
return cd(QString::fromLatin1(".."));
@@ -960,7 +934,6 @@ bool QDir::cdUp()
/*!
Returns the string list set by setNameFilters()
*/
-
QStringList QDir::nameFilters() const
{
Q_D(const QDir);
@@ -983,11 +956,11 @@ QStringList QDir::nameFilters() const
\sa nameFilters(), setFilter()
*/
-
void QDir::setNameFilters(const QStringList &nameFilters)
{
Q_D(QDir);
- d->detach();
+
+ d->reset();
d->data->nameFilters = nameFilters;
}
@@ -1001,7 +974,6 @@ void QDir::setNameFilters(const QStringList &nameFilters)
\sa {The Qt Resource System}, QResource::addSearchPath()
*/
-
void QDir::addResourceSearchPath(const QString &path)
{
#ifdef QT_BUILD_CORE_LIB
@@ -1039,7 +1011,7 @@ void QDir::setSearchPaths(const QString &prefix, const QStringList &searchPaths)
return;
}
- for (int i = 0; i < prefix.count(); i++) {
+ for (int i = 0; i < prefix.count(); ++i) {
if (!prefix.at(i).isLetterOrNumber()) {
qWarning("QDir::setSearchPaths: Prefix can only contain letters or numbers");
return;
@@ -1089,7 +1061,6 @@ QStringList QDir::searchPaths(const QString &prefix)
/*!
Returns the value set by setFilter()
*/
-
QDir::Filters QDir::filter() const
{
Q_D(const QDir);
@@ -1171,12 +1142,11 @@ QDir::Filters QDir::filter() const
\sa filter(), setNameFilters()
*/
-
void QDir::setFilter(Filters filters)
{
Q_D(QDir);
- d->detach();
+ d->reset();
d->data->filters = filters;
}
@@ -1185,7 +1155,6 @@ void QDir::setFilter(Filters filters)
\sa setSorting() SortFlag
*/
-
QDir::SortFlags QDir::sorting() const
{
Q_D(const QDir);
@@ -1231,16 +1200,14 @@ QDir::SortFlags QDir::sorting() const
\sa sorting() SortFlag
*/
-
void QDir::setSorting(SortFlags sort)
{
Q_D(QDir);
- d->detach();
+ d->reset();
d->data->sort = sort;
}
-
/*!
Returns the total number of directories and files in the directory.
@@ -1248,7 +1215,6 @@ void QDir::setSorting(SortFlags sort)
\sa operator[](), entryList()
*/
-
uint QDir::count() const
{
Q_D(const QDir);
@@ -1260,13 +1226,10 @@ uint QDir::count() const
/*!
Returns the file name at position \a pos in the list of file
names. Equivalent to entryList().at(index).
-
- Returns an empty string if \a pos is out of range or if the
- entryList() function failed.
+ \a pos must be a valid index position in the list (i.e., 0 <= pos < count()).
\sa count(), entryList()
*/
-
QString QDir::operator[](int pos) const
{
Q_D(const QDir);
@@ -1294,7 +1257,6 @@ QString QDir::operator[](int pos) const
\sa entryInfoList(), setNameFilters(), setSorting(), setFilter()
*/
-
QStringList QDir::entryList(Filters filters, SortFlags sort) const
{
Q_D(const QDir);
@@ -1342,7 +1304,6 @@ QFileInfoList QDir::entryInfoList(Filters filters, SortFlags sort) const
\sa entryInfoList(), setNameFilters(), setSorting(), setFilter()
*/
-
QStringList QDir::entryList(const QStringList &nameFilters, Filters filters,
SortFlags sort) const
{
@@ -1356,10 +1317,12 @@ QStringList QDir::entryList(const QStringList &nameFilters, Filters filters,
#endif
if (sort == NoSort)
sort = d->data->sort;
- if (filters == NoFilter && sort == NoSort && nameFilters == d->data->nameFilters) {
+
+ if (filters == d->data->filters && sort == d->data->sort && nameFilters == d->data->nameFilters) {
d->updateFileLists();
return d->data->files;
}
+
QFileInfoList l;
QDirIterator it(d->data->path, nameFilters, filters);
while (it.hasNext()) {
@@ -1387,7 +1350,6 @@ QStringList QDir::entryList(const QStringList &nameFilters, Filters filters,
\sa entryList(), setNameFilters(), setSorting(), setFilter(), isReadable(), exists()
*/
-
QFileInfoList QDir::entryInfoList(const QStringList &nameFilters, Filters filters,
SortFlags sort) const
{
@@ -1401,10 +1363,12 @@ QFileInfoList QDir::entryInfoList(const QStringList &nameFilters, Filters filter
#endif
if (sort == NoSort)
sort = d->data->sort;
- if (filters == NoFilter && sort == NoSort && nameFilters == d->data->nameFilters) {
+
+ if (filters == d->data->filters && sort == d->data->sort && nameFilters == d->data->nameFilters) {
d->updateFileLists();
return d->data->fileInfos;
}
+
QFileInfoList l;
QDirIterator it(d->data->path, nameFilters, filters);
while (it.hasNext()) {
@@ -1423,7 +1387,6 @@ QFileInfoList QDir::entryInfoList(const QStringList &nameFilters, Filters filter
\sa rmdir()
*/
-
bool QDir::mkdir(const QString &dirName) const
{
Q_D(const QDir);
@@ -1432,7 +1395,7 @@ bool QDir::mkdir(const QString &dirName) const
qWarning("QDir::mkdir: Empty or null file name(s)");
return false;
}
- if(!d->data->fileEngine)
+ if (!d->data->fileEngine)
return false;
QString fn = filePath(dirName);
@@ -1448,7 +1411,6 @@ bool QDir::mkdir(const QString &dirName) const
\sa mkdir()
*/
-
bool QDir::rmdir(const QString &dirName) const
{
Q_D(const QDir);
@@ -1457,7 +1419,7 @@ bool QDir::rmdir(const QString &dirName) const
qWarning("QDir::rmdir: Empty or null file name(s)");
return false;
}
- if(!d->data->fileEngine)
+ if (!d->data->fileEngine)
return false;
QString fn = filePath(dirName);
@@ -1474,7 +1436,6 @@ bool QDir::rmdir(const QString &dirName) const
\sa rmpath()
*/
-
bool QDir::mkpath(const QString &dirPath) const
{
Q_D(const QDir);
@@ -1483,7 +1444,7 @@ bool QDir::mkpath(const QString &dirPath) const
qWarning("QDir::mkpath: Empty or null file name(s)");
return false;
}
- if(!d->data->fileEngine)
+ if (!d->data->fileEngine)
return false;
QString fn = filePath(dirPath);
@@ -1509,7 +1470,7 @@ bool QDir::rmpath(const QString &dirPath) const
qWarning("QDir::rmpath: Empty or null file name(s)");
return false;
}
- if(!d->data->fileEngine)
+ if (!d->data->fileEngine)
return false;
QString fn = filePath(dirPath);
@@ -1525,17 +1486,16 @@ bool QDir::rmpath(const QString &dirPath) const
\sa QFileInfo::isReadable()
*/
-
-
bool QDir::isReadable() const
{
Q_D(const QDir);
- if(!d->data->fileEngine)
+ if (!d->data->fileEngine)
return false;
- const QAbstractFileEngine::FileFlags info = d->data->fileEngine->fileFlags(QAbstractFileEngine::DirectoryType
- |QAbstractFileEngine::PermsMask);
- if(!(info & QAbstractFileEngine::DirectoryType))
+ const QAbstractFileEngine::FileFlags info =
+ d->data->fileEngine->fileFlags(QAbstractFileEngine::DirectoryType
+ | QAbstractFileEngine::PermsMask);
+ if (!(info & QAbstractFileEngine::DirectoryType))
return false;
return info & QAbstractFileEngine::ReadUserPerm;
}
@@ -1551,19 +1511,17 @@ bool QDir::isReadable() const
\sa QFileInfo::exists(), QFile::exists()
*/
-
bool QDir::exists() const
{
Q_D(const QDir);
- if(!d->data->fileEngine)
+ if (!d->data->fileEngine)
return false;
const QAbstractFileEngine::FileFlags info =
- d->data->fileEngine->fileFlags(
- QAbstractFileEngine::DirectoryType
- | QAbstractFileEngine::ExistsFlag
- | QAbstractFileEngine::Refresh);
- if(!(info & QAbstractFileEngine::DirectoryType))
+ d->data->fileEngine->fileFlags(QAbstractFileEngine::DirectoryType
+ | QAbstractFileEngine::ExistsFlag
+ | QAbstractFileEngine::Refresh);
+ if (!(info & QAbstractFileEngine::DirectoryType))
return false;
return info & QAbstractFileEngine::ExistsFlag;
}
@@ -1580,12 +1538,11 @@ bool QDir::exists() const
\sa root(), rootPath()
*/
-
bool QDir::isRoot() const
{
Q_D(const QDir);
- if(!d->data->fileEngine)
+ if (!d->data->fileEngine)
return true;
return d->data->fileEngine->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::RootFlag;
}
@@ -1615,12 +1572,11 @@ bool QDir::isRoot() const
\sa makeAbsolute() isAbsolute() isAbsolutePath() cleanPath()
*/
-
bool QDir::isRelative() const
{
Q_D(const QDir);
- if(!d->data->fileEngine)
+ if (!d->data->fileEngine)
return false;
return d->data->fileEngine->isRelativePath();
}
@@ -1633,20 +1589,19 @@ bool QDir::isRelative() const
\sa isAbsolute() isAbsolutePath() isRelative() cleanPath()
*/
-
bool QDir::makeAbsolute() // ### What do the return values signify?
{
Q_D(QDir);
- if(!d->data->fileEngine)
+ if (!d->data->fileEngine)
return false;
QString absolutePath = d->data->fileEngine->fileName(QAbstractFileEngine::AbsoluteName);
- if(QDir::isRelativePath(absolutePath))
+ if (QDir::isRelativePath(absolutePath))
return false;
d->detach();
d->data->path = absolutePath;
d->data->fileEngine->setFileName(absolutePath);
- if(!(d->data->fileEngine->fileFlags(QAbstractFileEngine::TypesMask) & QAbstractFileEngine::DirectoryType))
+ if (!(d->data->fileEngine->fileFlags(QAbstractFileEngine::TypesMask) & QAbstractFileEngine::DirectoryType))
return false;
return true;
}
@@ -1660,22 +1615,21 @@ bool QDir::makeAbsolute() // ### What do the return values signify?
\snippet doc/src/snippets/code/src_corelib_io_qdir.cpp 10
*/
-
bool QDir::operator==(const QDir &dir) const
{
const QDirPrivate *d = d_func();
const QDirPrivate *other = dir.d_func();
- if(d->data == other->data)
+ if (d->data == other->data)
return true;
Q_ASSERT(d->data->fileEngine && other->data->fileEngine);
- if(d->data->fileEngine->caseSensitive() != other->data->fileEngine->caseSensitive())
+ if (d->data->fileEngine->caseSensitive() != other->data->fileEngine->caseSensitive())
return false;
- if(d->data->filters == other->data->filters
+ if (d->data->filters == other->data->filters
&& d->data->sort == other->data->sort
&& d->data->nameFilters == other->data->nameFilters) {
QString dir1 = absolutePath(), dir2 = dir.absolutePath();
- if(!other->data->fileEngine->caseSensitive())
+ if (!other->data->fileEngine->caseSensitive())
return (dir1.toLower() == dir2.toLower());
return (dir1 == dir2);
@@ -1688,7 +1642,6 @@ bool QDir::operator==(const QDir &dir) const
Makes a copy of the \a dir object and assigns it to this QDir
object.
*/
-
QDir &QDir::operator=(const QDir &dir)
{
if (this == &dir)
@@ -1707,7 +1660,6 @@ QDir &QDir::operator=(const QDir &dir)
Use setPath() instead.
*/
-
QDir &QDir::operator=(const QString &path)
{
Q_D(QDir);
@@ -1728,22 +1680,19 @@ QDir &QDir::operator=(const QString &path)
\snippet doc/src/snippets/code/src_corelib_io_qdir.cpp 11
*/
-
/*!
Removes the file, \a fileName.
Returns true if the file is removed successfully; otherwise
returns false.
*/
-
bool QDir::remove(const QString &fileName)
{
if (fileName.isEmpty()) {
qWarning("QDir::remove: Empty or null file name");
return false;
}
- QString p = filePath(fileName);
- return QFile::remove(p);
+ return QFile::remove(filePath(fileName));
}
/*!
@@ -1757,7 +1706,6 @@ bool QDir::remove(const QString &fileName)
fail. For example, on at least one file system rename() fails if
\a newName points to an open file.
*/
-
bool QDir::rename(const QString &oldName, const QString &newName)
{
Q_D(QDir);
@@ -1766,11 +1714,11 @@ bool QDir::rename(const QString &oldName, const QString &newName)
qWarning("QDir::rename: Empty or null file name(s)");
return false;
}
- if(!d->data->fileEngine)
+ if (!d->data->fileEngine)
return false;
QFile file(filePath(oldName));
- if(!file.exists())
+ if (!file.exists())
return false;
return file.rename(filePath(newName));
}
@@ -1785,15 +1733,13 @@ bool QDir::rename(const QString &oldName, const QString &newName)
\sa QFileInfo::exists(), QFile::exists()
*/
-
bool QDir::exists(const QString &name) const
{
if (name.isEmpty()) {
qWarning("QDir::exists: Empty or null file name");
return false;
}
- QString tmp = filePath(name);
- return QFile::exists(tmp);
+ return QFile::exists(filePath(name));
}
/*!
@@ -1805,7 +1751,6 @@ bool QDir::exists(const QString &name) const
\sa root(), rootPath()
*/
-
QFileInfoList QDir::drives()
{
#ifdef QT_NO_FSFILEENGINE
@@ -1825,7 +1770,6 @@ QFileInfoList QDir::drives()
user using their operating system's separator use
toNativeSeparators().
*/
-
QChar QDir::separator()
{
#if defined (Q_FS_FAT) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN)
@@ -1844,9 +1788,8 @@ QChar QDir::separator()
Returns true if the directory was successfully changed; otherwise
returns false.
- \sa current() currentPath() home() root() temp()
+ \sa current(), currentPath(), home(), root(), temp()
*/
-
bool QDir::setCurrent(const QString &path)
{
#ifdef QT_NO_FSFILEENGINE
@@ -1865,13 +1808,13 @@ bool QDir::setCurrent(const QString &path)
The directory is constructed using the absolute path of the current directory,
ensuring that its path() will be the same as its absolutePath().
- \sa currentPath(), home(), root(), temp()
+ \sa currentPath(), setCurrent(), home(), root(), temp()
*/
/*!
Returns the absolute path of the application's current directory.
- \sa current(), homePath(), rootPath(), tempPath()
+ \sa current(), setCurrent(), homePath(), rootPath(), tempPath()
*/
QString QDir::currentPath()
{
@@ -1888,7 +1831,7 @@ QString QDir::currentPath()
Use currentPath() instead.
- \sa currentPath()
+ \sa currentPath(), setCurrent()
*/
/*!
@@ -1945,14 +1888,14 @@ QString QDir::homePath()
}
/*!
- \fn QString QDir::homeDirPath()
+ \fn QString QDir::homeDirPath()
- Returns the absolute path of the user's home directory.
+ Returns the absolute path of the user's home directory.
- Use homePath() instead.
+ Use homePath() instead.
- \sa homePath()
- */
+ \sa homePath()
+*/
/*!
\fn QDir QDir::temp()
@@ -2018,13 +1961,13 @@ QString QDir::rootPath()
}
/*!
- \fn QString QDir::rootDirPath()
+ \fn QString QDir::rootDirPath()
- Returns the absolute path of the root directory.
+ Returns the absolute path of the root directory.
- Use rootPath() instead.
+ Use rootPath() instead.
- \sa rootPath()
+ \sa rootPath()
*/
#ifndef QT_NO_REGEXP
@@ -2037,11 +1980,9 @@ QString QDir::rootPath()
\sa {QRegExp wildcard matching}, QRegExp::exactMatch() entryList() entryInfoList()
*/
-
-
bool QDir::match(const QStringList &filters, const QString &fileName)
{
- for(QStringList::ConstIterator sit = filters.begin(); sit != filters.end(); ++sit) {
+ for (QStringList::ConstIterator sit = filters.constBegin(); sit != filters.constEnd(); ++sit) {
QRegExp rx(*sit, Qt::CaseInsensitive, QRegExp::Wildcard);
if (rx.exactMatch(fileName))
return true;
@@ -2057,12 +1998,11 @@ bool QDir::match(const QStringList &filters, const QString &fileName)
\sa {QRegExp wildcard matching}, QRegExp::exactMatch() entryList() entryInfoList()
*/
-
bool QDir::match(const QString &filter, const QString &fileName)
{
return match(nameFiltersFromString(filter), fileName);
}
-#endif
+#endif // QT_NO_REGEXP
/*!
Removes all multiple directory separators "/" and resolves any
@@ -2075,15 +2015,14 @@ bool QDir::match(const QString &filter, const QString &fileName)
\sa absolutePath() canonicalPath()
*/
-
QString QDir::cleanPath(const QString &path)
{
if (path.isEmpty())
return path;
QString name = path;
QChar dir_separator = separator();
- if(dir_separator != QLatin1Char('/'))
- name.replace(dir_separator, QLatin1Char('/'));
+ if (dir_separator != QLatin1Char('/'))
+ name.replace(dir_separator, QLatin1Char('/'));
int used = 0, levels = 0;
const int len = name.length();
@@ -2091,27 +2030,27 @@ QString QDir::cleanPath(const QString &path)
QChar *out = outVector.data();
const QChar *p = name.unicode();
- for(int i = 0, last = -1, iwrite = 0; i < len; i++) {
- if(p[i] == QLatin1Char('/')) {
- while(i < len-1 && p[i+1] == QLatin1Char('/')) {
+ for (int i = 0, last = -1, iwrite = 0; i < len; ++i) {
+ if (p[i] == QLatin1Char('/')) {
+ while (i < len-1 && p[i+1] == QLatin1Char('/')) {
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) //allow unc paths
- if(!i)
+ if (!i)
break;
#endif
i++;
}
bool eaten = false;
- if(i < len - 1 && p[i+1] == QLatin1Char('.')) {
+ if (i < len - 1 && p[i+1] == QLatin1Char('.')) {
int dotcount = 1;
- if(i < len - 2 && p[i+2] == QLatin1Char('.'))
+ if (i < len - 2 && p[i+2] == QLatin1Char('.'))
dotcount++;
- if(i == len - dotcount - 1) {
- if(dotcount == 1) {
+ if (i == len - dotcount - 1) {
+ if (dotcount == 1) {
break;
- } else if(levels) {
- if(last == -1) {
- for(int i2 = iwrite-1; i2 >= 0; i2--) {
- if(out[i2] == QLatin1Char('/')) {
+ } else if (levels) {
+ if (last == -1) {
+ for (int i2 = iwrite-1; i2 >= 0; i2--) {
+ if (out[i2] == QLatin1Char('/')) {
last = i2;
break;
}
@@ -2120,11 +2059,11 @@ QString QDir::cleanPath(const QString &path)
used -= iwrite - last - 1;
break;
}
- } else if(p[i+dotcount+1] == QLatin1Char('/')) {
- if(dotcount == 2 && levels) {
- if(last == -1 || iwrite - last == 1) {
- for(int i2 = (last == -1) ? (iwrite-1) : (last-1); i2 >= 0; i2--) {
- if(out[i2] == QLatin1Char('/')) {
+ } else if (p[i+dotcount+1] == QLatin1Char('/')) {
+ if (dotcount == 2 && levels) {
+ if (last == -1 || iwrite - last == 1) {
+ for (int i2 = (last == -1) ? (iwrite-1) : (last-1); i2 >= 0; i2--) {
+ if (out[i2] == QLatin1Char('/')) {
eaten = true;
last = i2;
break;
@@ -2133,7 +2072,7 @@ QString QDir::cleanPath(const QString &path)
} else {
eaten = true;
}
- if(eaten) {
+ if (eaten) {
levels--;
used -= iwrite - last;
iwrite = last;
@@ -2145,38 +2084,38 @@ QString QDir::cleanPath(const QString &path)
iwrite = qMax(0, last);
last = -1;
++i;
- } else if(dotcount == 1) {
+ } else if (dotcount == 1) {
eaten = true;
}
- if(eaten)
+ if (eaten)
i += dotcount;
} else {
levels++;
}
- } else if(last != -1 && iwrite - last == 1) {
+ } else if (last != -1 && iwrite - last == 1) {
#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN)
eaten = (iwrite > 2);
#else
eaten = true;
#endif
last = -1;
- } else if(last != -1 && i == len-1) {
+ } else if (last != -1 && i == len-1) {
eaten = true;
} else {
levels++;
}
- if(!eaten)
+ if (!eaten)
last = i - (i - iwrite);
else
continue;
- } else if(!i && p[i] == QLatin1Char('.')) {
+ } else if (!i && p[i] == QLatin1Char('.')) {
int dotcount = 1;
- if(len >= 1 && p[1] == QLatin1Char('.'))
+ if (len >= 1 && p[1] == QLatin1Char('.'))
dotcount++;
- if(len >= dotcount && p[dotcount] == QLatin1Char('/')) {
- if(dotcount == 1) {
+ if (len >= dotcount && p[dotcount] == QLatin1Char('/')) {
+ if (dotcount == 1) {
i++;
- while(i+1 < len-1 && p[i+1] == QLatin1Char('/'))
+ while (i+1 < len-1 && p[i+1] == QLatin1Char('/'))
i++;
continue;
}
@@ -2185,16 +2124,15 @@ QString QDir::cleanPath(const QString &path)
out[iwrite++] = p[i];
used++;
}
- QString ret;
- if(used == len)
- ret = name;
- else
- ret = QString(out, used);
+ QString ret = (used == len ? name : QString(out, used));
// Strip away last slash except for root directories
- if (ret.endsWith(QLatin1Char('/'))
- && !(ret.size() == 1 || (ret.size() == 3 && ret.at(1) == QLatin1Char(':'))))
- ret = ret.left(ret.length() - 1);
+ if (ret.length() > 1 && ret.endsWith(QLatin1Char('/'))) {
+#ifdef Q_OS_WIN
+ if (!(ret.length() == 3 && ret.at(1) == QLatin1Char(':')))
+#endif
+ ret.chop(1);
+ }
return ret;
}
@@ -2205,7 +2143,6 @@ QString QDir::cleanPath(const QString &path)
\sa isRelative() isAbsolutePath() makeAbsolute()
*/
-
bool QDir::isRelativePath(const QString &path)
{
return QFileInfo(path).isRelative();
@@ -2214,12 +2151,11 @@ bool QDir::isRelativePath(const QString &path)
/*!
Refreshes the directory information.
*/
-
void QDir::refresh() const
{
Q_D(const QDir);
- d->data->clear();
+ const_cast<QDirPrivate *>(d)->reset();
}
/*!
@@ -2229,7 +2165,6 @@ void QDir::refresh() const
there is more than one filter, each pair of filters is separated
by a space or by a semicolon.)
*/
-
QStringList QDir::nameFiltersFromString(const QString &nameFilter)
{
return QDirPrivate::splitFilters(nameFilter);
@@ -2309,6 +2244,8 @@ bool QDir::matchAllDirs() const
void QDir::setMatchAllDirs(bool on)
{
Q_D(QDir);
+
+ d->reset();
d->matchAllDirs = on;
}
@@ -2421,7 +2358,8 @@ void QDir::setNameFilter(const QString &nameFilter)
Use QDir::SortFlags instead.
*/
-#endif
+#endif // QT3_SUPPORT
+
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug debug, QDir::Filters filters)
{
@@ -2484,9 +2422,6 @@ QDebug operator<<(QDebug debug, const QDir &dir)
<< ')';
return debug.space();
}
-
-
-
-#endif
+#endif // QT_NO_DEBUG_STREAM
QT_END_NAMESPACE
diff --git a/src/corelib/io/qdir.h b/src/corelib/io/qdir.h
index 6be4922..186dd2f 100644
--- a/src/corelib/io/qdir.h
+++ b/src/corelib/io/qdir.h
@@ -83,7 +83,7 @@ public:
Modified = 0x080,
Hidden = 0x100,
System = 0x200,
-
+
AccessMask = 0x3F0,
AllDirs = 0x400,
@@ -215,6 +215,7 @@ public:
static bool match(const QStringList &filters, const QString &fileName);
static bool match(const QString &filter, const QString &fileName);
#endif
+
static QString cleanPath(const QString &path);
void refresh() const;
@@ -246,7 +247,7 @@ public:
inline QT3_SUPPORT static QString homeDirPath() { return homePath(); }
inline QT3_SUPPORT static QString rootDirPath() { return rootPath(); }
inline QT3_SUPPORT static QString cleanDirPath(const QString &name) { return cleanPath(name); }
-#endif
+#endif // QT3_SUPPORT
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QDir::Filters)
diff --git a/src/corelib/io/qfilesystemwatcher_dnotify.cpp b/src/corelib/io/qfilesystemwatcher_dnotify.cpp
index 1a218c7..82470c8 100644
--- a/src/corelib/io/qfilesystemwatcher_dnotify.cpp
+++ b/src/corelib/io/qfilesystemwatcher_dnotify.cpp
@@ -39,6 +39,7 @@
**
****************************************************************************/
+#include "qplatformdefs.h"
#include "qfilesystemwatcher.h"
#include "qfilesystemwatcher_dnotify_p.h"
@@ -255,16 +256,16 @@ QStringList QDnotifyFileSystemWatcherEngine::addPaths(const QStringList &paths,
if(fd == 0) {
- DIR *d = ::opendir(path.toUtf8().constData());
+ QT_DIR *d = QT_OPENDIR(path.toUtf8().constData());
if(!d) continue; // Could not open directory
- DIR *parent = 0;
+ QT_DIR *parent = 0;
QDir parentDir(path);
if(!parentDir.isRoot()) {
parentDir.cdUp();
- parent = ::opendir(parentDir.path().toUtf8().constData());
+ parent = QT_OPENDIR(parentDir.path().toUtf8().constData());
if(!parent) {
- ::closedir(d);
+ QT_CLOSEDIR(d);
continue;
}
}
@@ -272,8 +273,8 @@ QStringList QDnotifyFileSystemWatcherEngine::addPaths(const QStringList &paths,
fd = qt_safe_dup(::dirfd(d));
int parentFd = parent ? qt_safe_dup(::dirfd(parent)) : 0;
- ::closedir(d);
- if(parent) ::closedir(parent);
+ QT_CLOSEDIR(d);
+ if(parent) QT_CLOSEDIR(parent);
Q_ASSERT(fd);
if(::fcntl(fd, F_SETSIG, SIGIO) ||
diff --git a/src/corelib/io/qfsfileengine_iterator_unix.cpp b/src/corelib/io/qfsfileengine_iterator_unix.cpp
index b68b1a1..bfdb03e 100644
--- a/src/corelib/io/qfsfileengine_iterator_unix.cpp
+++ b/src/corelib/io/qfsfileengine_iterator_unix.cpp
@@ -58,13 +58,13 @@ public:
#endif
{}
- DIR *dir;
- dirent *dirEntry;
+ QT_DIR *dir;
+ QT_DIRENT *dirEntry;
bool done;
#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_CYGWIN) && !defined(Q_OS_SYMBIAN)
// for readdir_r
- dirent *mt_file;
+ QT_DIRENT *mt_file;
#endif
};
@@ -76,14 +76,14 @@ void QFSFileEngineIterator::advance()
return;
#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_CYGWIN) && !defined(Q_OS_SYMBIAN)
- if (::readdir_r(platform->dir, platform->mt_file, &platform->dirEntry) != 0)
+ if (QT_READDIR_R(platform->dir, platform->mt_file, &platform->dirEntry) != 0)
platform->done = true;
#else
// ### add local lock to prevent breaking reentrancy
- platform->dirEntry = ::readdir(platform->dir);
+ platform->dirEntry = QT_READDIR(platform->dir);
#endif // _POSIX_THREAD_SAFE_FUNCTIONS
if (!platform->dirEntry) {
- ::closedir(platform->dir);
+ QT_CLOSEDIR(platform->dir);
platform->dir = 0;
platform->done = true;
#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_CYGWIN) && !defined(Q_OS_SYMBIAN)
@@ -101,7 +101,7 @@ void QFSFileEngineIterator::newPlatformSpecifics()
void QFSFileEngineIterator::deletePlatformSpecifics()
{
if (platform->dir) {
- ::closedir(platform->dir);
+ QT_CLOSEDIR(platform->dir);
#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_CYGWIN) && !defined(Q_OS_SYMBIAN)
delete [] platform->mt_file;
platform->mt_file = 0;
@@ -115,18 +115,18 @@ bool QFSFileEngineIterator::hasNext() const
{
if (!platform->done && !platform->dir) {
QFSFileEngineIterator *that = const_cast<QFSFileEngineIterator *>(this);
- if ((that->platform->dir = ::opendir(QFile::encodeName(path()).data())) == 0) {
+ if ((that->platform->dir = QT_OPENDIR(QFile::encodeName(path()).data())) == 0) {
that->platform->done = true;
} else {
// ### Race condition; we should use fpathconf and dirfd().
long maxPathName = ::pathconf(QFile::encodeName(path()).data(), _PC_NAME_MAX);
if ((int) maxPathName == -1)
maxPathName = FILENAME_MAX;
- maxPathName += sizeof(dirent) + 1;
+ maxPathName += sizeof(QT_DIRENT) + 1;
#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_CYGWIN) && !defined(Q_OS_SYMBIAN)
if (that->platform->mt_file)
delete [] that->platform->mt_file;
- that->platform->mt_file = (dirent *)new char[maxPathName];
+ that->platform->mt_file = (QT_DIRENT *)new char[maxPathName];
#endif
that->advance();
diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp
index 722d6d3..9179485 100644
--- a/src/corelib/io/qfsfileengine_unix.cpp
+++ b/src/corelib/io/qfsfileengine_unix.cpp
@@ -98,7 +98,7 @@ static inline QByteArray openModeToFopenMode(QIODevice::OpenMode flags, const QS
if (!fileName.isEmpty()
&& QT_STAT(QFile::encodeName(fileName), &statBuf) == 0
&& (statBuf.st_mode & S_IFMT) == S_IFREG) {
- mode += "+";
+ mode += '+';
} else {
mode = "wb+";
}
diff --git a/src/corelib/io/qprocess_symbian.cpp b/src/corelib/io/qprocess_symbian.cpp
index ddced73..75cde51 100644
--- a/src/corelib/io/qprocess_symbian.cpp
+++ b/src/corelib/io/qprocess_symbian.cpp
@@ -919,34 +919,41 @@ bool QProcessPrivate::waitForFinished(int msecs)
Q_Q(QProcess);
QPROCESS_DEBUG_PRINT("QProcessPrivate::waitForFinished(%d)", msecs);
- TRequestStatus timerStatus = 0;
- TRequestStatus logonStatus = 0;
+ TRequestStatus timerStatus = KErrNone;
+ TRequestStatus logonStatus = KErrNone;
bool timeoutOccurred = false;
// Logon to process to observe its death
if (qt_rprocess_running(symbianProcess)) {
symbianProcess->Logon(logonStatus);
- // Create timer
- RTimer timer;
- timer.CreateLocal();
- TTimeIntervalMicroSeconds32 interval(msecs*1000);
- timer.After(timerStatus, interval);
+ if (msecs < 0) {
+ // If timeout is negative, there is no timeout
+ QPROCESS_DEBUG_PRINT("QProcessPrivate::waitForFinished() - Waiting (just logon)...");
+ User::WaitForRequest(logonStatus);
+ QPROCESS_DEBUG_PRINT("QProcessPrivate::waitForFinished() - Wait completed");
+ } else {
+ // Create timer
+ RTimer timer;
+ timer.CreateLocal();
+ TTimeIntervalMicroSeconds32 interval(msecs*1000);
+ timer.After(timerStatus, interval);
- QPROCESS_DEBUG_PRINT("QProcessPrivate::waitForFinished() - Waiting...");
- User::WaitForRequest(logonStatus, timerStatus);
- QPROCESS_DEBUG_PRINT("QProcessPrivate::waitForFinished() - Wait completed");
+ QPROCESS_DEBUG_PRINT("QProcessPrivate::waitForFinished() - Waiting (logon + timer)...");
+ User::WaitForRequest(logonStatus, timerStatus);
+ QPROCESS_DEBUG_PRINT("QProcessPrivate::waitForFinished() - Wait completed");
- if (timerStatus == KErrNone)
- timeoutOccurred = true;
+ if (timerStatus == KErrNone)
+ timeoutOccurred = true;
- timer.Cancel();
- timer.Close();
+ timer.Cancel();
+ timer.Close();
- symbianProcess->LogonCancel(logonStatus);
+ symbianProcess->LogonCancel(logonStatus);
- // Eat cancel request completion so that it won't mess up main thread scheduling later
- User::WaitForRequest(logonStatus, timerStatus);
+ // Eat cancel request completion so that it won't mess up main thread scheduling later
+ User::WaitForRequest(logonStatus, timerStatus);
+ }
} else {
QPROCESS_DEBUG_PRINT("QProcessPrivate::waitForFinished(), qt_rprocess_running returned false");
}
diff --git a/src/corelib/io/qprocess_unix.cpp b/src/corelib/io/qprocess_unix.cpp
index 0bf7d3f..5119ec0 100644
--- a/src/corelib/io/qprocess_unix.cpp
+++ b/src/corelib/io/qprocess_unix.cpp
@@ -783,7 +783,7 @@ bool QProcessPrivate::processStarted()
// did we read an error message?
if (i > 0)
- q_func()->setErrorString(QString::fromUtf16(buf, i / sizeof(QChar)));
+ q_func()->setErrorString(QString((const QChar *)buf, i / sizeof(QChar)));
return i <= 0;
}
diff --git a/src/corelib/io/qsettings.cpp b/src/corelib/io/qsettings.cpp
index 2c31509..64015ce 100644
--- a/src/corelib/io/qsettings.cpp
+++ b/src/corelib/io/qsettings.cpp
@@ -1091,30 +1091,23 @@ static inline int pathHashKey(QSettings::Format format, QSettings::Scope scope)
return int((uint(format) << 1) | uint(scope == QSettings::SystemScope));
}
-static QString getPath(QSettings::Format format, QSettings::Scope scope)
+static void initDefaultPaths(QMutexLocker *locker)
{
- Q_ASSERT((int)QSettings::NativeFormat == 0);
- Q_ASSERT((int)QSettings::IniFormat == 1);
-
+ PathHash *pathHash = pathHashFunc();
QString homePath = QDir::homePath();
QString systemPath;
- QMutexLocker locker(globalMutex());
- PathHash *pathHash = pathHashFunc();
- bool loadSystemPath = pathHash->isEmpty();
- locker.unlock();
-
- if (loadSystemPath) {
- /*
- QLibraryInfo::location() uses QSettings, so in order to
- avoid a dead-lock, we can't hold the global mutex while
- calling it.
- */
- systemPath = QLibraryInfo::location(QLibraryInfo::SettingsPath);
- systemPath += QLatin1Char('/');
- }
+ locker->unlock();
+
+ /*
+ QLibraryInfo::location() uses QSettings, so in order to
+ avoid a dead-lock, we can't hold the global mutex while
+ calling it.
+ */
+ systemPath = QLibraryInfo::location(QLibraryInfo::SettingsPath);
+ systemPath += QLatin1Char('/');
- locker.relock();
+ locker->relock();
if (pathHash->isEmpty()) {
/*
Lazy initialization of pathHash. We initialize the
@@ -1155,6 +1148,17 @@ static QString getPath(QSettings::Format format, QSettings::Scope scope)
#endif
#endif
}
+}
+
+static QString getPath(QSettings::Format format, QSettings::Scope scope)
+{
+ Q_ASSERT((int)QSettings::NativeFormat == 0);
+ Q_ASSERT((int)QSettings::IniFormat == 1);
+
+ QMutexLocker locker(globalMutex());
+ PathHash *pathHash = pathHashFunc();
+ if (pathHash->isEmpty())
+ initDefaultPaths(&locker);
QString result = pathHash->value(pathHashKey(format, scope));
if (!result.isEmpty())
@@ -3455,6 +3459,8 @@ void QSettings::setPath(Format format, Scope scope, const QString &path)
{
QMutexLocker locker(globalMutex());
PathHash *pathHash = pathHashFunc();
+ if (pathHash->isEmpty())
+ initDefaultPaths(&locker);
pathHash->insert(pathHashKey(format, scope), path + QDir::separator());
}
diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp
index 74e5f74..076cc33 100644
--- a/src/corelib/io/qurl.cpp
+++ b/src/corelib/io/qurl.cpp
@@ -3241,8 +3241,11 @@ static QString qt_ACE_do(const QString &domain, AceOperation op)
while (1) {
int idx = nextDotDelimiter(domain, lastIdx);
int labelLength = idx - lastIdx;
- if (labelLength == 0)
+ if (labelLength == 0) {
+ if (idx == domain.length())
+ break;
return QString(); // two delimiters in a row -- empty label not allowed
+ }
// RFC 3490 says, about the ToASCII operation:
// 3. If the UseSTD3ASCIIRules flag is set, then perform these checks:
@@ -5932,7 +5935,7 @@ void QUrl::detach()
*/
bool QUrl::isDetached() const
{
- return d && d->ref == 1;
+ return !d || d->ref == 1;
}
diff --git a/src/corelib/kernel/qabstractitemmodel.cpp b/src/corelib/kernel/qabstractitemmodel.cpp
index fdbc5ba..dbf422e 100644
--- a/src/corelib/kernel/qabstractitemmodel.cpp
+++ b/src/corelib/kernel/qabstractitemmodel.cpp
@@ -1043,32 +1043,12 @@ void QAbstractItemModelPrivate::columnsRemoved(const QModelIndex &parent,
/*!
- \since 4.7
-
- \fn int QModelIndex::rowCount() const
-
- Returns the number of children of this model index.
-
- \sa columnCount(), parent(), child(), sibling(), model()
-*/
-
-/*!
- \since 4.7
-
- \fn int QModelIndex::columnCount() const
-
- Returns the number of columns for the children of this model index.
-
- \sa rowCount(), parent(), child(), sibling(), model()
-*/
-
-/*!
\fn QModelIndex QModelIndex::parent() const
Returns the parent of the model index, or QModelIndex() if it has no
parent.
- \sa child(), sibling(), rowCount(), columnCount(), model()
+ \sa child(), sibling(), model()
*/
/*!
diff --git a/src/corelib/kernel/qabstractitemmodel.h b/src/corelib/kernel/qabstractitemmodel.h
index d91c383..63d9e6f 100644
--- a/src/corelib/kernel/qabstractitemmodel.h
+++ b/src/corelib/kernel/qabstractitemmodel.h
@@ -68,8 +68,6 @@ public:
inline int column() const { return c; }
inline void *internalPointer() const { return p; }
inline qint64 internalId() const { return reinterpret_cast<qint64>(p); }
- inline int rowCount() const;
- inline int columnCount() const;
inline QModelIndex parent() const;
inline QModelIndex sibling(int row, int column) const;
inline QModelIndex child(int row, int column) const;
@@ -387,12 +385,6 @@ inline QModelIndex::QModelIndex(int arow, int acolumn, void *adata,
const QAbstractItemModel *amodel)
: r(arow), c(acolumn), p(adata), m(amodel) {}
-inline int QModelIndex::rowCount() const
-{ return m ? m->rowCount(*this) : 0; }
-
-inline int QModelIndex::columnCount() const
-{ return m ? m->columnCount(*this) : 0; }
-
inline QModelIndex QModelIndex::parent() const
{ return m ? m->parent(*this) : QModelIndex(); }
diff --git a/src/corelib/kernel/qcore_symbian_p.cpp b/src/corelib/kernel/qcore_symbian_p.cpp
index 5d2a6a5..0257ac4 100644
--- a/src/corelib/kernel/qcore_symbian_p.cpp
+++ b/src/corelib/kernel/qcore_symbian_p.cpp
@@ -71,7 +71,7 @@ Q_CORE_EXPORT QString qt_TDesC2QString(const TDesC& aDescriptor)
#ifdef QT_NO_UNICODE
return QString::fromLocal8Bit(aDescriptor.Ptr(), aDescriptor.Length());
#else
- return QString::fromUtf16(aDescriptor.Ptr(), aDescriptor.Length());
+ return QString(reinterpret_cast<const QChar *>(aDescriptor.Ptr()), aDescriptor.Length());
#endif
}
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp
index 005dedc..2da5a7d 100644
--- a/src/corelib/kernel/qcoreapplication.cpp
+++ b/src/corelib/kernel/qcoreapplication.cpp
@@ -2219,7 +2219,8 @@ QStringList QCoreApplication::libraryPaths()
TFindFile finder(fs);
TInt err = finder.FindByDir(tempPathPtr, tempPathPtr);
while (err == KErrNone) {
- QString foundDir = QString::fromUtf16(finder.File().Ptr(), finder.File().Length());
+ QString foundDir(reinterpret_cast<const QChar *>(finder.File().Ptr()),
+ finder.File().Length());
foundDir = QDir(foundDir).canonicalPath();
if (!app_libpaths->contains(foundDir))
app_libpaths->append(foundDir);
@@ -2267,6 +2268,10 @@ QStringList QCoreApplication::libraryPaths()
\a paths. All existing paths will be deleted and the path list
will consist of the paths given in \a paths.
+ In Symbian this function is only useful for setting paths for
+ finding Qt extension plugin stubs, since the OS can only
+ load libraries from the \c{/sys/bin} directory.
+
\sa libraryPaths(), addLibraryPath(), removeLibraryPath(), QLibrary
*/
void QCoreApplication::setLibraryPaths(const QStringList &paths)
@@ -2290,6 +2295,10 @@ void QCoreApplication::setLibraryPaths(const QStringList &paths)
is \c INSTALL/plugins, where \c INSTALL is the directory where Qt was
installed.
+ In Symbian this function is only useful for adding paths for
+ finding Qt extension plugin stubs, since the OS can only
+ load libraries from the \c{/sys/bin} directory.
+
\sa removeLibraryPath(), libraryPaths(), setLibraryPaths()
*/
void QCoreApplication::addLibraryPath(const QString &path)
diff --git a/src/corelib/kernel/qcoreevent.cpp b/src/corelib/kernel/qcoreevent.cpp
index 3f69b4f..d23ea4c 100644
--- a/src/corelib/kernel/qcoreevent.cpp
+++ b/src/corelib/kernel/qcoreevent.cpp
@@ -133,10 +133,10 @@ QT_BEGIN_NAMESPACE
\value GrabKeyboard Item gains keyboard grab (QGraphicsItem only).
\value GrabMouse Item gains mouse grab (QGraphicsItem only).
\value GraphicsSceneContextMenu Context popup menu over a graphics scene (QGraphicsSceneContextMenuEvent).
- \value GraphicsSceneDragEnter The cursor enters a graphics scene during a drag and drop operation.
- \value GraphicsSceneDragLeave The cursor leaves a graphics scene during a drag and drop operation.
- \value GraphicsSceneDragMove A drag and drop operation is in progress over a scene.
- \value GraphicsSceneDrop A drag and drop operation is completed over a scene.
+ \value GraphicsSceneDragEnter The cursor enters a graphics scene during a drag and drop operation (QGraphicsSceneDragDropEvent).
+ \value GraphicsSceneDragLeave The cursor leaves a graphics scene during a drag and drop operation (QGraphicsSceneDragDropEvent).
+ \value GraphicsSceneDragMove A drag and drop operation is in progress over a scene (QGraphicsSceneDragDropEvent).
+ \value GraphicsSceneDrop A drag and drop operation is completed over a scene (QGraphicsSceneDragDropEvent).
\value GraphicsSceneHelp The user requests help for a graphics scene (QHelpEvent).
\value GraphicsSceneHoverEnter The mouse cursor enters a hover item in a graphics scene (QGraphicsSceneHoverEvent).
\value GraphicsSceneHoverLeave The mouse cursor leaves a hover item in a graphics scene (QGraphicsSceneHoverEvent).
@@ -272,7 +272,6 @@ QT_BEGIN_NAMESPACE
\omitvalue MacGLClearDrawable
\omitvalue NetworkReplyUpdated
\omitvalue FutureCallOut
- \omitvalue CocoaRequestModal
\omitvalue UpdateSoftKeys
\omitvalue NativeGesture
*/
@@ -331,7 +330,7 @@ QEvent::~QEvent()
equivalent of calling setAccepted(false).
Clearing the accept parameter indicates that the event receiver
- does not want the event. Unwanted events might be propgated to the
+ does not want the event. Unwanted events might be propagated to the
parent widget.
\sa accept()
diff --git a/src/corelib/kernel/qtranslator.cpp b/src/corelib/kernel/qtranslator.cpp
index b7e6ea0..7d1e1d3 100644
--- a/src/corelib/kernel/qtranslator.cpp
+++ b/src/corelib/kernel/qtranslator.cpp
@@ -633,7 +633,7 @@ static QString getMessage(const uchar *m, const uchar *end, const char *context,
end:
if (!tn)
return QString();
- QString str = QString::fromUtf16((const ushort *)tn, tn_length/2);
+ QString str = QString((const QChar *)tn, tn_length/2);
if (QSysInfo::ByteOrder == QSysInfo::LittleEndian) {
for (int i = 0; i < str.length(); ++i)
str[i] = QChar((str.at(i).unicode() >> 8) + ((str.at(i).unicode() << 8) & 0xff00));
diff --git a/src/corelib/plugin/qlibrary.cpp b/src/corelib/plugin/qlibrary.cpp
index 02c0aa1..a2c575a 100644
--- a/src/corelib/plugin/qlibrary.cpp
+++ b/src/corelib/plugin/qlibrary.cpp
@@ -539,6 +539,7 @@ bool QLibraryPrivate::loadPlugin()
\row \i AIX \i \c .a
\row \i HP-UX \i \c .sl, \c .so (HP-UXi)
\row \i Mac OS X \i \c .dylib, \c .bundle, \c .so
+ \row \i Symbian \i \c .dll
\endtable
Trailing versioning numbers on Unix are ignored.
diff --git a/src/corelib/thread/qthread_win.cpp b/src/corelib/thread/qthread_win.cpp
index b276f0a..37d5b87 100644
--- a/src/corelib/thread/qthread_win.cpp
+++ b/src/corelib/thread/qthread_win.cpp
@@ -40,7 +40,9 @@
****************************************************************************/
//#define WINVER 0x0500
+#if _WIN32_WINNT < 0x0400
#define _WIN32_WINNT 0x0400
+#endif
#include "qthread.h"
diff --git a/src/corelib/tools/qbytearray.cpp b/src/corelib/tools/qbytearray.cpp
index 5dc931b..a27e488 100644
--- a/src/corelib/tools/qbytearray.cpp
+++ b/src/corelib/tools/qbytearray.cpp
@@ -561,6 +561,7 @@ QByteArray qUncompress(const uchar* data, int nbytes)
d->ref = 1;
d->alloc = d->size = len;
d->data = d->array;
+ d->array[len] = 0;
return QByteArray(d.take(), 0, 0);
@@ -1060,7 +1061,7 @@ QByteArray &QByteArray::operator=(const char *str)
\internal
*/
-/*! \fn bool QByteArray::isSharedWith(const QByteArray &other)
+/*! \fn bool QByteArray::isSharedWith(const QByteArray &other) const
\internal
*/
diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp
index c1027ed..9a361c0 100644
--- a/src/corelib/tools/qdatetime.cpp
+++ b/src/corelib/tools/qdatetime.cpp
@@ -75,6 +75,7 @@
#if defined(Q_OS_SYMBIAN)
#include <e32std.h>
+#include <tz.h>
#endif
QT_BEGIN_NAMESPACE
@@ -3721,23 +3722,32 @@ static QDateTimePrivate::Spec utcToLocal(QDate &date, QTime &time)
#elif defined(Q_OS_SYMBIAN)
// months and days are zero index based
_LIT(KUnixEpoch, "19700000:000000.000000");
- TTimeIntervalSeconds utcOffset = User::UTCOffset();
TTimeIntervalSeconds tTimeIntervalSecsSince1Jan1970UTC(secsSince1Jan1970UTC);
TTime epochTTime;
TInt err = epochTTime.Set(KUnixEpoch);
tm res;
if(err == KErrNone) {
TTime utcTTime = epochTTime + tTimeIntervalSecsSince1Jan1970UTC;
- utcTTime = utcTTime + utcOffset;
- TDateTime utcDateTime = utcTTime.DateTime();
- res.tm_sec = utcDateTime.Second();
- res.tm_min = utcDateTime.Minute();
- res.tm_hour = utcDateTime.Hour();
- res.tm_mday = utcDateTime.Day() + 1; // non-zero based index for tm struct
- res.tm_mon = utcDateTime.Month();
- res.tm_year = utcDateTime.Year() - 1900;
- res.tm_isdst = 0;
- brokenDown = &res;
+ TRAP(err,
+ RTz tz;
+ User::LeaveIfError(tz.Connect());
+ CleanupClosePushL(tz);
+ res.tm_isdst = tz.IsDaylightSavingOnL(*tz.GetTimeZoneIdL(),utcTTime);
+ User::LeaveIfError(tz.ConvertToLocalTime(utcTTime));
+ CleanupStack::PopAndDestroy(&tz));
+ if (KErrNone == err) {
+ TDateTime localDateTime = utcTTime.DateTime();
+ res.tm_sec = localDateTime.Second();
+ res.tm_min = localDateTime.Minute();
+ res.tm_hour = localDateTime.Hour();
+ res.tm_mday = localDateTime.Day() + 1; // non-zero based index for tm struct
+ res.tm_mon = localDateTime.Month();
+ res.tm_year = localDateTime.Year() - 1900;
+ // Symbian's timezone server doesn't know how to handle DST before year 1997
+ if (res.tm_year < 97)
+ res.tm_isdst = -1;
+ brokenDown = &res;
+ }
}
#elif !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS)
// use the reentrant version of localtime() where available
@@ -3812,23 +3822,27 @@ static void localToUtc(QDate &date, QTime &time, int isdst)
#elif defined(Q_OS_SYMBIAN)
// months and days are zero index based
_LIT(KUnixEpoch, "19700000:000000.000000");
- TTimeIntervalSeconds utcOffset = TTimeIntervalSeconds(0 - User::UTCOffset().Int());
TTimeIntervalSeconds tTimeIntervalSecsSince1Jan1970UTC(secsSince1Jan1970UTC);
TTime epochTTime;
TInt err = epochTTime.Set(KUnixEpoch);
tm res;
if(err == KErrNone) {
- TTime utcTTime = epochTTime + tTimeIntervalSecsSince1Jan1970UTC;
- utcTTime = utcTTime + utcOffset;
- TDateTime utcDateTime = utcTTime.DateTime();
- res.tm_sec = utcDateTime.Second();
- res.tm_min = utcDateTime.Minute();
- res.tm_hour = utcDateTime.Hour();
- res.tm_mday = utcDateTime.Day() + 1; // non-zero based index for tm struct
- res.tm_mon = utcDateTime.Month();
- res.tm_year = utcDateTime.Year() - 1900;
- res.tm_isdst = (int)isdst;
- brokenDown = &res;
+ TTime localTTime = epochTTime + tTimeIntervalSecsSince1Jan1970UTC;
+ RTz tz;
+ if (KErrNone == tz.Connect()) {
+ if (KErrNone == tz.ConvertToUniversalTime(localTTime)) {
+ TDateTime utcDateTime = localTTime.DateTime();
+ res.tm_sec = utcDateTime.Second();
+ res.tm_min = utcDateTime.Minute();
+ res.tm_hour = utcDateTime.Hour();
+ res.tm_mday = utcDateTime.Day() + 1; // non-zero based index for tm struct
+ res.tm_mon = utcDateTime.Month();
+ res.tm_year = utcDateTime.Year() - 1900;
+ res.tm_isdst = (int)isdst;
+ brokenDown = &res;
+ }
+ tz.Close();
+ }
}
#elif !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS)
// use the reentrant version of gmtime() where available
diff --git a/src/corelib/tools/qeasingcurve.cpp b/src/corelib/tools/qeasingcurve.cpp
index 0ef92d9..b6a2df4 100644
--- a/src/corelib/tools/qeasingcurve.cpp
+++ b/src/corelib/tools/qeasingcurve.cpp
@@ -125,7 +125,7 @@
\value OutCubic \inlineimage qeasingcurve-outcubic.png
\br
Easing curve for a cubic (t^3) function:
- decelerating from zero velocity.
+ decelerating to zero velocity.
\value InOutCubic \inlineimage qeasingcurve-inoutcubic.png
\br
Easing curve for a cubic (t^3) function:
@@ -141,7 +141,7 @@
\value OutQuart \inlineimage qeasingcurve-outquart.png
\br
Easing curve for a cubic (t^4) function:
- decelerating from zero velocity.
+ decelerating to zero velocity.
\value InOutQuart \inlineimage qeasingcurve-inoutquart.png
\br
Easing curve for a cubic (t^4) function:
@@ -157,7 +157,7 @@
\value OutQuint \inlineimage qeasingcurve-outquint.png
\br
Easing curve for a cubic (t^5) function:
- decelerating from zero velocity.
+ decelerating to zero velocity.
\value InOutQuint \inlineimage qeasingcurve-inoutquint.png
\br
Easing curve for a cubic (t^5) function:
diff --git a/src/corelib/tools/qhash.cpp b/src/corelib/tools/qhash.cpp
index 7111e68..285f4c9 100644
--- a/src/corelib/tools/qhash.cpp
+++ b/src/corelib/tools/qhash.cpp
@@ -68,8 +68,8 @@ static uint hash(const uchar *p, int n)
while (n--) {
h = (h << 4) + *p++;
- if ((g = (h & 0xf0000000)) != 0)
- h ^= g >> 23;
+ g = h & 0xf0000000;
+ h ^= g >> 23;
h &= ~g;
}
return h;
@@ -82,8 +82,8 @@ static uint hash(const QChar *p, int n)
while (n--) {
h = (h << 4) + (*p++).unicode();
- if ((g = (h & 0xf0000000)) != 0)
- h ^= g >> 23;
+ g = h & 0xf0000000;
+ h ^= g >> 23;
h &= ~g;
}
return h;
diff --git a/src/corelib/tools/qlist.cpp b/src/corelib/tools/qlist.cpp
index 3f124c9..ce62016 100644
--- a/src/corelib/tools/qlist.cpp
+++ b/src/corelib/tools/qlist.cpp
@@ -208,7 +208,7 @@ void **QListData::append2(const QListData& l)
int n = l.d->end - l.d->begin;
if (n) {
if (e + n > d->alloc)
- realloc(grow(e + l.d->end - l.d->begin));
+ realloc(grow(e + n));
d->end += n;
}
return d->array + e;
diff --git a/src/corelib/tools/qsharedpointer.cpp b/src/corelib/tools/qsharedpointer.cpp
index 21816b9..1b4b356 100644
--- a/src/corelib/tools/qsharedpointer.cpp
+++ b/src/corelib/tools/qsharedpointer.cpp
@@ -130,7 +130,7 @@
multiple- or virtual-inheritance (that is, in cases where two different
pointer addresses can refer to the same object). In that case, if a
pointer is cast to a different type and its value changes,
- QSharedPointer's pointer tracking mechanism mail fail to detect that the
+ QSharedPointer's pointer tracking mechanism may fail to detect that the
object being tracked is the same.
\omit
diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp
index a791ae9..dec59b7 100644
--- a/src/corelib/tools/qstring.cpp
+++ b/src/corelib/tools/qstring.cpp
@@ -886,7 +886,7 @@ int QString::grow(int size)
QString QString::fromWCharArray(const wchar_t *string, int size)
{
if (sizeof(wchar_t) == sizeof(QChar)) {
- return fromUtf16((ushort *)string, size);
+ return fromUtf16((const ushort *)string, size);
} else {
return fromUcs4((uint *)string, size);
}
@@ -3863,6 +3863,12 @@ QString QString::fromUtf8(const char *str, int size)
If \a size is -1 (default), \a unicode must be terminated
with a 0.
+ This function checks for a Byte Order Mark (BOM). If it is missing,
+ host byte order is assumed.
+
+ This function is comparatively slow.
+ Use QString(const ushort *, int) if possible.
+
QString makes a deep copy of the Unicode data.
\sa utf16(), setUtf16()
@@ -3929,6 +3935,9 @@ QString& QString::setUnicode(const QChar *unicode, int size)
If \a unicode is 0, nothing is copied, but the string is still
resized to \a size.
+ Note that unlike fromUtf16(), this function does not consider BOMs and
+ possibly differing byte ordering.
+
\sa utf16(), setUnicode()
*/
@@ -4675,6 +4684,8 @@ int QString::localeAwareCompare_helper(const QChar *data1, int length1,
Returns the QString as a '\\0\'-terminated array of unsigned
shorts. The result remains valid until the string is modified.
+ The returned string is in host byte order.
+
\sa unicode()
*/
@@ -7746,7 +7757,7 @@ QString QStringRef::toString() const {
return QString();
if (m_size && m_position == 0 && m_size == m_string->size())
return *m_string;
- return QString::fromUtf16(reinterpret_cast<const ushort*>(m_string->unicode() + m_position), m_size);
+ return QString(m_string->unicode() + m_position, m_size);
}
diff --git a/src/dbus/qdbusargument.cpp b/src/dbus/qdbusargument.cpp
index 3466d90..7defc9a 100644
--- a/src/dbus/qdbusargument.cpp
+++ b/src/dbus/qdbusargument.cpp
@@ -535,7 +535,6 @@ QDBusArgument &QDBusArgument::operator<<(const QByteArray &arg)
/*!
\internal
- Returns the type signature of the D-Bus type this QDBusArgument
\since 4.5
Appends the variant \a v.
diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
index 30fa0b6..44abf7b 100644
--- a/src/dbus/qdbusintegrator.cpp
+++ b/src/dbus/qdbusintegrator.cpp
@@ -1660,9 +1660,6 @@ void QDBusConnectionPrivate::setConnection(DBusConnection *dbc, const QDBusError
}
QString busService = QLatin1String(DBUS_SERVICE_DBUS);
- WatchedServicesHash::mapped_type &bus = watchedServices[busService];
- bus.refcount = 1;
- bus.owner = getNameOwnerNoCache(busService);
connectSignal(busService, QString(), QString(), QLatin1String("NameAcquired"), QStringList(), QString(),
this, SLOT(registerService(QString)));
connectSignal(busService, QString(), QString(), QLatin1String("NameLost"), QStringList(), QString(),
@@ -2004,7 +2001,8 @@ bool QDBusConnectionPrivate::connectSignal(const QString &service,
entry.path == hook.path &&
entry.signature == hook.signature &&
entry.obj == hook.obj &&
- entry.midx == hook.midx) {
+ entry.midx == hook.midx &&
+ entry.argumentMatch == hook.argumentMatch) {
// no need to compare the parameters if it's the same slot
return true; // already there
}
@@ -2046,10 +2044,7 @@ void QDBusConnectionPrivate::connectSignal(const QString &key, const SignalHook
// Do we need to watch for this name?
if (shouldWatchService(hook.service)) {
WatchedServicesHash::mapped_type &data = watchedServices[hook.service];
- if (data.refcount) {
- // already watching
- ++data.refcount;
- } else {
+ if (++data.refcount == 1) {
// we need to watch for this service changing
QString dbusServerService = QLatin1String(DBUS_SERVICE_DBUS);
connectSignal(dbusServerService, QString(), QLatin1String(DBUS_INTERFACE_DBUS),
@@ -2089,7 +2084,8 @@ bool QDBusConnectionPrivate::disconnectSignal(const QString &service,
entry.path == hook.path &&
entry.signature == hook.signature &&
entry.obj == hook.obj &&
- entry.midx == hook.midx) {
+ entry.midx == hook.midx &&
+ entry.argumentMatch == hook.argumentMatch) {
// no need to compare the parameters if it's the same slot
disconnectSignal(it);
return true; // it was there
@@ -2105,19 +2101,6 @@ QDBusConnectionPrivate::disconnectSignal(SignalHookHash::Iterator &it)
{
const SignalHook &hook = it.value();
- WatchedServicesHash::Iterator sit = watchedServices.find(hook.service);
- if (sit != watchedServices.end()) {
- if (sit.value().refcount == 1) {
- watchedServices.erase(sit);
- QString dbusServerService = QLatin1String(DBUS_SERVICE_DBUS);
- disconnectSignal(dbusServerService, QString(), QLatin1String(DBUS_INTERFACE_DBUS),
- QLatin1String("NameOwnerChanged"), QStringList() << hook.service, QString(),
- this, SLOT(_q_serviceOwnerChanged(QString,QString,QString)));
- } else {
- --sit.value().refcount;
- }
- }
-
bool erase = false;
MatchRefCountHash::iterator i = matchRefCounts.find(hook.matchRule);
if (i == matchRefCounts.end()) {
@@ -2136,6 +2119,20 @@ QDBusConnectionPrivate::disconnectSignal(SignalHookHash::Iterator &it)
if (connection && erase) {
qDBusDebug("Removing rule: %s", hook.matchRule.constData());
q_dbus_bus_remove_match(connection, hook.matchRule, NULL);
+
+ // Successfully disconnected the signal
+ // Were we watching for this name?
+ WatchedServicesHash::Iterator sit = watchedServices.find(hook.service);
+ if (sit != watchedServices.end()) {
+ if (--sit.value().refcount == 0) {
+ watchedServices.erase(sit);
+ QString dbusServerService = QLatin1String(DBUS_SERVICE_DBUS);
+ disconnectSignal(dbusServerService, QString(), QLatin1String(DBUS_INTERFACE_DBUS),
+ QLatin1String("NameOwnerChanged"), QStringList() << hook.service, QString(),
+ this, SLOT(_q_serviceOwnerChanged(QString,QString,QString)));
+ }
+ }
+
}
return signalHooks.erase(it);
diff --git a/src/dbus/qdbusmarshaller.cpp b/src/dbus/qdbusmarshaller.cpp
index f156e04..8ec328e 100644
--- a/src/dbus/qdbusmarshaller.cpp
+++ b/src/dbus/qdbusmarshaller.cpp
@@ -40,6 +40,7 @@
****************************************************************************/
#include "qdbusargument_p.h"
+#include "qdbusmetatype_p.h"
#include "qdbusutil_p.h"
QT_BEGIN_NAMESPACE
@@ -167,7 +168,7 @@ inline bool QDBusMarshaller::append(const QDBusVariant &arg)
QByteArray tmpSignature;
const char *signature = 0;
- if (int(id) == qMetaTypeId<QDBusArgument>()) {
+ if (int(id) == QDBusMetaTypeId::argument) {
// take the signature from the QDBusArgument object we're marshalling
tmpSignature =
qvariant_cast<QDBusArgument>(value).currentSignature().toLatin1();
@@ -353,7 +354,7 @@ bool QDBusMarshaller::appendVariantInternal(const QVariant &arg)
}
// intercept QDBusArgument parameters here
- if (id == qMetaTypeId<QDBusArgument>()) {
+ if (id == QDBusMetaTypeId::argument) {
QDBusArgument dbusargument = qvariant_cast<QDBusArgument>(arg);
QDBusArgumentPrivate *d = QDBusArgumentPrivate::d(dbusargument);
if (!d->message)
diff --git a/src/gui/dialogs/qdialog.cpp b/src/gui/dialogs/qdialog.cpp
index 3650051..9ff2ad8 100644
--- a/src/gui/dialogs/qdialog.cpp
+++ b/src/gui/dialogs/qdialog.cpp
@@ -265,6 +265,14 @@ QDialog::QDialog(QWidget *parent, Qt::WindowFlags f)
if (!qt_wince_is_smartphone())
setWindowFlags(windowFlags() | Qt::WindowOkButtonHint | QFlag(qt_wince_is_mobile() ? 0 : Qt::WindowCancelButtonHint));
#endif
+
+#ifdef Q_WS_S60
+ if (S60->avkonComponentsSupportTransparency) {
+ bool noSystemBackground = testAttribute(Qt::WA_NoSystemBackground);
+ setAttribute(Qt::WA_TranslucentBackground); // also sets WA_NoSystemBackground
+ setAttribute(Qt::WA_NoSystemBackground, noSystemBackground); // restore system background attribute
+ }
+#endif
}
#ifdef QT3_SUPPORT
@@ -294,6 +302,14 @@ QDialog::QDialog(QDialogPrivate &dd, QWidget *parent, Qt::WindowFlags f)
if (!qt_wince_is_smartphone())
setWindowFlags(windowFlags() | Qt::WindowOkButtonHint | QFlag(qt_wince_is_mobile() ? 0 : Qt::WindowCancelButtonHint));
#endif
+
+#ifdef Q_WS_S60
+ if (S60->avkonComponentsSupportTransparency) {
+ bool noSystemBackground = testAttribute(Qt::WA_NoSystemBackground);
+ setAttribute(Qt::WA_TranslucentBackground); // also sets WA_NoSystemBackground
+ setAttribute(Qt::WA_NoSystemBackground, noSystemBackground); // restore system background attribute
+ }
+#endif
}
/*!
diff --git a/src/gui/dialogs/qfiledialog_win.cpp b/src/gui/dialogs/qfiledialog_win.cpp
index c7cef1e..3120938 100644
--- a/src/gui/dialogs/qfiledialog_win.cpp
+++ b/src/gui/dialogs/qfiledialog_win.cpp
@@ -71,9 +71,9 @@ static const CLSID QT_CLSID_FileOpenDialog = {0xdc1c5a9c, 0xe88a, 0x4dde, {0xa5,
#endif
-typedef LPITEMIDLIST (WINAPI *PtrSHBrowseForFolder)(BROWSEINFO*);
+typedef qt_LPITEMIDLIST (WINAPI *PtrSHBrowseForFolder)(qt_BROWSEINFO*);
static PtrSHBrowseForFolder ptrSHBrowseForFolder = 0;
-typedef BOOL (WINAPI *PtrSHGetPathFromIDList)(LPITEMIDLIST,LPWSTR);
+typedef BOOL (WINAPI *PtrSHGetPathFromIDList)(qt_LPITEMIDLIST, LPWSTR);
static PtrSHGetPathFromIDList ptrSHGetPathFromIDList = 0;
typedef HRESULT (WINAPI *PtrSHGetMalloc)(LPMALLOC *);
static PtrSHGetMalloc ptrSHGetMalloc = 0;
@@ -687,7 +687,7 @@ static int __stdcall winGetExistDirCallbackProc(HWND hwnd,
qt_win_resolve_libs();
if (ptrSHGetPathFromIDList) {
wchar_t path[MAX_PATH];
- ptrSHGetPathFromIDList(LPITEMIDLIST(lParam), path);
+ ptrSHGetPathFromIDList(qt_LPITEMIDLIST(lParam), path);
QString tmpStr = QString::fromWCharArray(path);
if (!tmpStr.isEmpty())
SendMessage(hwnd, BFFM_ENABLEOK, 1, 1);
@@ -723,7 +723,7 @@ QString qt_win_get_existing_directory(const QFileDialogArgs &args)
path[0] = 0;
tTitle = args.caption;
- BROWSEINFO bi;
+ qt_BROWSEINFO bi;
Q_ASSERT(!parent ||parent->testAttribute(Qt::WA_WState_Created));
bi.hwndOwner = (parent ? parent->winId() : 0);
@@ -737,7 +737,7 @@ QString qt_win_get_existing_directory(const QFileDialogArgs &args)
qt_win_resolve_libs();
if (ptrSHBrowseForFolder) {
- LPITEMIDLIST pItemIDList = ptrSHBrowseForFolder(&bi);
+ qt_LPITEMIDLIST pItemIDList = ptrSHBrowseForFolder(&bi);
if (pItemIDList) {
ptrSHGetPathFromIDList(pItemIDList, path);
IMalloc *pMalloc;
diff --git a/src/gui/dialogs/qfiledialog_win_p.h b/src/gui/dialogs/qfiledialog_win_p.h
index 39e6f5d..527ab3f 100644
--- a/src/gui/dialogs/qfiledialog_win_p.h
+++ b/src/gui/dialogs/qfiledialog_win_p.h
@@ -49,9 +49,6 @@
//and we won't have to declare it ourselves
//declarations
-typedef DWORD SICHINTF;
-typedef ULONG SFGAOF;
-typedef DWORD SHCONTF;
#define FOS_OVERWRITEPROMPT 0x2
#define FOS_STRICTFILETYPES 0x4
#define FOS_NOCHANGEDIR 0x8
@@ -143,32 +140,29 @@ typedef struct {
LPCWSTR pszName;
LPCWSTR pszSpec;
} qt_COMDLG_FILTERSPEC;
-#ifndef PROPERTYKEY_DEFINED
-#define PROPERTYKEY_DEFINED
typedef struct {
GUID fmtid;
DWORD pid;
-} PROPERTYKEY;
-#endif
+} qt_PROPERTYKEY;
typedef struct {
USHORT cb;
BYTE abID[1];
-} SHITEMID, *LPSHITEMID;
+} qt_SHITEMID, *qt_LPSHITEMID;
typedef struct {
- SHITEMID mkid;
-} ITEMIDLIST, *LPITEMIDLIST;
-typedef const ITEMIDLIST *LPCITEMIDLIST;
+ qt_SHITEMID mkid;
+} qt_ITEMIDLIST, *qt_LPITEMIDLIST;
+typedef const qt_ITEMIDLIST *qt_LPCITEMIDLIST;
typedef struct {
HWND hwndOwner;
- LPCITEMIDLIST pidlRoot;
+ qt_LPCITEMIDLIST pidlRoot;
LPWSTR pszDisplayName;
LPCWSTR lpszTitle;
UINT ulFlags;
BFFCALLBACK lpfn;
LPARAM lParam;
int iImage;
-} BROWSEINFO;
+} qt_BROWSEINFO;
DECLARE_INTERFACE(IFileDialogEvents);
DECLARE_INTERFACE_(IShellItem, IUnknown)
@@ -176,13 +170,13 @@ DECLARE_INTERFACE_(IShellItem, IUnknown)
STDMETHOD(BindToHandler)(THIS_ IBindCtx *pbc, REFGUID bhid, REFIID riid, void **ppv) PURE;
STDMETHOD(GetParent)(THIS_ IShellItem **ppsi) PURE;
STDMETHOD(GetDisplayName)(THIS_ SIGDN sigdnName, LPWSTR *ppszName) PURE;
- STDMETHOD(GetAttributes)(THIS_ SFGAOF sfgaoMask, SFGAOF *psfgaoAttribs) PURE;
- STDMETHOD(Compare)(THIS_ IShellItem *psi, SICHINTF hint, int *piOrder) PURE;
+ STDMETHOD(GetAttributes)(THIS_ ULONG sfgaoMask, ULONG *psfgaoAttribs) PURE;
+ STDMETHOD(Compare)(THIS_ IShellItem *psi, DWORD hint, int *piOrder) PURE;
};
DECLARE_INTERFACE_(IShellItemFilter, IUnknown)
{
STDMETHOD(IncludeItem)(THIS_ IShellItem *psi) PURE;
- STDMETHOD(GetEnumFlagsForItem)(THIS_ IShellItem *psi, SHCONTF *pgrfFlags) PURE;
+ STDMETHOD(GetEnumFlagsForItem)(THIS_ IShellItem *psi, DWORD *pgrfFlags) PURE;
};
DECLARE_INTERFACE_(IEnumShellItems, IUnknown)
{
@@ -195,8 +189,8 @@ DECLARE_INTERFACE_(IShellItemArray, IUnknown)
{
STDMETHOD(BindToHandler)(THIS_ IBindCtx *pbc, REFGUID rbhid, REFIID riid, void **ppvOut) PURE;
STDMETHOD(GetPropertyStore)(THIS_ GETPROPERTYSTOREFLAGS flags, REFIID riid, void **ppv) PURE;
- STDMETHOD(GetPropertyDescriptionList)(THIS_ const PROPERTYKEY *keyType, REFIID riid, void **ppv) PURE;
- STDMETHOD(GetAttributes)(THIS_ SIATTRIBFLAGS dwAttribFlags, SFGAOF sfgaoMask, SFGAOF *psfgaoAttribs) PURE;
+ STDMETHOD(GetPropertyDescriptionList)(THIS_ const qt_PROPERTYKEY *keyType, REFIID riid, void **ppv) PURE;
+ STDMETHOD(GetAttributes)(THIS_ SIATTRIBFLAGS dwAttribFlags, ULONG sfgaoMask, ULONG *psfgaoAttribs) PURE;
STDMETHOD(GetCount)(THIS_ DWORD *pdwNumItems) PURE;
STDMETHOD(GetItemAt)(THIS_ DWORD dwIndex, IShellItem **ppsi) PURE;
STDMETHOD(EnumItems)(THIS_ IEnumShellItems **ppenumShellItems) PURE;
diff --git a/src/gui/dialogs/qprintdialog.h b/src/gui/dialogs/qprintdialog.h
index 390a4a0..ecd50c1 100644
--- a/src/gui/dialogs/qprintdialog.h
+++ b/src/gui/dialogs/qprintdialog.h
@@ -97,9 +97,9 @@ public:
void done(int result);
#if defined (Q_OS_UNIX) && defined (QT3_SUPPORT)
- void setPrinter(QPrinter *, bool = false);
- QPrinter *printer() const;
- void addButton(QPushButton *button);
+ QT3_SUPPORT void setPrinter(QPrinter *, bool = false);
+ QT3_SUPPORT QPrinter *printer() const;
+ QT3_SUPPORT void addButton(QPushButton *button);
#endif
void setOption(PrintDialogOption option, bool on = true);
diff --git a/src/gui/dialogs/qprintpreviewdialog.cpp b/src/gui/dialogs/qprintpreviewdialog.cpp
index 42be780..6723b53 100644
--- a/src/gui/dialogs/qprintpreviewdialog.cpp
+++ b/src/gui/dialogs/qprintpreviewdialog.cpp
@@ -207,6 +207,9 @@ public:
QActionGroup *printerGroup;
QAction *printAction;
QAction *pageSetupAction;
+#if defined(Q_WS_MAC) && !defined(QT_MAC_USE_COCOA)
+ QAction *closeAction;
+#endif
QPointer<QObject> receiverToDisconnectOnClose;
QByteArray memberToDisconnectOnClose;
@@ -287,6 +290,9 @@ void QPrintPreviewDialogPrivate::init(QPrinter *_printer)
toolbar->addSeparator();
toolbar->addAction(pageSetupAction);
toolbar->addAction(printAction);
+#if defined(Q_WS_MAC) && !defined(QT_MAC_USE_COCOA)
+ toolbar->addAction(closeAction);
+#endif
// Cannot use the actions' triggered signal here, since it doesn't autorepeat
QToolButton *zoomInButton = static_cast<QToolButton *>(toolbar->widgetForAction(zoomInAction));
@@ -406,6 +412,10 @@ void QPrintPreviewDialogPrivate::setupActions()
qt_setupActionIcon(pageSetupAction, QLatin1String("page-setup"));
QObject::connect(printAction, SIGNAL(triggered(bool)), q, SLOT(_q_print()));
QObject::connect(pageSetupAction, SIGNAL(triggered(bool)), q, SLOT(_q_pageSetup()));
+#if defined(Q_WS_MAC) && !defined(QT_MAC_USE_COCOA)
+ closeAction = printerGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Close"));
+ QObject::connect(closeAction, SIGNAL(triggered(bool)), q, SLOT(reject()));
+#endif
// Initial state:
fitPageAction->setChecked(true);
diff --git a/src/gui/effects/qgraphicseffect.cpp b/src/gui/effects/qgraphicseffect.cpp
index ad23df3..10ef5ea 100644
--- a/src/gui/effects/qgraphicseffect.cpp
+++ b/src/gui/effects/qgraphicseffect.cpp
@@ -383,9 +383,9 @@ void QGraphicsEffectSourcePrivate::invalidateCache(InvalidateReason reason) cons
{
if (m_cachedMode != QGraphicsEffect::PadToEffectiveBoundingRect
&& (reason == EffectRectChanged
- || reason == TransformChanged
- && m_cachedSystem == Qt::LogicalCoordinates))
+ || (reason == TransformChanged && m_cachedSystem == Qt::LogicalCoordinates))) {
return;
+ }
QPixmapCache::remove(m_cacheKey);
}
diff --git a/src/gui/embedded/qscreen_qws.cpp b/src/gui/embedded/qscreen_qws.cpp
index 8eb8123..65a3fb5 100644
--- a/src/gui/embedded/qscreen_qws.cpp
+++ b/src/gui/embedded/qscreen_qws.cpp
@@ -39,6 +39,7 @@
**
****************************************************************************/
+#include "qplatformdefs.h"
#include "qscreen_qws.h"
#include "qcolormap.h"
@@ -3223,13 +3224,13 @@ QScreen * qt_probe_bus()
return qt_dodriver("unaccel.so",0,0);
}
- DIR * dirptr=opendir("/proc/bus/pci");
+ QT_DIR *dirptr = QT_OPENDIR("/proc/bus/pci");
if(!dirptr)
return qt_dodriver("unaccel.so",0,0);
- DIR * dirptr2;
- dirent * cards;
+ QT_DIR * dirptr2;
+ QT_DIRENT *cards;
- dirent * busses=readdir(dirptr);
+ QT_DIRENT *busses = QT_READDIR(dirptr);
while(busses) {
if(busses->d_name[0]!='.') {
@@ -3237,9 +3238,9 @@ QScreen * qt_probe_bus()
strcpy(buf,"/proc/bus/pci/");
qstrcpy(buf+14,busses->d_name);
int p=strlen(buf);
- dirptr2=opendir(buf);
+ dirptr2 = QT_OPENDIR(buf);
if(dirptr2) {
- cards=readdir(dirptr2);
+ cards = QT_READDIR(dirptr2);
while(cards) {
if(cards->d_name[0]!='.') {
buf[p]='/';
@@ -3248,14 +3249,14 @@ QScreen * qt_probe_bus()
if(ret)
return ret;
}
- cards=readdir(dirptr2);
+ cards = QT_READDIR(dirptr2);
}
- closedir(dirptr2);
+ QT_CLOSEDIR(dirptr2);
}
}
- busses=readdir(dirptr);
+ busses = QT_READDIR(dirptr);
}
- closedir(dirptr);
+ QT_CLOSEDIR(dirptr);
return qt_dodriver("unaccel.so",0,0);
}
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index 1361a89..ed36f87 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -268,6 +268,17 @@
*/
/*!
+ \variable QGraphicsItem::Type
+
+ The type value returned by the virtual type() function in standard
+ graphics item classes in Qt. All such standard graphics item
+ classes in Qt are associated with a unique value for Type,
+ e.g. the value returned by QGraphicsPathItem::type() is 2.
+
+ \snippet doc/src/snippets/code/src_gui_graphicsview_qgraphicsitem.cpp 18
+*/
+
+/*!
\variable QGraphicsItem::UserType
The lowest permitted type value for custom items (subclasses
@@ -276,6 +287,8 @@
and declaring a Type enum value. Example:
\snippet doc/src/snippets/code/src_gui_graphicsview_qgraphicsitem.cpp 1
+
+ \note UserType = 65536
*/
/*!
@@ -798,8 +811,36 @@ void QGraphicsItemPrivate::updateAncestorFlag(QGraphicsItem::GraphicsItemFlag ch
return;
}
- foreach (QGraphicsItem *child, children)
- child->d_ptr->updateAncestorFlag(childFlag, flag, enabled, false);
+ for (int i = 0; i < children.size(); ++i)
+ children.at(i)->d_ptr->updateAncestorFlag(childFlag, flag, enabled, false);
+}
+
+void QGraphicsItemPrivate::updateAncestorFlags()
+{
+ int flags = 0;
+ if (parent) {
+ // Inherit the parent's ancestor flags.
+ QGraphicsItemPrivate *pd = parent->d_ptr.data();
+ flags = pd->ancestorFlags;
+
+ // Add in flags from the parent.
+ if (pd->filtersDescendantEvents)
+ flags |= AncestorFiltersChildEvents;
+ if (pd->handlesChildEvents)
+ flags |= AncestorHandlesChildEvents;
+ if (pd->flags & QGraphicsItem::ItemClipsChildrenToShape)
+ flags |= AncestorClipsChildren;
+ if (pd->flags & QGraphicsItem::ItemIgnoresTransformations)
+ flags |= AncestorIgnoresTransformations;
+ }
+
+ if (ancestorFlags == flags)
+ return; // No change; stop propagation.
+ ancestorFlags = flags;
+
+ // Propagate to children recursively.
+ for (int i = 0; i < children.size(); ++i)
+ children.at(i)->d_ptr->updateAncestorFlags();
}
/*!
@@ -984,25 +1025,17 @@ QVariant QGraphicsItemPrivate::inputMethodQueryHelper(Qt::InputMethodQuery query
prepareGeometryChange) if the item is in its destructor, i.e.
inDestructor is 1.
*/
-void QGraphicsItemPrivate::setParentItemHelper(QGraphicsItem *newParent)
+void QGraphicsItemPrivate::setParentItemHelper(QGraphicsItem *newParent, const QVariant *newParentVariant,
+ const QVariant *thisPointerVariant)
{
Q_Q(QGraphicsItem);
- if (newParent == q) {
- qWarning("QGraphicsItem::setParentItem: cannot assign %p as a parent of itself", this);
- return;
- }
- if (newParent == parent)
- return;
-
- const QVariant newParentVariant(q->itemChange(QGraphicsItem::ItemParentChange,
- qVariantFromValue<QGraphicsItem *>(newParent)));
- newParent = qVariantValue<QGraphicsItem *>(newParentVariant);
if (newParent == parent)
return;
if (scene) {
// Deliver the change to the index
- scene->d_func()->index->itemChange(q, QGraphicsItem::ItemParentChange, newParentVariant);
+ if (scene->d_func()->indexMethod != QGraphicsScene::NoIndex)
+ scene->d_func()->index->itemChange(q, QGraphicsItem::ItemParentChange, newParent);
// Disable scene pos notifications for old ancestors
if (scenePosDescendants || (flags & QGraphicsItem::ItemSendsScenePositionChanges))
@@ -1020,11 +1053,11 @@ void QGraphicsItemPrivate::setParentItemHelper(QGraphicsItem *newParent)
if (!inDestructor)
q_ptr->prepareGeometryChange();
- const QVariant thisPointerVariant(qVariantFromValue<QGraphicsItem *>(q));
if (parent) {
// Remove from current parent
parent->d_ptr->removeChild(q);
- parent->itemChange(QGraphicsItem::ItemChildRemovedChange, thisPointerVariant);
+ if (thisPointerVariant)
+ parent->itemChange(QGraphicsItem::ItemChildRemovedChange, *thisPointerVariant);
}
// Update toplevelitem list. If this item is being deleted, its parent
@@ -1042,7 +1075,7 @@ void QGraphicsItemPrivate::setParentItemHelper(QGraphicsItem *newParent)
QGraphicsItem *p = parent;
QGraphicsItem *parentFocusScopeItem = 0;
while (p) {
- if (p->flags() & QGraphicsItem::ItemIsFocusScope) {
+ if (p->d_ptr->flags & QGraphicsItem::ItemIsFocusScope) {
// If this item's focus scope's focus scope item points
// to this item or a descendent, then clear it.
QGraphicsItem *fsi = p->d_ptr->focusScopeItem;
@@ -1055,6 +1088,10 @@ void QGraphicsItemPrivate::setParentItemHelper(QGraphicsItem *newParent)
p = p->d_ptr->parent;
}
+ // Update graphics effect optimization flag
+ if (newParent && (graphicsEffect || mayHaveChildWithGraphicsEffect))
+ newParent->d_ptr->updateChildWithGraphicsEffectFlagRecursively();
+
// Update focus scope item ptr in new scope.
QGraphicsItem *newFocusScopeItem = subFocusItem ? subFocusItem : parentFocusScopeItem;
if (newFocusScopeItem && newParent) {
@@ -1063,11 +1100,11 @@ void QGraphicsItemPrivate::setParentItemHelper(QGraphicsItem *newParent)
QGraphicsItem *ancestorScope = 0;
QGraphicsItem *p = subFocusItem->d_ptr->parent;
while (p) {
- if (p->flags() & QGraphicsItem::ItemIsFocusScope)
+ if (p->d_ptr->flags & QGraphicsItem::ItemIsFocusScope)
ancestorScope = p;
- if (p->isPanel())
+ if (p->d_ptr->flags & QGraphicsItem::ItemIsPanel)
break;
- p = p->parentItem();
+ p = p->d_ptr->parent;
}
if (ancestorScope)
newFocusScopeItem = ancestorScope;
@@ -1075,7 +1112,7 @@ void QGraphicsItemPrivate::setParentItemHelper(QGraphicsItem *newParent)
QGraphicsItem *p = newParent;
while (p) {
- if (p->flags() & QGraphicsItem::ItemIsFocusScope) {
+ if (p->d_ptr->flags & QGraphicsItem::ItemIsFocusScope) {
p->d_ptr->focusScopeItem = newFocusScopeItem;
// Ensure the new item is no longer the subFocusItem. The
// only way to set focus on a child of a focus scope is
@@ -1089,52 +1126,45 @@ void QGraphicsItemPrivate::setParentItemHelper(QGraphicsItem *newParent)
}
if ((parent = newParent)) {
- bool implicitUpdate = false;
if (parent->d_func()->scene && parent->d_func()->scene != scene) {
// Move this item to its new parent's scene
parent->d_func()->scene->addItem(q);
- implicitUpdate = true;
} else if (!parent->d_func()->scene && scene) {
// Remove this item from its former scene
scene->removeItem(q);
}
parent->d_ptr->addChild(q);
- parent->itemChange(QGraphicsItem::ItemChildAddedChange, thisPointerVariant);
+ if (thisPointerVariant)
+ parent->itemChange(QGraphicsItem::ItemChildAddedChange, *thisPointerVariant);
if (scene) {
- if (!implicitUpdate)
- scene->d_func()->markDirty(q_ptr);
-
// Re-enable scene pos notifications for new ancestors
if (scenePosDescendants || (flags & QGraphicsItem::ItemSendsScenePositionChanges))
scene->d_func()->setScenePosItemEnabled(q, true);
}
+ // Propagate dirty flags to the new parent
+ markParentDirty(/*updateBoundingRect=*/true);
+
// Inherit ancestor flags from the new parent.
- updateAncestorFlag(QGraphicsItem::GraphicsItemFlag(-2));
- updateAncestorFlag(QGraphicsItem::GraphicsItemFlag(-1));
- updateAncestorFlag(QGraphicsItem::ItemClipsChildrenToShape);
- updateAncestorFlag(QGraphicsItem::ItemIgnoresTransformations);
+ updateAncestorFlags();
// Update item visible / enabled.
- if (parent->isVisible() != visible) {
- if (!parent->isVisible() || !explicitlyHidden)
- setVisibleHelper(parent->isVisible(), /* explicit = */ false, /* update = */ !implicitUpdate);
+ if (parent->d_ptr->visible != visible) {
+ if (!parent->d_ptr->visible || !explicitlyHidden)
+ setVisibleHelper(parent->d_ptr->visible, /* explicit = */ false, /* update = */ false);
}
if (parent->isEnabled() != enabled) {
- if (!parent->isEnabled() || !explicitlyDisabled)
- setEnabledHelper(parent->isEnabled(), /* explicit = */ false, /* update = */ !implicitUpdate);
+ if (!parent->d_ptr->enabled || !explicitlyDisabled)
+ setEnabledHelper(parent->d_ptr->enabled, /* explicit = */ false, /* update = */ false);
}
// Auto-activate if visible and the parent is active.
- if (q->isVisible() && parent->isActive())
+ if (visible && parent->isActive())
q->setActive(true);
} else {
// Inherit ancestor flags from the new parent.
- updateAncestorFlag(QGraphicsItem::GraphicsItemFlag(-2));
- updateAncestorFlag(QGraphicsItem::GraphicsItemFlag(-1));
- updateAncestorFlag(QGraphicsItem::ItemClipsChildrenToShape);
- updateAncestorFlag(QGraphicsItem::ItemIgnoresTransformations);
+ updateAncestorFlags();
if (!inDestructor) {
// Update item visible / enabled.
@@ -1142,10 +1172,6 @@ void QGraphicsItemPrivate::setParentItemHelper(QGraphicsItem *newParent)
setVisibleHelper(true, /* explicit = */ false);
if (!enabled && !explicitlyDisabled)
setEnabledHelper(true, /* explicit = */ false);
-
- // If the item is being deleted, the whole scene will be updated.
- if (scene)
- scene->d_func()->markDirty(q_ptr);
}
}
@@ -1161,7 +1187,8 @@ void QGraphicsItemPrivate::setParentItemHelper(QGraphicsItem *newParent)
}
// Deliver post-change notification
- q->itemChange(QGraphicsItem::ItemParentHasChanged, newParentVariant);
+ if (newParentVariant)
+ q->itemChange(QGraphicsItem::ItemParentHasChanged, *newParentVariant);
if (isObject)
emit static_cast<QGraphicsObject *>(q)->parentChanged();
@@ -1350,7 +1377,7 @@ QGraphicsItem::~QGraphicsItem()
d_ptr->scene->d_func()->removeItemHelper(this);
} else {
d_ptr->resetFocusProxy();
- d_ptr->setParentItemHelper(0);
+ setParentItem(0);
}
#ifndef QT_NO_GRAPHICSEFFECT
@@ -1543,21 +1570,36 @@ const QGraphicsObject *QGraphicsItem::toGraphicsObject() const
}
/*!
- Sets this item's parent item to \a parent. If this item already has a
- parent, it is first removed from the previous parent. If \a parent is 0,
- this item will become a top-level item.
+ Sets this item's parent item to \a newParent. If this item already
+ has a parent, it is first removed from the previous parent. If \a
+ newParent is 0, this item will become a top-level item.
- Note that this implicitly adds this graphics item to the scene of
- the parent. You should not \l{QGraphicsScene::addItem()}{add} the
- item to the scene yourself.
+ Note that this implicitly adds this graphics item to the scene of
+ the parent. You should not \l{QGraphicsScene::addItem()}{add} the
+ item to the scene yourself.
- Calling this function on an item that is an ancestor of \a parent have undefined behaviour.
+ Calling this function on an item that is an ancestor of \a newParent
+ have undefined behaviour.
- \sa parentItem(), childItems()
+ \sa parentItem(), childItems()
*/
-void QGraphicsItem::setParentItem(QGraphicsItem *parent)
+void QGraphicsItem::setParentItem(QGraphicsItem *newParent)
{
- d_ptr->setParentItemHelper(parent);
+ if (newParent == this) {
+ qWarning("QGraphicsItem::setParentItem: cannot assign %p as a parent of itself", this);
+ return;
+ }
+ if (newParent == d_ptr->parent)
+ return;
+
+ const QVariant newParentVariant(itemChange(QGraphicsItem::ItemParentChange,
+ qVariantFromValue<QGraphicsItem *>(newParent)));
+ newParent = qVariantValue<QGraphicsItem *>(newParentVariant);
+ if (newParent == d_ptr->parent)
+ return;
+
+ const QVariant thisPointerVariant(qVariantFromValue<QGraphicsItem *>(this));
+ d_ptr->setParentItemHelper(newParent, &newParentVariant, &thisPointerVariant);
}
/*!
@@ -1607,7 +1649,7 @@ bool QGraphicsItem::isWidget() const
*/
bool QGraphicsItem::isWindow() const
{
- return isWidget() && (static_cast<const QGraphicsWidget *>(this)->windowType() & Qt::Window);
+ return d_ptr->isWidget && (static_cast<const QGraphicsWidget *>(this)->windowType() & Qt::Window);
}
/*!
@@ -1644,9 +1686,9 @@ QGraphicsItem::GraphicsItemFlags QGraphicsItem::flags() const
void QGraphicsItem::setFlag(GraphicsItemFlag flag, bool enabled)
{
if (enabled)
- setFlags(flags() | flag);
+ setFlags(GraphicsItemFlags(d_ptr->flags) | flag);
else
- setFlags(flags() & ~flag);
+ setFlags(GraphicsItemFlags(d_ptr->flags) & ~flag);
}
/*!
@@ -1693,8 +1735,8 @@ void QGraphicsItem::setFlags(GraphicsItemFlags flags)
flags = GraphicsItemFlags(itemChange(ItemFlagsChange, quint32(flags)).toUInt());
if (quint32(d_ptr->flags) == quint32(flags))
return;
- if (d_ptr->scene)
- d_ptr->scene->d_func()->index->itemChange(this, ItemFlagsChange, quint32(flags));
+ if (d_ptr->scene && d_ptr->scene->d_func()->indexMethod != QGraphicsScene::NoIndex)
+ d_ptr->scene->d_func()->index->itemChange(this, ItemFlagsChange, &flags);
// Flags that alter the geometry of the item (or its children).
const quint32 geomChangeFlagsMask = (ItemClipsChildrenToShape | ItemClipsToShape | ItemIgnoresTransformations | ItemIsSelectable);
@@ -1703,7 +1745,7 @@ void QGraphicsItem::setFlags(GraphicsItemFlags flags)
d_ptr->paintedViewBoundingRectsNeedRepaint = 1;
// Keep the old flags to compare the diff.
- GraphicsItemFlags oldFlags = this->flags();
+ GraphicsItemFlags oldFlags = GraphicsItemFlags(d_ptr->flags);
// Update flags.
d_ptr->flags = flags;
@@ -1732,7 +1774,23 @@ void QGraphicsItem::setFlags(GraphicsItemFlags flags)
d_ptr->updateAncestorFlag(ItemIgnoresTransformations);
}
+ if ((flags & ItemNegativeZStacksBehindParent) != (oldFlags & ItemNegativeZStacksBehindParent)) {
+ // NB! We change the flags directly here, so we must also update d_ptr->flags.
+ // Note that this has do be done before the ItemStacksBehindParent check
+ // below; otherwise we will loose the change.
+
+ // Update stack-behind.
+ if (d_ptr->z < qreal(0.0))
+ flags |= ItemStacksBehindParent;
+ else
+ flags &= ~ItemStacksBehindParent;
+ d_ptr->flags = flags;
+ }
+
if ((flags & ItemStacksBehindParent) != (oldFlags & ItemStacksBehindParent)) {
+ // NB! This check has to come after the ItemNegativeZStacksBehindParent
+ // check above. Be careful.
+
// Ensure child item sorting is up to date when toggling this flag.
if (d_ptr->parent)
d_ptr->parent->d_ptr->needSortChildren = 1;
@@ -1746,10 +1804,6 @@ void QGraphicsItem::setFlags(GraphicsItemFlags flags)
d_ptr->scene->d_func()->updateInputMethodSensitivityInViews();
}
- if ((flags & ItemNegativeZStacksBehindParent) != (oldFlags & ItemNegativeZStacksBehindParent)) {
- // Update stack-behind.
- setFlag(ItemStacksBehindParent, d_ptr->z < qreal(0.0));
- }
if ((d_ptr->panelModality != NonModal)
&& d_ptr->scene
@@ -2523,7 +2577,9 @@ void QGraphicsItem::setOpacity(qreal opacity)
// Update.
if (d_ptr->scene) {
#ifndef QT_NO_GRAPHICSEFFECT
- d_ptr->invalidateGraphicsEffectsRecursively();
+ d_ptr->invalidateParentGraphicsEffectsRecursively();
+ if (!(d_ptr->flags & ItemDoesntPropagateOpacityToChildren))
+ d_ptr->invalidateChildGraphicsEffectsRecursively(QGraphicsItemPrivate::OpacityChanged);
#endif //QT_NO_GRAPHICSEFFECT
d_ptr->scene->d_func()->markDirty(this, QRectF(),
/*invalidateChildren=*/true,
@@ -2568,6 +2624,8 @@ void QGraphicsItem::setGraphicsEffect(QGraphicsEffect *effect)
if (d_ptr->graphicsEffect) {
delete d_ptr->graphicsEffect;
d_ptr->graphicsEffect = 0;
+ } else if (d_ptr->parent) {
+ d_ptr->parent->d_ptr->updateChildWithGraphicsEffectFlagRecursively();
}
if (effect) {
@@ -2581,6 +2639,19 @@ void QGraphicsItem::setGraphicsEffect(QGraphicsEffect *effect)
}
#endif //QT_NO_GRAPHICSEFFECT
+void QGraphicsItemPrivate::updateChildWithGraphicsEffectFlagRecursively()
+{
+#ifndef QT_NO_GRAPHICSEFFECT
+ QGraphicsItemPrivate *itemPrivate = this;
+ do {
+ // parent chain already notified?
+ if (itemPrivate->mayHaveChildWithGraphicsEffect)
+ return;
+ itemPrivate->mayHaveChildWithGraphicsEffect = 1;
+ } while ((itemPrivate = itemPrivate->parent ? itemPrivate->parent->d_ptr.data() : 0));
+#endif
+}
+
/*!
\internal
\since 4.6
@@ -4264,9 +4335,9 @@ void QGraphicsItem::setZValue(qreal z)
if (newZ == d_ptr->z)
return;
- if (d_ptr->scene) {
+ if (d_ptr->scene && d_ptr->scene->d_func()->indexMethod != QGraphicsScene::NoIndex) {
// Z Value has changed, we have to notify the index.
- d_ptr->scene->d_func()->index->itemChange(this, ItemZValueChange, newZVariant);
+ d_ptr->scene->d_func()->index->itemChange(this, ItemZValueChange, &newZ);
}
d_ptr->z = newZ;
@@ -5033,7 +5104,7 @@ int QGraphicsItemPrivate::depth() const
\internal
*/
#ifndef QT_NO_GRAPHICSEFFECT
-void QGraphicsItemPrivate::invalidateGraphicsEffectsRecursively()
+void QGraphicsItemPrivate::invalidateParentGraphicsEffectsRecursively()
{
QGraphicsItemPrivate *itemPrivate = this;
do {
@@ -5045,6 +5116,24 @@ void QGraphicsItemPrivate::invalidateGraphicsEffectsRecursively()
}
} while ((itemPrivate = itemPrivate->parent ? itemPrivate->parent->d_ptr.data() : 0));
}
+
+void QGraphicsItemPrivate::invalidateChildGraphicsEffectsRecursively(QGraphicsItemPrivate::InvalidateReason reason)
+{
+ if (!mayHaveChildWithGraphicsEffect)
+ return;
+
+ for (int i = 0; i < children.size(); ++i) {
+ QGraphicsItemPrivate *childPrivate = children.at(i)->d_ptr.data();
+ if (reason == OpacityChanged && (childPrivate->flags & QGraphicsItem::ItemIgnoresParentOpacity))
+ continue;
+ if (childPrivate->graphicsEffect) {
+ childPrivate->notifyInvalidated = 1;
+ static_cast<QGraphicsItemEffectSourcePrivate *>(childPrivate->graphicsEffect->d_func()->source->d_func())->invalidateCache();
+ }
+
+ childPrivate->invalidateChildGraphicsEffectsRecursively(reason);
+ }
+}
#endif //QT_NO_GRAPHICSEFFECT
/*!
@@ -5289,7 +5378,7 @@ void QGraphicsItem::update(const QRectF &rect)
// Make sure we notify effects about invalidated source.
#ifndef QT_NO_GRAPHICSEFFECT
- d_ptr->invalidateGraphicsEffectsRecursively();
+ d_ptr->invalidateParentGraphicsEffectsRecursively();
#endif //QT_NO_GRAPHICSEFFECT
if (CacheMode(d_ptr->cacheMode) != NoCache) {
@@ -7165,7 +7254,9 @@ void QGraphicsItem::prepareGeometryChange()
QGraphicsScenePrivate *scenePrivate = d_ptr->scene->d_func();
scenePrivate->index->prepareBoundingRectChange(this);
- scenePrivate->markDirty(this, QRectF(), /*invalidateChildren=*/true);
+ scenePrivate->markDirty(this, QRectF(), /*invalidateChildren=*/true, /*force=*/false,
+ /*ignoreOpacity=*/ false, /*removingItemFromScene=*/ false,
+ /*updateBoundingRect=*/true);
// For compatibility reasons, we have to update the item's old geometry
// if someone is connected to the changed signal or the scene has no views.
@@ -7182,19 +7273,7 @@ void QGraphicsItem::prepareGeometryChange()
}
}
- QGraphicsItem *parent = this;
- while ((parent = parent->d_ptr->parent)) {
- QGraphicsItemPrivate *parentp = parent->d_ptr.data();
- parentp->dirtyChildrenBoundingRect = 1;
- // ### Only do this if the parent's effect applies to the entire subtree.
- parentp->notifyBoundingRectChanged = 1;
-#ifndef QT_NO_GRAPHICSEFFECT
- if (parentp->scene && parentp->graphicsEffect) {
- parentp->notifyInvalidated = 1;
- static_cast<QGraphicsItemEffectSourcePrivate *>(parentp->graphicsEffect->d_func()->source->d_func())->invalidateCache();
- }
-#endif
- }
+ d_ptr->markParentDirty(/*updateBoundingRect=*/true);
}
/*!
diff --git a/src/gui/graphicsview/qgraphicsitem_p.h b/src/gui/graphicsview/qgraphicsitem_p.h
index 2d34b80..5ad6cd5 100644
--- a/src/gui/graphicsview/qgraphicsitem_p.h
+++ b/src/gui/graphicsview/qgraphicsitem_p.h
@@ -153,7 +153,7 @@ public:
dirtyChildren(0),
localCollisionHack(0),
inSetPosHelper(0),
- needSortChildren(1), // ### can be 0 by default?
+ needSortChildren(0),
allChildrenDirty(0),
fullUpdatePending(0),
flags(0),
@@ -178,6 +178,8 @@ public:
sequentialOrdering(1),
updateDueToGraphicsEffect(0),
scenePosDescendants(0),
+ pendingPolish(0),
+ mayHaveChildWithGraphicsEffect(0),
globalStackingOrder(-1),
q_ptr(0)
{
@@ -195,8 +197,10 @@ public:
return item->d_ptr.data();
}
+ void updateChildWithGraphicsEffectFlagRecursively();
void updateAncestorFlag(QGraphicsItem::GraphicsItemFlag childFlag,
AncestorFlag flag = NoFlag, bool enabled = false, bool root = true);
+ void updateAncestorFlags();
void setIsMemberOfGroup(bool enabled);
void remapItemPos(QEvent *event, QGraphicsItem *item);
QPointF genericMapFromScene(const QPointF &pos, const QWidget *viewport) const;
@@ -223,13 +227,18 @@ public:
bool ignoreDirtyBit = false, bool ignoreOpacity = false) const;
int depth() const;
#ifndef QT_NO_GRAPHICSEFFECT
- void invalidateGraphicsEffectsRecursively();
+ enum InvalidateReason {
+ OpacityChanged
+ };
+ void invalidateParentGraphicsEffectsRecursively();
+ void invalidateChildGraphicsEffectsRecursively(InvalidateReason reason);
#endif //QT_NO_GRAPHICSEFFECT
void invalidateDepthRecursively();
void resolveDepth();
void addChild(QGraphicsItem *child);
void removeChild(QGraphicsItem *child);
- void setParentItemHelper(QGraphicsItem *parent);
+ void setParentItemHelper(QGraphicsItem *parent, const QVariant *newParentVariant,
+ const QVariant *thisPointerVariant);
void childrenBoundingRectHelper(QTransform *x, QRectF *rect);
void initStyleOption(QStyleOptionGraphicsItem *option, const QTransform &worldTransform,
const QRegion &exposedRegion, bool allItems = false) const;
@@ -397,6 +406,8 @@ public:
return !visible || (childrenCombineOpacity() && isFullyTransparent());
}
+ inline void markParentDirty(bool updateBoundingRect = false);
+
void setFocusHelper(Qt::FocusReason focusReason, bool climb);
void setSubFocus(QGraphicsItem *rootItem = 0);
void clearSubFocus(QGraphicsItem *rootItem = 0);
@@ -484,6 +495,8 @@ public:
quint32 sequentialOrdering : 1;
quint32 updateDueToGraphicsEffect : 1;
quint32 scenePosDescendants : 1;
+ quint32 pendingPolish : 1;
+ quint32 mayHaveChildWithGraphicsEffect : 1;
// Optional stacking order
int globalStackingOrder;
@@ -721,11 +734,13 @@ inline QTransform QGraphicsItemPrivate::transformToParent() const
inline void QGraphicsItemPrivate::ensureSortedChildren()
{
if (needSortChildren) {
- qSort(children.begin(), children.end(), qt_notclosestLeaf);
needSortChildren = 0;
sequentialOrdering = 1;
+ if (children.isEmpty())
+ return;
+ qSort(children.begin(), children.end(), qt_notclosestLeaf);
for (int i = 0; i < children.size(); ++i) {
- if (children[i]->d_ptr->siblingIndex != i) {
+ if (children.at(i)->d_ptr->siblingIndex != i) {
sequentialOrdering = 0;
break;
}
@@ -741,6 +756,37 @@ inline bool QGraphicsItemPrivate::insertionOrder(QGraphicsItem *a, QGraphicsItem
return a->d_ptr->siblingIndex < b->d_ptr->siblingIndex;
}
+/*!
+ \internal
+*/
+inline void QGraphicsItemPrivate::markParentDirty(bool updateBoundingRect)
+{
+ QGraphicsItemPrivate *parentp = this;
+ while (parentp->parent) {
+ parentp = parentp->parent->d_ptr.data();
+ parentp->dirtyChildren = 1;
+
+ if (updateBoundingRect) {
+ parentp->dirtyChildrenBoundingRect = 1;
+ // ### Only do this if the parent's effect applies to the entire subtree.
+ parentp->notifyBoundingRectChanged = 1;
+ }
+#ifndef QT_NO_GRAPHICSEFFECT
+ if (parentp->graphicsEffect) {
+ if (updateBoundingRect) {
+ parentp->notifyInvalidated = 1;
+ static_cast<QGraphicsItemEffectSourcePrivate *>(parentp->graphicsEffect->d_func()
+ ->source->d_func())->invalidateCache();
+ }
+ if (parentp->graphicsEffect->isEnabled()) {
+ parentp->dirty = 1;
+ parentp->fullUpdatePending = 1;
+ }
+ }
+#endif
+ }
+}
+
QT_END_NAMESPACE
#endif // QT_NO_GRAPHICSVIEW
diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp
index 83a6b9c..478669e 100644
--- a/src/gui/graphicsview/qgraphicsscene.cpp
+++ b/src/gui/graphicsview/qgraphicsscene.cpp
@@ -292,7 +292,6 @@ QGraphicsScenePrivate::QGraphicsScenePrivate()
processDirtyItemsEmitted(false),
selectionChanging(0),
needSortTopLevelItems(true),
- unpolishedItemsModified(true),
holesInTopLevelSiblingIndex(false),
topLevelSequentialOrdering(true),
scenePosDescendantsUpdatePending(false),
@@ -429,22 +428,38 @@ void QGraphicsScenePrivate::unregisterTopLevelItem(QGraphicsItem *item)
*/
void QGraphicsScenePrivate::_q_polishItems()
{
- QSet<QGraphicsItem *>::Iterator it = unpolishedItems.begin();
+ if (unpolishedItems.isEmpty())
+ return;
+
const QVariant booleanTrueVariant(true);
- while (!unpolishedItems.isEmpty()) {
- QGraphicsItem *item = *it;
- it = unpolishedItems.erase(it);
- unpolishedItemsModified = false;
- if (!item->d_ptr->explicitlyHidden) {
+ QGraphicsItem *item = 0;
+ QGraphicsItemPrivate *itemd = 0;
+ const int oldUnpolishedCount = unpolishedItems.count();
+
+ for (int i = 0; i < oldUnpolishedCount; ++i) {
+ item = unpolishedItems.at(i);
+ if (!item)
+ continue;
+ itemd = item->d_ptr.data();
+ itemd->pendingPolish = false;
+ if (!itemd->explicitlyHidden) {
item->itemChange(QGraphicsItem::ItemVisibleChange, booleanTrueVariant);
item->itemChange(QGraphicsItem::ItemVisibleHasChanged, booleanTrueVariant);
}
- if (item->isWidget()) {
+ if (itemd->isWidget) {
QEvent event(QEvent::Polish);
QApplication::sendEvent((QGraphicsWidget *)item, &event);
}
- if (unpolishedItemsModified)
- it = unpolishedItems.begin();
+ }
+
+ if (unpolishedItems.count() == oldUnpolishedCount) {
+ // No new items were added to the vector.
+ unpolishedItems.clear();
+ } else {
+ // New items were appended; keep them and remove the old ones.
+ unpolishedItems.remove(0, oldUnpolishedCount);
+ unpolishedItems.squeeze();
+ QMetaObject::invokeMethod(q_ptr, "_q_polishItems", Qt::QueuedConnection);
}
}
@@ -599,7 +614,7 @@ void QGraphicsScenePrivate::removeItemHelper(QGraphicsItem *item)
if (parentItem->scene()) {
Q_ASSERT_X(parentItem->scene() == q, "QGraphicsScene::removeItem",
"Parent item's scene is different from this item's scene");
- item->d_ptr->setParentItemHelper(0);
+ item->setParentItem(0);
}
} else {
unregisterTopLevelItem(item);
@@ -638,8 +653,12 @@ void QGraphicsScenePrivate::removeItemHelper(QGraphicsItem *item)
selectedItems.remove(item);
hoverItems.removeAll(item);
cachedItemsUnderMouse.removeAll(item);
- unpolishedItems.remove(item);
- unpolishedItemsModified = true;
+ if (item->d_ptr->pendingPolish) {
+ const int unpolishedIndex = unpolishedItems.indexOf(item);
+ if (unpolishedIndex != -1)
+ unpolishedItems[unpolishedIndex] = 0;
+ item->d_ptr->pendingPolish = false;
+ }
resetDirtyItem(item);
//We remove all references of item from the sceneEventFilter arrays
@@ -1936,7 +1955,7 @@ QList<QGraphicsItem *> QGraphicsScene::items(const QRectF &rectangle, Qt::ItemSe
\since 4.3
This convenience function is equivalent to calling items(QRectF(\a x, \a y, \a w, \a h), \a mode).
-
+
This function is deprecated and returns incorrect results if the scene
contains items that ignore transformations. Use the overload that takes
a QTransform instead.
@@ -2482,12 +2501,12 @@ void QGraphicsScene::addItem(QGraphicsItem *item)
qWarning("QGraphicsScene::addItem: cannot add null item");
return;
}
- if (item->scene() == this) {
+ if (item->d_ptr->scene == this) {
qWarning("QGraphicsScene::addItem: item has already been added to this scene");
return;
}
// Remove this item from its existing scene
- if (QGraphicsScene *oldScene = item->scene())
+ if (QGraphicsScene *oldScene = item->d_ptr->scene)
oldScene->removeItem(item);
// Notify the item that its scene is changing, and allow the item to
@@ -2496,15 +2515,20 @@ void QGraphicsScene::addItem(QGraphicsItem *item)
qVariantFromValue<QGraphicsScene *>(this)));
QGraphicsScene *targetScene = qVariantValue<QGraphicsScene *>(newSceneVariant);
if (targetScene != this) {
- if (targetScene && item->scene() != targetScene)
+ if (targetScene && item->d_ptr->scene != targetScene)
targetScene->addItem(item);
return;
}
+ if (d->unpolishedItems.isEmpty())
+ QMetaObject::invokeMethod(this, "_q_polishItems", Qt::QueuedConnection);
+ d->unpolishedItems.append(item);
+ item->d_ptr->pendingPolish = true;
+
// Detach this item from its parent if the parent's scene is different
// from this scene.
- if (QGraphicsItem *itemParent = item->parentItem()) {
- if (itemParent->scene() != this)
+ if (QGraphicsItem *itemParent = item->d_ptr->parent) {
+ if (itemParent->d_ptr->scene != this)
item->setParentItem(0);
}
@@ -2534,7 +2558,7 @@ void QGraphicsScene::addItem(QGraphicsItem *item)
d->enableMouseTrackingOnViews();
}
#ifndef QT_NO_CURSOR
- if (d->allItemsUseDefaultCursor && item->hasCursor()) {
+ if (d->allItemsUseDefaultCursor && item->d_ptr->hasCursor) {
d->allItemsUseDefaultCursor = false;
if (d->allItemsIgnoreHoverEvents) // already enabled otherwise
d->enableMouseTrackingOnViews();
@@ -2542,7 +2566,7 @@ void QGraphicsScene::addItem(QGraphicsItem *item)
#endif //QT_NO_CURSOR
// Enable touch events if the item accepts touch events.
- if (d->allItemsIgnoreTouchEvents && item->acceptTouchEvents()) {
+ if (d->allItemsIgnoreTouchEvents && item->d_ptr->acceptTouchEvents) {
d->allItemsIgnoreTouchEvents = false;
d->enableTouchEventsOnViews();
}
@@ -2575,17 +2599,14 @@ void QGraphicsScene::addItem(QGraphicsItem *item)
}
// Add all children recursively
- foreach (QGraphicsItem *child, item->children())
- addItem(child);
+ item->d_ptr->ensureSortedChildren();
+ for (int i = 0; i < item->d_ptr->children.size(); ++i)
+ addItem(item->d_ptr->children.at(i));
// Resolve font and palette.
item->d_ptr->resolveFont(d->font.resolve());
item->d_ptr->resolvePalette(d->palette.resolve());
- if (d->unpolishedItems.isEmpty())
- QMetaObject::invokeMethod(this, "_q_polishItems", Qt::QueuedConnection);
- d->unpolishedItems.insert(item);
- d->unpolishedItemsModified = true;
// Reenable selectionChanged() for individual items
--d->selectionChanging;
@@ -2619,7 +2640,7 @@ void QGraphicsScene::addItem(QGraphicsItem *item)
}
}
- if (item->flags() & QGraphicsItem::ItemSendsScenePositionChanges)
+ if (item->d_ptr->flags & QGraphicsItem::ItemSendsScenePositionChanges)
d->registerScenePosItem(item);
// Ensure that newly added items that have subfocus set, gain
@@ -3766,10 +3787,10 @@ void QGraphicsScene::helpEvent(QGraphicsSceneHelpEvent *helpEvent)
bool QGraphicsScenePrivate::itemAcceptsHoverEvents_helper(const QGraphicsItem *item) const
{
- return (!item->isBlockedByModalPanel() &&
- (item->acceptHoverEvents()
- || (item->isWidget()
- && static_cast<const QGraphicsWidget *>(item)->d_func()->hasDecoration())));
+ return (item->d_ptr->acceptsHover
+ || (item->d_ptr->isWidget
+ && static_cast<const QGraphicsWidget *>(item)->d_func()->hasDecoration()))
+ && !item->isBlockedByModalPanel();
}
/*!
@@ -4813,7 +4834,8 @@ void QGraphicsScenePrivate::draw(QGraphicsItem *item, QPainter *painter, const Q
}
void QGraphicsScenePrivate::markDirty(QGraphicsItem *item, const QRectF &rect, bool invalidateChildren,
- bool force, bool ignoreOpacity, bool removingItemFromScene)
+ bool force, bool ignoreOpacity, bool removingItemFromScene,
+ bool updateBoundingRect)
{
Q_ASSERT(item);
if (updateAll)
@@ -4884,17 +4906,8 @@ void QGraphicsScenePrivate::markDirty(QGraphicsItem *item, const QRectF &rect, b
if (ignoreOpacity)
item->d_ptr->ignoreOpacity = 1;
- QGraphicsItem *p = item->d_ptr->parent;
- while (p) {
- p->d_ptr->dirtyChildren = 1;
-#ifndef QT_NO_GRAPHICSEFFECT
- if (p->d_ptr->graphicsEffect && p->d_ptr->graphicsEffect->isEnabled()) {
- p->d_ptr->dirty = 1;
- p->d_ptr->fullUpdatePending = 1;
- }
-#endif //QT_NO_GRAPHICSEFFECT
- p = p->d_ptr->parent;
- }
+ if (!updateBoundingRect)
+ item->d_ptr->markParentDirty();
}
static inline bool updateHelper(QGraphicsViewPrivate *view, QGraphicsItemPrivate *item,
diff --git a/src/gui/graphicsview/qgraphicsscene_p.h b/src/gui/graphicsview/qgraphicsscene_p.h
index d10811c..04ffe0f 100644
--- a/src/gui/graphicsview/qgraphicsscene_p.h
+++ b/src/gui/graphicsview/qgraphicsscene_p.h
@@ -108,10 +108,9 @@ public:
QPainterPath selectionArea;
int selectionChanging;
QSet<QGraphicsItem *> selectedItems;
- QSet<QGraphicsItem *> unpolishedItems;
+ QVector<QGraphicsItem *> unpolishedItems;
QList<QGraphicsItem *> topLevelItems;
bool needSortTopLevelItems;
- bool unpolishedItemsModified;
bool holesInTopLevelSiblingIndex;
bool topLevelSequentialOrdering;
@@ -223,7 +222,8 @@ public:
QRegion *, QWidget *, qreal, const QTransform *const, bool, bool);
void markDirty(QGraphicsItem *item, const QRectF &rect = QRectF(), bool invalidateChildren = false,
- bool force = false, bool ignoreOpacity = false, bool removingItemFromScene = false);
+ bool force = false, bool ignoreOpacity = false, bool removingItemFromScene = false,
+ bool updateBoundingRect = false);
void processDirtyItemsRecursive(QGraphicsItem *item, bool dirtyAncestorContainsChildren = false,
qreal parentOpacity = qreal(1.0));
diff --git a/src/gui/graphicsview/qgraphicsscenebsptreeindex.cpp b/src/gui/graphicsview/qgraphicsscenebsptreeindex.cpp
index 2e92b87..2a91348 100644
--- a/src/gui/graphicsview/qgraphicsscenebsptreeindex.cpp
+++ b/src/gui/graphicsview/qgraphicsscenebsptreeindex.cpp
@@ -635,16 +635,17 @@ void QGraphicsSceneBspTreeIndex::updateSceneRect(const QRectF &rect)
This method react to the \a change of the \a item and use the \a value to
update the BSP tree if necessary.
*/
-void QGraphicsSceneBspTreeIndex::itemChange(const QGraphicsItem *item, QGraphicsItem::GraphicsItemChange change, const QVariant &value)
+void QGraphicsSceneBspTreeIndex::itemChange(const QGraphicsItem *item, QGraphicsItem::GraphicsItemChange change, const void *const value)
{
Q_D(QGraphicsSceneBspTreeIndex);
switch (change) {
case QGraphicsItem::ItemFlagsChange: {
// Handle ItemIgnoresTransformations
+ QGraphicsItem::GraphicsItemFlags newFlags = *static_cast<const QGraphicsItem::GraphicsItemFlags *>(value);
bool ignoredTransform = item->d_ptr->flags & QGraphicsItem::ItemIgnoresTransformations;
- bool willIgnoreTransform = value.toUInt() & QGraphicsItem::ItemIgnoresTransformations;
+ bool willIgnoreTransform = newFlags & QGraphicsItem::ItemIgnoresTransformations;
bool clipsChildren = item->d_ptr->flags & QGraphicsItem::ItemClipsChildrenToShape;
- bool willClipChildren = value.toUInt() & QGraphicsItem::ItemClipsChildrenToShape;
+ bool willClipChildren = newFlags & QGraphicsItem::ItemClipsChildrenToShape;
if ((ignoredTransform != willIgnoreTransform) || (clipsChildren != willClipChildren)) {
QGraphicsItem *thatItem = const_cast<QGraphicsItem *>(item);
// Remove item and its descendants from the index and append
@@ -661,7 +662,7 @@ void QGraphicsSceneBspTreeIndex::itemChange(const QGraphicsItem *item, QGraphics
case QGraphicsItem::ItemParentChange: {
d->invalidateSortCache();
// Handle ItemIgnoresTransformations
- QGraphicsItem *newParent = qVariantValue<QGraphicsItem *>(value);
+ const QGraphicsItem *newParent = static_cast<const QGraphicsItem *>(value);
bool ignoredTransform = item->d_ptr->itemIsUntransformable();
bool willIgnoreTransform = (item->d_ptr->flags & QGraphicsItem::ItemIgnoresTransformations)
|| (newParent && newParent->d_ptr->itemIsUntransformable());
@@ -682,7 +683,6 @@ void QGraphicsSceneBspTreeIndex::itemChange(const QGraphicsItem *item, QGraphics
default:
break;
}
- return QGraphicsSceneIndex::itemChange(item, change, value);
}
/*!
\reimp
diff --git a/src/gui/graphicsview/qgraphicsscenebsptreeindex_p.h b/src/gui/graphicsview/qgraphicsscenebsptreeindex_p.h
index 119571b..f671fd9 100644
--- a/src/gui/graphicsview/qgraphicsscenebsptreeindex_p.h
+++ b/src/gui/graphicsview/qgraphicsscenebsptreeindex_p.h
@@ -97,7 +97,7 @@ protected:
void removeItem(QGraphicsItem *item);
void prepareBoundingRectChange(const QGraphicsItem *item);
- void itemChange(const QGraphicsItem *item, QGraphicsItem::GraphicsItemChange change, const QVariant &value);
+ void itemChange(const QGraphicsItem *item, QGraphicsItem::GraphicsItemChange change, const void *const value);
private :
Q_DECLARE_PRIVATE(QGraphicsSceneBspTreeIndex)
diff --git a/src/gui/graphicsview/qgraphicssceneindex.cpp b/src/gui/graphicsview/qgraphicssceneindex.cpp
index bc8a7dc..043c4eb 100644
--- a/src/gui/graphicsview/qgraphicssceneindex.cpp
+++ b/src/gui/graphicsview/qgraphicssceneindex.cpp
@@ -624,7 +624,7 @@ void QGraphicsSceneIndex::deleteItem(QGraphicsItem *item)
\sa QGraphicsItem::GraphicsItemChange
*/
-void QGraphicsSceneIndex::itemChange(const QGraphicsItem *item, QGraphicsItem::GraphicsItemChange change, const QVariant &value)
+void QGraphicsSceneIndex::itemChange(const QGraphicsItem *item, QGraphicsItem::GraphicsItemChange change, const void *const value)
{
Q_UNUSED(item);
Q_UNUSED(change);
diff --git a/src/gui/graphicsview/qgraphicssceneindex_p.h b/src/gui/graphicsview/qgraphicssceneindex_p.h
index def58f0..597a229 100644
--- a/src/gui/graphicsview/qgraphicssceneindex_p.h
+++ b/src/gui/graphicsview/qgraphicssceneindex_p.h
@@ -110,7 +110,7 @@ protected:
virtual void removeItem(QGraphicsItem *item) = 0;
virtual void deleteItem(QGraphicsItem *item);
- virtual void itemChange(const QGraphicsItem *item, QGraphicsItem::GraphicsItemChange, const QVariant &value);
+ virtual void itemChange(const QGraphicsItem *item, QGraphicsItem::GraphicsItemChange, const void *const value);
virtual void prepareBoundingRectChange(const QGraphicsItem *item);
QGraphicsSceneIndex(QGraphicsSceneIndexPrivate &dd, QGraphicsScene *scene);
diff --git a/src/gui/gui.pro b/src/gui/gui.pro
index 4215f97..8ad3bac 100644
--- a/src/gui/gui.pro
+++ b/src/gui/gui.pro
@@ -54,4 +54,5 @@ DEFINES += Q_INTERNAL_QAPP_SRC
symbian:TARGET.UID3=0x2001B2DD
# ro-section in gui can exceed default allocated space, so more rw-section little further
-symbian-sbsv2: QMAKE_LFLAGS.ARMCC += --rw-base 0x800000"
+symbian-sbsv2: QMAKE_LFLAGS.ARMCC += --rw-base 0x800000
+symbian: QMAKE_LFLAGS.GCCE += -Tdata 0xC00000
diff --git a/src/gui/image/qbmphandler.cpp b/src/gui/image/qbmphandler.cpp
index 854be2e..42e19b8 100644
--- a/src/gui/image/qbmphandler.cpp
+++ b/src/gui/image/qbmphandler.cpp
@@ -144,7 +144,7 @@ static QDataStream &operator<<(QDataStream &s, const BMP_INFOHDR &bi)
static int calc_shift(int mask)
{
int result = 0;
- while (!(mask & 1)) {
+ while (mask && !(mask & 1)) {
result++;
mask >>= 1;
}
diff --git a/src/gui/image/qpixmap.cpp b/src/gui/image/qpixmap.cpp
index 5626485..e51d858 100644
--- a/src/gui/image/qpixmap.cpp
+++ b/src/gui/image/qpixmap.cpp
@@ -1379,10 +1379,27 @@ void QPixmap::deref()
*/
/*!
- \fn bool QPixmap::convertFromImage(const QImage &image, Qt::ImageConversionFlags flags)
+ Replaces this pixmap's data with the given \a image using the
+ specified \a flags to control the conversion. The \a flags
+ argument is a bitwise-OR of the \l{Qt::ImageConversionFlags}.
+ Passing 0 for \a flags sets all the default options. Returns true
+ if the result is that this pixmap is not null.
- Use the static fromImage() function instead.
+ Note: this function was part of Qt 3 support in Qt 4.6 and earlier.
+ It has been promoted to official API status in 4.7 to support updating
+ the pixmap's image without creating a new QPixmap as fromImage() would.
+
+ \sa fromImage()
+ \since 4.7
*/
+bool QPixmap::convertFromImage(const QImage &image, Qt::ImageConversionFlags flags)
+{
+ if (image.isNull() || !data)
+ *this = QPixmap::fromImage(image, flags);
+ else
+ data->fromImage(image, flags);
+ return !isNull();
+}
/*!
\fn QPixmap QPixmap::xForm(const QMatrix &matrix) const
diff --git a/src/gui/image/qpixmap.h b/src/gui/image/qpixmap.h
index 46363f0..180af3b 100644
--- a/src/gui/image/qpixmap.h
+++ b/src/gui/image/qpixmap.h
@@ -141,6 +141,8 @@ public:
bool save(const QString& fileName, const char* format = 0, int quality = -1) const;
bool save(QIODevice* device, const char* format = 0, int quality = -1) const;
+ bool convertFromImage(const QImage &img, Qt::ImageConversionFlags flags = Qt::AutoColor);
+
#if defined(Q_WS_WIN)
enum HBitmapFormat {
NoAlpha,
@@ -224,8 +226,6 @@ public:
QT3_SUPPORT QPixmap &operator=(const QImage &);
inline QT3_SUPPORT QImage convertToImage() const { return toImage(); }
QT3_SUPPORT bool convertFromImage(const QImage &, ColorMode mode);
- QT3_SUPPORT bool convertFromImage(const QImage &img, Qt::ImageConversionFlags flags = Qt::AutoColor)
- { (*this) = fromImage(img, flags); return !isNull(); }
inline QT3_SUPPORT operator QImage() const { return toImage(); }
inline QT3_SUPPORT QPixmap xForm(const QMatrix &matrix) const { return transformed(QTransform(matrix)); }
inline QT3_SUPPORT bool selfMask() const { return false; }
diff --git a/src/gui/inputmethod/qcoefepinputcontext_p.h b/src/gui/inputmethod/qcoefepinputcontext_p.h
index 0b84e2f..f5034fc 100644
--- a/src/gui/inputmethod/qcoefepinputcontext_p.h
+++ b/src/gui/inputmethod/qcoefepinputcontext_p.h
@@ -57,6 +57,7 @@
#include "qinputcontext.h"
#include <qhash.h>
+#include <qtimer.h>
#include <private/qcore_symbian_p.h>
#include <private/qt_s60_p.h>
@@ -91,6 +92,9 @@ public:
TCoeInputCapabilities inputCapabilities();
+protected:
+ void timerEvent(QTimerEvent *timerEvent);
+
private:
void commitCurrentString(bool triggeredBySymbian);
void updateHints(bool mustUpdateInputCapabilities);
@@ -98,6 +102,7 @@ private:
void applyFormat(QList<QInputMethodEvent::Attribute> *attributes);
void queueInputCapabilitiesChanged();
bool needsInputPanel();
+ void commitTemporaryPreeditString();
private Q_SLOTS:
void ensureInputCapabilitiesChanged();
@@ -148,6 +153,8 @@ private:
MFepPointerEventHandlerDuringInlineEdit *m_pointerHandler;
int m_longPress;
int m_cursorPos;
+ QBasicTimer m_tempPreeditStringTimeout;
+ bool m_hasTempPreeditString;
};
QT_END_NAMESPACE
diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
index d2f207a..e5ab300 100644
--- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
+++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
@@ -72,7 +72,8 @@ QCoeFepInputContext::QCoeFepInputContext(QObject *parent)
m_formatRetriever(0),
m_pointerHandler(0),
m_longPress(0),
- m_cursorPos(0)
+ m_cursorPos(0),
+ m_hasTempPreeditString(false)
{
m_fepState->SetObjectProvider(this);
m_fepState->SetFlags(EAknEditorFlagDefault);
@@ -100,9 +101,7 @@ QCoeFepInputContext::~QCoeFepInputContext()
void QCoeFepInputContext::reset()
{
- CCoeFep* fep = CCoeEnv::Static()->Fep();
- if (fep)
- fep->CancelTransaction();
+ commitCurrentString(false);
}
void QCoeFepInputContext::ReportAknEdStateEvent(MAknEdStateObserver::EAknEdwinStateEvent aEventType)
@@ -200,7 +199,11 @@ bool QCoeFepInputContext::filterEvent(const QEvent *event)
if (!focusWidget())
return false;
- if (event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease) {
+ switch (event->type()) {
+ case QEvent::KeyPress:
+ commitTemporaryPreeditString();
+ // fall through intended
+ case QEvent::KeyRelease:
const QKeyEvent *keyEvent = static_cast<const QKeyEvent *>(event);
switch (keyEvent->key()) {
case Qt::Key_F20:
@@ -223,6 +226,21 @@ bool QCoeFepInputContext::filterEvent(const QEvent *event)
default:
break;
}
+
+ if (keyEvent->type() == QEvent::KeyPress
+ && focusWidget()->inputMethodHints() & Qt::ImhHiddenText
+ && !keyEvent->text().isEmpty()) {
+ // Send some temporary preedit text in order to make text visible for a moment.
+ m_preeditString = keyEvent->text();
+ QList<QInputMethodEvent::Attribute> attributes;
+ QInputMethodEvent imEvent(m_preeditString, attributes);
+ QApplication::sendEvent(focusWidget(), &imEvent);
+ m_tempPreeditStringTimeout.start(1000, this);
+ m_hasTempPreeditString = true;
+ update();
+ return true;
+ }
+ break;
}
if (!needsInputPanel())
@@ -253,6 +271,23 @@ bool QCoeFepInputContext::filterEvent(const QEvent *event)
return false;
}
+void QCoeFepInputContext::timerEvent(QTimerEvent *timerEvent)
+{
+ if (timerEvent->timerId() == m_tempPreeditStringTimeout.timerId())
+ commitTemporaryPreeditString();
+}
+
+void QCoeFepInputContext::commitTemporaryPreeditString()
+{
+ if (m_tempPreeditStringTimeout.isActive())
+ m_tempPreeditStringTimeout.stop();
+
+ if (!m_hasTempPreeditString)
+ return;
+
+ commitCurrentString(false);
+}
+
void QCoeFepInputContext::mouseHandler( int x, QMouseEvent *event)
{
Q_ASSERT(focusWidget());
@@ -310,6 +345,8 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints)
{
using namespace Qt;
+ commitTemporaryPreeditString();
+
bool numbersOnly = hints & ImhDigitsOnly || hints & ImhFormattedNumbersOnly
|| hints & ImhDialableCharactersOnly;
bool noOnlys = !(numbersOnly || hints & ImhUppercaseOnly
@@ -501,6 +538,8 @@ void QCoeFepInputContext::StartFepInlineEditL(const TDesC& aInitialInlineText,
if (!w)
return;
+ commitTemporaryPreeditString();
+
m_cursorPos = w->inputMethodQuery(Qt::ImCursorPosition).toInt();
QList<QInputMethodEvent::Attribute> attributes;
@@ -600,6 +639,8 @@ void QCoeFepInputContext::SetCursorSelectionForFepL(const TCursorSelection& aCur
if (!w)
return;
+ commitTemporaryPreeditString();
+
int pos = aCursorSelection.iAnchorPos;
int length = aCursorSelection.iCursorPos - pos;
@@ -719,6 +760,7 @@ void QCoeFepInputContext::commitCurrentString(bool triggeredBySymbian)
m_preeditString.clear();
sendEvent(event);
+ m_hasTempPreeditString = false;
m_longPress = 0;
if (!triggeredBySymbian) {
diff --git a/src/gui/itemviews/qfileiconprovider.cpp b/src/gui/itemviews/qfileiconprovider.cpp
index b854dc2..f321ab3 100644
--- a/src/gui/itemviews/qfileiconprovider.cpp
+++ b/src/gui/itemviews/qfileiconprovider.cpp
@@ -65,6 +65,7 @@
#ifndef SHGFI_ADDOVERLAYS
# define SHGFI_ADDOVERLAYS 0x000000020
+# define SHGFI_OVERLAYINDEX 0x000000040
#endif
QT_BEGIN_NAMESPACE
@@ -248,7 +249,7 @@ QIcon QFileIconProviderPrivate::getWinIcon(const QFileInfo &fileInfo) const
//Get the small icon
#ifndef Q_OS_WINCE
val = SHGetFileInfo((const wchar_t *)QDir::toNativeSeparators(fileInfo.filePath()).utf16(), 0, &info,
- sizeof(SHFILEINFO), SHGFI_ICON|SHGFI_SMALLICON|SHGFI_SYSICONINDEX|SHGFI_ADDOVERLAYS);
+ sizeof(SHFILEINFO), SHGFI_ICON|SHGFI_SMALLICON|SHGFI_SYSICONINDEX|SHGFI_ADDOVERLAYS|SHGFI_OVERLAYINDEX);
#else
val = SHGetFileInfo((const wchar_t *)QDir::toNativeSeparators(fileInfo.filePath()).utf16(), 0, &info,
sizeof(SHFILEINFO), SHGFI_SMALLICON|SHGFI_SYSICONINDEX);
@@ -287,7 +288,7 @@ QIcon QFileIconProviderPrivate::getWinIcon(const QFileInfo &fileInfo) const
//Get the big icon
#ifndef Q_OS_WINCE
val = SHGetFileInfo((const wchar_t *)QDir::toNativeSeparators(fileInfo.filePath()).utf16(), 0, &info,
- sizeof(SHFILEINFO), SHGFI_ICON|SHGFI_LARGEICON|SHGFI_SYSICONINDEX|SHGFI_ADDOVERLAYS);
+ sizeof(SHFILEINFO), SHGFI_ICON|SHGFI_LARGEICON|SHGFI_SYSICONINDEX|SHGFI_ADDOVERLAYS|SHGFI_OVERLAYINDEX);
#else
val = SHGetFileInfo((const wchar_t *)QDir::toNativeSeparators(fileInfo.filePath()).utf16(), 0, &info,
sizeof(SHFILEINFO), SHGFI_LARGEICON|SHGFI_SYSICONINDEX);
diff --git a/src/gui/itemviews/qheaderview.cpp b/src/gui/itemviews/qheaderview.cpp
index 8a456e6..1c26e51 100644
--- a/src/gui/itemviews/qheaderview.cpp
+++ b/src/gui/itemviews/qheaderview.cpp
@@ -1853,11 +1853,9 @@ void QHeaderViewPrivate::_q_layoutChanged()
persistentHiddenSections.clear();
return;
}
+
+ QBitArray oldSectionHidden = sectionHidden;
bool sectionCountChanged = false;
- for (int i = 0; i < sectionHidden.count(); ++i) {
- if (sectionHidden.testBit(i))
- q->setSectionHidden(logicalIndex(i), false);
- }
for (int i = 0; i < persistentHiddenSections.count(); ++i) {
QModelIndex index = persistentHiddenSections.at(i);
@@ -1866,6 +1864,7 @@ void QHeaderViewPrivate::_q_layoutChanged()
? index.column()
: index.row());
q->setSectionHidden(logical, true);
+ oldSectionHidden.setBit(logical, false);
} else if (!sectionCountChanged && (modelSectionCount() != sectionCount)) {
sectionCountChanged = true;
break;
@@ -1873,6 +1872,11 @@ void QHeaderViewPrivate::_q_layoutChanged()
}
persistentHiddenSections.clear();
+ for (int i = 0; i < oldSectionHidden.count(); ++i) {
+ if (oldSectionHidden.testBit(i))
+ q->setSectionHidden(logicalIndex(i), false);
+ }
+
// the number of sections changed; we need to reread the state of the model
if (sectionCountChanged)
q->initializeSections();
@@ -2300,7 +2304,7 @@ void QHeaderView::mouseReleaseEvent(QMouseEvent *e)
int section = logicalIndexAt(pos);
if (section != -1 && section == d->pressed) {
d->flipSortIndicator(section);
- emit sectionClicked(logicalIndexAt(pos));
+ emit sectionClicked(section);
}
if (d->pressed != -1)
updateSection(d->pressed);
diff --git a/src/gui/itemviews/qitemdelegate.cpp b/src/gui/itemviews/qitemdelegate.cpp
index 6fd26a7..9069ce4 100644
--- a/src/gui/itemviews/qitemdelegate.cpp
+++ b/src/gui/itemviews/qitemdelegate.cpp
@@ -1033,7 +1033,7 @@ static QString qPixmapSerial(quint64 i, bool enabled)
i >>= 4;
}
- return QString::fromUtf16(ptr, int(&arr[sizeof(arr) / sizeof(ushort)] - ptr));
+ return QString((const QChar *)ptr, int(&arr[sizeof(arr) / sizeof(ushort)] - ptr));
}
/*!
diff --git a/src/gui/itemviews/qsortfilterproxymodel.cpp b/src/gui/itemviews/qsortfilterproxymodel.cpp
index 472af7d..e73013c 100644
--- a/src/gui/itemviews/qsortfilterproxymodel.cpp
+++ b/src/gui/itemviews/qsortfilterproxymodel.cpp
@@ -270,6 +270,11 @@ void QSortFilterProxyModelPrivate::clear_mapping()
qDeleteAll(source_index_mapping);
source_index_mapping.clear();
+ if (dynamic_sortfilter && update_source_sort_column()) {
+ //update_source_sort_column might have created wrong mapping so we have to clear it again
+ qDeleteAll(source_index_mapping);
+ source_index_mapping.clear();
+ }
// update the persistent indexes
update_persistent_indexes(source_indexes);
@@ -1208,11 +1213,6 @@ void QSortFilterProxyModelPrivate::_q_sourceLayoutAboutToBeChanged()
void QSortFilterProxyModelPrivate::_q_sourceLayoutChanged()
{
Q_Q(QSortFilterProxyModel);
- if (saved_persistent_indexes.isEmpty()) {
- clear_mapping();
- emit q->layoutChanged();
- return;
- }
qDeleteAll(source_index_mapping);
source_index_mapping.clear();
@@ -1220,7 +1220,11 @@ void QSortFilterProxyModelPrivate::_q_sourceLayoutChanged()
update_persistent_indexes(saved_persistent_indexes);
saved_persistent_indexes.clear();
- update_source_sort_column();
+ if (dynamic_sortfilter && update_source_sort_column()) {
+ //update_source_sort_column might have created wrong mapping so we have to clear it again
+ qDeleteAll(source_index_mapping);
+ source_index_mapping.clear();
+ }
emit q->layoutChanged();
}
diff --git a/src/gui/itemviews/qtableview.cpp b/src/gui/itemviews/qtableview.cpp
index 7eefb0b..3111896 100644
--- a/src/gui/itemviews/qtableview.cpp
+++ b/src/gui/itemviews/qtableview.cpp
@@ -114,7 +114,9 @@ void QSpanCollection::updateSpan(QSpanCollection::Span *span, int old_height)
}
} else if (old_height > span->height()) {
//remove the span from all the subspans lists that intersect the columns not covered anymore
- Index::iterator it_y = index.lowerBound(qMin(-span->bottom(), 0));
+ Index::iterator it_y = index.lowerBound(-span->bottom());
+ if (it_y == index.end())
+ it_y = index.find(-span->top()); // This is the only span remaining and we are deleting it.
Q_ASSERT(it_y != index.end()); //it_y must exist since the span is in the list
while (-it_y.key() <= span->top() + old_height -1) {
if (-it_y.key() > span->bottom()) {
diff --git a/src/gui/kernel/kernel.pri b/src/gui/kernel/kernel.pri
index 30cb043..6fd45ad 100644
--- a/src/gui/kernel/kernel.pri
+++ b/src/gui/kernel/kernel.pri
@@ -7,7 +7,7 @@ PRECOMPILED_HEADER = kernel/qt_gui_pch.h
KERNEL_P= kernel
HEADERS += \
kernel/qaction.h \
- kernel/qaction_p.h \
+ kernel/qaction_p.h \
kernel/qactiongroup.h \
kernel/qapplication.h \
kernel/qapplication_p.h \
@@ -37,8 +37,8 @@ HEADERS += \
kernel/qstackedlayout.h \
kernel/qtooltip.h \
kernel/qwhatsthis.h \
- kernel/qwidget.h \
- kernel/qwidget_p.h \
+ kernel/qwidget.h \
+ kernel/qwidget_p.h \
kernel/qwidgetaction.h \
kernel/qwidgetaction_p.h \
kernel/qwindowdefs.h \
@@ -49,6 +49,7 @@ HEADERS += \
kernel/qgesturerecognizer.h \
kernel/qgesturemanager_p.h \
kernel/qsoftkeymanager_p.h \
+ kernel/qsoftkeymanager_common_p.h \
kernel/qguiplatformplugin_p.h
SOURCES += \
@@ -84,14 +85,14 @@ SOURCES += \
kernel/qgesturerecognizer.cpp \
kernel/qgesturemanager.cpp \
kernel/qsoftkeymanager.cpp \
- kernel/qdesktopwidget.cpp \
+ kernel/qdesktopwidget.cpp \
kernel/qguiplatformplugin.cpp
win32 {
DEFINES += QT_NO_DIRECTDRAW
- HEADERS += \
- kernel/qwinnativepangesturerecognizer_win_p.h
+ HEADERS += \
+ kernel/qwinnativepangesturerecognizer_win_p.h
SOURCES += \
kernel/qapplication_win.cpp \
@@ -103,30 +104,34 @@ win32 {
kernel/qsound_win.cpp \
kernel/qwidget_win.cpp \
kernel/qole_win.cpp \
- kernel/qkeymapper_win.cpp \
- kernel/qwinnativepangesturerecognizer_win.cpp
+ kernel/qkeymapper_win.cpp \
+ kernel/qwinnativepangesturerecognizer_win.cpp
- !contains(DEFINES, QT_NO_DIRECTDRAW):LIBS += ddraw.lib
+ !contains(DEFINES, QT_NO_DIRECTDRAW):LIBS += ddraw.lib
}
symbian {
- SOURCES += \
- kernel/qapplication_s60.cpp \
- kernel/qeventdispatcher_s60.cpp \
- kernel/qwidget_s60.cpp \
- kernel/qcursor_s60.cpp \
- kernel/qdesktopwidget_s60.cpp \
- kernel/qkeymapper_s60.cpp\
- kernel/qclipboard_s60.cpp\
- kernel/qdnd_s60.cpp \
- kernel/qsound_s60.cpp
+ SOURCES += \
+ kernel/qapplication_s60.cpp \
+ kernel/qeventdispatcher_s60.cpp \
+ kernel/qwidget_s60.cpp \
+ kernel/qcursor_s60.cpp \
+ kernel/qdesktopwidget_s60.cpp \
+ kernel/qkeymapper_s60.cpp\
+ kernel/qclipboard_s60.cpp\
+ kernel/qdnd_s60.cpp \
+ kernel/qsound_s60.cpp \
+ kernel/qsoftkeymanager_s60.cpp
- HEADERS += \
- kernel/qt_s60_p.h \
- kernel/qeventdispatcher_s60_p.h
- LIBS += -lbafl -lestor
+ HEADERS += \
+ kernel/qt_s60_p.h \
+ kernel/qeventdispatcher_s60_p.h \
+ kernel/qsoftkeymanager_s60_p.h
+
+ LIBS += -lbafl -lestor
- INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+ INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+ INCLUDEPATH += ../3rdparty/s60
}
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index 65840c8..b9ea540 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -121,8 +121,10 @@ extern bool qt_wince_is_pocket_pc(); //qguifunctions_wince.cpp
static void initResources()
{
-#ifdef Q_WS_WINCE
+#if defined(Q_WS_WINCE)
Q_INIT_RESOURCE(qstyle_wince);
+#elif defined(Q_OS_SYMBIAN)
+ Q_INIT_RESOURCE(qstyle_s60);
#else
Q_INIT_RESOURCE(qstyle);
#endif
diff --git a/src/gui/kernel/qapplication_mac.mm b/src/gui/kernel/qapplication_mac.mm
index 961a3f6..3fba833 100644
--- a/src/gui/kernel/qapplication_mac.mm
+++ b/src/gui/kernel/qapplication_mac.mm
@@ -227,8 +227,29 @@ void onApplicationChangedActivation( bool activated );
static void qt_mac_read_fontsmoothing_settings()
{
- NSInteger appleFontSmoothing = [[NSUserDefaults standardUserDefaults] integerForKey:@"AppleFontSmoothing"];
- qt_applefontsmoothing_enabled = (appleFontSmoothing > 0);
+ qt_applefontsmoothing_enabled = true;
+ int w = 10, h = 10;
+ QImage image(w, h, QImage::Format_RGB32);
+ image.fill(0xffffffff);
+ QPainter p(&image);
+ p.drawText(0, h, "X\\");
+ p.end();
+
+ const int *bits = (const int *) ((const QImage &) image).bits();
+ int bpl = image.bytesPerLine() / 4;
+ for (int y=0; y<w; ++y) {
+ for (int x=0; x<h; ++x) {
+ int r = qRed(bits[x]);
+ int g = qGreen(bits[x]);
+ int b = qBlue(bits[x]);
+ if (r != g || r != b) {
+ qt_applefontsmoothing_enabled = true;
+ return;
+ }
+ }
+ bits += bpl;
+ }
+ qt_applefontsmoothing_enabled = false;
}
Q_GUI_EXPORT bool qt_mac_execute_apple_script(const char *script, long script_len, AEDesc *ret) {
@@ -772,11 +793,11 @@ static void qt_mac_update_intersected_gl_widgets(QWidget *widget)
qt_post_window_change_event(glWidget);
it->lastUpdateWidget = widget;
} else if (it->lastUpdateWidget == widget) {
- // Update the gl wigets that the widget intersected the last time around,
- // and that we are not intersecting now. This prevents paint errors when the
+ // Update the gl wigets that the widget intersected the last time around,
+ // and that we are not intersecting now. This prevents paint errors when the
// intersecting widget leaves a gl widget.
qt_post_window_change_event(glWidget);
- it->lastUpdateWidget = 0;
+ it->lastUpdateWidget = 0;
}
}
#else
@@ -808,8 +829,8 @@ Q_GUI_EXPORT void qt_event_request_window_change(QWidget *widget)
// Post a kEventQtRequestWindowChange event. This event is semi-public,
// don't remove this line!
qt_event_request_window_change();
-
- // Post update request on gl widgets unconditionally.
+
+ // Post update request on gl widgets unconditionally.
if (qt_widget_private(widget)->isGLWidget == true) {
qt_post_window_change_event(widget);
return;
@@ -1214,8 +1235,6 @@ void qt_init(QApplicationPrivate *priv, int)
if (QApplication::desktopSettingsAware())
QApplicationPrivate::qt_mac_apply_settings();
- qt_mac_read_fontsmoothing_settings();
-
// Cocoa application delegate
#ifdef QT_MAC_USE_COCOA
NSApplication *cocoaApp = [NSApplication sharedApplication];
@@ -1249,6 +1268,7 @@ void qt_init(QApplicationPrivate *priv, int)
}
priv->native_modal_dialog_active = false;
+ qt_mac_read_fontsmoothing_settings();
}
void qt_release_apple_event_handler()
@@ -1730,7 +1750,7 @@ QApplicationPrivate::globalEventProcessor(EventHandlerCallRef er, EventRef event
// kEventMouseWheelMoved events if we dont eat this event
// (actually two events; one for horizontal and one for vertical).
// As a results of this, and to make sure we dont't receive duplicate events,
- // we try to detect when this happend by checking the 'compatibilityEvent'.
+ // we try to detect when this happend by checking the 'compatibilityEvent'.
SInt32 mdelt = 0;
GetEventParameter(event, kEventParamMouseWheelSmoothHorizontalDelta, typeSInt32, 0,
sizeof(mdelt), 0, &mdelt);
@@ -2623,7 +2643,7 @@ void QApplicationPrivate::closePopup(QWidget *popup)
if (QApplicationPrivate::popupWidgets->isEmpty()) { // this was the last popup
delete QApplicationPrivate::popupWidgets;
QApplicationPrivate::popupWidgets = 0;
-
+
// Special case for Tool windows: since they are activated and deactived together
// with a normal window they never become the QApplicationPrivate::active_window.
QWidget *appFocusWidget = QApplication::focusWidget();
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp
index a51f5b8..20b8030 100644
--- a/src/gui/kernel/qapplication_s60.cpp
+++ b/src/gui/kernel/qapplication_s60.cpp
@@ -71,6 +71,7 @@
# include <private/qcoefepinputcontext_p.h>
# endif
# include <private/qs60mainapplication_p.h>
+# include <centralrepository.h>
#endif
#include "private/qstylesheetstyle_p.h"
@@ -1204,6 +1205,24 @@ void qt_init(QApplicationPrivate * /* priv */, int)
S60->virtualMouseRequired = false;
}
+ S60->avkonComponentsSupportTransparency = false;
+
+#ifdef Q_WS_S60
+ TUid KCRUidAvkon = { 0x101F876E };
+ TUint32 KAknAvkonTransparencyEnabled = 0x0000000D;
+
+ CRepository* repository = 0;
+ TRAP(err, repository = CRepository::NewL(KCRUidAvkon));
+
+ if(err == KErrNone) {
+ TInt value = 0;
+ err = repository->Get(KAknAvkonTransparencyEnabled, value);
+ if(err == KErrNone) {
+ S60->avkonComponentsSupportTransparency = (value==1) ? true : false;
+ }
+ }
+#endif
+
if (touch) {
QApplicationPrivate::navigationMode = Qt::NavigationModeNone;
} else {
diff --git a/src/gui/kernel/qclipboard_s60.cpp b/src/gui/kernel/qclipboard_s60.cpp
index 71c355b..f07e066 100644
--- a/src/gui/kernel/qclipboard_s60.cpp
+++ b/src/gui/kernel/qclipboard_s60.cpp
@@ -164,7 +164,8 @@ void readFromStreamLX(QMimeData* aData,RReadStream& aStream)
TCardinality mimeTypeSize;
aStream >> mimeTypeSize;
HBufC* mimeTypeBuf = HBufC::NewLC(aStream,mimeTypeSize);
- QString mimeType = QString::fromUtf16(mimeTypeBuf->Des().Ptr(),mimeTypeBuf->Length());
+ QString mimeType = QString(reinterpret_cast<const QChar *>(mimeTypeBuf->Des().Ptr()),
+ mimeTypeBuf->Length());
CleanupStack::PopAndDestroy(mimeTypeBuf);
// mime data
TCardinality dataSize;
diff --git a/src/gui/kernel/qcocoamenuloader_mac.mm b/src/gui/kernel/qcocoamenuloader_mac.mm
index 9f90cec..18b3772 100644
--- a/src/gui/kernel/qcocoamenuloader_mac.mm
+++ b/src/gui/kernel/qcocoamenuloader_mac.mm
@@ -110,6 +110,12 @@ QT_USE_NAMESPACE
}
}
+- (void)removeActionsFromAppMenu
+{
+ for (NSMenuItem *item in [appMenu itemArray])
+ [item setTag:nil];
+}
+
- (void)dealloc
{
[lastAppSpecificItem release];
diff --git a/src/gui/kernel/qcocoamenuloader_mac_p.h b/src/gui/kernel/qcocoamenuloader_mac_p.h
index 432a7a6..81c136e 100644
--- a/src/gui/kernel/qcocoamenuloader_mac_p.h
+++ b/src/gui/kernel/qcocoamenuloader_mac_p.h
@@ -70,6 +70,7 @@
}
- (void)ensureAppMenuInMenu:(NSMenu *)menu;
+- (void)removeActionsFromAppMenu;
- (NSMenu *)applicationMenu;
- (NSMenu *)menu;
- (NSMenuItem *)quitMenuItem;
diff --git a/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h b/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h
index 2117551..d8bbcd4 100644
--- a/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h
+++ b/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h
@@ -95,7 +95,8 @@ QT_END_NAMESPACE
bool isToolTip = (widget->windowType() == Qt::ToolTip);
bool isPopup = (widget->windowType() == Qt::Popup);
- return !(isPopup || isToolTip);
+ bool isTool = (widget->windowType() == Qt::Tool);
+ return !(isPopup || isToolTip || isTool);
}
- (void)orderWindow:(NSWindowOrderingMode)orderingMode relativeTo:(NSInteger)otherWindowNumber
diff --git a/src/gui/kernel/qcocoaview_mac.mm b/src/gui/kernel/qcocoaview_mac.mm
index b4bb8bf..8c5d166 100644
--- a/src/gui/kernel/qcocoaview_mac.mm
+++ b/src/gui/kernel/qcocoaview_mac.mm
@@ -602,6 +602,8 @@ extern "C" {
- (void)mouseEntered:(NSEvent *)event
{
+ if (qwidgetprivate->data.in_destructor)
+ return;
QEvent enterEvent(QEvent::Enter);
NSPoint windowPoint = [event locationInWindow];
NSPoint globalPoint = [[event window] convertBaseToScreen:windowPoint];
diff --git a/src/gui/kernel/qcocoawindowdelegate_mac.mm b/src/gui/kernel/qcocoawindowdelegate_mac.mm
index db87491..24498f8 100644
--- a/src/gui/kernel/qcocoawindowdelegate_mac.mm
+++ b/src/gui/kernel/qcocoawindowdelegate_mac.mm
@@ -269,9 +269,6 @@ static void cleanupCocoaWindowDelegate()
{
QWidget *qwidget = m_windowHash->value([notification object]);
Q_ASSERT(qwidget);
- if (qwidget->isActiveWindow())
- return; // Widget is already active, no need to go through re-activation.
-
onApplicationWindowChangedActivation(qwidget, true);
}
@@ -288,10 +285,6 @@ static void cleanupCocoaWindowDelegate()
{
QWidget *qwidget = m_windowHash->value([notification object]);
Q_ASSERT(qwidget);
- if (qwidget->isActiveWindow())
- return; // Widget is already active, no need to go through re-activation
-
-
onApplicationWindowChangedActivation(qwidget, true);
}
diff --git a/src/gui/kernel/qdnd_x11.cpp b/src/gui/kernel/qdnd_x11.cpp
index edab6a0..33968bd 100644
--- a/src/gui/kernel/qdnd_x11.cpp
+++ b/src/gui/kernel/qdnd_x11.cpp
@@ -617,7 +617,7 @@ QVariant QX11Data::xdndMimeConvertToFormat(Atom a, const QByteArray &data, const
// so it should be safe to check that the second char is 0
// to verify that it is utf16
if (data.size() > 1 && data.at(1) == 0)
- return QString::fromUtf16(reinterpret_cast<const ushort *>(data.constData()),
+ return QString::fromRawData((const QChar *)data.constData(),
data.size() / 2).split(QLatin1Char('\n')).first().toLatin1();
}
}
diff --git a/src/gui/kernel/qeventdispatcher_mac.mm b/src/gui/kernel/qeventdispatcher_mac.mm
index 2a1da41..c7d042d 100644
--- a/src/gui/kernel/qeventdispatcher_mac.mm
+++ b/src/gui/kernel/qeventdispatcher_mac.mm
@@ -579,7 +579,6 @@ bool QEventDispatcherMac::processEvents(QEventLoop::ProcessEventsFlags flags)
// [NSApp run], which is the normal code path for cocoa applications.
if (NSModalSession session = d->currentModalSession()) {
QBoolBlocker execGuard(d->currentExecIsNSAppRun, false);
-
while ([NSApp runModalSession:session] == NSRunContinuesResponse && !d->interrupt)
qt_mac_waitForMoreModalSessionEvents();
diff --git a/src/gui/kernel/qmime_mac.cpp b/src/gui/kernel/qmime_mac.cpp
index 775bf1b..c6fd184 100644
--- a/src/gui/kernel/qmime_mac.cpp
+++ b/src/gui/kernel/qmime_mac.cpp
@@ -432,8 +432,8 @@ QVariant QMacPasteboardMimeUnicodeText::convertToMime(const QString &mimetype, Q
firstData.size(), CFStringGetSystemEncoding(), false));
ret = QString(str);
} else if (flavor == QLatin1String("public.utf16-plain-text")) {
- ret = QString::fromUtf16(reinterpret_cast<const ushort *>(firstData.constData()),
- firstData.size() / sizeof(ushort));
+ ret = QString(reinterpret_cast<const QChar *>(firstData.constData()),
+ firstData.size() / sizeof(QChar));
} else {
qWarning("QMime::convertToMime: unhandled mimetype: %s", qPrintable(mimetype));
}
diff --git a/src/gui/kernel/qsoftkeymanager.cpp b/src/gui/kernel/qsoftkeymanager.cpp
index 354f90b..6d108b0 100644
--- a/src/gui/kernel/qsoftkeymanager.cpp
+++ b/src/gui/kernel/qsoftkeymanager.cpp
@@ -41,34 +41,18 @@
#include "qapplication.h"
#include "qevent.h"
-#ifdef Q_WS_S60
-#include "qstyle.h"
-#include "private/qt_s60_p.h"
-#endif
+#include "qbitmap.h"
#include "private/qsoftkeymanager_p.h"
#include "private/qobject_p.h"
-
-#ifndef QT_NO_SOFTKEYMANAGER
-QT_BEGIN_NAMESPACE
+#include "private/qsoftkeymanager_common_p.h"
#ifdef Q_WS_S60
-static const int s60CommandStart = 6000;
+#include "private/qsoftkeymanager_s60_p.h"
#endif
-class QSoftKeyManagerPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QSoftKeyManager)
-
-public:
- static void updateSoftKeys_sys(const QList<QAction*> &softKeys);
-
-private:
- QHash<QAction*, Qt::Key> keyedActions;
- static QSoftKeyManager *self;
- static QWidget *softKeySource;
-};
+#ifndef QT_NO_SOFTKEYMANAGER
+QT_BEGIN_NAMESPACE
-QWidget *QSoftKeyManagerPrivate::softKeySource = 0;
QSoftKeyManager *QSoftKeyManagerPrivate::self = 0;
const char *QSoftKeyManager::standardSoftKeyText(StandardSoftKey standardKey)
@@ -105,7 +89,12 @@ QSoftKeyManager *QSoftKeyManager::instance()
return QSoftKeyManagerPrivate::self;
}
-QSoftKeyManager::QSoftKeyManager() : QObject(*(new QSoftKeyManagerPrivate), 0)
+QSoftKeyManager::QSoftKeyManager() :
+#ifdef Q_WS_S60
+ QObject(*(new QSoftKeyManagerPrivateS60), 0)
+#else
+ QObject(*(new QSoftKeyManagerPrivate), 0)
+#endif
{
}
@@ -115,10 +104,11 @@ QAction *QSoftKeyManager::createAction(StandardSoftKey standardKey, QWidget *act
QAction *action = new QAction(QSoftKeyManager::tr(text), actionWidget);
QAction::SoftKeyRole softKeyRole = QAction::NoSoftKey;
switch (standardKey) {
+ case MenuSoftKey: // FALL-THROUGH
+ action->setProperty(MENU_ACTION_PROPERTY, QVariant(true)); // TODO: can be refactored away to use _q_action_menubar
case OkSoftKey:
case SelectSoftKey:
case DoneSoftKey:
- case MenuSoftKey:
softKeyRole = QAction::PositiveSoftKey;
break;
case CancelSoftKey:
@@ -147,7 +137,7 @@ QAction *QSoftKeyManager::createKeyedAction(StandardSoftKey standardKey, Qt::Key
#endif //QT_NO_ACTION
}
-void QSoftKeyManager::cleanupHash(QObject* obj)
+void QSoftKeyManager::cleanupHash(QObject *obj)
{
Q_D(QSoftKeyManager);
QAction *action = qobject_cast<QAction*>(obj);
@@ -175,137 +165,78 @@ void QSoftKeyManager::updateSoftKeys()
QApplication::postEvent(QSoftKeyManager::instance(), event);
}
-bool QSoftKeyManager::event(QEvent *e)
+bool QSoftKeyManager::appendSoftkeys(const QWidget &source, int level)
{
-#ifndef QT_NO_ACTION
- if (e->type() == QEvent::UpdateSoftKeys) {
- QList<QAction*> softKeys;
- QWidget *source = QApplication::focusWidget();
- do {
- if (source) {
- QList<QAction*> actions = source->actions();
- for (int i = 0; i < actions.count(); ++i) {
- if (actions.at(i)->softKeyRole() != QAction::NoSoftKey)
- softKeys.append(actions.at(i));
- }
-
- QWidget *parent = source->parentWidget();
- if (parent && softKeys.isEmpty() && !source->isWindow())
- source = parent;
- else
- break;
- } else {
- source = QApplication::activeWindow();
- }
- } while (source);
-
- QSoftKeyManagerPrivate::softKeySource = source;
- QSoftKeyManagerPrivate::updateSoftKeys_sys(softKeys);
- return true;
+ Q_D(QSoftKeyManager);
+ bool ret = false;
+ QList<QAction*> actions = source.actions();
+ for (int i = 0; i < actions.count(); ++i) {
+ if (actions.at(i)->softKeyRole() != QAction::NoSoftKey) {
+ d->requestedSoftKeyActions.insert(level, actions.at(i));
+ ret = true;
+ }
}
-#endif //QT_NO_ACTION
- return false;
+ return ret;
}
-#ifdef Q_WS_S60
-void QSoftKeyManagerPrivate::updateSoftKeys_sys(const QList<QAction*> &softkeys)
+QWidget *QSoftKeyManager::softkeySource(QWidget *previousSource, bool& recursiveMerging)
{
- // lets not update softkeys if s60 native dialog or menu is shown
- if (QApplication::testAttribute(Qt::AA_S60DontConstructApplicationPanes)
- || CCoeEnv::Static()->AppUi()->IsDisplayingMenuOrDialog())
- return;
-
- CEikButtonGroupContainer* nativeContainer = S60->buttonGroupContainer();
- nativeContainer->DrawableWindow()->SetOrdinalPosition(0);
- nativeContainer->DrawableWindow()->SetPointerCapturePriority(1); //keep softkeys available in modal dialog
- nativeContainer->DrawableWindow()->SetFaded(EFalse, RWindowTreeNode::EFadeIncludeChildren);
-
- int position = -1;
- bool needsExitButton = true;
- QT_TRAP_THROWING(
- //Using -1 instead of EAknSoftkeyEmpty to avoid flickering.
- nativeContainer->SetCommandL(0, -1, KNullDesC);
- nativeContainer->SetCommandL(2, -1, KNullDesC);
- );
-
- for (int index = 0; index < softkeys.count(); index++) {
- const QAction* softKeyAction = softkeys.at(index);
- switch (softKeyAction->softKeyRole()) {
- // Positive Actions on the LSK
- case QAction::PositiveSoftKey:
- position = 0;
- break;
- case QAction::SelectSoftKey:
- position = 0;
- break;
- // Negative Actions on the RSK
- case QAction::NegativeSoftKey:
- needsExitButton = false;
- position = 2;
- break;
- default:
- break;
- }
-
- int command = (softKeyAction->objectName().contains(QLatin1String("_q_menuSoftKeyAction")))
- ? EAknSoftkeyOptions
- : s60CommandStart + index;
-
- // _q_menuSoftKeyAction action is set to "invisible" and all invisible actions are by default
- // disabled. However we never want to dim options softkey, even it is set to "invisible"
- bool dimmed = (command == EAknSoftkeyOptions) ? false : !softKeyAction->isEnabled();
-
- if (position != -1) {
- const int underlineShortCut = QApplication::style()->styleHint(QStyle::SH_UnderlineShortcut);
- QString iconText = softKeyAction->iconText();
- TPtrC text = qt_QString2TPtrC( underlineShortCut ? softKeyAction->text() : iconText);
- QT_TRAP_THROWING(
- nativeContainer->SetCommandL(position, command, text);
- nativeContainer->DimCommand(command, dimmed);
- );
- }
+ Q_D(QSoftKeyManager);
+ QWidget *source = NULL;
+ if (!previousSource) {
+ // Initial source is primarily focuswidget and secondarily activeWindow
+ source = QApplication::focusWidget();
+ if (!source)
+ source = QApplication::activeWindow();
+ } else {
+ // Softkey merging is based on four criterias
+ // 1. Implicit merging is used whenever focus widget does not specify any softkeys
+ bool implicitMerging = d->requestedSoftKeyActions.isEmpty();
+ // 2. Explicit merging with parent is used whenever WA_MergeSoftkeys widget attribute is set
+ bool explicitMerging = previousSource->testAttribute(Qt::WA_MergeSoftkeys);
+ // 3. Explicit merging with all parents
+ recursiveMerging |= previousSource->testAttribute(Qt::WA_MergeSoftkeysRecursively);
+ // 4. Implicit and explicit merging always stops at window boundary
+ bool merging = (implicitMerging || explicitMerging || recursiveMerging) && !previousSource->isWindow();
+
+ source = merging ? previousSource->parentWidget() : NULL;
}
-
- const Qt::WindowType sourceWindowType = QSoftKeyManagerPrivate::softKeySource
- ? QSoftKeyManagerPrivate::softKeySource->window()->windowType()
- : Qt::Widget;
-
- if (needsExitButton && sourceWindowType != Qt::Dialog && sourceWindowType != Qt::Popup)
- QT_TRAP_THROWING(
- nativeContainer->SetCommandL(2, EAknSoftkeyExit, qt_QString2TPtrC(QSoftKeyManager::tr("Exit"))));
-
- nativeContainer->DrawDeferred(); // 3.1 needs an extra invitation
+ return source;
}
-bool QSoftKeyManager::handleCommand(int command)
+bool QSoftKeyManager::handleUpdateSoftKeys()
{
- if (command >= s60CommandStart && QSoftKeyManagerPrivate::softKeySource) {
- int index = command - s60CommandStart;
- const QList<QAction*>& softKeys = QSoftKeyManagerPrivate::softKeySource->actions();
- for (int i = 0, j = 0; i < softKeys.count(); ++i) {
- QAction *action = softKeys.at(i);
- if (action->softKeyRole() != QAction::NoSoftKey) {
- if (j == index) {
- QWidget *parent = action->parentWidget();
- if (parent && parent->isEnabled()) {
- action->activate(QAction::Trigger);
- return true;
- }
- }
- j++;
- }
+ Q_D(QSoftKeyManager);
+ int level = 0;
+ d->requestedSoftKeyActions.clear();
+ bool recursiveMerging = false;
+ QWidget *source = softkeySource(NULL, recursiveMerging);
+ do {
+ if (source) {
+ bool added = appendSoftkeys(*source, level);
+ source = softkeySource(source, recursiveMerging);
+ level = added ? ++level : level;
}
- }
+ } while (source);
- return false;
+ d->updateSoftKeys_sys();
+ return true;
}
-#else
-
-void QSoftKeyManagerPrivate::updateSoftKeys_sys(const QList<QAction*> &)
+bool QSoftKeyManager::event(QEvent *e)
{
+#ifndef QT_NO_ACTION
+ if (e->type() == QEvent::UpdateSoftKeys)
+ return handleUpdateSoftKeys();
+#endif //QT_NO_ACTION
+ return false;
}
+#ifdef Q_WS_S60
+bool QSoftKeyManager::handleCommand(int command)
+{
+ return static_cast<QSoftKeyManagerPrivateS60*>(QSoftKeyManager::instance()->d_func())->handleCommand(command);
+}
#endif
QT_END_NAMESPACE
diff --git a/src/gui/kernel/qsoftkeymanager_common_p.h b/src/gui/kernel/qsoftkeymanager_common_p.h
new file mode 100644
index 0000000..460d0dc
--- /dev/null
+++ b/src/gui/kernel/qsoftkeymanager_common_p.h
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtGui module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QSOFTKEYMANAGER_COMMON_P_H
+#define QSOFTKEYMANAGER_COMMON_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.
+//
+
+QT_BEGIN_HEADER
+
+#ifndef QT_NO_SOFTKEYMANAGER
+
+QT_BEGIN_NAMESPACE
+
+class QSoftKeyManagerPrivate : public QObjectPrivate
+{
+ Q_DECLARE_PUBLIC(QSoftKeyManager)
+
+public:
+ virtual void updateSoftKeys_sys() {};
+
+protected:
+ static QSoftKeyManager *self;
+ QHash<QAction*, Qt::Key> keyedActions;
+ QMultiHash<int, QAction*> requestedSoftKeyActions;
+
+};
+
+QT_END_NAMESPACE
+
+#endif //QT_NO_SOFTKEYMANAGER
+
+QT_END_HEADER
+
+#endif // QSOFTKEYMANAGER_COMMON_P_H \ No newline at end of file
diff --git a/src/gui/kernel/qsoftkeymanager_p.h b/src/gui/kernel/qsoftkeymanager_p.h
index c901a29..ce902fe 100644
--- a/src/gui/kernel/qsoftkeymanager_p.h
+++ b/src/gui/kernel/qsoftkeymanager_p.h
@@ -63,6 +63,8 @@ QT_BEGIN_NAMESPACE
class QSoftKeyManagerPrivate;
+const char MENU_ACTION_PROPERTY[] = "_q_menuaction";
+
class Q_AUTOTEST_EXPORT QSoftKeyManager : public QObject
{
Q_OBJECT
@@ -79,26 +81,30 @@ public:
};
static void updateSoftKeys();
- static QAction *createAction(StandardSoftKey standardKey, QWidget *actionWidget);
- static QAction *createKeyedAction(StandardSoftKey standardKey, Qt::Key key, QWidget *actionWidget);
-
#ifdef Q_WS_S60
static bool handleCommand(int);
#endif
-private:
- QSoftKeyManager();
- static QSoftKeyManager *instance();
- static const char *standardSoftKeyText(StandardSoftKey standardKey);
+ static QAction *createAction(StandardSoftKey standardKey, QWidget *actionWidget);
+ static QAction *createKeyedAction(StandardSoftKey standardKey, Qt::Key key, QWidget *actionWidget);
protected:
bool event(QEvent *e);
- Q_DISABLE_COPY(QSoftKeyManager)
+private:
+ QSoftKeyManager();
+ static QSoftKeyManager *instance();
+ static const char *standardSoftKeyText(StandardSoftKey standardKey);
+ bool appendSoftkeys(const QWidget &source, int level);
+ QWidget *softkeySource(QWidget *previousSource, bool& recursiveMerging);
+ bool handleUpdateSoftKeys();
private Q_SLOTS:
void cleanupHash(QObject* obj);
void sendKeyEvent();
+
+private:
+ Q_DISABLE_COPY(QSoftKeyManager)
};
QT_END_NAMESPACE
diff --git a/src/gui/kernel/qsoftkeymanager_s60.cpp b/src/gui/kernel/qsoftkeymanager_s60.cpp
new file mode 100644
index 0000000..67ed8b0
--- /dev/null
+++ b/src/gui/kernel/qsoftkeymanager_s60.cpp
@@ -0,0 +1,366 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtGui module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qapplication.h"
+#include "qevent.h"
+#include "qbitmap.h"
+#include "qstyle.h"
+#include "qmenubar.h"
+#include "private/qt_s60_p.h"
+#include "private/qmenu_p.h"
+#include "private/qsoftkeymanager_p.h"
+#include "private/qsoftkeymanager_s60_p.h"
+#include "private/qobject_p.h"
+//#include <eiksoftkeyimage.h>
+#include <eikcmbut.h>
+
+#ifndef QT_NO_SOFTKEYMANAGER
+QT_BEGIN_NAMESPACE
+
+const int S60_COMMAND_START = 6000;
+const int LSK_POSITION = 0;
+const int MSK_POSITION = 3;
+const int RSK_POSITION = 2;
+
+QSoftKeyManagerPrivateS60::QSoftKeyManagerPrivateS60()
+{
+ cachedCbaIconSize[0] = QSize(0,0);
+ cachedCbaIconSize[1] = QSize(0,0);
+ skipNextUpdate = false;
+}
+
+bool QSoftKeyManagerPrivateS60::skipCbaUpdate()
+{
+ // lets not update softkeys if
+ // 1. We don't have application panes, i.e. cba
+ // 2. S60 native dialog or menu is shown
+ if (QApplication::testAttribute(Qt::AA_S60DontConstructApplicationPanes) ||
+ CCoeEnv::Static()->AppUi()->IsDisplayingMenuOrDialog() || skipNextUpdate) {
+ skipNextUpdate = false;
+ return true;
+ }
+ return false;
+}
+
+void QSoftKeyManagerPrivateS60::ensureCbaVisibilityAndResponsiviness(CEikButtonGroupContainer &cba)
+{
+ RDrawableWindow *cbaWindow = cba.DrawableWindow();
+ Q_ASSERT_X(cbaWindow, Q_FUNC_INFO, "Native CBA does not have window!");
+ // Make sure CBA is visible, i.e. CBA window is on top
+ cbaWindow->SetOrdinalPosition(0);
+ // Qt shares same CBA instance between top-level widgets,
+ // make sure we are not faded by underlying window.
+ cbaWindow->SetFaded(EFalse, RWindowTreeNode::EFadeIncludeChildren);
+ // Modal dialogs capture pointer events, but shared cba instance
+ // shall stay responsive. Raise pointer capture priority to keep
+ // softkeys responsive in modal dialogs
+ cbaWindow->SetPointerCapturePriority(1);
+}
+
+void QSoftKeyManagerPrivateS60::clearSoftkeys(CEikButtonGroupContainer &cba)
+{
+ QT_TRAP_THROWING(
+ //Using -1 instead of EAknSoftkeyEmpty to avoid flickering.
+ cba.SetCommandL(0, -1, KNullDesC);
+ // TODO: Should we clear also middle SK?
+ cba.SetCommandL(2, -1, KNullDesC);
+ );
+ realSoftKeyActions.clear();
+}
+
+QString QSoftKeyManagerPrivateS60::softkeyText(QAction &softkeyAction)
+{
+ // In S60 softkeys and menu items do not support key accelerators (i.e.
+ // CTRL+X). Therefore, removing the accelerator characters from both softkey
+ // and menu item texts.
+ const int underlineShortCut = QApplication::style()->styleHint(QStyle::SH_UnderlineShortcut);
+ QString iconText = softkeyAction.iconText();
+ return underlineShortCut ? softkeyAction.text() : iconText;
+}
+
+QAction *QSoftKeyManagerPrivateS60::highestPrioritySoftkey(QAction::SoftKeyRole role)
+{
+ QAction *ret = NULL;
+ // Priority look up is two level
+ // 1. First widget with softkeys always has highest priority
+ for (int level = 0; !ret; level++) {
+ // 2. Highest priority action within widget
+ QList<QAction*> actions = requestedSoftKeyActions.values(level);
+ if (actions.isEmpty())
+ break;
+ qSort(actions.begin(), actions.end(), QSoftKeyManagerPrivateS60::actionPriorityMoreThan);
+ foreach (QAction *action, actions) {
+ if (action->softKeyRole() == role) {
+ ret = action;
+ break;
+ }
+ }
+ }
+ return ret;
+}
+
+bool QSoftKeyManagerPrivateS60::actionPriorityMoreThan(const QAction *firstItem, const QAction *secondItem)
+{
+ return firstItem->priority() > secondItem->priority();
+}
+
+void QSoftKeyManagerPrivateS60::setNativeSoftkey(CEikButtonGroupContainer &cba,
+ TInt position, TInt command, const TDesC &text)
+{
+ // Calling SetCommandL causes CBA redraw
+ QT_TRAP_THROWING(cba.SetCommandL(position, command, text));
+}
+
+bool QSoftKeyManagerPrivateS60::isOrientationLandscape()
+{
+ // Hard to believe that there is no public API in S60 to
+ // get current orientation. This workaround works with currently supported resolutions
+ return S60->screenHeightInPixels < S60->screenWidthInPixels;
+}
+
+QSize QSoftKeyManagerPrivateS60::cbaIconSize(CEikButtonGroupContainer *cba, int position)
+{
+ Q_UNUSED(cba);
+ Q_UNUSED(position);
+
+ // Will be implemented when EikSoftkeyImage usage license wise is OK
+/*
+ const int index = isOrientationLandscape() ? 0 : 1;
+ if(cachedCbaIconSize[index].isNull()) {
+ // Only way I figured out to get CBA icon size without RnD SDK, was
+ // Only way I figured out to get CBA icon size without RnD SDK, was
+ // to set some dummy icon to CBA first and then ask CBA button CCoeControl::Size()
+ // The returned value is cached to avoid unnecessary icon setting every time.
+ const bool left = (position == LSK_POSITION);
+ if(position == LSK_POSITION || position == RSK_POSITION) {
+ CEikImage* tmpImage = NULL;
+ QT_TRAP_THROWING(tmpImage = new (ELeave) CEikImage);
+ EikSoftkeyImage::SetImage(cba, *tmpImage, left); // Takes myimage ownership
+ int command = S60_COMMAND_START + position;
+ setNativeSoftkey(*cba, position, command, KNullDesC());
+ cachedCbaIconSize[index] = qt_TSize2QSize(cba->ControlOrNull(command)->Size());
+ EikSoftkeyImage::SetLabel(cba, left);
+ }
+ }
+
+ return cachedCbaIconSize[index];
+*/
+ return QSize();
+}
+
+bool QSoftKeyManagerPrivateS60::setSoftkeyImage(CEikButtonGroupContainer *cba,
+ QAction &action, int position)
+{
+ bool ret = false;
+ Q_UNUSED(cba);
+ Q_UNUSED(action);
+ Q_UNUSED(position);
+
+ // Will be implemented when EikSoftkeyImage usage license wise is OK
+ /*
+ const bool left = (position == LSK_POSITION);
+ if(position == LSK_POSITION || position == RSK_POSITION) {
+ QIcon icon = action.icon();
+ if (!icon.isNull()) {
+ QPixmap pm = icon.pixmap(cbaIconSize(cba, position));
+ pm = pm.scaled(cbaIconSize(cba, position));
+ QBitmap mask = pm.mask();
+ if (mask.isNull()) {
+ mask = QBitmap(pm.size());
+ mask.fill(Qt::color1);
+ }
+
+ CFbsBitmap* nBitmap = pm.toSymbianCFbsBitmap();
+ CFbsBitmap* nMask = mask.toSymbianCFbsBitmap();
+
+ CEikImage* myimage = new (ELeave) CEikImage;
+ myimage->SetPicture( nBitmap, nMask ); // nBitmap and nMask ownership transfered
+
+ EikSoftkeyImage::SetImage(cba, *myimage, left); // Takes myimage ownership
+ ret = true;
+ } else {
+ // Restore softkey to text based
+ EikSoftkeyImage::SetLabel(cba, left);
+ }
+ }
+ */
+ return ret;
+}
+
+bool QSoftKeyManagerPrivateS60::setSoftkey(CEikButtonGroupContainer &cba,
+ QAction::SoftKeyRole role, int position)
+{
+ QAction *action = highestPrioritySoftkey(role);
+ if (action) {
+ setSoftkeyImage(&cba, *action, position);
+ QString text = softkeyText(*action);
+ TPtrC nativeText = qt_QString2TPtrC(text);
+ int command = S60_COMMAND_START + position;
+ setNativeSoftkey(cba, position, command, nativeText);
+ cba.DimCommand(command, !action->isEnabled());
+ realSoftKeyActions.insert(command, action);
+ return true;
+ }
+ return false;
+}
+
+bool QSoftKeyManagerPrivateS60::setLeftSoftkey(CEikButtonGroupContainer &cba)
+{
+ return setSoftkey(cba, QAction::PositiveSoftKey, LSK_POSITION);
+}
+
+bool QSoftKeyManagerPrivateS60::setMiddleSoftkey(CEikButtonGroupContainer &cba)
+{
+ // Note: In order to get MSK working, application has to have EAknEnableMSK flag set
+ // Currently it is not possible very easily)
+ // For more information see: http://wiki.forum.nokia.com/index.php/Middle_softkey_usage
+ return setSoftkey(cba, QAction::SelectSoftKey, MSK_POSITION);
+}
+
+bool QSoftKeyManagerPrivateS60::setRightSoftkey(CEikButtonGroupContainer &cba)
+{
+ if (!setSoftkey(cba, QAction::NegativeSoftKey, RSK_POSITION)) {
+ Qt::WindowType windowType = Qt::Window;
+ QAction *action = requestedSoftKeyActions.value(0);
+ if (action) {
+ QWidget *actionParent = action->parentWidget();
+ Q_ASSERT_X(actionParent, Q_FUNC_INFO, "No parent set for softkey action!");
+
+ QWidget *actionWindow = actionParent->window();
+ Q_ASSERT_X(actionWindow, Q_FUNC_INFO, "Softkey action does not have window!");
+ windowType = actionWindow->windowType();
+ }
+
+ if (windowType != Qt::Dialog && windowType != Qt::Popup) {
+ QString text(QSoftKeyManager::tr("Exit"));
+ TPtrC nativeText = qt_QString2TPtrC(text);
+ setNativeSoftkey(cba, RSK_POSITION, EAknSoftkeyExit, nativeText);
+ return true;
+ }
+ }
+ return false;
+}
+
+void QSoftKeyManagerPrivateS60::setSoftkeys(CEikButtonGroupContainer &cba)
+{
+ int requestedSoftkeyCount = requestedSoftKeyActions.count();
+ const int maxSoftkeyCount = 2; // TODO: differs based on orientation ans S60 versions (some have MSK)
+ if (requestedSoftkeyCount > maxSoftkeyCount) {
+ // We have more softkeys than available slots
+ // Put highest priority negative action to RSK and Options menu with rest of softkey actions to LSK
+ // TODO: Build menu
+ setLeftSoftkey(cba);
+ if(AknLayoutUtils::MSKEnabled())
+ setMiddleSoftkey(cba);
+ setRightSoftkey(cba);
+ } else {
+ // We have less softkeys than available slots
+ // Put softkeys to request slots based on role
+ setLeftSoftkey(cba);
+ if(AknLayoutUtils::MSKEnabled())
+ setMiddleSoftkey(cba);
+ setRightSoftkey(cba);
+ }
+}
+
+void QSoftKeyManagerPrivateS60::updateSoftKeys_sys()
+{
+ //bool status = CCoeEnv::Static()->AppUi()->IsDisplayingMenuOrDialog();
+ if (skipCbaUpdate())
+ return;
+
+ CEikButtonGroupContainer *nativeContainer = S60->buttonGroupContainer();
+ Q_ASSERT_X(nativeContainer, Q_FUNC_INFO, "Native CBA does not exist!");
+ ensureCbaVisibilityAndResponsiviness(*nativeContainer);
+ clearSoftkeys(*nativeContainer);
+ setSoftkeys(*nativeContainer);
+
+ nativeContainer->DrawDeferred(); // 3.1 needs an extra invitation
+}
+
+bool QSoftKeyManagerPrivateS60::handleCommand(int command)
+{
+ QAction *action = realSoftKeyActions.value(command);
+ if (action) {
+ QVariant property = action->property(MENU_ACTION_PROPERTY);
+ if (property.isValid() && property.toBool()) {
+ QT_TRAP_THROWING(S60->menuBar()->TryDisplayMenuBarL());
+ } else if (action->menu()) {
+ // TODO: This is hack, in order to use exising QMenuBar implementation for Symbian
+ // menubar needs to have widget to which it is associated. Since we want to associate
+ // menubar to action (which is inherited from QObejct), we create and associate QWidget
+ // to action and pass that for QMenuBar. This associates the menubar to action, and we
+ // can have own menubar for each action.
+ QWidget *actionContainer = action->property("_q_action_widget").value<QWidget*>();
+ if(!actionContainer) {
+ actionContainer = new QWidget(action->parentWidget());
+ QMenuBar *menuBar = new QMenuBar(actionContainer);
+ foreach(QAction *menuAction, action->menu()->actions()) {
+ QMenu *menu = menuAction->menu();
+ if(menu)
+ menuBar->addMenu(action->menu());
+ else
+ menuBar->addAction(menuAction);
+ }
+ QVariant v;
+ v.setValue(actionContainer);
+ action->setProperty("_q_action_widget", v);
+ }
+ qt_symbian_next_menu_from_action(actionContainer);
+ QT_TRAP_THROWING(S60->menuBar()->TryDisplayMenuBarL());
+ // TODO: hack remove, it can happen that IsDisplayingMenuOrDialog return false
+ // in updateSoftKeys_sys, and we will override menu CBA with our own
+ skipNextUpdate = true;
+ } else {
+ Q_ASSERT(action->softKeyRole() != QAction::NoSoftKey);
+ QWidget *actionParent = action->parentWidget();
+ Q_ASSERT_X(actionParent, Q_FUNC_INFO, "No parent set for softkey action!");
+ if (actionParent->isEnabled()) {
+ action->activate(QAction::Trigger);
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
+QT_END_NAMESPACE
+#endif //QT_NO_SOFTKEYMANAGER
diff --git a/src/gui/kernel/qsoftkeymanager_s60_p.h b/src/gui/kernel/qsoftkeymanager_s60_p.h
new file mode 100644
index 0000000..46e3596
--- /dev/null
+++ b/src/gui/kernel/qsoftkeymanager_s60_p.h
@@ -0,0 +1,109 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtGui module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QSOFTKEYMANAGER_S60_P_H
+#define QSOFTKEYMANAGER_S60_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 "private/qobject_p.h"
+#include "private/qsoftkeymanager_common_p.h"
+
+QT_BEGIN_HEADER
+
+#ifndef QT_NO_SOFTKEYMANAGER
+
+QT_BEGIN_NAMESPACE
+
+class CEikButtonGroupContainer;
+class QAction;
+
+class QSoftKeyManagerPrivateS60 : public QSoftKeyManagerPrivate
+{
+ Q_DECLARE_PUBLIC(QSoftKeyManager)
+
+public:
+ QSoftKeyManagerPrivateS60();
+
+public:
+ void updateSoftKeys_sys();
+ bool handleCommand(int command);
+
+private:
+ bool skipCbaUpdate();
+ void ensureCbaVisibilityAndResponsiviness(CEikButtonGroupContainer &cba);
+ void clearSoftkeys(CEikButtonGroupContainer &cba);
+ QString softkeyText(QAction &softkeyAction);
+ QAction *highestPrioritySoftkey(QAction::SoftKeyRole role);
+ static bool actionPriorityMoreThan(const QAction* item1, const QAction* item2);
+ void setNativeSoftkey(CEikButtonGroupContainer &cba, TInt position, TInt command, const TDesC& text);
+ bool isOrientationLandscape();
+ QSize cbaIconSize(CEikButtonGroupContainer *cba, int position);
+ bool setSoftkeyImage(CEikButtonGroupContainer *cba, QAction &action, int position);
+ bool setSoftkey(CEikButtonGroupContainer &cba, QAction::SoftKeyRole role, int position);
+ bool setLeftSoftkey(CEikButtonGroupContainer &cba);
+ bool setMiddleSoftkey(CEikButtonGroupContainer &cba);
+ bool setRightSoftkey(CEikButtonGroupContainer &cba);
+ void setSoftkeys(CEikButtonGroupContainer &cba);
+
+private:
+ QHash<int, QAction*> realSoftKeyActions;
+ QSize cachedCbaIconSize[2];
+ bool skipNextUpdate;
+};
+
+
+QT_END_NAMESPACE
+
+#endif //QT_NO_SOFTKEYMANAGER
+
+QT_END_HEADER
+
+#endif // QSOFTKEYMANAGER_S60_P_H
diff --git a/src/gui/kernel/qt_cocoa_helpers_mac.mm b/src/gui/kernel/qt_cocoa_helpers_mac.mm
index 13c25fd..377e5a0 100644
--- a/src/gui/kernel/qt_cocoa_helpers_mac.mm
+++ b/src/gui/kernel/qt_cocoa_helpers_mac.mm
@@ -1296,4 +1296,17 @@ void qt_cocoaChangeOverrideCursor(const QCursor &cursor)
}
@end
+QMacCocoaAutoReleasePool::QMacCocoaAutoReleasePool()
+{
+#ifndef QT_MAC_USE_COCOA
+ NSApplicationLoad();
+#endif
+ pool = (void*)[[NSAutoreleasePool alloc] init];
+}
+
+QMacCocoaAutoReleasePool::~QMacCocoaAutoReleasePool()
+{
+ [(NSAutoreleasePool*)pool release];
+}
+
QT_END_NAMESPACE
diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h
index b417065..735ca7a 100644
--- a/src/gui/kernel/qt_s60_p.h
+++ b/src/gui/kernel/qt_s60_p.h
@@ -121,12 +121,14 @@ public:
int virtualMouseRequired : 1;
int qtOwnsS60Environment : 1;
int supportsPremultipliedAlpha : 1;
+ int avkonComponentsSupportTransparency : 1;
QApplication::QS60MainApplicationFactory s60ApplicationFactory; // typedef'ed pointer type
static inline void updateScreenSize();
static inline RWsSession& wsSession();
static inline RWindowGroup& windowGroup();
static inline CWsScreenDevice* screenDevice();
static inline CCoeAppUi* appUi();
+ static inline CEikMenuBar* menuBar();
#ifdef Q_WS_S60
static inline CEikStatusPane* statusPane();
static inline CCoeControl* statusPaneSubPane(TInt aPaneId);
@@ -269,6 +271,11 @@ inline CCoeAppUi* QS60Data::appUi()
return CCoeEnv::Static()-> AppUi();
}
+inline CEikMenuBar* QS60Data::menuBar()
+{
+ return CEikonEnv::Static()->AppUiFactory()->MenuBar();
+}
+
#ifdef Q_WS_S60
inline CEikStatusPane* QS60Data::statusPane()
{
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index 8804742..e678220 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -2026,6 +2026,14 @@ void QWidgetPrivate::updateIsOpaque()
}
#endif
+#ifdef Q_WS_S60
+ if (q->windowType() == Qt::Dialog && q->testAttribute(Qt::WA_TranslucentBackground)
+ && S60->avkonComponentsSupportTransparency) {
+ setOpaque(false);
+ return;
+ }
+#endif
+
if (q->testAttribute(Qt::WA_OpaquePaintEvent) || q->testAttribute(Qt::WA_PaintOnScreen)) {
setOpaque(true);
return;
@@ -3344,7 +3352,7 @@ QPoint QWidget::pos() const
\note Setting the size to \c{QSize(0, 0)} will cause the widget to not
appear on screen. This also applies to windows.
- \sa pos, geometry, minimumSize, maximumSize, resizeEvent()
+ \sa pos, geometry, minimumSize, maximumSize, resizeEvent(), adjustSize()
*/
/*!
diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm
index 5b5ab40..878b776 100644
--- a/src/gui/kernel/qwidget_mac.mm
+++ b/src/gui/kernel/qwidget_mac.mm
@@ -404,7 +404,7 @@ inline static void qt_mac_set_fullscreen_mode(bool b)
return;
qt_mac_app_fullscreen = b;
if (b) {
- SetSystemUIMode(kUIModeAllSuppressed, 0);
+ SetSystemUIMode(kUIModeAllHidden, kUIOptionAutoShowMenuBar);
} else {
SetSystemUIMode(kUIModeNormal, 0);
}
@@ -3233,10 +3233,10 @@ void QWidget::activateWindow()
|| windowActive) {
#ifndef QT_MAC_USE_COCOA
ActivateWindow(win, true);
+ qApp->setActiveWindow(tlw);
#else
[win makeKeyWindow];
#endif
- qApp->setActiveWindow(tlw);
} else if(!isMinimized()) {
#ifndef QT_MAC_USE_COCOA
SelectWindow(win);
@@ -3579,6 +3579,8 @@ void QWidgetPrivate::hide_sys()
if (!QWidget::mouseGrabber()){
QWidget *enterWidget = QApplication::widgetAt(QCursor::pos());
+ if (enterWidget && enterWidget->data->in_destructor)
+ enterWidget = 0;
QApplicationPrivate::dispatchEnterLeave(enterWidget, qt_mouseover);
qt_mouseover = enterWidget;
}
diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h
index d3bc2d8..ff8f276 100644
--- a/src/gui/kernel/qwidget_p.h
+++ b/src/gui/kernel/qwidget_p.h
@@ -158,6 +158,7 @@ struct QTLWExtra {
quint32 newCounterValueLo;
#endif
#elif defined(Q_WS_WIN) // <--------------------------------------------------------- WIN
+ uint hotkeyRegistered: 1; // Hot key from the STARTUPINFO has been registered.
HICON winIconBig; // internal big Windows icon
HICON winIconSmall; // internal small Windows icon
#elif defined(Q_WS_MAC) // <--------------------------------------------------------- MAC
diff --git a/src/gui/kernel/qwidget_win.cpp b/src/gui/kernel/qwidget_win.cpp
index 10522ed..6a36293 100644
--- a/src/gui/kernel/qwidget_win.cpp
+++ b/src/gui/kernel/qwidget_win.cpp
@@ -1094,6 +1094,21 @@ void QWidgetPrivate::show_sys()
return;
}
+ if (data.window_flags & Qt::Window) {
+ QTLWExtra *extra = topData();
+ if (!extra->hotkeyRegistered) {
+ // Try to set the hotkey using information from STARTUPINFO
+ STARTUPINFO startupInfo;
+ GetStartupInfo(&startupInfo);
+ // If STARTF_USEHOTKEY is set, hStdInput is the virtual keycode
+ if (startupInfo.dwFlags & 0x00000200) {
+ WPARAM hotKey = (WPARAM)startupInfo.hStdInput;
+ SendMessage(data.winid, WM_SETHOTKEY, hotKey, 0);
+ }
+ extra->hotkeyRegistered = 1;
+ }
+ }
+
int sm = SW_SHOWNORMAL;
bool fakedMaximize = false;
if (q->isWindow()) {
@@ -1141,6 +1156,8 @@ void QWidgetPrivate::show_sys()
data.window_state |= Qt::WindowMinimized;
if (IsZoomed(q->internalWinId()))
data.window_state |= Qt::WindowMaximized;
+ if (q->windowType() == Qt::Popup)
+ q->activateWindow();
}
winSetupGestures();
@@ -1687,6 +1704,7 @@ void QWidgetPrivate::deleteSysExtra()
void QWidgetPrivate::createTLSysExtra()
{
+ extra->topextra->hotkeyRegistered = 0;
extra->topextra->savedFlags = 0;
extra->topextra->winIconBig = 0;
extra->topextra->winIconSmall = 0;
diff --git a/src/gui/math3d/qmatrix4x4.h b/src/gui/math3d/qmatrix4x4.h
index f9902d7..0671fa8 100644
--- a/src/gui/math3d/qmatrix4x4.h
+++ b/src/gui/math3d/qmatrix4x4.h
@@ -208,6 +208,8 @@ private:
friend class QGraphicsRotation;
};
+Q_DECLARE_TYPEINFO(QMatrix4x4, Q_MOVABLE_TYPE);
+
inline QMatrix4x4::QMatrix4x4
(qreal m11, qreal m12, qreal m13, qreal m14,
qreal m21, qreal m22, qreal m23, qreal m24,
diff --git a/src/gui/math3d/qquaternion.h b/src/gui/math3d/qquaternion.h
index a446f28..16aa5d0 100644
--- a/src/gui/math3d/qquaternion.h
+++ b/src/gui/math3d/qquaternion.h
@@ -136,6 +136,8 @@ private:
qreal wp, xp, yp, zp;
};
+Q_DECLARE_TYPEINFO(QQuaternion, Q_MOVABLE_TYPE);
+
inline QQuaternion::QQuaternion() : wp(1.0f), xp(0.0f), yp(0.0f), zp(0.0f) {}
inline QQuaternion::QQuaternion(qreal aScalar, qreal xpos, qreal ypos, qreal zpos) : wp(aScalar), xp(xpos), yp(ypos), zp(zpos) {}
diff --git a/src/gui/math3d/qvector2d.h b/src/gui/math3d/qvector2d.h
index d76f35a..c92c5e0 100644
--- a/src/gui/math3d/qvector2d.h
+++ b/src/gui/math3d/qvector2d.h
@@ -126,6 +126,8 @@ private:
friend class QVector4D;
};
+Q_DECLARE_TYPEINFO(QVector2D, Q_MOVABLE_TYPE);
+
inline QVector2D::QVector2D() : xp(0.0f), yp(0.0f) {}
inline QVector2D::QVector2D(float xpos, float ypos, int) : xp(xpos), yp(ypos) {}
diff --git a/src/gui/math3d/qvector3d.h b/src/gui/math3d/qvector3d.h
index 80c7152..2fdd1d3 100644
--- a/src/gui/math3d/qvector3d.h
+++ b/src/gui/math3d/qvector3d.h
@@ -141,6 +141,8 @@ private:
#endif
};
+Q_DECLARE_TYPEINFO(QVector3D, Q_MOVABLE_TYPE);
+
inline QVector3D::QVector3D() : xp(0.0f), yp(0.0f), zp(0.0f) {}
inline QVector3D::QVector3D(qreal xpos, qreal ypos, qreal zpos) : xp(xpos), yp(ypos), zp(zpos) {}
diff --git a/src/gui/math3d/qvector4d.h b/src/gui/math3d/qvector4d.h
index 4af2961..a383fbb 100644
--- a/src/gui/math3d/qvector4d.h
+++ b/src/gui/math3d/qvector4d.h
@@ -138,6 +138,8 @@ private:
#endif
};
+Q_DECLARE_TYPEINFO(QVector4D, Q_MOVABLE_TYPE);
+
inline QVector4D::QVector4D() : xp(0.0f), yp(0.0f), zp(0.0f), wp(0.0f) {}
inline QVector4D::QVector4D(qreal xpos, qreal ypos, qreal zpos, qreal wpos) : xp(xpos), yp(ypos), zp(zpos), wp(wpos) {}
diff --git a/src/gui/painting/qcolor.cpp b/src/gui/painting/qcolor.cpp
index f51dc36..d6d288e 100644
--- a/src/gui/painting/qcolor.cpp
+++ b/src/gui/painting/qcolor.cpp
@@ -934,8 +934,7 @@ void QColor::setRgb(int r, int g, int b, int a)
/*!
\fn QRgb QColor::rgba() const
- Returns the RGB value of the color. Unlike rgb(), the alpha is not
- stripped.
+ Returns the RGB value of the color, including its alpha.
For an invalid color, the alpha value of the returned color is unspecified.
@@ -950,8 +949,7 @@ QRgb QColor::rgba() const
}
/*!
- Sets the RGBA value to \a rgba. Unlike setRgb(QRgb rgb), this function does
- not ignore the alpha.
+ Sets the RGB value to \a rgba, including its alpha.
\sa rgba(), rgb()
*/
@@ -968,8 +966,7 @@ void QColor::setRgba(QRgb rgba)
/*!
\fn QRgb QColor::rgb() const
- Returns the RGB value of the color. The alpha is stripped for
- compatibility.
+ Returns the RGB value of the color. The alpha value is opaque.
\sa getRgb(), rgba()
*/
@@ -983,7 +980,7 @@ QRgb QColor::rgb() const
/*!
\overload
- Sets the RGB value to \a rgb, ignoring the alpha.
+ Sets the RGB value to \a rgb. The alpha value is set to opaque.
*/
void QColor::setRgb(QRgb rgb)
{
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index 3f2322e..bc56ed0 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -3081,6 +3081,8 @@ void QRasterPaintEngine::drawGlyphsS60(const QPointF &p, const QTextItemInt &ti)
QVarLengthArray<glyph_t> glyphs;
QTransform matrix = s->matrix;
matrix.translate(p.x(), p.y());
+ if (matrix.type() == QTransform::TxScale)
+ fe->setFontScale(matrix.m11());
ti.fontEngine->getGlyphPositions(ti.glyphs, matrix, ti.flags, glyphs, positions);
const QFixed aliasDelta = QFixed::fromReal(aliasedCoordinateDelta);
@@ -3097,6 +3099,9 @@ void QRasterPaintEngine::drawGlyphsS60(const QPointF &p, const QTextItemInt &ti)
alphaPenBlt(glyphBitmapBytes, glyphBitmapSize.iWidth, 8, x, y, glyphBitmapSize.iWidth, glyphBitmapSize.iHeight);
}
+ if (matrix.type() == QTransform::TxScale)
+ fe->setFontScale(1.0);
+
return;
}
#endif // Q_OS_SYMBIAN && QT_NO_FREETYPE
@@ -3269,7 +3274,9 @@ void QRasterPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textIte
}
#elif defined (Q_OS_SYMBIAN) && defined(QT_NO_FREETYPE) // Q_WS_WIN || Q_WS_MAC
- if (s->matrix.type() <= QTransform::TxTranslate) {
+ if (s->matrix.type() <= QTransform::TxTranslate
+ || (s->matrix.type() == QTransform::TxScale
+ && (qFuzzyCompare(s->matrix.m11(), s->matrix.m22())))) {
drawGlyphsS60(p, ti);
return;
}
diff --git a/src/gui/painting/qpaintengine_raster_p.h b/src/gui/painting/qpaintengine_raster_p.h
index b937f66..a1c73cc 100644
--- a/src/gui/painting/qpaintengine_raster_p.h
+++ b/src/gui/painting/qpaintengine_raster_p.h
@@ -264,13 +264,13 @@ private:
#endif // Q_OS_SYMBIAN && QT_NO_FREETYPE
inline void ensureBrush(const QBrush &brush) {
- if (!qbrush_fast_equals(state()->lastBrush, brush) || state()->fillFlags)
+ if (!qbrush_fast_equals(state()->lastBrush, brush) || (brush.style() != Qt::NoBrush && state()->fillFlags))
updateBrush(brush);
}
inline void ensureBrush() { ensureBrush(state()->brush); }
inline void ensurePen(const QPen &pen) {
- if (!qpen_fast_equals(state()->lastPen, pen) || state()->strokeFlags)
+ if (!qpen_fast_equals(state()->lastPen, pen) || (pen.style() != Qt::NoPen && state()->strokeFlags))
updatePen(pen);
}
inline void ensurePen() { ensurePen(state()->pen); }
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index 31132d9..cde6a2d 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -7382,10 +7382,15 @@ struct QPaintDeviceRedirection
typedef QList<QPaintDeviceRedirection> QPaintDeviceRedirectionList;
Q_GLOBAL_STATIC(QPaintDeviceRedirectionList, globalRedirections)
Q_GLOBAL_STATIC(QMutex, globalRedirectionsMutex)
+Q_GLOBAL_STATIC(QAtomicInt, globalRedirectionAtomic)
/*!
\threadsafe
+ \obsolete
+
+ Please use QWidget::render() instead.
+
Redirects all paint commands for the given paint \a device, to the
\a replacement device. The optional point \a offset defines an
offset within the source device.
@@ -7395,9 +7400,10 @@ Q_GLOBAL_STATIC(QMutex, globalRedirectionsMutex)
device's painter (if any) before redirecting. Call
restoreRedirected() to restore the previous redirection.
- In general, you'll probably find that calling
- QPixmap::grabWidget() or QPixmap::grabWindow() is an easier
- solution.
+ \warning Making use of redirections in the QPainter API implies
+ that QPainter::begin() and QPaintDevice destructors need to hold
+ a mutex for a short period. This can impact performance. Use of
+ QWidget::render is strongly encouraged.
\sa redirected(), restoreRedirected()
*/
@@ -7429,14 +7435,24 @@ void QPainter::setRedirected(const QPaintDevice *device,
Q_ASSERT(redirections != 0);
*redirections += QPaintDeviceRedirection(device, rdev ? rdev : replacement, offset + roffset,
hadInternalWidgetRedirection ? redirections->size() - 1 : -1);
+ globalRedirectionAtomic()->ref();
}
/*!
\threadsafe
+ \obsolete
+
+ Using QWidget::render() obsoletes the use of this function.
+
Restores the previous redirection for the given \a device after a
call to setRedirected().
+ \warning Making use of redirections in the QPainter API implies
+ that QPainter::begin() and QPaintDevice destructors need to hold
+ a mutex for a short period. This can impact performance. Use of
+ QWidget::render is strongly encouraged.
+
\sa redirected()
*/
void QPainter::restoreRedirected(const QPaintDevice *device)
@@ -7447,6 +7463,7 @@ void QPainter::restoreRedirected(const QPaintDevice *device)
Q_ASSERT(redirections != 0);
for (int i = redirections->size()-1; i >= 0; --i) {
if (redirections->at(i) == device) {
+ globalRedirectionAtomic()->deref();
const int internalWidgetRedirectionIndex = redirections->at(i).internalWidgetRedirectionIndex;
redirections->removeAt(i);
// Restore the internal widget redirection, i.e. remove it from the global
@@ -7468,9 +7485,18 @@ void QPainter::restoreRedirected(const QPaintDevice *device)
/*!
\threadsafe
+ \obsolete
+
+ Using QWidget::render() obsoletes the use of this function.
+
Returns the replacement for given \a device. The optional out
parameter \a offset returns the offset within the replaced device.
+ \warning Making use of redirections in the QPainter API implies
+ that QPainter::begin() and QPaintDevice destructors need to hold
+ a mutex for a short period. This can impact performance. Use of
+ QWidget::render is strongly encouraged.
+
\sa setRedirected(), restoreRedirected()
*/
QPaintDevice *QPainter::redirected(const QPaintDevice *device, QPoint *offset)
@@ -7483,6 +7509,9 @@ QPaintDevice *QPainter::redirected(const QPaintDevice *device, QPoint *offset)
return widgetPrivate->redirected(offset);
}
+ if (*globalRedirectionAtomic() == 0)
+ return 0;
+
QMutexLocker locker(globalRedirectionsMutex());
QPaintDeviceRedirectionList *redirections = globalRedirections();
Q_ASSERT(redirections != 0);
@@ -7500,6 +7529,9 @@ QPaintDevice *QPainter::redirected(const QPaintDevice *device, QPoint *offset)
void qt_painter_removePaintDevice(QPaintDevice *dev)
{
+ if (*globalRedirectionAtomic() == 0)
+ return;
+
QMutex *mutex = 0;
QT_TRY {
mutex = globalRedirectionsMutex();
diff --git a/src/gui/styles/qcommonstyle.cpp b/src/gui/styles/qcommonstyle.cpp
index 2a1d336..3132dd1 100644
--- a/src/gui/styles/qcommonstyle.cpp
+++ b/src/gui/styles/qcommonstyle.cpp
@@ -1608,7 +1608,7 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
if (toolbutton->toolButtonStyle == Qt::ToolButtonTextUnderIcon) {
pr.setHeight(pmSize.height() + 6);
- tr.adjust(0, pr.height() - 1, 0, -3);
+ tr.adjust(0, pr.height() - 1, 0, -2);
pr.translate(shiftX, shiftY);
if (!hasArrow) {
proxy()->drawItemPixmap(p, pr, Qt::AlignCenter, pm);
diff --git a/src/gui/styles/qgtkstyle.cpp b/src/gui/styles/qgtkstyle.cpp
index 211f4ce..b5f052b 100644
--- a/src/gui/styles/qgtkstyle.cpp
+++ b/src/gui/styles/qgtkstyle.cpp
@@ -1106,8 +1106,14 @@ void QGtkStyle::drawPrimitive(PrimitiveElement element,
// ### Note: Ubuntulooks breaks when the proper widget is passed
// Murrine engine requires a widget not to get RGBA check - warnings
GtkWidget *gtkCheckButton = d->gtkWidget(QLS("GtkCheckButton"));
- gtkPainter.paintOption(gtkCheckButton , buttonRect, state, shadow, gtkRadioButton->style, QLS("radiobutton"));
-
+ QString key(QLS("radiobutton"));
+ if (option->state & State_HasFocus) { // Themes such as Nodoka check this flag
+ key += QLatin1Char('f');
+ GTK_WIDGET_SET_FLAGS(gtkCheckButton, GTK_HAS_FOCUS);
+ }
+ gtkPainter.paintOption(gtkCheckButton , buttonRect, state, shadow, gtkRadioButton->style, key);
+ if (option->state & State_HasFocus)
+ GTK_WIDGET_UNSET_FLAGS(gtkCheckButton, GTK_HAS_FOCUS);
}
break;
@@ -1128,6 +1134,11 @@ void QGtkStyle::drawPrimitive(PrimitiveElement element,
int spacing;
GtkWidget *gtkCheckButton = d->gtkWidget(QLS("GtkCheckButton"));
+ QString key(QLS("checkbutton"));
+ if (option->state & State_HasFocus) { // Themes such as Nodoka checks this flag
+ key += QLatin1Char('f');
+ GTK_WIDGET_SET_FLAGS(gtkCheckButton, GTK_HAS_FOCUS);
+ }
// Some styles such as aero-clone assume they can paint in the spacing area
gtkPainter.setClipRect(option->rect);
@@ -1137,7 +1148,10 @@ void QGtkStyle::drawPrimitive(PrimitiveElement element,
QRect checkRect = option->rect.adjusted(spacing, spacing, -spacing, -spacing);
gtkPainter.paintCheckbox(gtkCheckButton, checkRect, state, shadow, gtkCheckButton->style,
- QLS("checkbutton"));
+ key);
+ if (option->state & State_HasFocus)
+ GTK_WIDGET_UNSET_FLAGS(gtkCheckButton, GTK_HAS_FOCUS);
+
}
break;
diff --git a/src/gui/styles/qmacstyle_mac.mm b/src/gui/styles/qmacstyle_mac.mm
index 083f730..a077cf0 100644
--- a/src/gui/styles/qmacstyle_mac.mm
+++ b/src/gui/styles/qmacstyle_mac.mm
@@ -667,32 +667,47 @@ static QSize qt_aqua_get_known_size(QStyle::ContentsType ct, const QWidget *widg
switch (ct) {
case QStyle::CT_PushButton: {
- const QPushButton *psh = static_cast<const QPushButton *>(widg);
- QString buttonText = qt_mac_removeMnemonics(psh->text());
- if (buttonText.contains(QLatin1Char('\n')))
- ret = QSize(-1, -1);
- else if (sz == QAquaSizeLarge)
- ret = QSize(-1, qt_mac_aqua_get_metric(kThemeMetricPushButtonHeight));
- else if (sz == QAquaSizeSmall)
- ret = QSize(-1, qt_mac_aqua_get_metric(kThemeMetricSmallPushButtonHeight));
- else if (sz == QAquaSizeMini)
- ret = QSize(-1, qt_mac_aqua_get_metric(kThemeMetricMiniPushButtonHeight));
-
- if (!psh->icon().isNull()){
- // If the button got an icon, and the icon is larger than the
- // button, we can't decide on a default size
- ret.setWidth(-1);
- if (ret.height() < psh->iconSize().height())
- ret.setHeight(-1);
- }
- else if (buttonText == QLatin1String("OK") || buttonText == QLatin1String("Cancel")){
- // Aqua Style guidelines restrict the size of OK and Cancel buttons to 68 pixels.
- // However, this doesn't work for German, therefore only do it for English,
- // I suppose it would be better to do some sort of lookups for languages
- // that like to have really long words.
- ret.setWidth(77 - 8);
- }
-
+ const QPushButton *psh = qobject_cast<const QPushButton *>(widg);
+ // If this comparison is false, then the widget was not a push button.
+ // This is bad and there's very little we can do since we were requested to find a
+ // sensible size for a widget that pretends to be a QPushButton but is not.
+ if(psh) {
+ QString buttonText = qt_mac_removeMnemonics(psh->text());
+ if (buttonText.contains(QLatin1Char('\n')))
+ ret = QSize(-1, -1);
+ else if (sz == QAquaSizeLarge)
+ ret = QSize(-1, qt_mac_aqua_get_metric(kThemeMetricPushButtonHeight));
+ else if (sz == QAquaSizeSmall)
+ ret = QSize(-1, qt_mac_aqua_get_metric(kThemeMetricSmallPushButtonHeight));
+ else if (sz == QAquaSizeMini)
+ ret = QSize(-1, qt_mac_aqua_get_metric(kThemeMetricMiniPushButtonHeight));
+
+ if (!psh->icon().isNull()){
+ // If the button got an icon, and the icon is larger than the
+ // button, we can't decide on a default size
+ ret.setWidth(-1);
+ if (ret.height() < psh->iconSize().height())
+ ret.setHeight(-1);
+ }
+ else if (buttonText == QLatin1String("OK") || buttonText == QLatin1String("Cancel")){
+ // Aqua Style guidelines restrict the size of OK and Cancel buttons to 68 pixels.
+ // However, this doesn't work for German, therefore only do it for English,
+ // I suppose it would be better to do some sort of lookups for languages
+ // that like to have really long words.
+ ret.setWidth(77 - 8);
+ }
+ } else {
+ // The only sensible thing to do is to return whatever the style suggests...
+ if (sz == QAquaSizeLarge)
+ ret = QSize(-1, qt_mac_aqua_get_metric(kThemeMetricPushButtonHeight));
+ else if (sz == QAquaSizeSmall)
+ ret = QSize(-1, qt_mac_aqua_get_metric(kThemeMetricSmallPushButtonHeight));
+ else if (sz == QAquaSizeMini)
+ ret = QSize(-1, qt_mac_aqua_get_metric(kThemeMetricMiniPushButtonHeight));
+ else
+ // Since there's no default size we return the large size...
+ ret = QSize(-1, qt_mac_aqua_get_metric(kThemeMetricPushButtonHeight));
+ }
#if 0 //Not sure we are applying the rules correctly for RadioButtons/CheckBoxes --Sam
} else if (ct == QStyle::CT_RadioButton) {
QRadioButton *rdo = static_cast<QRadioButton *>(widg);
@@ -749,23 +764,30 @@ static QSize qt_aqua_get_known_size(QStyle::ContentsType ct, const QWidget *widg
if (sz == QAquaSizeSmall) {
int width = 0, height = 0;
if (szHint == QSize(-1, -1)) { //just 'guess'..
- const QToolButton *bt = static_cast<const QToolButton *>(widg);
- if (!bt->icon().isNull()) {
- QSize iconSize = bt->iconSize();
- QSize pmSize = bt->icon().actualSize(QSize(32, 32), QIcon::Normal);
- width = qMax(width, qMax(iconSize.width(), pmSize.width()));
- height = qMax(height, qMax(iconSize.height(), pmSize.height()));
- }
- if (!bt->text().isNull() && bt->toolButtonStyle() != Qt::ToolButtonIconOnly) {
- int text_width = bt->fontMetrics().width(bt->text()),
- text_height = bt->fontMetrics().height();
- if (bt->toolButtonStyle() == Qt::ToolButtonTextUnderIcon) {
- width = qMax(width, text_width);
- height += text_height;
- } else {
- width += text_width;
- width = qMax(height, text_height);
+ const QToolButton *bt = qobject_cast<const QToolButton *>(widg);
+ // If this conversion fails then the widget was not what it claimed to be.
+ if(bt) {
+ if (!bt->icon().isNull()) {
+ QSize iconSize = bt->iconSize();
+ QSize pmSize = bt->icon().actualSize(QSize(32, 32), QIcon::Normal);
+ width = qMax(width, qMax(iconSize.width(), pmSize.width()));
+ height = qMax(height, qMax(iconSize.height(), pmSize.height()));
}
+ if (!bt->text().isNull() && bt->toolButtonStyle() != Qt::ToolButtonIconOnly) {
+ int text_width = bt->fontMetrics().width(bt->text()),
+ text_height = bt->fontMetrics().height();
+ if (bt->toolButtonStyle() == Qt::ToolButtonTextUnderIcon) {
+ width = qMax(width, text_width);
+ height += text_height;
+ } else {
+ width += text_width;
+ width = qMax(height, text_height);
+ }
+ }
+ } else {
+ // Let's return the size hint...
+ width = szHint.width();
+ height = szHint.height();
}
} else {
width = szHint.width();
@@ -778,37 +800,47 @@ static QSize qt_aqua_get_known_size(QStyle::ContentsType ct, const QWidget *widg
break;
case QStyle::CT_Slider: {
int w = -1;
- const QSlider *sld = static_cast<const QSlider *>(widg);
- if (sz == QAquaSizeLarge) {
- if (sld->orientation() == Qt::Horizontal) {
- w = qt_mac_aqua_get_metric(kThemeMetricHSliderHeight);
- if (sld->tickPosition() != QSlider::NoTicks)
- w += qt_mac_aqua_get_metric(kThemeMetricHSliderTickHeight);
- } else {
- w = qt_mac_aqua_get_metric(kThemeMetricVSliderWidth);
- if (sld->tickPosition() != QSlider::NoTicks)
- w += qt_mac_aqua_get_metric(kThemeMetricVSliderTickWidth);
- }
- } else if (sz == QAquaSizeSmall) {
- if (sld->orientation() == Qt::Horizontal) {
- w = qt_mac_aqua_get_metric(kThemeMetricSmallHSliderHeight);
- if (sld->tickPosition() != QSlider::NoTicks)
- w += qt_mac_aqua_get_metric(kThemeMetricSmallHSliderTickHeight);
- } else {
- w = qt_mac_aqua_get_metric(kThemeMetricSmallVSliderWidth);
- if (sld->tickPosition() != QSlider::NoTicks)
- w += qt_mac_aqua_get_metric(kThemeMetricSmallVSliderTickWidth);
- }
- } else if (sz == QAquaSizeMini) {
- if (sld->orientation() == Qt::Horizontal) {
- w = qt_mac_aqua_get_metric(kThemeMetricMiniHSliderHeight);
- if (sld->tickPosition() != QSlider::NoTicks)
- w += qt_mac_aqua_get_metric(kThemeMetricMiniHSliderTickHeight);
- } else {
- w = qt_mac_aqua_get_metric(kThemeMetricMiniVSliderWidth);
- if (sld->tickPosition() != QSlider::NoTicks)
- w += qt_mac_aqua_get_metric(kThemeMetricMiniVSliderTickWidth);
+ const QSlider *sld = qobject_cast<const QSlider *>(widg);
+ // If this conversion fails then the widget was not what it claimed to be.
+ if(sld) {
+ if (sz == QAquaSizeLarge) {
+ if (sld->orientation() == Qt::Horizontal) {
+ w = qt_mac_aqua_get_metric(kThemeMetricHSliderHeight);
+ if (sld->tickPosition() != QSlider::NoTicks)
+ w += qt_mac_aqua_get_metric(kThemeMetricHSliderTickHeight);
+ } else {
+ w = qt_mac_aqua_get_metric(kThemeMetricVSliderWidth);
+ if (sld->tickPosition() != QSlider::NoTicks)
+ w += qt_mac_aqua_get_metric(kThemeMetricVSliderTickWidth);
+ }
+ } else if (sz == QAquaSizeSmall) {
+ if (sld->orientation() == Qt::Horizontal) {
+ w = qt_mac_aqua_get_metric(kThemeMetricSmallHSliderHeight);
+ if (sld->tickPosition() != QSlider::NoTicks)
+ w += qt_mac_aqua_get_metric(kThemeMetricSmallHSliderTickHeight);
+ } else {
+ w = qt_mac_aqua_get_metric(kThemeMetricSmallVSliderWidth);
+ if (sld->tickPosition() != QSlider::NoTicks)
+ w += qt_mac_aqua_get_metric(kThemeMetricSmallVSliderTickWidth);
+ }
+ } else if (sz == QAquaSizeMini) {
+ if (sld->orientation() == Qt::Horizontal) {
+ w = qt_mac_aqua_get_metric(kThemeMetricMiniHSliderHeight);
+ if (sld->tickPosition() != QSlider::NoTicks)
+ w += qt_mac_aqua_get_metric(kThemeMetricMiniHSliderTickHeight);
+ } else {
+ w = qt_mac_aqua_get_metric(kThemeMetricMiniVSliderWidth);
+ if (sld->tickPosition() != QSlider::NoTicks)
+ w += qt_mac_aqua_get_metric(kThemeMetricMiniVSliderTickWidth);
+ }
}
+ } else {
+ // This is tricky, we were requested to find a size for a slider which is not
+ // a slider. We don't know if this is vertical or horizontal or if we need to
+ // have tick marks or not.
+ // For this case we will return an horizontal slider without tick marks.
+ w = qt_mac_aqua_get_metric(kThemeMetricHSliderHeight);
+ w += qt_mac_aqua_get_metric(kThemeMetricHSliderTickHeight);
}
if (sld->orientation() == Qt::Horizontal)
ret.setHeight(w);
@@ -2379,7 +2411,12 @@ int QMacStyle::pixelMetric(PixelMetric metric, const QStyleOption *opt, const QW
ret = 0;
break;
case PM_ToolBarFrameWidth:
- ret = 0;
+ ret = 1;
+ if (widget) {
+ if (QMainWindow * mainWindow = qobject_cast<QMainWindow *>(widget->parent()))
+ if (mainWindow->unifiedTitleAndToolBarOnMac())
+ ret = 0;
+ }
break;
default:
ret = QWindowsStyle::pixelMetric(metric, opt, widget);
@@ -4320,8 +4357,6 @@ QRect QMacStyle::subElementRect(SubElement sr, const QStyleOption *opt,
rect.setY(0);
rect.setHeight(widget->height());
}
- if (opt->direction == Qt::RightToLeft)
- rect.adjust(15, 0, -20, 0);
}
break;
case SE_ProgressBarGroove:
@@ -5696,12 +5731,16 @@ QSize QMacStyle::sizeFromContents(ContentsType ct, const QStyleOption *opt,
break;
case CT_ToolButton:
if (widget && qobject_cast<const QToolBar *>(widget->parentWidget())) {
- sz.rwidth() += 4;
- if (sz.height() <= 32) {
- // Workaround strange HIToolBar bug when getting constraints.
- sz.rheight() += 1;
+ if (QMainWindow * mainWindow = qobject_cast<QMainWindow *>(widget->parent())) {
+ if (mainWindow->unifiedTitleAndToolBarOnMac()) {
+ sz.rwidth() += 4;
+ if (sz.height() <= 32) {
+ // Workaround strange HIToolBar bug when getting constraints.
+ sz.rheight() += 1;
+ }
+ return sz;
+ }
}
- return sz;
}
sz.rwidth() += 10;
sz.rheight() += 10;
diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp
index ca0b8c7..9025e5b 100644
--- a/src/gui/styles/qs60style.cpp
+++ b/src/gui/styles/qs60style.cpp
@@ -68,6 +68,10 @@
#include "qtoolbutton.h"
#include "qfocusframe.h"
#include "qformlayout.h"
+#include "qradiobutton.h"
+#include "qcheckbox.h"
+#include "qdesktopwidget.h"
+#include "qprogressbar.h"
#include "private/qtoolbarextension_p.h"
#include "private/qcombobox_p.h"
@@ -88,10 +92,10 @@ static const qreal goldenRatio = 1.618;
const layoutHeader QS60StylePrivate::m_layoutHeaders[] = {
// *** generated layout data ***
-{240,320,1,15,"QVGA Landscape"},
-{320,240,1,15,"QVGA Portrait"},
-{360,640,1,15,"NHD Landscape"},
-{640,360,1,15,"NHD Portrait"},
+{240,320,1,16,"QVGA Landscape"},
+{320,240,1,16,"QVGA Portrait"},
+{360,640,1,16,"NHD Landscape"},
+{640,360,1,16,"NHD Portrait"},
{352,800,1,12,"E90 Landscape"}
// *** End of generated data ***
};
@@ -100,10 +104,10 @@ const int QS60StylePrivate::m_numberOfLayouts =
const short QS60StylePrivate::data[][MAX_PIXELMETRICS] = {
// *** generated pixel metrics ***
-{5,0,-909,0,0,2,0,0,-1,7,12,19,13,13,6,200,-909,-909,-909,20,13,2,0,0,21,7,18,-909,3,3,1,-909,-909,0,1,0,0,12,20,15,15,18,18,1,115,18,0,-909,-909,-909,-909,0,0,16,2,-909,0,0,-909,16,-909,-909,-909,-909,32,18,55,24,55,3,3,4,9,13,-909,5,51,11,5,0,3,3,6,8,3,3,-909,2,-909,-909,-909,-909,5,5,3,1},
-{5,0,-909,0,0,1,0,0,-1,8,14,22,15,15,7,164,-909,-909,-909,19,15,2,0,0,21,8,27,-909,4,4,1,-909,-909,0,7,6,0,13,23,17,17,21,21,7,115,21,0,-909,-909,-909,-909,0,0,15,1,-909,0,0,-909,15,-909,-909,-909,-909,32,21,65,27,65,4,4,5,10,15,-909,5,58,13,5,0,4,4,7,9,4,4,-909,2,-909,-909,-909,-909,6,6,3,1},
-{7,0,-909,0,0,2,0,0,-1,25,69,28,19,19,9,258,-909,-909,-909,23,19,26,0,0,32,25,72,-909,5,5,2,-909,-909,0,7,21,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,25,2,-909,0,0,-909,25,-909,-909,-909,-909,87,27,77,35,77,5,5,6,8,19,-909,7,74,19,7,0,5,5,8,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1},
-{7,0,-909,0,0,2,0,0,-1,25,68,28,19,19,9,258,-909,-909,-909,31,19,6,0,0,32,25,60,-909,5,5,2,-909,-909,0,7,32,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,26,2,-909,0,0,-909,26,-909,-909,-909,-909,87,27,96,35,96,5,5,6,8,19,-909,7,74,22,7,0,5,5,8,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1},
+{5,0,-909,0,0,2,0,0,-1,7,12,19,13,13,6,200,-909,-909,-909,20,13,2,0,0,21,7,18,-909,3,3,1,-909,-909,0,1,0,0,12,20,15,15,18,18,1,115,18,0,-909,-909,-909,-909,0,0,16,2,-909,0,0,-909,16,-909,-909,-909,-909,32,18,55,24,55,4,4,4,9,13,-909,5,51,11,5,0,3,3,6,8,3,3,-909,2,-909,-909,-909,-909,5,5,3,1},
+{5,0,-909,0,0,1,0,0,-1,8,14,22,15,15,7,164,-909,-909,-909,19,15,2,0,0,21,8,27,-909,4,4,1,-909,-909,0,7,6,0,13,23,17,17,21,21,7,115,21,0,-909,-909,-909,-909,0,0,15,1,-909,0,0,-909,15,-909,-909,-909,-909,32,21,65,27,65,3,3,5,10,15,-909,5,58,13,5,0,4,4,7,9,4,4,-909,2,-909,-909,-909,-909,6,6,3,1},
+{7,0,-909,0,0,2,0,0,-1,25,69,28,19,19,9,258,-909,-909,-909,23,19,26,0,0,32,25,72,-909,5,5,2,-909,-909,0,7,21,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,25,2,-909,0,0,-909,25,-909,-909,-909,-909,87,27,77,35,77,13,13,6,8,19,-909,7,74,19,7,0,5,5,8,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1},
+{7,0,-909,0,0,2,0,0,-1,25,68,28,19,19,9,258,-909,-909,-909,31,19,6,0,0,32,25,60,-909,5,5,2,-909,-909,0,7,32,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,26,2,-909,0,0,-909,26,-909,-909,-909,-909,87,27,96,35,96,12,12,6,8,19,-909,7,74,22,7,0,5,5,8,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1},
{7,0,-909,0,0,2,0,0,-1,10,20,27,18,18,9,301,-909,-909,-909,29,18,5,0,0,35,7,32,-909,5,5,2,-909,-909,0,2,8,0,16,28,21,21,26,26,2,170,26,0,-909,-909,-909,-909,0,0,21,6,-909,0,0,-909,-909,-909,-909,-909,-909,54,26,265,34,265,5,5,6,3,18,-909,7,72,19,7,0,5,6,8,11,6,5,-909,2,-909,-909,-909,-909,5,5,3,1}
// *** End of generated data ***
};
@@ -564,9 +568,11 @@ QPixmap QS60StylePrivate::cachedPart(QS60StyleEnums::SkinParts part,
const QSize &size, QPainter *painter, SkinElementFlags flags)
{
QPixmap result;
+ const int animationFrame = (flags & SF_Animation) ? currentAnimationFrame(part) : 0;
+
const QString cacheKey =
- QString::fromLatin1("S60Style: SkinParts=%1 QSize=%2|%3 SkinPartFlags=%4")
- .arg((int)part).arg(size.width()).arg(size.height()).arg((int)flags);
+ QString::fromLatin1("S60Style: SkinParts=%1 QSize=%2|%3 SkinPartFlags=%4 AnimationFrame=%5")
+ .arg((int)part).arg(size.width()).arg(size.height()).arg((int)flags).arg(animationFrame);
if (!QPixmapCache::find(cacheKey, result)) {
result = QS60StylePrivate::part(part, size, painter, flags);
QPixmapCache::insert(cacheKey, result);
@@ -672,8 +678,7 @@ void QS60StylePrivate::setThemePalette(QPalette *palette) const
s60Color(QS60StyleEnums::CL_QsnHighlightColors, 2, 0));
// set background image as a texture brush
palette->setBrush(QPalette::Window, backgroundTexture());
- // set these as transparent so that styled full screen theme background is visible
- palette->setColor(QPalette::AlternateBase, Qt::transparent);
+ // set as transparent so that styled full screen theme background is visible
palette->setBrush(QPalette::Base, Qt::transparent);
// set button and tooltipbase based on pixel colors
const QColor buttonColor = colorFromFrameGraphics(SF_ButtonNormal);
@@ -685,6 +690,9 @@ void QS60StylePrivate::setThemePalette(QPalette *palette) const
palette->setColor(QPalette::Midlight, palette->color(QPalette::Button).lighter(125));
palette->setColor(QPalette::Mid, palette->color(QPalette::Button).darker(150));
palette->setColor(QPalette::Shadow, Qt::black);
+ QColor alternateBase = palette->light().color();
+ alternateBase.setAlphaF(0.8);
+ palette->setColor(QPalette::AlternateBase, alternateBase);
QApplication::setPalette(*palette); //calling QApplication::setPalette clears palette hash
setThemePaletteHash(palette);
@@ -775,6 +783,11 @@ void QS60StylePrivate::setThemePaletteHash(QPalette *palette) const
QApplication::setPalette(widgetPalette, "QComboBox");
widgetPalette = *palette;
+ widgetPalette.setColor(QPalette::WindowText, s60Color(QS60StyleEnums::CL_QsnTextColors, 7, 0));
+ QApplication::setPalette(widgetPalette, "QRadioButton");
+ QApplication::setPalette(widgetPalette, "QCheckBox");
+ widgetPalette = *palette;
+
widgetPalette.setColor(QPalette::WindowText, mainAreaTextColor);
widgetPalette.setColor(QPalette::Button, QApplication::palette().color(QPalette::Button));
widgetPalette.setColor(QPalette::Dark, mainAreaTextColor.darker());
@@ -813,13 +826,13 @@ QSize QS60StylePrivate::partSize(QS60StyleEnums::SkinParts part, SkinElementFlag
//ratio of 1:2 for horizontal tab bars (and 2:1 for vertical ones).
result.setWidth(result.height() >> 1);
break;
-
+
case QS60StyleEnums::SP_QgnGrafNsliderEndLeft:
case QS60StyleEnums::SP_QgnGrafNsliderEndRight:
case QS60StyleEnums::SP_QgnGrafNsliderMiddle:
result.setWidth(result.height() >> 1);
break;
-
+
case QS60StyleEnums::SP_QgnGrafNsliderMarker:
case QS60StyleEnums::SP_QgnGrafNsliderMarkerSelected:
result.scale(pixelMetric(QStyle::PM_SliderLength),
@@ -922,10 +935,10 @@ void QS60Style::drawComplexControl(ComplexControl control, const QStyleOptionCom
horizontal ? QS60StylePrivate::SE_ScrollBarGrooveHorizontal : QS60StylePrivate::SE_ScrollBarGrooveVertical;
QS60StylePrivate::drawSkinElement(grooveElement, painter, grooveRect, flags);
- const QStyle::SubControls subControls = optionSlider->subControls;
+ const SubControls subControls = optionSlider->subControls;
// select correct slider (horizontal/vertical/pressed)
- const bool sliderPressed = ((optionSlider->state & QStyle::State_Sunken) && (subControls & SC_ScrollBarSlider));
+ const bool sliderPressed = ((optionSlider->state & State_Sunken) && (subControls & SC_ScrollBarSlider));
const QS60StylePrivate::SkinElements handleElement =
horizontal ?
( sliderPressed ?
@@ -946,13 +959,13 @@ void QS60Style::drawComplexControl(ComplexControl control, const QStyleOptionCom
const bool horizontal = optionSlider->orientation == Qt::Horizontal;
//Highlight
-/* if (optionSlider->state & QStyle::State_HasFocus)
+/* if (optionSlider->state & State_HasFocus)
drawPrimitive(PE_FrameFocusRect, optionSlider, painter, widget);*/
-
+
//Groove graphics
if (QS60StylePrivate::hasSliderGrooveGraphic()) {
- const QS60StylePrivate::SkinElements grooveElement = horizontal ?
- QS60StylePrivate::SE_SliderGrooveHorizontal :
+ const QS60StylePrivate::SkinElements grooveElement = horizontal ?
+ QS60StylePrivate::SE_SliderGrooveHorizontal :
QS60StylePrivate::SE_SliderGrooveVertical;
QS60StylePrivate::drawSkinElement(grooveElement, painter, sliderGroove, flags);
} else {
@@ -972,10 +985,10 @@ void QS60Style::drawComplexControl(ComplexControl control, const QStyleOptionCom
//Handle graphics
const QRect sliderHandle = subControlRect(control, optionSlider, SC_SliderHandle, widget);
QS60StylePrivate::SkinElements handleElement;
- if (optionSlider->state & QStyle::State_Sunken)
+ if (optionSlider->state & State_Sunken)
handleElement =
horizontal ? QS60StylePrivate::SE_SliderHandleSelectedHorizontal : QS60StylePrivate::SE_SliderHandleSelectedVertical;
- else
+ else
handleElement =
horizontal ? QS60StylePrivate::SE_SliderHandleHorizontal : QS60StylePrivate::SE_SliderHandleVertical;
QS60StylePrivate::drawSkinElement(handleElement, painter, sliderHandle, flags);
@@ -994,7 +1007,7 @@ void QS60Style::drawComplexControl(ComplexControl control, const QStyleOptionCom
buttonOption.QStyleOption::operator=(*cmb);
const int maxHeight = cmbxFrame.height();
const int maxWidth = cmbxFrame.width() - cmbxEditField.width();
- const int topLeftPoint = direction ?
+ const int topLeftPoint = direction ?
(cmbxEditField.right() + 1) : (cmbxEditField.left() + 1 - maxWidth);
const QRect buttonRect(topLeftPoint, cmbxEditField.top(), maxWidth, maxHeight);
buttonOption.rect = buttonRect;
@@ -1020,102 +1033,62 @@ void QS60Style::drawComplexControl(ComplexControl control, const QStyleOptionCom
#ifndef QT_NO_TOOLBUTTON
case CC_ToolButton:
if (const QStyleOptionToolButton *toolBtn = qstyleoption_cast<const QStyleOptionToolButton *>(option)) {
- const State bflags = toolBtn->state;
+ State bflags = toolBtn->state & ~State_Sunken;
+
+ if (bflags & State_AutoRaise) {
+ if (!(bflags & State_MouseOver) || !(bflags & State_Enabled)) {
+ bflags &= ~State_Raised;
+ }
+ }
+ State mflags = bflags;
+ if (toolBtn->state & State_Sunken) {
+ if (toolBtn->activeSubControls & SC_ToolButton)
+ bflags |= State_Sunken;
+ mflags |= State_Sunken;
+ }
+
const QRect button(subControlRect(control, toolBtn, SC_ToolButton, widget));
QRect menuRect = QRect();
if (toolBtn->subControls & SC_ToolButtonMenu)
menuRect = subControlRect(control, toolBtn, SC_ToolButtonMenu, widget);
- QStyleOptionToolButton toolButton = *toolBtn;
-
- if (sub&SC_ToolButton) {
+ if (toolBtn->subControls & SC_ToolButton) {
QStyleOption tool(0);
tool.palette = toolBtn->palette;
- // Check if toolbutton is in toolbar.
- QToolBar *toolBar = 0;
- if (widget)
- toolBar = qobject_cast<QToolBar *>(widget->parentWidget());
-
- if (bflags & (State_Sunken | State_On | State_Raised)) {
+ if (bflags & (State_Sunken | State_On | State_Raised | State_Enabled)) {
tool.rect = button.unite(menuRect);
tool.state = bflags;
-
- // todo: I'd like to move extension button next to where last button is
- // however, the painter seems to want to clip the button rect even if I turn of the clipping.
- if (toolBar && (qobject_cast<const QToolBarExtension *>(widget))){
- /*QList<QAction *> actionList = toolBar->actions();
- const int actionCount = actionList.count();
- const int toolbarWidth = toolBar->width();
- const int extButtonWidth = pixelMetric(PM_ToolBarExtensionExtent, option, widget);
- const int toolBarButtonWidth = pixelMetric(PM_ToolBarIconSize, option, widget);
- const int frame = pixelMetric(PM_ToolBarFrameWidth, option, widget);
- const int margin = pixelMetric(PM_ToolBarItemMargin, option, widget);
- const int border = frame + margin;
- const int spacing = pixelMetric(PM_ToolBarItemSpacing, option, widget);
- const int toolBarButtonArea = toolbarWidth - extButtonWidth - spacing - 2*border;
- const int numberOfVisibleButtons = toolBarButtonArea / toolBarButtonWidth;
- // new extension button place is after border and all the other visible buttons (with spacings)
- const int newXForExtensionButton = numberOfVisibleButtons * toolBarButtonWidth + (numberOfVisibleButtons-1)*spacing + border;
- painter->save();
- painter->setClipping(false);
- tool.rect.translate(-newXForExtensionButton,0);
- painter->restore();*/
- }
-
- if (toolBar){
- /*if (toolBar->orientation() == Qt::Vertical){
- // todo: I'd like to make all vertical buttons the same size, but again the painter
- // prefers to use clipping for button rects, even though clipping has been set off.
- painter->save();
- painter->setClipping(false);
-
- const int origWidth = tool.rect.width();
- const int newWidth = toolBar->width()-2*pixelMetric(PM_ToolBarFrameWidth, option, widget);
- painter->translate(origWidth-newWidth,0);
- tool.rect.translate(origWidth-tool.rect.width(),0);
- tool.rect.setWidth(newWidth);
-
- if (option->state & QStyle::State_Sunken)
- QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_ToolBarButtonPressed, painter, tool.rect, flags);
- else
- QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_ToolBarButton, painter, tool.rect, flags);
-
- }*/
- if (option->state & QStyle::State_Sunken)
- QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_ToolBarButtonPressed, painter, tool.rect, flags);
- else
- QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_ToolBarButton, painter, tool.rect, flags);
- /*
- if (toolBar->orientation() == Qt::Vertical)
- painter->restore();
- */
- } else {
- drawPrimitive(PE_PanelButtonTool, &tool, painter, widget);
- }
-
- if (toolButton.subControls & SC_ToolButtonMenu) {
- tool.rect = menuRect;
- tool.state = bflags;
- drawPrimitive(PE_IndicatorArrowDown, &tool, painter, widget);
- }
+ const QToolButton *toolButtonWidget = qobject_cast<const QToolButton *>(widget);
+ QS60StylePrivate::SkinElements element;
+ if (toolButtonWidget)
+ element = (toolButtonWidget->isDown()) ? QS60StylePrivate::SE_ToolBarButtonPressed : QS60StylePrivate::SE_ToolBarButton;
+ else
+ element = (option->state & State_Sunken) ? QS60StylePrivate::SE_ToolBarButtonPressed : QS60StylePrivate::SE_ToolBarButton;
+ QS60StylePrivate::drawSkinElement(element, painter, tool.rect, flags);
+ drawPrimitive(PE_PanelButtonTool, &tool, painter, widget);
+ }
+ if (toolBtn->subControls & SC_ToolButtonMenu) {
+ tool.rect = menuRect;
+ tool.state = mflags;
+ drawPrimitive(PE_IndicatorArrowDown, &tool, painter, widget);
}
}
-
+ QStyleOptionToolButton toolButton = *toolBtn;
if (toolBtn->features & QStyleOptionToolButton::Arrow) {
- QStyle::PrimitiveElement pe;
+ PrimitiveElement pe;
switch (toolBtn->arrowType) {
case Qt::LeftArrow:
- pe = QStyle::PE_IndicatorArrowLeft;
+ pe = PE_IndicatorArrowLeft;
break;
case Qt::RightArrow:
- pe = QStyle::PE_IndicatorArrowRight;
+ pe = PE_IndicatorArrowRight;
break;
case Qt::UpArrow:
- pe = QStyle::PE_IndicatorArrowUp;
+ pe = PE_IndicatorArrowUp;
break;
case Qt::DownArrow:
- pe = QStyle::PE_IndicatorArrowDown;
+ pe = PE_IndicatorArrowDown;
break;
default:
break; }
@@ -1199,7 +1172,7 @@ void QS60Style::drawComplexControl(ComplexControl control, const QStyleOptionCom
// Draw frame
const QRect textRect = subControlRect(CC_GroupBox, option, SC_GroupBoxLabel, widget);
const QRect checkBoxRect = subControlRect(CC_GroupBox, option, SC_GroupBoxCheckBox, widget);
- if (groupBox->subControls & QStyle::SC_GroupBoxFrame) {
+ if (groupBox->subControls & SC_GroupBoxFrame) {
QStyleOptionFrameV2 frame;
frame.QStyleOption::operator=(*groupBox);
frame.features = groupBox->features;
@@ -1210,14 +1183,14 @@ void QS60Style::drawComplexControl(ComplexControl control, const QStyleOptionCom
}
// Draw title
- if ((groupBox->subControls & QStyle::SC_GroupBoxLabel) && !groupBox->text.isEmpty()) {
+ if ((groupBox->subControls & SC_GroupBoxLabel) && !groupBox->text.isEmpty()) {
const QColor textColor = groupBox->textColor;
painter->save();
if (textColor.isValid())
painter->setPen(textColor);
int alignment = int(groupBox->textAlignment);
- if (!styleHint(QStyle::SH_UnderlineShortcut, option, widget))
+ if (!styleHint(SH_UnderlineShortcut, option, widget))
alignment |= Qt::TextHideMnemonic;
drawItemText(painter, textRect, Qt::TextShowMnemonic | Qt::AlignHCenter | Qt::AlignVCenter | alignment,
@@ -1249,6 +1222,31 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
Q_D(const QS60Style);
const QS60StylePrivate::SkinElementFlags flags = (option->state & State_Enabled) ? QS60StylePrivate::SF_StateEnabled : QS60StylePrivate::SF_StateDisabled;
switch (element) {
+ case CE_CheckBox:
+ case CE_RadioButton:
+ if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(option)) {
+ bool isRadio = (element == CE_RadioButton);
+ // Highlight needs to be drawn first, as it goes "underneath" the text and indicator.
+ if (btn->state & State_HasFocus) {
+ QStyleOptionFocusRect fropt;
+ fropt.QStyleOption::operator=(*btn);
+ fropt.rect = subElementRect(isRadio ? SE_RadioButtonFocusRect
+ : SE_CheckBoxFocusRect, btn, widget);
+ drawPrimitive(PE_FrameFocusRect, &fropt, painter, widget);
+ }
+ QStyleOptionButton subopt = *btn;
+
+ subopt.rect = subElementRect(isRadio ? SE_RadioButtonIndicator
+ : SE_CheckBoxIndicator, btn, widget);
+ drawPrimitive(isRadio ? PE_IndicatorRadioButton : PE_IndicatorCheckBox,
+ &subopt, painter, widget);
+ subopt.rect = subElementRect(isRadio ? SE_RadioButtonContents
+ : SE_CheckBoxContents, btn, widget);
+
+ drawControl(isRadio ? CE_RadioButtonLabel : CE_CheckBoxLabel, &subopt, painter, widget);
+ }
+ break;
+
case CE_PushButton:
if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(option)) {
@@ -1261,13 +1259,13 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
break;
case CE_PushButtonBevel:
if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
- const bool isDisabled = !(option->state & QStyle::State_Enabled);
+ const bool isDisabled = !(option->state & State_Enabled);
const bool isFlat = button->features & QStyleOptionButton::Flat;
QS60StyleEnums::SkinParts skinPart;
QS60StylePrivate::SkinElements skinElement;
if (!isDisabled) {
- const bool isPressed = (option->state & QStyle::State_Sunken) ||
- (option->state & QStyle::State_On);
+ const bool isPressed = (option->state & State_Sunken) ||
+ (option->state & State_On);
if (isFlat) {
skinPart =
isPressed ? QS60StyleEnums::SP_QsnFrButtonTbCenterPressed : QS60StyleEnums::SP_QsnFrButtonTbCenter;
@@ -1292,7 +1290,7 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
if (const QStyleOptionToolButton *toolBtn = qstyleoption_cast<const QStyleOptionToolButton *>(option)) {
QStyleOptionToolButton optionToolButton = *toolBtn;
- if (!optionToolButton.icon.isNull() && (optionToolButton.state & QStyle::State_Sunken)
+ if (!optionToolButton.icon.isNull() && (optionToolButton.state & State_Sunken)
&& (optionToolButton.state & State_Enabled)) {
const QIcon::State state = optionToolButton.state & State_On ? QIcon::On : QIcon::Off;
@@ -1351,8 +1349,8 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
painter->save();
painter->setClipRect(voptAdj.rect);
- const bool isSelected = (vopt->state & QStyle::State_Selected);
- const bool hasFocus = (vopt->state & QStyle::State_HasFocus);
+ const bool isSelected = (vopt->state & State_Selected);
+ const bool hasFocus = (vopt->state & State_HasFocus);
bool isScrollBarVisible = false;
int scrollBarWidth = 0;
@@ -1426,8 +1424,8 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
}
// draw the icon
- const QIcon::Mode mode = (voptAdj.state & QStyle::State_Enabled) ? QIcon::Normal : QIcon::Disabled;
- const QIcon::State state = voptAdj.state & QStyle::State_Open ? QIcon::On : QIcon::Off;
+ const QIcon::Mode mode = (voptAdj.state & State_Enabled) ? QIcon::Normal : QIcon::Disabled;
+ const QIcon::State state = voptAdj.state & State_Open ? QIcon::On : QIcon::Off;
voptAdj.icon.paint(painter, iconRect, voptAdj.decorationAlignment, mode, state);
// Draw selection check mark. Show check mark only in multi selection modes.
@@ -1439,29 +1437,29 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
QStyleOptionViewItemV4 checkMarkOption(voptAdj);
// Draw selection mark.
- if (voptAdj.state & QStyle::State_Selected && !singleSelection) {
+ if (voptAdj.state & State_Selected && !singleSelection) {
checkMarkOption.rect = selectionRect;
- drawPrimitive(QStyle::PE_IndicatorViewItemCheck, &checkMarkOption, painter, widget);
+ drawPrimitive(PE_IndicatorViewItemCheck, &checkMarkOption, painter, widget);
if ( textRect.right() > selectionRect.left() )
textRect.setRight(selectionRect.left());
} else if (singleSelection &&
voptAdj.features & QStyleOptionViewItemV2::HasCheckIndicator &&
selectionRect.isValid()) {
checkMarkOption.rect = selectionRect;
- checkMarkOption.state = checkMarkOption.state & ~QStyle::State_HasFocus;
+ checkMarkOption.state = checkMarkOption.state & ~State_HasFocus;
switch (vopt->checkState) {
case Qt::Unchecked:
- checkMarkOption.state |= QStyle::State_Off;
+ checkMarkOption.state |= State_Off;
break;
case Qt::PartiallyChecked:
- checkMarkOption.state |= QStyle::State_NoChange;
+ checkMarkOption.state |= State_NoChange;
break;
case Qt::Checked:
- checkMarkOption.state |= QStyle::State_On;
+ checkMarkOption.state |= State_On;
break;
}
- drawPrimitive(QStyle::PE_IndicatorViewItemCheck, &checkMarkOption, painter, widget);
+ drawPrimitive(PE_IndicatorViewItemCheck, &checkMarkOption, painter, widget);
}
}
@@ -1486,7 +1484,7 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
case CE_TabBarTabShape:
if (const QStyleOptionTabV3 *optionTab = qstyleoption_cast<const QStyleOptionTabV3 *>(option)) {
QStyleOptionTabV3 optionTabAdj = *optionTab;
- const bool isSelected = optionTab->state & QStyle::State_Selected;
+ const bool isSelected = optionTab->state & State_Selected;
const bool directionMirrored = (optionTab->direction == Qt::RightToLeft);
QS60StylePrivate::SkinElements skinElement;
switch (optionTab->shape) {
@@ -1521,9 +1519,9 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
skinElement==QS60StylePrivate::SE_TabBarTabSouthActive||
skinElement==QS60StylePrivate::SE_TabBarTabWestActive) {
const int borderThickness =
- QS60StylePrivate::pixelMetric(QStyle::PM_DefaultFrameWidth);
+ QS60StylePrivate::pixelMetric(PM_DefaultFrameWidth);
const int tabOverlap =
- QS60StylePrivate::pixelMetric(QStyle::PM_TabBarTabOverlap) - borderThickness;
+ QS60StylePrivate::pixelMetric(PM_TabBarTabOverlap) - borderThickness;
//todo: draw navi wipe behind tabbar - must be drawn with first draw
if (skinElement==QS60StylePrivate::SE_TabBarTabEastInactive||
@@ -1546,9 +1544,9 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
QStyleOptionTabV3 optionTab = *tab;
QRect tr = optionTab.rect;
const bool directionMirrored = (optionTab.direction == Qt::RightToLeft);
- const int borderThickness = QS60StylePrivate::pixelMetric(QStyle::PM_DefaultFrameWidth);
+ const int borderThickness = QS60StylePrivate::pixelMetric(PM_DefaultFrameWidth);
const int tabOverlap =
- QS60StylePrivate::pixelMetric(QStyle::PM_TabBarTabOverlap) - borderThickness;
+ QS60StylePrivate::pixelMetric(PM_TabBarTabOverlap) - borderThickness;
const QRect windowRect = painter->window();
switch (tab->shape) {
@@ -1602,12 +1600,12 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
m.rotate(newRotation);
painter->setTransform(m, true);
}
- tr.adjust(0, 0, pixelMetric(QStyle::PM_TabBarTabShiftHorizontal, tab, widget),
- pixelMetric(QStyle::PM_TabBarTabShiftVertical, tab, widget));
+ tr.adjust(0, 0, pixelMetric(PM_TabBarTabShiftHorizontal, tab, widget),
+ pixelMetric(PM_TabBarTabShiftVertical, tab, widget));
if (selected) {
- tr.setBottom(tr.bottom() - pixelMetric(QStyle::PM_TabBarTabShiftVertical, tab, widget));
- tr.setRight(tr.right() - pixelMetric(QStyle::PM_TabBarTabShiftHorizontal, tab, widget));
+ tr.setBottom(tr.bottom() - pixelMetric(PM_TabBarTabShiftVertical, tab, widget));
+ tr.setRight(tr.right() - pixelMetric(PM_TabBarTabShiftHorizontal, tab, widget));
}
int alignment = Qt::AlignCenter | Qt::TextShowMnemonic;
@@ -1648,17 +1646,20 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
// busy indicator
const QS60StylePrivate::SkinElementFlag orientationFlag = optionProgressBar->orientation == Qt::Horizontal ?
QS60StylePrivate::SF_PointNorth : QS60StylePrivate::SF_PointWest;
- QS60StylePrivate::drawSkinPart(QS60StyleEnums::SP_QgnGrafBarWait, painter, progressRect, flags | orientationFlag);
+
+ QS60StylePrivate::drawSkinPart(QS60StyleEnums::SP_QgnGrafBarWaitAnim,
+ painter, progressRect, flags | orientationFlag | QS60StylePrivate::SF_Animation );
} else {
const qreal progressFactor = (optionProgressBar->minimum == optionProgressBar->maximum) ? 1.0
: (qreal)optionProgressBar->progress / optionProgressBar->maximum;
+ const int frameWidth = pixelMetric(PM_DefaultFrameWidth, option, widget);
if (optionProgressBar->orientation == Qt::Horizontal) {
progressRect.setWidth(int(progressRect.width() * progressFactor));
if(optionProgressBar->direction == Qt::RightToLeft)
- progressRect.translate(optionProgressBar->rect.width()-progressRect.width(), 0);
- progressRect.adjust(1, 0, -1, 0);
+ progressRect.translate(optionProgressBar->rect.width() - progressRect.width(), 0);
+ progressRect.adjust(frameWidth, 0, -frameWidth, 0);
} else {
- progressRect.adjust(0, 1, 0, -1);
+ progressRect.adjust(0, frameWidth, 0, -frameWidth);
progressRect.setTop(progressRect.bottom() - int(progressRect.height() * progressFactor));
}
@@ -1714,9 +1715,9 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
QRect textRect = subElementRect(SE_ItemViewItemText, &optionMenuItem, widget);
//todo: move the vertical spacing stuff into subElementRect
- const int vSpacing = QS60StylePrivate::pixelMetric(QStyle::PM_LayoutVerticalSpacing);
+ const int vSpacing = QS60StylePrivate::pixelMetric(PM_LayoutVerticalSpacing);
if (checkable){
- const int hSpacing = QS60StylePrivate::pixelMetric(QStyle::PM_LayoutHorizontalSpacing);
+ const int hSpacing = QS60StylePrivate::pixelMetric(PM_LayoutHorizontalSpacing);
QStyleOptionMenuItem optionCheckBox;
optionCheckBox.QStyleOptionMenuItem::operator=(*menuItem);
optionCheckBox.rect.setWidth(pixelMetric(PM_IndicatorWidth));
@@ -1754,7 +1755,7 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
QStyleOptionMenuItem arrowOptions;
arrowOptions.QStyleOption::operator=(*menuItem);
const int indicatorWidth = (pixelMetric(PM_ListViewIconSize, option, widget) >> 1) +
- pixelMetric(QStyle::PM_LayoutVerticalSpacing, option, widget);
+ pixelMetric(PM_LayoutVerticalSpacing, option, widget);
if (optionMenuItem.direction == Qt::LeftToRight)
arrowOptions.rect.setLeft(textRect.right());
arrowOptions.rect.setWidth(indicatorWidth);
@@ -1925,8 +1926,7 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
break;
case CE_MenuScroller:
break;
- case CE_FocusFrame:
- {
+ case CE_FocusFrame: {
// The pen width should nearly fill the layoutspacings around the widget
const int penWidth =
qMin(pixelMetric(QS60Style::PM_LayoutVerticalSpacing), pixelMetric(QS60Style::PM_LayoutHorizontalSpacing))
@@ -1985,11 +1985,21 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
*/
void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
{
- Q_D(const QS60Style);
const QS60StylePrivate::SkinElementFlags flags = (option->state & State_Enabled) ? QS60StylePrivate::SF_StateEnabled : QS60StylePrivate::SF_StateDisabled;
bool commonStyleDraws = false;
switch (element) {
+ case PE_FrameFocusRect: {
+ //Draw themed highlight to radiobuttons and checkboxes.
+ //For other widgets skip, unless palette has been modified. In that case, draw with commonstyle.
+ if (option->palette.highlight().color() == QS60StylePrivate::themePalette()->highlight().color())
+ if ((qstyleoption_cast<const QStyleOptionFocusRect *>(option) &&
+ (qobject_cast<const QRadioButton *>(widget) || qobject_cast<const QCheckBox *>(widget))))
+ QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_ListHighlight, painter, option->rect, flags);
+ else
+ commonStyleDraws = true;
+ }
+ break;
#ifndef QT_NO_LINEEDIT
case PE_PanelLineEdit:
if (const QStyleOptionFrame *lineEdit = qstyleoption_cast<const QStyleOptionFrame *>(option)) {
@@ -2004,15 +2014,14 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti
}
break;
#endif // QT_NO_LINEEDIT
- case PE_IndicatorCheckBox:
- {
+ case PE_IndicatorCheckBox: {
// Draw checkbox indicator as color skinned graphics.
- const QS60StyleEnums::SkinParts skinPart = (option->state & QStyle::State_On) ?
+ const QS60StyleEnums::SkinParts skinPart = (option->state & State_On) ?
QS60StyleEnums::SP_QgnIndiCheckboxOn : QS60StyleEnums::SP_QgnIndiCheckboxOff;
painter->save();
- QColor themeColor = QS60StylePrivate::themePalette()->windowText().color();
- QColor windowTextColor = option->palette.windowText().color();
+ const QColor themeColor = QS60StylePrivate::themePalette()->windowText().color();
+ const QColor windowTextColor = option->palette.windowText().color();
if (themeColor != windowTextColor)
painter->setPen(windowTextColor);
@@ -2032,7 +2041,7 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti
if (checkBoxVisible && singleSelection) {
drawPrimitive(PE_IndicatorCheckBox, option, painter, widget);
// ... or normal "tick" selection at the end.
- } else if (option->state & QStyle::State_Selected) {
+ } else if (option->state & State_Selected) {
QRect tickRect = option->rect;
const int frameBorderWidth = QS60StylePrivate::pixelMetric(PM_Custom_FrameCornerWidth);
// adjust tickmark rect to exclude frame border
@@ -2059,15 +2068,15 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti
buttonRect.adjust(0, -newY, -1, -newY);
painter->save();
- QColor themeColor = d->s60Color(QS60StyleEnums::CL_QsnTextColors, 6, option);
- QColor buttonTextColor = option->palette.buttonText().color();
+ const QColor themeColor = QS60StylePrivate::s60Color(QS60StyleEnums::CL_QsnTextColors, 6, option);
+ const QColor buttonTextColor = option->palette.buttonText().color();
if (themeColor != buttonTextColor)
painter->setPen(buttonTextColor);
else
painter->setPen(themeColor);
// Draw radiobutton indicator as color skinned graphics.
- QS60StyleEnums::SkinParts skinPart = (option->state & QStyle::State_On) ?
+ QS60StyleEnums::SkinParts skinPart = (option->state & State_On) ?
QS60StyleEnums::SP_QgnIndiRadiobuttOn : QS60StyleEnums::SP_QgnIndiRadiobuttOff;
QS60StylePrivate::drawSkinPart(skinPart, painter, buttonRect,
(flags | QS60StylePrivate::SF_ColorSkinned));
@@ -2077,15 +2086,14 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti
case PE_PanelButtonCommand:
case PE_PanelButtonTool:
case PE_PanelButtonBevel:
- case PE_FrameButtonBevel: {
+ case PE_FrameButtonBevel:
if (QS60StylePrivate::canDrawThemeBackground(option->palette.base())) {
- const bool isPressed = option->state & QStyle::State_Sunken;
+ const bool isPressed = option->state & State_Sunken;
const QS60StylePrivate::SkinElements skinElement =
isPressed ? QS60StylePrivate::SE_ButtonPressed : QS60StylePrivate::SE_ButtonNormal;
QS60StylePrivate::drawSkinElement(skinElement, painter, option->rect, flags);
} else {
commonStyleDraws = true;
- }
}
break;
#ifndef QT_NO_TOOLBUTTON
@@ -2207,7 +2215,6 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti
break;
#ifndef QT_NO_ITEMVIEWS
case PE_PanelItemViewItem:
- case PE_PanelItemViewRow: // ### Qt 5: remove
break;
#endif //QT_NO_ITEMVIEWS
@@ -2276,7 +2283,23 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti
}
}
break;
-
+ case PE_PanelItemViewRow: // ### Qt 5: remove
+#ifndef QT_NO_ITEMVIEWS
+ if (const QStyleOptionViewItemV4 *vopt = qstyleoption_cast<const QStyleOptionViewItemV4 *>(option)) {
+ if (vopt->palette.base().texture().cacheKey() != QS60StylePrivate::m_themePalette->base().texture().cacheKey()) {
+ //QPalette::Base has been changed, let commonstyle draw the item
+ commonStyleDraws = true;
+ } else {
+ QPalette::ColorGroup cg = vopt->state & State_Enabled ? QPalette::Normal : QPalette::Disabled;
+ if (cg == QPalette::Normal && !(vopt->state & State_Active))
+ cg = QPalette::Inactive;
+ if (vopt->features & QStyleOptionViewItemV2::Alternate)
+ painter->fillRect(vopt->rect, vopt->palette.brush(cg, QPalette::AlternateBase));
+ //apart from alternate base, no background for list item is drawn for S60Style
+ }
+ }
+#endif
+ break;
case PE_PanelScrollAreaCorner:
break;
@@ -2361,8 +2384,7 @@ QSize QS60Style::sizeFromContents(ContentsType ct, const QStyleOption *opt,
if (const QStyleOptionFrame *f = qstyleoption_cast<const QStyleOptionFrame *>(opt))
sz += QSize(2 * f->lineWidth, 4 * f->lineWidth);
break;
- case CT_TabBarTab:
- {
+ case CT_TabBarTab: {
const QSize naviPaneSize = QS60StylePrivate::naviPaneSize();
sz = QCommonStyle::sizeFromContents(ct, opt, csz, widget);
if (naviPaneSize.height() > sz.height())
@@ -2374,8 +2396,19 @@ QSize QS60Style::sizeFromContents(ContentsType ct, const QStyleOption *opt,
if (QS60StylePrivate::isTouchSupported())
//Make itemview easier to use in touch devices
//QCommonStyle does not adjust height with horizontal margin, it only adjusts width
- sz.setHeight(sz.height() + 2 * pixelMetric(QStyle::PM_FocusFrameVMargin));
+ sz.setHeight(sz.height() + 2 * pixelMetric(PM_FocusFrameVMargin));
+ break;
+#ifndef QT_NO_COMBOBOX
+ case CT_ComboBox: {
+ // Fixing Ui design issues with too wide QComboBoxes and greedy SizeHints
+ // Make sure, that the combobox says within the screen.
+ const QSize desktopContentSize = QApplication::desktop()->availableGeometry().size()
+ -QSize(pixelMetric(PM_LayoutLeftMargin) + pixelMetric(PM_LayoutRightMargin), 0);
+ sz = QCommonStyle::sizeFromContents(ct, opt, csz, widget).
+ boundedTo(desktopContentSize);
+ }
break;
+#endif
default:
sz = QCommonStyle::sizeFromContents( ct, opt, csz, widget);
break;
@@ -2414,7 +2447,7 @@ int QS60Style::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget *w
retValue = QPalette::Base;
break;
case SH_ItemView_ActivateItemOnSingleClick:
- retValue = true;
+ retValue = QS60StylePrivate::isSingleClickUi();
break;
case SH_ProgressDialog_TextLabelAlignment:
retValue = (QApplication::layoutDirection() == Qt::LeftToRight) ?
@@ -2526,7 +2559,7 @@ QRect QS60Style::subControlRect(ComplexControl control, const QStyleOptionComple
if (const QStyleOptionSpinBox *spinbox = qstyleoption_cast<const QStyleOptionSpinBox *>(option)) {
const int frameThickness = spinbox->frame ? pixelMetric(PM_SpinBoxFrameWidth, spinbox, widget) : 0;
const int buttonMargin = spinbox->frame ? 2 : 0;
- const int buttonWidth = QS60StylePrivate::pixelMetric(QStyle::PM_ButtonIconSize) + 2 * buttonMargin;
+ const int buttonWidth = QS60StylePrivate::pixelMetric(PM_ButtonIconSize) + 2 * buttonMargin;
QSize buttonSize;
buttonSize.setHeight(qMax(8, spinbox->rect.height() - frameThickness));
//width should at least be equal to height
@@ -2575,34 +2608,36 @@ QRect QS60Style::subControlRect(ComplexControl control, const QStyleOptionComple
ret = cmb->rect;
const int width = cmb->rect.width();
const int height = cmb->rect.height();
- const int buttonIconSize = QS60StylePrivate::pixelMetric(QStyle::PM_ButtonIconSize);
+ const int buttonIconSize = QS60StylePrivate::pixelMetric(PM_ButtonIconSize);
const int buttonMargin = cmb->frame ? 2 : 0;
// lets use spinbox frame here as well, as no combobox specific value available.
const int frameThickness = cmb->frame ? pixelMetric(PM_SpinBoxFrameWidth, cmb, widget) : 0;
const int buttonWidth = qMax(cmb->rect.height(), buttonIconSize);
- const int xposMod = (cmb->rect.x()) + width - buttonMargin - buttonWidth;
- const int ypos = cmb->rect.y();
QSize buttonSize;
buttonSize.setWidth(buttonWidth + 2 * buttonMargin);
buttonSize.setHeight(qMax(8, (cmb->rect.height() >> 1) - frameThickness)); //buttons should be squares
buttonSize = buttonSize.expandedTo(QApplication::globalStrut());
switch (scontrol) {
- case SC_ComboBoxArrow:
+ case SC_ComboBoxArrow: {
+ const int xposMod = cmb->rect.x() + width - buttonMargin - buttonWidth;
+ const int ypos = cmb->rect.y();
ret.setRect(xposMod, ypos + buttonMargin, buttonWidth, height - 2 * buttonMargin);
+ }
break;
case SC_ComboBoxEditField: {
- const int withFrameX = cmb->rect.x() + cmb->rect.width() - frameThickness - buttonSize.width();
+ const int withFrameX = cmb->rect.x() + width - frameThickness - buttonSize.width();
ret = QRect(
frameThickness,
frameThickness,
withFrameX - frameThickness,
- cmb->rect.height() - 2 * frameThickness);
+ height - 2 * frameThickness);
}
break;
default:
break;
}
+ ret = visualRect(cmb->direction, cmb->rect, ret);
}
break;
case CC_GroupBox:
@@ -2613,7 +2648,7 @@ QRect QS60Style::subControlRect(ComplexControl control, const QStyleOptionComple
case SC_GroupBoxLabel: {
//slightly indent text and boxes, so that dialog border does not mess with them.
const int horizontalSpacing =
- QS60StylePrivate::pixelMetric(QStyle::PM_LayoutHorizontalSpacing);
+ QS60StylePrivate::pixelMetric(PM_LayoutHorizontalSpacing);
ret.adjust(2, horizontalSpacing - 3, 0, 0);
}
break;
@@ -2668,6 +2703,9 @@ QRect QS60Style::subElementRect(SubElement element, const QStyleOption *opt, con
{
QRect ret;
switch (element) {
+ case SE_RadioButtonFocusRect:
+ ret = opt->rect;
+ break;
case SE_LineEditContents: {
// in S60 the input text box doesn't start from line Edit's TL, but
// a bit indented.
@@ -2686,9 +2724,9 @@ QRect QS60Style::subElementRect(SubElement element, const QStyleOption *opt, con
if (const QStyleOptionTabWidgetFrame *twf = qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(opt)) {
const int tabOverlapNoBorder =
- QS60StylePrivate::pixelMetric(QStyle::PM_TabBarTabOverlap);
+ QS60StylePrivate::pixelMetric(PM_TabBarTabOverlap);
const int tabOverlap =
- tabOverlapNoBorder-QS60StylePrivate::pixelMetric(QStyle::PM_DefaultFrameWidth);
+ tabOverlapNoBorder-QS60StylePrivate::pixelMetric(PM_DefaultFrameWidth);
const QTabWidget *tab = qobject_cast<const QTabWidget *>(widget);
int gain = (tab) ? tabOverlap * tab->count() : 0;
switch (twf->shape) {
@@ -2737,8 +2775,8 @@ QRect QS60Style::subElementRect(SubElement element, const QStyleOption *opt, con
multiSelection &&
(vopt->features & QStyleOptionViewItemV2::HasCheckIndicator)) {
const int verticalSpacing =
- QS60StylePrivate::pixelMetric(QStyle::PM_LayoutVerticalSpacing);
- //const int horizontalSpacing = QS60StylePrivate::pixelMetric(QStyle::PM_LayoutHorizontalSpacing);
+ QS60StylePrivate::pixelMetric(PM_LayoutVerticalSpacing);
+ //const int horizontalSpacing = QS60StylePrivate::pixelMetric(PM_LayoutHorizontalSpacing);
const int checkBoxRectWidth = subElementRect(SE_ItemViewItemCheckIndicator, opt, widget).width();
ret.adjust(-checkBoxRectWidth - verticalSpacing, 0, -checkBoxRectWidth - verticalSpacing, 0);
}
@@ -2784,9 +2822,9 @@ QRect QS60Style::subElementRect(SubElement element, const QStyleOption *opt, con
singleSelection;
// Selection check mark rect.
- const int indicatorWidth = QS60StylePrivate::pixelMetric(QStyle::PM_IndicatorWidth);
- const int indicatorHeight = QS60StylePrivate::pixelMetric(QStyle::PM_IndicatorHeight);
- const int spacing = QS60StylePrivate::pixelMetric(QStyle::PM_CheckBoxLabelSpacing);
+ const int indicatorWidth = QS60StylePrivate::pixelMetric(PM_IndicatorWidth);
+ const int indicatorHeight = QS60StylePrivate::pixelMetric(PM_IndicatorHeight);
+ const int spacing = QS60StylePrivate::pixelMetric(PM_CheckBoxLabelSpacing);
const int itemHeight = opt->rect.height();
int heightOffset = 0;
@@ -2818,6 +2856,25 @@ QRect QS60Style::subElementRect(SubElement element, const QStyleOption *opt, con
}
ret = visualRect(opt->direction, opt->rect, ret);
break;
+ case SE_RadioButtonIndicator: {
+ const int height = pixelMetric(PM_ExclusiveIndicatorHeight, opt, widget);
+ ret.setRect(opt->rect.x(), opt->rect.y() + ((opt->rect.height() - height) >> 1),
+ pixelMetric(PM_ExclusiveIndicatorWidth, opt, widget), height);
+ ret.translate(2, 0); //move indicator slightly to avoid highlight crossing over it
+ ret = visualRect(opt->direction, opt->rect, ret);
+ }
+ break;
+ case SE_CheckBoxIndicator: {
+ const int height = pixelMetric(PM_IndicatorHeight, opt, widget);
+ ret.setRect(opt->rect.x(), opt->rect.y() + ((opt->rect.height() - height) >> 1),
+ pixelMetric(PM_IndicatorWidth, opt, widget), height);
+ ret.translate(2, 0); //move indicator slightly to avoid highlight crossing over it
+ ret = visualRect(opt->direction, opt->rect, ret);
+ }
+ break;
+ case SE_CheckBoxFocusRect:
+ ret = opt->rect;
+ break;
default:
ret = QCommonStyle::subElementRect(element, opt, widget);
}
@@ -2835,6 +2892,12 @@ void QS60Style::polish(QWidget *widget)
if (!widget)
return;
+ //Currently we only support animations in QProgressBar.
+#ifndef QT_NO_PROGRESSBAR
+ if (qobject_cast<QProgressBar *>(widget))
+ widget->installEventFilter(this);
+#endif
+
if (false
#ifndef QT_NO_SCROLLBAR
|| qobject_cast<QScrollBar *>(widget)
@@ -2867,6 +2930,8 @@ void QS60Style::polish(QWidget *widget)
*/
void QS60Style::unpolish(QWidget *widget)
{
+ Q_D(QS60Style);
+
if (false
#ifndef QT_NO_SCROLLBAR
|| qobject_cast<QScrollBar *>(widget)
@@ -2893,6 +2958,14 @@ void QS60Style::unpolish(QWidget *widget)
if (widget)
widget->setPalette(QPalette());
+#if defined(Q_WS_S60) && !defined(QT_NO_PROGRESSBAR)
+ if (QProgressBar *bar = qobject_cast<QProgressBar *>(widget)) {
+ widget->removeEventFilter(this);
+ d->m_bars.removeAll(bar);
+ }
+#else
+ Q_UNUSED(d)
+#endif
QCommonStyle::unpolish(widget);
}
@@ -2924,10 +2997,23 @@ void QS60Style::unpolish(QApplication *application)
bool QS60Style::event(QEvent *e)
{
#ifdef QT_KEYPAD_NAVIGATION
- if (QS60StylePrivate::isTouchSupported())
- return false;
Q_D(QS60Style);
+ const QEvent::Type eventType = e->type();
+ if ((eventType == QEvent::FocusIn ||
+ eventType == QEvent::FocusOut ||
+ eventType == QEvent::EnterEditFocus ||
+ eventType == QEvent::LeaveEditFocus) &&
+ QS60StylePrivate::isTouchSupported())
+ return false;
+#endif
+
switch (e->type()) {
+ case QEvent::Timer: {
+ QTimerEvent *te = static_cast<QTimerEvent*>(e);
+ timerEvent(te);
+ }
+ break;
+#ifdef QT_KEYPAD_NAVIGATION
case QEvent::FocusIn:
if (QWidget *focusWidget = QApplication::focusWidget()) {
if (!d->m_focusFrame)
@@ -2946,12 +3032,10 @@ bool QS60Style::event(QEvent *e)
if (d->m_focusFrame)
d->m_focusFrame->update();
break;
+#endif
default:
break;
}
-#else
- Q_UNUSED(e)
-#endif
return false;
}
@@ -2961,7 +3045,7 @@ bool QS60Style::event(QEvent *e)
QIcon QS60Style::standardIconImplementation(StandardPixmap standardIcon,
const QStyleOption *option, const QWidget *widget) const
{
- const int iconDimension = QS60StylePrivate::pixelMetric(QStyle::PM_ToolBarIconSize);
+ const int iconDimension = QS60StylePrivate::pixelMetric(PM_ToolBarIconSize);
const QRect iconSize = (!option) ? QRect(0, 0, iconDimension, iconDimension) : option->rect;
QS60StyleEnums::SkinParts part;
QS60StylePrivate::SkinElementFlags adjustedFlags;
@@ -2971,67 +3055,67 @@ QIcon QS60Style::standardIconImplementation(StandardPixmap standardIcon,
QS60StylePrivate::SF_StateDisabled;
switch(standardIcon) {
- case QStyle::SP_MessageBoxWarning:
+ case SP_MessageBoxWarning:
part = QS60StyleEnums::SP_QgnNoteWarning;
break;
- case QStyle::SP_MessageBoxInformation:
+ case SP_MessageBoxInformation:
part = QS60StyleEnums::SP_QgnNoteInfo;
break;
- case QStyle::SP_MessageBoxCritical:
+ case SP_MessageBoxCritical:
part = QS60StyleEnums::SP_QgnNoteError;
break;
- case QStyle::SP_MessageBoxQuestion:
+ case SP_MessageBoxQuestion:
part = QS60StyleEnums::SP_QgnNoteQuery;
break;
- case QStyle::SP_ArrowRight:
+ case SP_ArrowRight:
part = QS60StyleEnums::SP_QgnIndiNaviArrowRight;
break;
- case QStyle::SP_ArrowLeft:
+ case SP_ArrowLeft:
part = QS60StyleEnums::SP_QgnIndiNaviArrowLeft;
break;
- case QStyle::SP_ArrowUp:
+ case SP_ArrowUp:
part = QS60StyleEnums::SP_QgnIndiNaviArrowLeft;
adjustedFlags |= QS60StylePrivate::SF_PointEast;
break;
- case QStyle::SP_ArrowDown:
+ case SP_ArrowDown:
part = QS60StyleEnums::SP_QgnIndiNaviArrowLeft;
adjustedFlags |= QS60StylePrivate::SF_PointWest;
break;
- case QStyle::SP_ArrowBack:
+ case SP_ArrowBack:
if (QApplication::layoutDirection() == Qt::RightToLeft)
return QS60Style::standardIcon(SP_ArrowRight, option, widget);
return QS60Style::standardIcon(SP_ArrowLeft, option, widget);
- case QStyle::SP_ArrowForward:
+ case SP_ArrowForward:
if (QApplication::layoutDirection() == Qt::RightToLeft)
return QS60Style::standardIcon(SP_ArrowLeft, option, widget);
return QS60Style::standardIcon(SP_ArrowRight, option, widget);
- case QStyle::SP_ComputerIcon:
+ case SP_ComputerIcon:
part = QS60StyleEnums::SP_QgnPropPhoneMemcLarge;
break;
- case QStyle::SP_DirClosedIcon:
+ case SP_DirClosedIcon:
part = QS60StyleEnums::SP_QgnPropFolderSmall;
break;
- case QStyle::SP_DirOpenIcon:
+ case SP_DirOpenIcon:
part = QS60StyleEnums::SP_QgnPropFolderCurrent;
break;
- case QStyle::SP_DirIcon:
+ case SP_DirIcon:
part = QS60StyleEnums::SP_QgnPropFolderSmall;
break;
- case QStyle::SP_FileDialogNewFolder:
+ case SP_FileDialogNewFolder:
part = QS60StyleEnums::SP_QgnPropFolderSmallNew;
break;
- case QStyle::SP_FileIcon:
+ case SP_FileIcon:
part = QS60StyleEnums::SP_QgnPropFileSmall;
break;
- case QStyle::SP_TrashIcon:
+ case SP_TrashIcon:
part = QS60StyleEnums::SP_QgnNoteErased;
break;
- case QStyle::SP_ToolBarHorizontalExtensionButton:
+ case SP_ToolBarHorizontalExtensionButton:
part = QS60StyleEnums::SP_QgnIndiSubMenu;
if (QApplication::layoutDirection() == Qt::RightToLeft)
adjustedFlags |= QS60StylePrivate::SF_PointSouth;
break;
- case QStyle::SP_ToolBarVerticalExtensionButton:
+ case SP_ToolBarVerticalExtensionButton:
adjustedFlags |= QS60StylePrivate::SF_PointEast;
part = QS60StyleEnums::SP_QgnIndiSubMenu;
break;
@@ -3045,6 +3129,72 @@ QIcon QS60Style::standardIconImplementation(StandardPixmap standardIcon,
QCommonStyle::standardIconImplementation(standardIcon, option, widget) : QIcon(cachedPixMap);
}
+/*!
+ \internal
+ Animate indeterminate progress bars only when visible
+*/
+bool QS60Style::eventFilter(QObject *object, QEvent *event)
+{
+#ifdef Q_WS_S60
+#ifndef QT_NO_PROGRESSBAR
+ Q_D(QS60Style);
+ switch(event->type()) {
+ case QEvent::StyleChange:
+ case QEvent::Show:
+ if (QProgressBar *bar = qobject_cast<QProgressBar *>(object)) {
+ if (!d->m_bars.contains(bar))
+ d->m_bars << bar;
+ if (d->m_bars.size() == 1) //only start with first animated progressbar
+ d->startAnimation(QS60StyleEnums::SP_QgnGrafBarWaitAnim);
+ }
+ break;
+ case QEvent::Destroy:
+ case QEvent::Hide:
+ d->stopAnimation(QS60StyleEnums::SP_QgnGrafBarWaitAnim);
+ d->m_bars.removeAll(reinterpret_cast<QProgressBar *>(object));
+ break;
+ default:
+ break;
+ }
+#endif // QT_NO_PROGRESSBAR
+#endif // Q_WS_S60
+ return QStyle::eventFilter(object, event);
+}
+
+/*!
+ \internal
+ Handle the timer \a event.
+*/
+void QS60Style::timerEvent(QTimerEvent *event)
+{
+#ifdef Q_WS_S60
+#ifndef QT_NO_PROGRESSBAR
+ Q_D(QS60Style);
+
+ QS60StyleAnimation *progressBarAnimation =
+ QS60StylePrivate::animationDefinition(QS60StyleEnums::SP_QgnGrafBarWaitAnim);
+
+ if (event->timerId() == progressBarAnimation->timerId()) {
+
+ Q_ASSERT(progressBarAnimation->interval() > 0);
+
+ if (progressBarAnimation->currentFrame() == progressBarAnimation->frameCount() )
+ if (progressBarAnimation->playMode() == QS60StyleEnums::AM_Looping)
+ progressBarAnimation->setCurrentFrame(0);
+ else
+ d->stopAnimation(progressBarAnimation->animationId());
+
+ foreach (QProgressBar *bar, d->m_bars) {
+ if ((bar->minimum() == 0 && bar->maximum() == 0))
+ bar->update();
+ }
+ progressBarAnimation->setCurrentFrame(progressBarAnimation->currentFrame() + 1);
+ }
+#endif // QT_NO_PROGRESSBAR
+#endif // Q_WS_S60
+ event->ignore();
+}
+
extern QPoint qt_s60_fill_background_offset(const QWidget *targetWidget);
bool qt_s60_fill_background(QPainter *painter, const QRegion &rgn, const QBrush &brush)
@@ -3056,11 +3206,13 @@ bool qt_s60_fill_background(QPainter *painter, const QRegion &rgn, const QBrush
const QPaintDevice *target = painter->device();
if (target->devType() == QInternal::Widget) {
const QWidget *widget = static_cast<const QWidget *>(target);
- const QVector<QRect> &rects = rgn.rects();
- for (int i = 0; i < rects.size(); ++i) {
- const QRect rect(rects.at(i));
- painter->drawPixmap(rect.topLeft(), backgroundTexture,
- rect.translated(qt_s60_fill_background_offset(widget)));
+ if (!widget->testAttribute(Qt::WA_TranslucentBackground)) {
+ const QVector<QRect> &rects = rgn.rects();
+ for (int i = 0; i < rects.size(); ++i) {
+ const QRect rect(rects.at(i));
+ painter->drawPixmap(rect.topLeft(), backgroundTexture,
+ rect.translated(qt_s60_fill_background_offset(widget)));
+ }
}
}
return true;
diff --git a/src/gui/styles/qs60style.h b/src/gui/styles/qs60style.h
index adcb313..82cc21c 100644
--- a/src/gui/styles/qs60style.h
+++ b/src/gui/styles/qs60style.h
@@ -94,6 +94,9 @@ protected Q_SLOTS:
QIcon standardIconImplementation(
StandardPixmap standardIcon, const QStyleOption * option = 0, const QWidget * widget = 0 ) const;
+protected:
+ void timerEvent(QTimerEvent *event);
+ bool eventFilter(QObject *o, QEvent *e);
private:
Q_DISABLE_COPY(QS60Style)
friend class QStyleFactory;
diff --git a/src/gui/styles/qs60style_p.h b/src/gui/styles/qs60style_p.h
index 1417552..eae2291 100644
--- a/src/gui/styles/qs60style_p.h
+++ b/src/gui/styles/qs60style_p.h
@@ -74,7 +74,6 @@ typedef struct {
unsigned short width;
int major_version;
int minor_version;
- bool mirroring; // TODO: (nice to have) Use Qt::LayoutDirection
const char* layoutName;
} layoutHeader;
@@ -93,6 +92,29 @@ class QS60StyleEnums
#endif // !Q_WS_S60
public:
+
+ // S60 definitions within theme
+ enum ThemeDefinitions {
+ TD_AnimationData,
+ };
+
+ //Defines which values are contained within animation data (retrieved using TD_AnimationData).
+ //Additionally defines the order in which the items are given out in QList<QVariant>.
+ enum AnimationData {
+ AD_Interval = 0,
+ AD_NumberOfFrames,
+ AD_AnimationPlayMode, //currently not used as themes seem to contain invalid data
+ };
+
+ // Animation modes
+ enum AnimationMode {
+ AM_PlayOnce = 0, //animation is played exactly once
+ AM_Looping, //animation is repeated until stopped
+ AM_Bounce //animation is played repeatedly until stopped,
+ //but frames are played in reverse order every second time
+ //(no support yet)
+ };
+
// S60 look-and-feel font categories
enum FontCategories {
FC_Undefined,
@@ -104,7 +126,7 @@ public:
};
enum SkinParts {
- SP_QgnGrafBarWait,
+ SP_QgnGrafBarWaitAnim,
SP_QgnGrafBarFrameCenter,
SP_QgnGrafBarFrameSideL,
SP_QgnGrafBarFrameSideR,
@@ -287,7 +309,70 @@ public:
};
};
+#ifdef Q_WS_S60
+class CAknBitmapAnimation;
+NONSHARABLE_CLASS (AnimationData) : public QObject
+{
+public:
+ AnimationData(const QS60StyleEnums::SkinParts part, int frames, int interval);
+
+ const QS60StyleEnums::SkinParts m_id;
+ int m_frames;
+ int m_interval;
+ QS60StyleEnums::AnimationMode m_mode;
+};
+
+
+NONSHARABLE_CLASS (AnimationDataV2) : public AnimationData
+{
+public:
+ AnimationDataV2(const AnimationData &data);
+ ~AnimationDataV2();
+
+ CAknBitmapAnimation *m_animation;
+ int m_currentFrame;
+ bool m_resourceBased;
+ int m_timerId;
+};
+
+
+class QS60StyleAnimation : public QObject
+{
+public:
+ QS60StyleAnimation(const QS60StyleEnums::SkinParts part, int frames, int interval);
+ ~QS60StyleAnimation();
+
+public:
+ QS60StyleEnums::SkinParts animationId() const {return m_currentData->m_id;}
+ int frameCount() const { return m_currentData->m_frames;}
+ int interval() const {return m_currentData->m_interval;}
+ QS60StyleEnums::AnimationMode playMode() const {return m_currentData->m_mode;}
+ CAknBitmapAnimation* animationObject() const {return m_currentData->m_animation;}
+ bool isResourceBased() const {return m_currentData->m_resourceBased;}
+ int timerId() const {return m_currentData->m_timerId;}
+ int currentFrame() const {return m_currentData->m_currentFrame;}
+
+ void setFrameCount(int frameCount) {m_currentData->m_frames = frameCount;}
+ void setInterval(int interval) {m_currentData->m_interval = interval;}
+ void setAnimationObject(CAknBitmapAnimation* animation);
+ void setResourceBased(bool resourceBased) {m_currentData->m_resourceBased = resourceBased;}
+ void setTimerId(int timerId) {m_currentData->m_timerId = timerId;}
+ void setCurrentFrame(int currentFrame) {m_currentData->m_currentFrame = currentFrame;}
+
+ void resetToDefaults();
+
+private: //data members
+ //TODO: consider changing these to non-pointers as the classes are rather small anyway
+ AnimationData *m_defaultData;
+ AnimationDataV2 *m_currentData;
+};
+
+#endif //Q_WS_S60
+
+
class QFocusFrame;
+class QProgressBar;
+class QS60StyleAnimation;
// Private class
#ifdef Q_OS_SYMBIAN
@@ -371,6 +456,7 @@ public:
SF_StateEnabled = 0x0010, // Enabled = the default
SF_StateDisabled = 0x0020,
SF_ColorSkinned = 0x0040, // pixmap is colored with foreground pen color
+ SF_Animation = 0x0080,
};
enum CacheClearReason {
@@ -412,6 +498,7 @@ public:
static bool isTouchSupported();
static bool isToolBarBackground();
static bool hasSliderGrooveGraphic();
+ static bool isSingleClickUi();
// calculates average color based on button skin graphics (minus borders).
QColor colorFromFrameGraphics(SkinFrameElements frame) const;
@@ -455,6 +542,16 @@ public:
//so that theme graphic background can be drawn.
static bool canDrawThemeBackground(const QBrush &backgroundBrush);
+ static int currentAnimationFrame(QS60StyleEnums::SkinParts part);
+#ifdef Q_WS_S60
+
+ //No support for animations on emulated style
+ void startAnimation(QS60StyleEnums::SkinParts animation);
+ void stopAnimation(QS60StyleEnums::SkinParts animation);
+ static QS60StyleAnimation* animationDefinition(QS60StyleEnums::SkinParts part);
+
+#endif
+
private:
static void drawPart(QS60StyleEnums::SkinParts part, QPainter *painter,
const QRect &rect, SkinElementFlags flags = KDefaultSkinElementFlags);
@@ -497,6 +594,12 @@ private:
QPalette m_originalPalette;
QPointer<QFocusFrame> m_focusFrame;
+
+#ifdef Q_WS_S60
+ //list of progress bars having animation running
+ QList<QProgressBar *> m_bars;
+#endif
+
};
QT_END_NAMESPACE
diff --git a/src/gui/styles/qs60style_s60.cpp b/src/gui/styles/qs60style_s60.cpp
index 12a1544..6d9ba05 100644
--- a/src/gui/styles/qs60style_s60.cpp
+++ b/src/gui/styles/qs60style_s60.cpp
@@ -63,6 +63,7 @@
#include <aknutils.h>
#include <aknnavi.h>
#include <gulicon.h>
+#include <AknBitmapAnimation.h>
#if !defined(QT_NO_STYLE_S60) || defined(QT_PLUGIN)
@@ -72,6 +73,7 @@ enum TDrawType {
EDrawIcon,
EDrawGulIcon,
EDrawBackground,
+ EDrawAnimation,
ENoDraw
};
@@ -97,6 +99,47 @@ typedef struct {
int newMinorSkinId;
} partMapEntry;
+AnimationData::AnimationData(const QS60StyleEnums::SkinParts part, int frames, int interval) : m_id(part),
+ m_frames(frames), m_interval(interval), m_mode(QS60StyleEnums::AM_Looping)
+{
+}
+
+AnimationDataV2::AnimationDataV2(const AnimationData &data) : AnimationData(data.m_id, data.m_frames, data.m_interval),
+ m_animation(0), m_currentFrame(0), m_resourceBased(false), m_timerId(0)
+{
+}
+AnimationDataV2::~AnimationDataV2()
+{
+ delete m_animation;
+}
+
+QS60StyleAnimation::QS60StyleAnimation(const QS60StyleEnums::SkinParts part, int frames, int interval)
+{
+ QT_TRAP_THROWING(m_defaultData = new (ELeave) AnimationData(part, frames, interval));
+ QT_TRAP_THROWING(m_currentData = new (ELeave) AnimationDataV2(*m_defaultData));
+}
+
+QS60StyleAnimation::~QS60StyleAnimation()
+{
+ delete m_currentData;
+ delete m_defaultData;
+}
+
+void QS60StyleAnimation::setAnimationObject(CAknBitmapAnimation* animation)
+{
+ Q_ASSERT(animation);
+ if (m_currentData->m_animation)
+ delete m_currentData->m_animation;
+ m_currentData->m_animation = animation;
+}
+
+void QS60StyleAnimation::resetToDefaults()
+{
+ delete m_currentData;
+ m_currentData = 0;
+ QT_TRAP_THROWING(m_currentData = new (ELeave) AnimationDataV2(*m_defaultData));
+}
+
class QS60StyleModeSpecifics
{
public:
@@ -113,6 +156,8 @@ public:
static QSize naviPaneSize();
static TAknsItemID partSpecificThemeId(int part);
+ static QVariant themeDefinition(QS60StyleEnums::ThemeDefinitions definition, QS60StyleEnums::SkinParts part);
+
private:
static QPixmap createSkinnedGraphicsLX(QS60StyleEnums::SkinParts part,
const QSize &size, QS60StylePrivate::SkinElementFlags flags);
@@ -128,7 +173,7 @@ private:
};
const partMapEntry QS60StyleModeSpecifics::m_partMap[] = {
- /* SP_QgnGrafBarWait */ {KAknsIIDQgnGrafBarWaitAnim, EDrawIcon, ES60_All, -1,-1},
+ /* SP_QgnGrafBarWaitAnim */ {KAknsIIDQgnGrafBarWaitAnim, EDrawAnimation, ES60_All, -1,-1},
/* SP_QgnGrafBarFrameCenter */ {KAknsIIDQgnGrafBarFrameCenter, EDrawIcon, ES60_All, -1,-1},
/* SP_QgnGrafBarFrameSideL */ {KAknsIIDQgnGrafBarFrameSideL, EDrawIcon, ES60_All, -1,-1},
/* SP_QgnGrafBarFrameSideR */ {KAknsIIDQgnGrafBarFrameSideR, EDrawIcon, ES60_All, -1,-1},
@@ -371,7 +416,7 @@ QPixmap QS60StyleModeSpecifics::colorSkinnedGraphics(
void QS60StyleModeSpecifics::fallbackInfo(const QS60StyleEnums::SkinParts &stylePart, TInt &fallbackIndex)
{
switch(stylePart) {
- case QS60StyleEnums::SP_QgnGrafBarWait:
+ case QS60StyleEnums::SP_QgnGrafBarWaitAnim:
fallbackIndex = EMbmAvkonQgn_graf_bar_wait_1;
break;
case QS60StyleEnums::SP_QgnGrafBarFrameCenter:
@@ -604,6 +649,11 @@ bool QS60StylePrivate::hasSliderGrooveGraphic()
return QSysInfo::s60Version() != QSysInfo::SV_S60_3_1;
}
+bool QS60StylePrivate::isSingleClickUi()
+{
+ return (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0);
+}
+
QPoint qt_s60_fill_background_offset(const QWidget *targetWidget)
{
CCoeControl *control = targetWidget->effectiveWinId();
@@ -709,6 +759,69 @@ QPixmap QS60StyleModeSpecifics::createSkinnedGraphicsLX(
// QS60WindowSurface::lockBitmapHeap();
break;
}
+ case EDrawAnimation: {
+ CFbsBitmap* animationFrame;
+ CFbsBitmap* frameMask;
+ CAknBitmapAnimation* aknAnimation = 0;
+ TBool constructedFromTheme = ETrue;
+
+ QS60StyleAnimation* animation = QS60StylePrivate::animationDefinition(part); //ownership is not passed
+ if (animation) {
+ if (!animation->animationObject() && !animation->isResourceBased()) {// no pre-made item exists, create new animation
+ CAknBitmapAnimation* newAnimation = CAknBitmapAnimation::NewL();
+ CleanupStack::PushL(newAnimation);
+ if (newAnimation)
+ constructedFromTheme = newAnimation->ConstructFromSkinL(skinId);
+ if (constructedFromTheme && newAnimation->BitmapAnimData()->FrameArray().Count() > 0) {
+ animation->setResourceBased(false);
+ animation->setAnimationObject(newAnimation); //animation takes ownership
+ }
+ CleanupStack::Pop(newAnimation);
+ }
+ //fill-in stored information
+ aknAnimation = animation->animationObject();
+ constructedFromTheme = !animation->isResourceBased();
+ }
+
+ const int currentFrame = QS60StylePrivate::currentAnimationFrame(part);
+ if (constructedFromTheme && aknAnimation && aknAnimation->BitmapAnimData()->FrameArray().Count() > 0) {
+ //Animation was created succesfully and contains frames, just fetch current frame
+ if(currentFrame >= aknAnimation->BitmapAnimData()->FrameArray().Count())
+ User::Leave(KErrOverflow);
+ const CBitmapFrameData* frameData = aknAnimation->BitmapAnimData()->FrameArray().At(currentFrame);
+ if (frameData) {
+ animationFrame = frameData->Bitmap();
+ frameMask = frameData->Mask();
+ }
+ } else {
+ //Theme does not contain animation theming, create frames from resource file
+ TInt fallbackGraphicID = -1;
+ fallbackInfo(part, fallbackGraphicID);
+ fallbackGraphicID = fallbackGraphicID + (currentFrame * 2); //skip masks
+ TInt fallbackGraphicsMaskID =
+ (fallbackGraphicID == KErrNotFound) ? KErrNotFound : fallbackGraphicID + 1; //masks are auto-generated as next in mif files
+ if (fallbackGraphicsMaskID != KErrNotFound)
+ fallbackGraphicsMaskID = fallbackGraphicsMaskID + (currentFrame * 2); //skip actual graphics
+
+ //Then draw animation frame
+ AknsUtils::CreateIconL(
+ skinInstance,
+ KAknsIIDDefault, //animation is not themed, lets force fallback graphics
+ animationFrame,
+ frameMask,
+ AknIconUtils::AvkonIconFileName(),
+ fallbackGraphicID ,
+ fallbackGraphicsMaskID);
+ }
+ result = fromFbsBitmap(animationFrame, frameMask, flags, targetSize);
+ if (!constructedFromTheme) {
+ delete animationFrame;
+ animationFrame = 0;
+ delete frameMask;
+ frameMask = 0;
+ }
+ break;
+ }
}
if (!result)
result = QPixmap();
@@ -731,7 +844,6 @@ QPixmap QS60StyleModeSpecifics::createSkinnedGraphicsLX(QS60StylePrivate::SkinFr
MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance();
QPixmap result;
-// QS60WindowSurface::unlockBitmapHeap();
static const TDisplayMode displayMode = S60->supportsPremultipliedAlpha ? Q_SYMBIAN_ECOLOR16MAP : EColor16MA;
static const TInt drawParam = S60->supportsPremultipliedAlpha ? KAknsDrawParamDefault : KAknsDrawParamNoClearUnderImage|KAknsDrawParamRGBOnly;
@@ -985,8 +1097,13 @@ void QS60StylePrivate::setActiveLayout()
m_pmPointer = data[activeLayoutIndex];
}
+Q_GLOBAL_STATIC(QList<QS60StyleAnimation *>, m_animations)
+
QS60StylePrivate::QS60StylePrivate()
{
+ //Animation defaults need to be created when style is instantiated
+ QS60StyleAnimation* progressBarAnimation = new QS60StyleAnimation(QS60StyleEnums::SP_QgnGrafBarWaitAnim, 7, 100);
+ m_animations()->append(progressBarAnimation);
// No need to set active layout, if dynamic metrics API is available
setActiveLayout();
}
@@ -1187,6 +1304,11 @@ void QS60StylePrivate::handleSkinChange()
setThemePalette(topLevelWidget);
topLevelWidget->ensurePolished();
}
+#ifndef QT_NO_PROGRESSBAR
+ //re-start animation timer
+ stopAnimation(QS60StyleEnums::SP_QgnGrafBarWaitAnim); //todo: once we have more animations, we could say "stop all running ones"
+ startAnimation(QS60StyleEnums::SP_QgnGrafBarWaitAnim); //and "re-start all previously running ones"
+#endif
}
QSize QS60StylePrivate::naviPaneSize()
@@ -1206,6 +1328,121 @@ QSize QS60StyleModeSpecifics::naviPaneSize()
return QSize(0,0);
}
+int QS60StylePrivate::currentAnimationFrame(QS60StyleEnums::SkinParts part)
+{
+ QS60StyleAnimation *animation = animationDefinition(part);
+ // todo: looping could be done in QS60Style::timerEvent
+ if (animation->frameCount() == animation->currentFrame())
+ animation->setCurrentFrame(0);
+ return animation->currentFrame();
+}
+
+QS60StyleAnimation* QS60StylePrivate::animationDefinition(QS60StyleEnums::SkinParts part)
+{
+ int i = 0;
+ const int animationsCount = m_animations()->isEmpty() ? 0 : m_animations()->count();
+ for(; i < animationsCount; i++) {
+ if (part == m_animations()->at(i)->animationId())
+ break;
+ }
+ return m_animations()->at(i);
+}
+
+void QS60StylePrivate::startAnimation(QS60StyleEnums::SkinParts animationPart)
+{
+ Q_Q(QS60Style);
+
+ //Query animation data from theme and store values to local struct.
+ QVariant themeAnimationDataVariant = QS60StyleModeSpecifics::themeDefinition(
+ QS60StyleEnums::TD_AnimationData, animationPart);
+ QList<QVariant> themeAnimationData = themeAnimationDataVariant.toList();
+
+ QS60StyleAnimation *animation = QS60StylePrivate::animationDefinition(animationPart);
+ if (animation) {
+ if (themeAnimationData.at(QS60StyleEnums::AD_Interval).toInt() != 0)
+ animation->setInterval(themeAnimationData.at(QS60StyleEnums::AD_Interval).toInt());
+
+ if (themeAnimationData.at(QS60StyleEnums::AD_NumberOfFrames).toInt() != 0)
+ animation->setFrameCount(themeAnimationData.at(QS60StyleEnums::AD_NumberOfFrames).toInt());
+
+ //todo: playmode is ignored for now, since it seems to return invalid data on some themes
+ //lets use the table values for play mode
+
+ animation->setCurrentFrame(0); //always initialize
+ const int timerId = q->startTimer(animation->interval());
+ animation->setTimerId(timerId);
+ }
+}
+
+void QS60StylePrivate::stopAnimation(QS60StyleEnums::SkinParts animationPart)
+{
+ Q_Q(QS60Style);
+
+ QS60StyleAnimation *animation = QS60StylePrivate::animationDefinition(animationPart);
+ if (animation) {
+ animation->setCurrentFrame(0);
+ if (animation->timerId() != 0) {
+ q->killTimer(animation->timerId());
+ animation->setTimerId(0);
+ }
+ animation->resetToDefaults();
+ }
+}
+
+QVariant QS60StyleModeSpecifics::themeDefinition(
+ QS60StyleEnums::ThemeDefinitions definition, QS60StyleEnums::SkinParts part)
+{
+ MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance();
+
+ Q_ASSERT(skinInstance);
+
+ switch(definition) {
+ //Animation definitions
+ case QS60StyleEnums::TD_AnimationData:
+ {
+ CAknsBmpAnimItemData *animationData;
+ TAknsItemID animationSkinId = partSpecificThemeId(part);
+ QList<QVariant> list;
+
+ TRAPD( error, QT_TRYCATCH_LEAVING(
+ animationData = static_cast<CAknsBmpAnimItemData*>(skinInstance->CreateUncachedItemDataL(
+ animationSkinId, EAknsITBmpAnim))));
+ if (error)
+ return list;
+
+ if (animationData) {
+ list.append((int)animationData->FrameInterval());
+ list.append((int)animationData->NumberOfImages());
+
+ QS60StyleEnums::AnimationMode playMode;
+ switch(animationData->PlayMode()) {
+ case CBitmapAnimClientData::EPlay:
+ playMode = QS60StyleEnums::AM_PlayOnce;
+ break;
+ case CBitmapAnimClientData::ECycle:
+ playMode = QS60StyleEnums::AM_Looping;
+ break;
+ case CBitmapAnimClientData::EBounce:
+ playMode = QS60StyleEnums::AM_Bounce;
+ break;
+ default:
+ break;
+ }
+ list.append(QVariant((int)playMode));
+ delete animationData;
+ } else {
+ list.append(0);
+ list.append(0);
+ }
+ return list;
+ }
+ break;
+ default:
+ break;
+ }
+ return QVariant();
+}
+
#endif // Q_WS_S60
QT_END_NAMESPACE
diff --git a/src/gui/styles/qs60style_simulated.cpp b/src/gui/styles/qs60style_simulated.cpp
index bd43eb7..f87cf28 100644
--- a/src/gui/styles/qs60style_simulated.cpp
+++ b/src/gui/styles/qs60style_simulated.cpp
@@ -342,6 +342,11 @@ bool QS60StylePrivate::hasSliderGrooveGraphic()
return false;
}
+bool QS60StylePrivate::isSingleClickUi()
+{
+ return false;
+}
+
QFont QS60StylePrivate::s60Font_specific(
QS60StyleEnums::FontCategories fontCategory,
int pointSize, bool resolveFontSize)
@@ -364,6 +369,11 @@ QFont QS60StylePrivate::s60Font_specific(
return result;
}
+int QS60StylePrivate::currentAnimationFrame(QS60StyleEnums::SkinParts part)
+{
+ return 0;
+}
+
/*!
Constructs a QS60Style object.
*/
diff --git a/src/gui/styles/qstyle_s60.qrc b/src/gui/styles/qstyle_s60.qrc
new file mode 100644
index 0000000..dbee38b
--- /dev/null
+++ b/src/gui/styles/qstyle_s60.qrc
@@ -0,0 +1,137 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/trolltech/styles/commonstyle">
+<!-- <file>images/filelink-16.png</file> -->
+<file>images/filelink-32.png</file>
+<!-- <file>images/filelink-128.png</file> -->
+<!-- <file>images/file-16.png</file> -->
+<file>images/file-32.png</file>
+<!-- <file>images/file-128.png</file> -->
+<!-- <file>images/newdirectory-16.png</file> -->
+<file>images/newdirectory-32.png</file>
+<!-- <file>images/newdirectory-128.png</file> -->
+<!-- <file>images/parentdir-16.png</file> -->
+<file>images/parentdir-32.png</file>
+<!-- <file>images/parentdir-128.png</file> -->
+<!-- <file>images/dvd-16.png</file> -->
+<!-- <file>images/dvd-32.png</file> -->
+<!-- <file>images/dvd-128.png</file> -->
+<!-- <file>images/cdr-16.png</file> -->
+<!-- <file>images/cdr-32.png</file> -->
+<!-- <file>images/cdr-128.png</file> -->
+<!-- <file>images/floppy-16.png</file> -->
+<!-- <file>images/floppy-32.png</file> -->
+<!-- <file>images/floppy-128.png</file> -->
+<!-- <file>images/harddrive-16.png</file> -->
+<file>images/harddrive-32.png</file>
+<!-- <file>images/harddrive-128.png</file> -->
+<!-- <file>images/trash-16.png</file> -->
+<!-- <file>images/trash-32.png</file> -->
+<!-- <file>images/trash-128.png</file> -->
+<!-- <file>images/networkdrive-16.png</file> -->
+<!-- <file>images/networkdrive-32.png</file> -->
+<!-- <file>images/networkdrive-128.png</file> -->
+<!-- <file>images/computer-16.png</file> -->
+<!-- <file>images/computer-32.png</file> -->
+<!-- <file>images/desktop-16.png</file> -->
+<file>images/desktop-32.png</file>
+<!-- <file>images/dirclosed-16.png</file> -->
+<file>images/dirclosed-32.png</file>
+<!-- <file>images/dirclosed-128.png</file> -->
+<!-- <file>images/dirlink-16.png</file> -->
+<file>images/dirlink-32.png</file>
+<!-- <file>images/dirlink-128.png</file> -->
+<!-- <file>images/diropen-16.png</file> -->
+<file>images/diropen-32.png</file>
+<!-- <file>images/diropen-128.png</file> -->
+<!-- <file>images/left-16.png</file> -->
+<file>images/left-32.png</file>
+<!-- <file>images/left-128.png</file> -->
+<!-- <file>images/right-16.png</file> -->
+<file>images/right-32.png</file>
+<!-- <file>images/right-128.png</file> -->
+<!-- <file>images/up-16.png</file> -->
+<file>images/up-32.png</file>
+<!-- <file>images/up-128.png</file> -->
+<!-- <file>images/down-16.png</file> -->
+<file>images/down-32.png</file>
+<!-- <file>images/down-128.png</file> -->
+<!-- <file>images/filecontents-16.png</file> -->
+<file>images/filecontents-32.png</file>
+<!-- <file>images/filecontents-128.png</file> -->
+<!-- <file>images/fileinfo-16.png</file> -->
+<file>images/fileinfo-32.png</file>
+<!-- <file>images/fileinfo-128.png</file> -->
+<!-- <file>images/viewdetailed-16.png</file> -->
+<file>images/viewdetailed-32.png</file>
+<!-- <file>images/viewdetailed-128.png</file> -->
+<!-- <file>images/viewlist-16.png</file> -->
+<file>images/viewlist-32.png</file>
+<!-- <file>images/viewlist-128.png</file> -->
+<file>images/fontbitmap-16.png</file>
+<file>images/fonttruetype-16.png</file>
+<!-- <file>images/standardbutton-apply-128.png</file> -->
+<!-- <file>images/standardbutton-apply-16.png</file> -->
+<file>images/standardbutton-apply-32.png</file>
+<!-- <file>images/standardbutton-cancel-128.png</file> -->
+<!-- <file>images/standardbutton-cancel-16.png</file> -->
+<file>images/standardbutton-cancel-32.png</file>
+<!-- <file>images/standardbutton-clear-128.png</file> -->
+<!-- <file>images/standardbutton-clear-16.png</file> -->
+<file>images/standardbutton-clear-32.png</file>
+<!-- <file>images/standardbutton-close-128.png</file> -->
+<!-- <file>images/standardbutton-close-16.png</file> -->
+<file>images/standardbutton-close-32.png</file>
+<!-- <file>images/standardbutton-delete-128.png</file> -->
+<!-- <file>images/standardbutton-delete-16.png</file> -->
+<file>images/standardbutton-delete-32.png</file>
+<!-- <file>images/standardbutton-help-128.png</file> -->
+<!-- <file>images/standardbutton-help-16.png</file> -->
+<file>images/standardbutton-help-32.png</file>
+<!-- <file>images/standardbutton-no-128.png</file> -->
+<!-- <file>images/standardbutton-no-16.png</file> -->
+<file>images/standardbutton-no-32.png</file>
+<!-- <file>images/standardbutton-ok-128.png</file> -->
+<!-- <file>images/standardbutton-ok-16.png</file> -->
+<file>images/standardbutton-ok-32.png</file>
+<!-- <file>images/standardbutton-open-128.png</file> -->
+<!-- <file>images/standardbutton-open-16.png</file> -->
+<file>images/standardbutton-open-32.png</file>
+<!-- <file>images/standardbutton-save-128.png</file> -->
+<!-- <file>images/standardbutton-save-16.png</file> -->
+<file>images/standardbutton-save-32.png</file>
+<!-- <file>images/standardbutton-yes-128.png</file> -->
+<!-- <file>images/standardbutton-yes-16.png</file> -->
+<file>images/standardbutton-yes-32.png</file>
+<file>images/standardbutton-closetab-16.png</file>
+<file>images/standardbutton-closetab-down-16.png</file>
+<file>images/standardbutton-closetab-hover-16.png</file>
+<!-- <file>images/refresh-24.png</file> -->
+<file>images/refresh-32.png</file>
+<!-- <file>images/stop-24.png</file> -->
+<file>images/stop-32.png</file>
+<!-- <file>images/media-stop-16.png</file> -->
+<file>images/media-stop-32.png</file>
+<!-- <file>images/media-play-16.png</file> -->
+<file>images/media-play-32.png</file>
+<!-- <file>images/media-pause-16.png</file> -->
+<file>images/media-pause-32.png</file>
+<!-- <file>images/media-seek-forward-16.png</file> -->
+<file>images/media-seek-forward-32.png</file>
+<!-- <file>images/media-seek-backward-16.png</file> -->
+<file>images/media-seek-backward-32.png</file>
+<!-- <file>images/media-skip-forward-16.png</file> -->
+<file>images/media-skip-forward-32.png</file>
+<!-- <file>images/media-skip-backward-16.png</file> -->
+<file>images/media-skip-backward-32.png</file>
+<file>images/media-volume-16.png</file>
+<file>images/media-volume-muted-16.png</file>
+</qresource>
+<!--
+<qresource prefix="/trolltech/styles/macstyle">
+<file>images/closedock-16.png</file>
+<file>images/closedock-down-16.png</file>
+<file>images/dockdock-16.png</file>
+<file>images/dockdock-down-16.png</file>
+</qresource>
+-->
+</RCC>
diff --git a/src/gui/styles/styles.pri b/src/gui/styles/styles.pri
index 7e5c55a..676f59e 100644
--- a/src/gui/styles/styles.pri
+++ b/src/gui/styles/styles.pri
@@ -23,10 +23,12 @@ SOURCES += \
styles/qstylesheetstyle.cpp \
styles/qstylesheetstyle_default.cpp
-!wince* {
- RESOURCES += styles/qstyle.qrc
+wince* {
+ RESOURCES += styles/qstyle_wince.qrc
+} else:symbian {
+ RESOURCES += styles/qstyle_s60.qrc
} else {
- RESOURCES += styles/qstyle_wince.qrc
+ RESOURCES += styles/qstyle.qrc
}
contains( styles, all ) {
@@ -168,7 +170,7 @@ contains( styles, s60 ):contains(QT_CONFIG, s60) {
SOURCES += styles/qs60style.cpp
symbian {
SOURCES += styles/qs60style_s60.cpp
- LIBS += -laknicon -laknskins -laknskinsrv -lfontutils -legul
+ LIBS += -laknicon -laknskins -laknskinsrv -lfontutils -legul -lbmpanim
} else {
SOURCES += styles/qs60style_simulated.cpp
RESOURCES += styles/qstyle_s60_simulated.qrc
diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp
index 9343cb7..c000457 100644
--- a/src/gui/text/qfontengine.cpp
+++ b/src/gui/text/qfontengine.cpp
@@ -357,9 +357,6 @@ void QFontEngine::getGlyphPositions(const QGlyphLayout &glyphs, const QTransform
++i;
}
} else {
- positions.resize(glyphs.numGlyphs);
- glyphs_out.resize(glyphs.numGlyphs);
- int i = 0;
while (i < glyphs.numGlyphs) {
if (!glyphs.attributes[i].dontPrint) {
QFixed gpos_x = xpos + glyphs.offsets[i].x;
diff --git a/src/gui/text/qfontengine_s60.cpp b/src/gui/text/qfontengine_s60.cpp
index 4625667..9dd4af7 100644
--- a/src/gui/text/qfontengine_s60.cpp
+++ b/src/gui/text/qfontengine_s60.cpp
@@ -129,26 +129,62 @@ static inline unsigned int getChar(const QChar *str, int &i, const int len)
return uc;
}
+CFont *QFontEngineS60::fontWithSize(qreal size) const
+{
+ CFont *result = 0;
+ TFontSpec fontSpec(qt_QString2TPtrC(QFontEngine::fontDef.family), TInt(size));
+ fontSpec.iFontStyle.SetBitmapType(EAntiAliasedGlyphBitmap);
+ fontSpec.iFontStyle.SetPosture(QFontEngine::fontDef.style == QFont::StyleNormal?EPostureUpright:EPostureItalic);
+ fontSpec.iFontStyle.SetStrokeWeight(QFontEngine::fontDef.weight > QFont::Normal?EStrokeWeightBold:EStrokeWeightNormal);
+ const TInt errorCode = S60->screenDevice()->GetNearestFontToDesignHeightInPixels(result, fontSpec);
+ Q_ASSERT(result && (errorCode == 0));
+ return result;
+}
+
+void QFontEngineS60::setFontScale(qreal scale)
+{
+ if (qFuzzyCompare(scale, qreal(1))) {
+ if (!m_originalFont)
+ m_originalFont = fontWithSize(m_originalFontSizeInPixels);
+ m_activeFont = m_originalFont;
+ } else {
+ const qreal scaledFontSizeInPixels = m_originalFontSizeInPixels * scale;
+ if (!m_scaledFont ||
+ (TInt(scaledFontSizeInPixels) != TInt(m_scaledFontSizeInPixels))) {
+ releaseFont(m_scaledFont);
+ m_scaledFontSizeInPixels = scaledFontSizeInPixels;
+ m_scaledFont = fontWithSize(m_scaledFontSizeInPixels);
+ }
+ m_activeFont = m_scaledFont;
+ }
+}
+
+void QFontEngineS60::releaseFont(CFont *&font)
+{
+ if (font) {
+ S60->screenDevice()->ReleaseFont(font);
+ font = 0;
+ }
+}
+
QFontEngineS60::QFontEngineS60(const QFontDef &request, const QFontEngineS60Extensions *extensions)
: m_extensions(extensions)
+ , m_originalFont(0)
+ , m_originalFontSizeInPixels((request.pixelSize >= 0)?
+ request.pixelSize:pointsToPixels(request.pointSize))
+ , m_scaledFont(0)
+ , m_scaledFontSizeInPixels(0)
+ , m_activeFont(0)
{
QFontEngine::fontDef = request;
- m_fontSizeInPixels = (request.pixelSize >= 0)?
- request.pixelSize:pointsToPixels(request.pointSize);
-
- TFontSpec fontSpec(qt_QString2TPtrC(request.family), m_fontSizeInPixels);
- fontSpec.iFontStyle.SetBitmapType(EAntiAliasedGlyphBitmap);
- fontSpec.iFontStyle.SetPosture(request.style == QFont::StyleNormal?EPostureUpright:EPostureItalic);
- fontSpec.iFontStyle.SetStrokeWeight(request.weight > QFont::Normal?EStrokeWeightBold:EStrokeWeightNormal);
- const TInt errorCode = S60->screenDevice()->GetNearestFontToDesignHeightInPixels(m_font, fontSpec);
- Q_ASSERT(errorCode == 0);
-
+ setFontScale(1.0);
cache_cost = sizeof(QFontEngineS60);
}
QFontEngineS60::~QFontEngineS60()
{
- S60->screenDevice()->ReleaseFont(m_font);
+ releaseFont(m_originalFont);
+ releaseFont(m_scaledFont);
}
bool QFontEngineS60::stringToCMap(const QChar *characters, int len, QGlyphLayout *glyphs, int *nglyphs, QTextEngine::ShaperFlags flags) const
@@ -251,12 +287,12 @@ glyph_metrics_t QFontEngineS60::boundingBox(glyph_t glyph)
QFixed QFontEngineS60::ascent() const
{
- return m_font->FontMaxAscent();
+ return m_originalFont->FontMaxAscent();
}
QFixed QFontEngineS60::descent() const
{
- return m_font->FontMaxDescent();
+ return m_originalFont->FontMaxDescent();
}
QFixed QFontEngineS60::leading() const
@@ -266,7 +302,7 @@ QFixed QFontEngineS60::leading() const
qreal QFontEngineS60::maxCharWidth() const
{
- return m_font->MaxCharWidthInPixels();
+ return m_originalFont->MaxCharWidthInPixels();
}
const char *QFontEngineS60::name() const
@@ -302,11 +338,11 @@ void QFontEngineS60::getCharacterData(glyph_t glyph, TOpenFontCharMetrics& metri
const TUint specialCode = (TUint)glyph | 0x80000000;
const CFont::TCharacterDataAvailability availability =
- m_font->GetCharacterData(specialCode, metrics, bitmap, bitmapSize);
+ m_activeFont->GetCharacterData(specialCode, metrics, bitmap, bitmapSize);
const glyph_t fallbackGlyph = '?';
if (availability != CFont::EAllCharacterData) {
const CFont::TCharacterDataAvailability fallbackAvailability =
- m_font->GetCharacterData(fallbackGlyph, metrics, bitmap, bitmapSize);
+ m_activeFont->GetCharacterData(fallbackGlyph, metrics, bitmap, bitmapSize);
Q_ASSERT(fallbackAvailability == CFont::EAllCharacterData);
}
}
diff --git a/src/gui/text/qfontengine_s60_p.h b/src/gui/text/qfontengine_s60_p.h
index 6d47b9d..5834cc4 100644
--- a/src/gui/text/qfontengine_s60_p.h
+++ b/src/gui/text/qfontengine_s60_p.h
@@ -58,9 +58,6 @@
#include "qsize.h"
#include <openfont.h>
-class CFbsBitmap;
-class CFbsBitmapDevice;
-class CFbsBitGc;
class CFont;
QT_BEGIN_NAMESPACE
@@ -120,15 +117,21 @@ public:
Type type() const;
void getCharacterData(glyph_t glyph, TOpenFontCharMetrics& metrics, const TUint8*& bitmap, TSize& bitmapSize) const;
+ void setFontScale(qreal scale);
private:
friend class QFontPrivate;
QFixed glyphAdvance(HB_Glyph glyph) const;
+ CFont *fontWithSize(qreal size) const;
+ static void releaseFont(CFont *&font);
- CFont* m_font;
const QFontEngineS60Extensions *m_extensions;
- qreal m_fontSizeInPixels;
+ CFont* m_originalFont;
+ const qreal m_originalFontSizeInPixels;
+ CFont* m_scaledFont;
+ qreal m_scaledFontSizeInPixels;
+ CFont* m_activeFont;
};
class QFontEngineMultiS60 : public QFontEngineMulti
diff --git a/src/gui/text/qtextoption.cpp b/src/gui/text/qtextoption.cpp
index 0c8aeec..c1e254c 100644
--- a/src/gui/text/qtextoption.cpp
+++ b/src/gui/text/qtextoption.cpp
@@ -52,6 +52,9 @@ struct QTextOptionPrivate
/*!
Constructs a text option with default properties for text.
+ The text alignment property is set to Qt::AlignLeft. The
+ word wrap property is set to QTextOption::WordWrap. The
+ using of design metrics flag is set to false.
*/
QTextOption::QTextOption()
: align(Qt::AlignLeft),
@@ -67,6 +70,8 @@ QTextOption::QTextOption()
/*!
Constructs a text option with the given \a alignment for text.
+ The word wrap property is set to QTextOption::WordWrap. The using
+ of design metrics flag is set to false.
*/
QTextOption::QTextOption(Qt::Alignment alignment)
: align(alignment),
diff --git a/src/gui/util/qsystemtrayicon_mac.mm b/src/gui/util/qsystemtrayicon_mac.mm
index ae805f6..0265a83 100644
--- a/src/gui/util/qsystemtrayicon_mac.mm
+++ b/src/gui/util/qsystemtrayicon_mac.mm
@@ -569,16 +569,3 @@ private:
}
@end
-
-/* Done here because this is the only .mm for now! -Sam */
-QMacCocoaAutoReleasePool::QMacCocoaAutoReleasePool()
-{
- NSApplicationLoad();
- pool = (void*)[[NSAutoreleasePool alloc] init];
-}
-
-QMacCocoaAutoReleasePool::~QMacCocoaAutoReleasePool()
-{
- [(NSAutoreleasePool*)pool release];
-}
-
diff --git a/src/gui/util/qsystemtrayicon_win.cpp b/src/gui/util/qsystemtrayicon_win.cpp
index 092909f..8e482e0 100644
--- a/src/gui/util/qsystemtrayicon_win.cpp
+++ b/src/gui/util/qsystemtrayicon_win.cpp
@@ -325,8 +325,6 @@ bool QSystemTrayIconSys::winEvent( MSG *m, long *result )
q->contextMenu()->move(gpos);
}
#endif
- q->contextMenu()->activateWindow();
- //Must be activated for proper keyboardfocus and menu closing on windows:
}
emit q->activated(QSystemTrayIcon::Context);
break;
diff --git a/src/gui/widgets/qlabel.cpp b/src/gui/widgets/qlabel.cpp
index 8428ad7..c779312 100644
--- a/src/gui/widgets/qlabel.cpp
+++ b/src/gui/widgets/qlabel.cpp
@@ -781,6 +781,95 @@ Qt::TextInteractionFlags QLabel::textInteractionFlags() const
return d->textInteractionFlags;
}
+/*!
+ Selects text from position \a start and for \a length characters.
+
+ \sa selectedText()
+
+ \bold{Note:} The textInteractionFlags set on the label need to include
+ either TextSelectableByMouse or TextSelectableByKeyboard.
+
+ \since 4.7
+*/
+void QLabel::setSelection(int start, int length)
+{
+ Q_D(QLabel);
+ if (d->control) {
+ d->ensureTextPopulated();
+ QTextCursor cursor = d->control->textCursor();
+ cursor.setPosition(start);
+ cursor.setPosition(start + length, QTextCursor::KeepAnchor);
+ d->control->setTextCursor(cursor);
+ }
+}
+
+/*!
+ \property QLabel::hasSelectedText
+ \brief whether there is any text selected
+
+ hasSelectedText() returns true if some or all of the text has been
+ selected by the user; otherwise returns false.
+
+ By default, this property is false.
+
+ \sa selectedText()
+
+ \bold{Note:} The textInteractionFlags set on the label need to include
+ either TextSelectableByMouse or TextSelectableByKeyboard.
+
+ \since 4.7
+*/
+bool QLabel::hasSelectedText() const
+{
+ Q_D(const QLabel);
+ if (d->control)
+ return d->control->textCursor().hasSelection();
+ return false;
+}
+
+/*!
+ \property QLabel::selectedText
+ \brief the selected text
+
+ If there is no selected text this property's value is
+ an empty string.
+
+ By default, this property contains an empty string.
+
+ \sa hasSelectedText()
+
+ \bold{Note:} The textInteractionFlags set on the label need to include
+ either TextSelectableByMouse or TextSelectableByKeyboard.
+
+ \since 4.7
+*/
+QString QLabel::selectedText() const
+{
+ Q_D(const QLabel);
+ if (d->control)
+ return d->control->textCursor().selectedText();
+ return QString();
+}
+
+/*!
+ selectionStart() returns the index of the first selected character in the
+ label or -1 if no text is selected.
+
+ \sa selectedText()
+
+ \bold{Note:} The textInteractionFlags set on the label need to include
+ either TextSelectableByMouse or TextSelectableByKeyboard.
+
+ \since 4.7
+*/
+int QLabel::selectionStart() const
+{
+ Q_D(const QLabel);
+ if (d->control && d->control->textCursor().hasSelection())
+ return d->control->textCursor().selectionStart();
+ return -1;
+}
+
/*!\reimp
*/
QSize QLabel::sizeHint() const
diff --git a/src/gui/widgets/qlabel.h b/src/gui/widgets/qlabel.h
index d916078..54babb1 100644
--- a/src/gui/widgets/qlabel.h
+++ b/src/gui/widgets/qlabel.h
@@ -65,6 +65,8 @@ class Q_GUI_EXPORT QLabel : public QFrame
Q_PROPERTY(int indent READ indent WRITE setIndent)
Q_PROPERTY(bool openExternalLinks READ openExternalLinks WRITE setOpenExternalLinks)
Q_PROPERTY(Qt::TextInteractionFlags textInteractionFlags READ textInteractionFlags WRITE setTextInteractionFlags)
+ Q_PROPERTY(bool hasSelectedText READ hasSelectedText)
+ Q_PROPERTY(QString selectedText READ selectedText)
public:
explicit QLabel(QWidget *parent=0, Qt::WindowFlags f=0);
@@ -111,6 +113,11 @@ public:
void setTextInteractionFlags(Qt::TextInteractionFlags flags);
Qt::TextInteractionFlags textInteractionFlags() const;
+ void setSelection(int, int);
+ bool hasSelectedText() const;
+ QString selectedText() const;
+ int selectionStart() const;
+
public Q_SLOTS:
void setText(const QString &);
void setPixmap(const QPixmap &);
diff --git a/src/gui/widgets/qlinecontrol.cpp b/src/gui/widgets/qlinecontrol.cpp
index 414c2ed..b0a64ea 100644
--- a/src/gui/widgets/qlinecontrol.cpp
+++ b/src/gui/widgets/qlinecontrol.cpp
@@ -524,8 +524,11 @@ void QLineControl::draw(QPainter *painter, const QPoint &offset, const QRect &cl
m_textLayout.draw(painter, offset, selections, clip);
if (flags & DrawCursor){
+ int cursor = m_cursor;
+ if (m_preeditCursor != -1)
+ cursor += m_preeditCursor;
if(!m_blinkPeriod || m_blinkStatus)
- m_textLayout.drawCursor(painter, offset, m_cursor, m_cursorWidth);
+ m_textLayout.drawCursor(painter, offset, cursor, m_cursorWidth);
}
}
diff --git a/src/gui/widgets/qlinecontrol_p.h b/src/gui/widgets/qlinecontrol_p.h
index 301ff72..d6f2705 100644
--- a/src/gui/widgets/qlinecontrol_p.h
+++ b/src/gui/widgets/qlinecontrol_p.h
@@ -549,7 +549,10 @@ inline qreal QLineControl::cursorToX(int cursor) const
inline qreal QLineControl::cursorToX() const
{
- return cursorToX(m_cursor);
+ int cursor = m_cursor;
+ if (m_preeditCursor != -1)
+ cursor += m_preeditCursor;
+ return cursorToX(cursor);
}
inline bool QLineControl::isReadOnly() const
diff --git a/src/gui/widgets/qmainwindow.cpp b/src/gui/widgets/qmainwindow.cpp
index 1622191..269cd12 100644
--- a/src/gui/widgets/qmainwindow.cpp
+++ b/src/gui/widgets/qmainwindow.cpp
@@ -119,8 +119,6 @@ void QMainWindowPrivate::init()
q->setAttribute(Qt::WA_Hover);
#ifdef QT_SOFTKEYS_ENABLED
menuBarAction = QSoftKeyManager::createAction(QSoftKeyManager::MenuSoftKey, q);
- menuBarAction->setObjectName(QLatin1String("_q_menuSoftKeyAction"));
- menuBarAction->setVisible(false);
#endif
}
diff --git a/src/gui/widgets/qmainwindowlayout_mac.mm b/src/gui/widgets/qmainwindowlayout_mac.mm
index ee79f5a..d92168a 100644
--- a/src/gui/widgets/qmainwindowlayout_mac.mm
+++ b/src/gui/widgets/qmainwindowlayout_mac.mm
@@ -472,14 +472,20 @@ void QMainWindowLayout::removeFromMacToolbar(QToolBar *toolbar)
void QMainWindowLayout::cleanUpMacToolbarItems()
{
- for (int i = 0; i < toolbarItemsCopy.size(); ++i)
+#ifdef QT_MAC_USE_COCOA
+ QMacCocoaAutoReleasePool pool;
+#endif
+ for (int i = 0; i < toolbarItemsCopy.size(); ++i) {
+#ifdef QT_MAC_USE_COCOA
+ NSToolbarItem *item = static_cast<NSToolbarItem *>(toolbarItemsCopy.at(i));
+ [item setView:0];
+#endif
CFRelease(toolbarItemsCopy.at(i));
+ }
toolbarItemsCopy.clear();
unifiedToolbarHash.clear();
#ifdef QT_MAC_USE_COCOA
- QMacCocoaAutoReleasePool pool;
-
OSWindowRef window = qt_mac_window_for(layoutState.mainWindow);
NSToolbar *macToolbar = [window toolbar];
if (macToolbar) {
diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp
index 5031d88..8ce7cc0 100644
--- a/src/gui/widgets/qmenu.cpp
+++ b/src/gui/widgets/qmenu.cpp
@@ -1588,10 +1588,9 @@ QAction *QMenu::insertSeparator(QAction *before)
}
/*!
- This will set the default action to \a act. The default action may
- have a visual queue depending on the current QStyle. A default
- action is usually meant to indicate what will defaultly happen on a
- drop, as shown in a context menu.
+ This sets the default action to \a act. The default action may have
+ a visual cue, depending on the current QStyle. A default action
+ usually indicates what will happen by default when a drop occurs.
\sa defaultAction()
*/
diff --git a/src/gui/widgets/qmenu_mac.mm b/src/gui/widgets/qmenu_mac.mm
index 32968ee..658a020 100644
--- a/src/gui/widgets/qmenu_mac.mm
+++ b/src/gui/widgets/qmenu_mac.mm
@@ -175,6 +175,22 @@ static quint32 constructModifierMask(quint32 accel_key)
return ret;
}
+static void cancelAllMenuTracking()
+{
+#ifdef QT_MAC_USE_COCOA
+ QMacCocoaAutoReleasePool pool;
+ NSMenu *mainMenu = [NSApp mainMenu];
+ [mainMenu cancelTracking];
+ for (NSMenuItem *item in [mainMenu itemArray]) {
+ if ([item submenu]) {
+ [[item submenu] cancelTracking];
+ }
+ }
+#else
+ CancelMenuTracking(AcquireRootMenu(), true, 0);
+#endif
+}
+
static bool actualMenuItemVisibility(const QMenuBarPrivate::QMacMenuBarPrivate *mbp,
const QMacMenuAction *action)
{
@@ -1796,6 +1812,12 @@ void QMenuBarPrivate::macDestroyMenuBar()
mac_menubar = 0;
if (qt_mac_current_menubar.qmenubar == q) {
+#ifdef QT_MAC_USE_COCOA
+ QT_MANGLE_NAMESPACE(QCocoaMenuLoader) *loader = getMenuLoader();
+ [loader removeActionsFromAppMenu];
+#else
+ cancelAllMenuTracking();
+#endif
extern void qt_event_request_menubarupdate(); //qapplication_mac.cpp
qt_event_request_menubarupdate();
}
@@ -1966,20 +1988,6 @@ static QMenuBar *findMenubarForWindow(QWidget *w)
return mb;
}
-static void cancelAllMenuTracking()
-{
-#ifdef QT_MAC_USE_COCOA
- QMacCocoaAutoReleasePool pool;
- NSMenu *mainMenu = [NSApp mainMenu];
- [mainMenu cancelTracking];
- for (NSMenuItem *item in [mainMenu itemArray]) {
- if ([item submenu]) {
- [[item submenu] cancelTracking];
- }
- }
-#endif
-}
-
void qt_mac_clear_menubar()
{
if (QApplication::testAttribute(Qt::AA_MacPluginApplication))
diff --git a/src/gui/widgets/qmenu_p.h b/src/gui/widgets/qmenu_p.h
index b7272f7..aaed6b1 100644
--- a/src/gui/widgets/qmenu_p.h
+++ b/src/gui/widgets/qmenu_p.h
@@ -71,6 +71,7 @@ QT_BEGIN_NAMESPACE
#ifndef QT_NO_MENU
#ifdef Q_WS_S60
+void qt_symbian_next_menu_from_action(QWidget* actionContainer);
void qt_symbian_show_toplevel(CEikMenuPane* menuPane);
void qt_symbian_show_submenu(CEikMenuPane* menuPane, int id);
#endif // Q_WS_S60
@@ -87,7 +88,7 @@ QT_BEGIN_NAMESPACE
typedef void NSMenuItem;
# endif //__OBJC__
struct QMacMenuAction {
- QMacMenuAction()
+ QMacMenuAction()
#ifndef QT_MAC_USE_COCOA
: command(0)
#else
@@ -124,7 +125,7 @@ typedef QList<QMenuMergeItem> QMenuMergeList;
#ifdef Q_WS_WINCE
struct QWceMenuAction {
- uint command;
+ uint command;
QPointer<QAction> action;
HMENU menuHandle;
QWceMenuAction() : menuHandle(0), command(0) {}
@@ -340,7 +341,7 @@ public:
QList<QWceMenuAction*> actionItems;
HMENU menuHandle;
QWceMenuPrivate();
- ~QWceMenuPrivate();
+ ~QWceMenuPrivate();
void addAction(QAction *, QWceMenuAction* =0);
void addAction(QWceMenuAction *, QWceMenuAction* =0);
void syncAction(QWceMenuAction *);
diff --git a/src/gui/widgets/qmenu_symbian.cpp b/src/gui/widgets/qmenu_symbian.cpp
index 28b27d4..eae97a6 100644
--- a/src/gui/widgets/qmenu_symbian.cpp
+++ b/src/gui/widgets/qmenu_symbian.cpp
@@ -81,6 +81,7 @@ static QList<QMenuBar*> nativeMenuBars;
static uint qt_symbian_menu_static_cmd_id = QT_SYMBIAN_FIRST_MENU_ITEM;
static QPointer<QWidget> widgetWithContextMenu;
static QList<QAction*> contextMenuActionList;
+static QWidget* actionMenu = NULL;
static int contexMenuCommand=0;
bool menuExists()
@@ -224,8 +225,26 @@ static void rebuildMenu()
}
#ifdef Q_WS_S60
+void qt_symbian_next_menu_from_action(QWidget *actionContainer)
+{
+ actionMenu = actionContainer;
+}
+
void qt_symbian_show_toplevel( CEikMenuPane* menuPane)
{
+ if (actionMenu) {
+ QMenuBarPrivate *mb = 0;
+ mb = menubars()->value(actionMenu);
+ qt_symbian_menu_static_cmd_id = QT_SYMBIAN_FIRST_MENU_ITEM;
+ deleteAll( &symbianMenus );
+ Q_ASSERT(mb);
+ mb->symbian_menubar->rebuild();
+ for (int i = 0; i < symbianMenus.count(); ++i)
+ QT_TRAP_THROWING(menuPane->AddMenuItemL(symbianMenus.at(i)->menuItemData));
+ actionMenu = NULL;
+ return;
+ }
+
if (!menuExists())
return;
rebuildMenu();
@@ -271,10 +290,16 @@ int QMenuBarPrivate::symbianCommands(int command)
void QMenuBarPrivate::symbianCreateMenuBar(QWidget *parent)
{
Q_Q(QMenuBar);
- if (parent && parent->isWindow()){
- menubars()->insert(q->window(), this);
- symbian_menubar = new QSymbianMenuBarPrivate(this);
- nativeMenuBars.append(q);
+ if (parent) {
+ if(parent->isWindow()) {
+ menubars()->insert(q->window(), this);
+ symbian_menubar = new QSymbianMenuBarPrivate(this);
+ nativeMenuBars.append(q);
+ } else {
+ menubars()->insert(q->parentWidget(), this);
+ symbian_menubar = new QSymbianMenuBarPrivate(this);
+ nativeMenuBars.append(q);
+ }
}
}
@@ -284,6 +309,7 @@ void QMenuBarPrivate::symbianDestroyMenuBar()
int index = nativeMenuBars.indexOf(q);
nativeMenuBars.removeAt(index);
menubars()->remove(q->window(), this);
+ menubars()->remove(q->parentWidget(), this);
rebuildMenu();
if (symbian_menubar)
delete symbian_menubar;
diff --git a/src/gui/widgets/qmenubar.cpp b/src/gui/widgets/qmenubar.cpp
index 0e14385..9caadb7 100644
--- a/src/gui/widgets/qmenubar.cpp
+++ b/src/gui/widgets/qmenubar.cpp
@@ -667,7 +667,7 @@ void QMenuBar::initStyleOption(QStyleOptionMenuItem *option, const QAction *acti
\i Application Menu | About <application name>
\i The application name is fetched from the \c {Info.plist} file
(see note below). If this entry is not found no About item
- will appear in the Application Menu.
+ will appear in the Application Menu.
\row \i config, options, setup, settings or preferences
\i Application Menu | Preferences
\i If this entry is not found the Settings item will be disabled
diff --git a/src/gui/widgets/qprintpreviewwidget.cpp b/src/gui/widgets/qprintpreviewwidget.cpp
index 747a227..45b15ef 100644
--- a/src/gui/widgets/qprintpreviewwidget.cpp
+++ b/src/gui/widgets/qprintpreviewwidget.cpp
@@ -151,7 +151,11 @@ class GraphicsView : public QGraphicsView
public:
GraphicsView(QWidget* parent = 0)
: QGraphicsView(parent)
- {}
+ {
+#ifdef Q_WS_MAC
+ setFrameStyle(QFrame::NoFrame);
+#endif
+ }
signals:
void resized();
diff --git a/src/network/access/qfilenetworkreply.cpp b/src/network/access/qfilenetworkreply.cpp
index 8c5065c..4ac9a8c 100644
--- a/src/network/access/qfilenetworkreply.cpp
+++ b/src/network/access/qfilenetworkreply.cpp
@@ -49,10 +49,15 @@
QT_BEGIN_NAMESPACE
QFileNetworkReplyPrivate::QFileNetworkReplyPrivate()
- : QNetworkReplyPrivate(), realFileSize(0)
+ : QNetworkReplyPrivate(), fileEngine(0), fileSize(0), filePos(0)
{
}
+QFileNetworkReplyPrivate::~QFileNetworkReplyPrivate()
+{
+ delete fileEngine;
+}
+
QFileNetworkReply::~QFileNetworkReply()
{
}
@@ -94,9 +99,8 @@ QFileNetworkReply::QFileNetworkReply(QObject *parent, const QNetworkRequest &req
if (fileName.isEmpty()) {
fileName = url.toString(QUrl::RemoveAuthority | QUrl::RemoveFragment | QUrl::RemoveQuery);
}
- d->realFile.setFileName(fileName);
- QFileInfo fi(d->realFile);
+ QFileInfo fi(fileName);
if (fi.isDir()) {
QString msg = QCoreApplication::translate("QNetworkAccessFileBackend", "Cannot open %1: Path is a directory").arg(url.toString());
setError(QNetworkReply::ContentOperationNotPermittedError, msg);
@@ -106,14 +110,15 @@ QFileNetworkReply::QFileNetworkReply(QObject *parent, const QNetworkRequest &req
return;
}
- bool opened = d->realFile.open(QIODevice::ReadOnly | QIODevice::Unbuffered);
+ d->fileEngine = QAbstractFileEngine::create(fileName);
+ bool opened = d->fileEngine->open(QIODevice::ReadOnly | QIODevice::Unbuffered);
// could we open the file?
if (!opened) {
QString msg = QCoreApplication::translate("QNetworkAccessFileBackend", "Error opening %1: %2")
- .arg(d->realFile.fileName(), d->realFile.errorString());
+ .arg(fileName, d->fileEngine->errorString());
- if (d->realFile.exists()) {
+ if (fi.exists()) {
setError(QNetworkReply::ContentAccessDenied, msg);
QMetaObject::invokeMethod(this, "error", Qt::QueuedConnection,
Q_ARG(QNetworkReply::NetworkError, QNetworkReply::ContentAccessDenied));
@@ -126,13 +131,13 @@ QFileNetworkReply::QFileNetworkReply(QObject *parent, const QNetworkRequest &req
return;
}
- d->realFileSize = fi.size();
+ d->fileSize = fi.size();
setHeader(QNetworkRequest::LastModifiedHeader, fi.lastModified());
- setHeader(QNetworkRequest::ContentLengthHeader, d->realFileSize);
+ setHeader(QNetworkRequest::ContentLengthHeader, d->fileSize);
QMetaObject::invokeMethod(this, "metaDataChanged", Qt::QueuedConnection);
QMetaObject::invokeMethod(this, "downloadProgress", Qt::QueuedConnection,
- Q_ARG(qint64, d->realFileSize), Q_ARG(qint64, d->realFileSize));
+ Q_ARG(qint64, d->fileSize), Q_ARG(qint64, d->fileSize));
QMetaObject::invokeMethod(this, "readyRead", Qt::QueuedConnection);
QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection);
}
@@ -146,20 +151,25 @@ void QFileNetworkReply::close()
{
Q_D(QFileNetworkReply);
QNetworkReply::close();
- d->realFile.close();
+ if (d->fileEngine)
+ d->fileEngine->close();
}
void QFileNetworkReply::abort()
{
Q_D(QFileNetworkReply);
QNetworkReply::close();
- d->realFile.close();
+ if (d->fileEngine)
+ d->fileEngine->close();
}
qint64 QFileNetworkReply::bytesAvailable() const
{
Q_D(const QFileNetworkReply);
- return QNetworkReply::bytesAvailable() + d->realFile.bytesAvailable();
+ if (!d->fileEngine)
+ return 0;
+
+ return QNetworkReply::bytesAvailable() + d->fileSize - d->filePos;
}
bool QFileNetworkReply::isSequential () const
@@ -170,7 +180,7 @@ bool QFileNetworkReply::isSequential () const
qint64 QFileNetworkReply::size() const
{
Q_D(const QFileNetworkReply);
- return d->realFileSize;
+ return d->fileSize;
}
/*!
@@ -179,11 +189,17 @@ qint64 QFileNetworkReply::size() const
qint64 QFileNetworkReply::readData(char *data, qint64 maxlen)
{
Q_D(QFileNetworkReply);
- qint64 ret = d->realFile.read(data, maxlen);
- if (ret == 0 && bytesAvailable() == 0)
+ if (!d->fileEngine)
+ return -1;
+
+ qint64 ret = d->fileEngine->read(data, maxlen);
+ if (ret == 0 && bytesAvailable() == 0) {
return -1; // everything had been read
- else
- return ret;
+ } else if (ret > 0) {
+ d->filePos += ret;
+ }
+
+ return ret;
}
diff --git a/src/network/access/qfilenetworkreply_p.h b/src/network/access/qfilenetworkreply_p.h
index 125fa2e..710ec9f 100644
--- a/src/network/access/qfilenetworkreply_p.h
+++ b/src/network/access/qfilenetworkreply_p.h
@@ -57,6 +57,7 @@
#include "qnetworkreply_p.h"
#include "qnetworkaccessmanager.h"
#include <QFile>
+#include <QAbstractFileEngine>
QT_BEGIN_NAMESPACE
@@ -85,9 +86,11 @@ class QFileNetworkReplyPrivate: public QNetworkReplyPrivate
{
public:
QFileNetworkReplyPrivate();
+ ~QFileNetworkReplyPrivate();
- QFile realFile;
- qint64 realFileSize;
+ QAbstractFileEngine *fileEngine;
+ qint64 fileSize;
+ qint64 filePos;
virtual bool isFinished() const;
diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp
index 20baac8..cc6a1c8 100644
--- a/src/network/access/qhttpnetworkconnection.cpp
+++ b/src/network/access/qhttpnetworkconnection.cpp
@@ -564,7 +564,8 @@ bool QHttpNetworkConnectionPrivate::fillPipeline(QList<HttpMessagePair> &queue,
}
-QString QHttpNetworkConnectionPrivate::errorDetail(QNetworkReply::NetworkError errorCode, QAbstractSocket* socket)
+QString QHttpNetworkConnectionPrivate::errorDetail(QNetworkReply::NetworkError errorCode, QAbstractSocket* socket,
+ const QString &extraDetail)
{
Q_ASSERT(socket);
@@ -581,7 +582,7 @@ QString QHttpNetworkConnectionPrivate::errorDetail(QNetworkReply::NetworkError e
errorString = QLatin1String(QT_TRANSLATE_NOOP("QHttp", "Connection closed"));
break;
case QNetworkReply::TimeoutError:
- errorString = QLatin1String(QT_TRANSLATE_NOOP("QHttp", "HTTP request failed"));
+ errorString = QLatin1String(QT_TRANSLATE_NOOP("QAbstractSocket", "Socket operation timed out"));
break;
case QNetworkReply::ProxyAuthenticationRequiredError:
errorString = QLatin1String(QT_TRANSLATE_NOOP("QHttp", "Proxy requires authentication"));
@@ -600,7 +601,7 @@ QString QHttpNetworkConnectionPrivate::errorDetail(QNetworkReply::NetworkError e
break;
default:
// all other errors are treated as QNetworkReply::UnknownNetworkError
- errorString = QLatin1String(QT_TRANSLATE_NOOP("QHttp", "HTTP request failed"));
+ errorString = extraDetail;
break;
}
return errorString;
@@ -687,8 +688,14 @@ void QHttpNetworkConnectionPrivate::_q_startNextRequest()
if (channels[i].resendCurrent) {
channels[i].resendCurrent = false;
channels[i].state = QHttpNetworkConnectionChannel::IdleState;
- if (channels[i].reply)
+ if (channels[i].reply) {
+
+ // if this is not possible, error will be emitted and connection terminated
+ if (!channels[i].resetUploadData())
+ continue;
+
channels[i].sendRequest();
+ }
}
}
diff --git a/src/network/access/qhttpnetworkconnection_p.h b/src/network/access/qhttpnetworkconnection_p.h
index 76da883..03cf09c 100644
--- a/src/network/access/qhttpnetworkconnection_p.h
+++ b/src/network/access/qhttpnetworkconnection_p.h
@@ -185,7 +185,8 @@ public:
void createAuthorization(QAbstractSocket *socket, QHttpNetworkRequest &request);
- QString errorDetail(QNetworkReply::NetworkError errorCode, QAbstractSocket *socket);
+ QString errorDetail(QNetworkReply::NetworkError errorCode, QAbstractSocket *socket,
+ const QString &extraDetail = QString());
#ifndef QT_NO_COMPRESS
bool expand(QAbstractSocket *socket, QHttpNetworkReply *reply, bool dataComplete);
diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp
index 1955dba..70a301d 100644
--- a/src/network/access/qhttpnetworkconnectionchannel.cpp
+++ b/src/network/access/qhttpnetworkconnectionchannel.cpp
@@ -674,15 +674,8 @@ void QHttpNetworkConnectionChannel::handleStatus()
case 407: // proxy auth required
if (connection->d_func()->handleAuthenticateChallenge(socket, reply, (statusCode == 407), resend)) {
if (resend) {
- QNonContiguousByteDevice* uploadByteDevice = request.uploadByteDevice();
- if (uploadByteDevice) {
- if (uploadByteDevice->reset()) {
- written = 0;
- } else {
- connection->d_func()->emitReplyError(socket, reply, QNetworkReply::ContentReSendError);
- break;
- }
- }
+ if (!resetUploadData())
+ break;
reply->d_func()->eraseData();
@@ -712,6 +705,22 @@ void QHttpNetworkConnectionChannel::handleStatus()
}
}
+bool QHttpNetworkConnectionChannel::resetUploadData()
+{
+ QNonContiguousByteDevice* uploadByteDevice = request.uploadByteDevice();
+ if (!uploadByteDevice)
+ return true;
+
+ if (uploadByteDevice->reset()) {
+ written = 0;
+ return true;
+ } else {
+ connection->d_func()->emitReplyError(socket, reply, QNetworkReply::ContentReSendError);
+ return false;
+ }
+}
+
+
void QHttpNetworkConnectionChannel::pipelineInto(HttpMessagePair &pair)
{
// this is only called for simple GET
@@ -872,7 +881,7 @@ void QHttpNetworkConnectionChannel::_q_error(QAbstractSocket::SocketError socket
break;
}
QPointer<QObject> that = connection;
- QString errorString = connection->d_func()->errorDetail(errorCode, socket);
+ QString errorString = connection->d_func()->errorDetail(errorCode, socket, socket->errorString());
if (send2Reply) {
if (reply) {
reply->d_func()->errorString = errorString;
diff --git a/src/network/access/qhttpnetworkconnectionchannel_p.h b/src/network/access/qhttpnetworkconnectionchannel_p.h
index c30c236..75ab50d 100644
--- a/src/network/access/qhttpnetworkconnectionchannel_p.h
+++ b/src/network/access/qhttpnetworkconnectionchannel_p.h
@@ -151,6 +151,8 @@ public:
void allDone(); // reply header + body have been read
void handleStatus(); // called from allDone()
+ bool resetUploadData(); // return true if resetting worked or there is no upload data
+
void pipelineInto(HttpMessagePair &pair);
void requeueCurrentlyPipelinedRequests();
void detectPipeliningSupport();
diff --git a/src/network/access/qhttpnetworkheader.cpp b/src/network/access/qhttpnetworkheader.cpp
index c2cc69c..669f9cf 100644
--- a/src/network/access/qhttpnetworkheader.cpp
+++ b/src/network/access/qhttpnetworkheader.cpp
@@ -80,7 +80,7 @@ QByteArray QHttpNetworkHeaderPrivate::headerField(const QByteArray &name, const
QByteArray result;
bool first = true;
- foreach (QByteArray value, allValues) {
+ foreach (const QByteArray &value, allValues) {
if (!first)
result += ", ";
first = false;
diff --git a/src/network/access/qnetworkaccesshttpbackend.cpp b/src/network/access/qnetworkaccesshttpbackend.cpp
index 519bc95..8e02723 100644
--- a/src/network/access/qnetworkaccesshttpbackend.cpp
+++ b/src/network/access/qnetworkaccesshttpbackend.cpp
@@ -767,7 +767,7 @@ void QNetworkAccessHttpBackend::replyHeaderChanged()
QByteArray value = rawHeader(it->first);
if (!value.isEmpty()) {
if (qstricmp(it->first.constData(), "set-cookie") == 0)
- value += "\n";
+ value += '\n';
else
value += ", ";
}
diff --git a/src/network/access/qnetworkreply.cpp b/src/network/access/qnetworkreply.cpp
index be4339c..15748fe 100644
--- a/src/network/access/qnetworkreply.cpp
+++ b/src/network/access/qnetworkreply.cpp
@@ -533,6 +533,15 @@ QByteArray QNetworkReply::rawHeader(const QByteArray &headerName) const
return QByteArray();
}
+/*! \typedef QNetworkReply::RawHeaderPair
+
+ RawHeaderPair is a QPair<QByteArray, QByteArray> where the first
+ QByteArray is the header name and the second is the header.
+ */
+
+/*!
+ Returns a list of raw header pairs.
+ */
const QList<QNetworkReply::RawHeaderPair>& QNetworkReply::rawHeaderPairs() const
{
Q_D(const QNetworkReply);
diff --git a/src/network/access/qnetworkrequest.cpp b/src/network/access/qnetworkrequest.cpp
index 07ff7b4..b8438a2 100644
--- a/src/network/access/qnetworkrequest.cpp
+++ b/src/network/access/qnetworkrequest.cpp
@@ -532,13 +532,24 @@ QNetworkRequest::Priority QNetworkRequest::priority() const
return d->priority;
}
+/*! \enum QNetworkRequest::Priority
+
+ \since 4.7
+
+ This enum lists the possible network request priorities.
+
+ \value HighPriority High priority
+ \value NormalPriority Normal priority
+ \value LowPriority Low priority
+ */
+
/*!
\since 4.7
- Set the priority of this request.
+ Set the priority of this request to \a priority.
- \note The priority is only a hint to the network access manager.
- It can use it or not. Currently it is used for HTTP to
+ \note The \a priority is only a hint to the network access
+ manager. It can use it or not. Currently it is used for HTTP to
decide which request should be sent first to a server.
\sa priority()
@@ -681,7 +692,7 @@ static QVariant parseCookieHeader(const QByteArray &raw)
{
QList<QNetworkCookie> result;
QList<QByteArray> cookieList = raw.split(';');
- foreach (QByteArray cookie, cookieList) {
+ foreach (const QByteArray &cookie, cookieList) {
QList<QNetworkCookie> parsed = QNetworkCookie::parseCookies(cookie.trimmed());
if (parsed.count() != 1)
return QVariant(); // invalid Cookie: header
diff --git a/src/network/kernel/qauthenticator.cpp b/src/network/kernel/qauthenticator.cpp
index 193a043..e4023c8 100644
--- a/src/network/kernel/qauthenticator.cpp
+++ b/src/network/kernel/qauthenticator.cpp
@@ -270,7 +270,7 @@ void QAuthenticatorPrivate::parseHttpResponse(const QHttpResponseHeader &header,
break;
case Ntlm:
// #### extract from header
- realm = QString();
+ realm.clear();
break;
case DigestMd5: {
realm = QString::fromLatin1(options.value("realm"));
@@ -281,7 +281,7 @@ void QAuthenticatorPrivate::parseHttpResponse(const QHttpResponseHeader &header,
break;
}
default:
- realm = QString();
+ realm.clear();
challenge = QByteArray();
phase = Invalid;
}
diff --git a/src/network/kernel/qnetworkinterface.cpp b/src/network/kernel/qnetworkinterface.cpp
index 367e3c4..1115c63 100644
--- a/src/network/kernel/qnetworkinterface.cpp
+++ b/src/network/kernel/qnetworkinterface.cpp
@@ -541,7 +541,7 @@ QList<QNetworkInterface> QNetworkInterface::allInterfaces()
{
QList<QSharedDataPointer<QNetworkInterfacePrivate> > privs = manager()->allInterfaces();
QList<QNetworkInterface> result;
- foreach (QSharedDataPointer<QNetworkInterfacePrivate> p, privs) {
+ foreach (const QSharedDataPointer<QNetworkInterfacePrivate> &p, privs) {
QNetworkInterface item;
item.d = p;
result << item;
@@ -560,7 +560,7 @@ QList<QHostAddress> QNetworkInterface::allAddresses()
{
QList<QSharedDataPointer<QNetworkInterfacePrivate> > privs = manager()->allInterfaces();
QList<QHostAddress> result;
- foreach (const QSharedDataPointer<QNetworkInterfacePrivate> p, privs) {
+ foreach (const QSharedDataPointer<QNetworkInterfacePrivate> &p, privs) {
foreach (const QNetworkAddressEntry &entry, p->addressEntries)
result += entry.ip();
}
diff --git a/src/network/socket/qlocalserver.cpp b/src/network/socket/qlocalserver.cpp
index ede3c89..ef7fc02 100644
--- a/src/network/socket/qlocalserver.cpp
+++ b/src/network/socket/qlocalserver.cpp
@@ -122,9 +122,9 @@ void QLocalServer::close()
qDeleteAll(d->pendingConnections);
d->pendingConnections.clear();
d->closeServer();
- d->serverName = QString();
- d->fullServerName = QString();
- d->errorString = QString();
+ d->serverName.clear();
+ d->fullServerName.clear();
+ d->errorString.clear();
d->error = QAbstractSocket::UnknownSocketError;
}
@@ -226,8 +226,8 @@ bool QLocalServer::listen(const QString &name)
}
if (!d->listen(name)) {
- d->serverName = QString();
- d->fullServerName = QString();
+ d->serverName.clear();
+ d->fullServerName.clear();
return false;
}
diff --git a/src/network/socket/qlocalsocket_tcp.cpp b/src/network/socket/qlocalsocket_tcp.cpp
index 9f574d4..5b5e84f 100644
--- a/src/network/socket/qlocalsocket_tcp.cpp
+++ b/src/network/socket/qlocalsocket_tcp.cpp
@@ -102,8 +102,8 @@ void QLocalSocketPrivate::_q_stateChanged(QAbstractSocket::SocketState newState)
switch(newState) {
case QAbstractSocket::UnconnectedState:
state = QLocalSocket::UnconnectedState;
- serverName = QString();
- fullServerName = QString();
+ serverName.clear();
+ fullServerName.clear();
break;
case QAbstractSocket::ConnectingState:
state = QLocalSocket::ConnectingState;
@@ -218,7 +218,7 @@ void QLocalSocket::connectToServer(const QString &name, OpenMode openMode)
|| state() == ConnectingState)
return;
- d->errorString = QString();
+ d->errorString.clear();
d->state = ConnectingState;
emit stateChanged(d->state);
@@ -333,8 +333,8 @@ void QLocalSocket::close()
{
Q_D(QLocalSocket);
d->tcpSocket->close();
- d->serverName = QString();
- d->fullServerName = QString();
+ d->serverName.clear();
+ d->fullServerName.clear();
QIODevice::close();
}
diff --git a/src/network/socket/qlocalsocket_unix.cpp b/src/network/socket/qlocalsocket_unix.cpp
index 73c2465..1ca11d8 100644
--- a/src/network/socket/qlocalsocket_unix.cpp
+++ b/src/network/socket/qlocalsocket_unix.cpp
@@ -109,8 +109,8 @@ void QLocalSocketPrivate::_q_stateChanged(QAbstractSocket::SocketState newState)
switch(newState) {
case QAbstractSocket::UnconnectedState:
state = QLocalSocket::UnconnectedState;
- serverName = QString();
- fullServerName = QString();
+ serverName.clear();
+ fullServerName.clear();
break;
case QAbstractSocket::ConnectingState:
state = QLocalSocket::ConnectingState;
@@ -225,7 +225,7 @@ void QLocalSocket::connectToServer(const QString &name, OpenMode openMode)
|| state() == ConnectingState)
return;
- d->errorString = QString();
+ d->errorString.clear();
d->unixSocket.setSocketState(QAbstractSocket::ConnectingState);
d->state = ConnectingState;
emit stateChanged(d->state);
@@ -341,7 +341,7 @@ void QLocalSocketPrivate::_q_connectToSocket()
errorOccurred(QLocalSocket::UnknownSocketError, function);
}
connectingSocket = -1;
- connectingName = QString();
+ connectingName.clear();
connectingOpenMode = 0;
}
@@ -438,10 +438,10 @@ void QLocalSocket::close()
if (d->connectingSocket != -1)
::close(d->connectingSocket);
d->connectingSocket = -1;
- d->connectingName = QString();
+ d->connectingName.clear();
d->connectingOpenMode = 0;
- d->serverName = QString();
- d->fullServerName = QString();
+ d->serverName.clear();
+ d->fullServerName.clear();
QIODevice::close();
}
diff --git a/src/network/socket/qnativesocketengine.cpp b/src/network/socket/qnativesocketengine.cpp
index 6e1df93..a890b3b 100644
--- a/src/network/socket/qnativesocketengine.cpp
+++ b/src/network/socket/qnativesocketengine.cpp
@@ -778,6 +778,14 @@ qint64 QNativeSocketEngine::read(char *data, qint64 maxSize)
QNativeSocketEnginePrivate::RemoteHostClosedErrorString);
close();
return -1;
+ } else if (readBytes == -1) {
+ if (!d->hasSetSocketError) {
+ d->hasSetSocketError = true;
+ d->socketError = QAbstractSocket::NetworkError;
+ d->socketErrorString = qt_error_string();
+ }
+ close();
+ return -1;
}
return readBytes;
}
diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp
index d3b0fe5..9a2c349 100644
--- a/src/network/socket/qnativesocketengine_unix.cpp
+++ b/src/network/socket/qnativesocketengine_unix.cpp
@@ -903,7 +903,7 @@ qint64 QNativeSocketEnginePrivate::nativeRead(char *data, qint64 maxSize)
case EBADF:
case EINVAL:
case EIO:
- setError(QAbstractSocket::NetworkError, ReadErrorString);
+ //error string is now set in read(), not here in nativeRead()
break;
#ifdef Q_OS_SYMBIAN
case EPIPE:
diff --git a/src/network/socket/qnativesocketengine_win.cpp b/src/network/socket/qnativesocketengine_win.cpp
index 7088a57..8177b4f 100644
--- a/src/network/socket/qnativesocketengine_win.cpp
+++ b/src/network/socket/qnativesocketengine_win.cpp
@@ -1068,7 +1068,7 @@ qint64 QNativeSocketEnginePrivate::nativeRead(char *data, qint64 maxLength)
break;
case WSAEBADF:
case WSAEINVAL:
- setError(QAbstractSocket::NetworkError, ReadErrorString);
+ //error string is now set in read(), not here in nativeRead()
break;
case WSAECONNRESET:
case WSAECONNABORTED:
@@ -1199,8 +1199,10 @@ void QNativeSocketEnginePrivate::nativeClose()
#if defined (QTCPSOCKETENGINE_DEBUG)
qDebug("QNativeSocketEnginePrivate::nativeClose()");
#endif
- linger l = {1, 0};
- ::setsockopt(socketDescriptor, SOL_SOCKET, SO_DONTLINGER, (char*)&l, sizeof(l));
+ // We were doing a setsockopt here before with SO_DONTLINGER. (However with kind of wrong
+ // usage of parameters, it wants a BOOL but we used a struct and pretended it to be bool).
+ // We don't think setting this option should be done here, if a user wants it she/he can
+ // do it manually with socketDescriptor()/setSocketDescriptor();
::closesocket(socketDescriptor);
}
diff --git a/src/network/socket/qtcpserver.cpp b/src/network/socket/qtcpserver.cpp
index 47a998c..404eee7 100644
--- a/src/network/socket/qtcpserver.cpp
+++ b/src/network/socket/qtcpserver.cpp
@@ -513,6 +513,10 @@ bool QTcpServer::hasPendingConnections() const
0 is returned if this function is called when there are no pending
connections.
+ \note The returned QTcpSocket object cannot be used from another
+ thread. If you want to use an incoming connection from another thread,
+ you need to override incomingConnection().
+
\sa hasPendingConnections()
*/
QTcpSocket *QTcpServer::nextPendingConnection()
@@ -543,6 +547,11 @@ QTcpSocket *QTcpServer::nextPendingConnection()
may not be usable with native socket functions, and should only be
used with QTcpSocket::setSocketDescriptor().
+ \note If you want to handle an incoming connection as a new QTcpSocket
+ object in another thread you have to pass the socketDescriptor
+ to the other thread and create the QTcpSocket object there and
+ use its setSocketDescriptor() method.
+
\sa newConnection(), nextPendingConnection()
*/
void QTcpServer::incomingConnection(int socketDescriptor)
diff --git a/src/network/ssl/qsslcertificate.cpp b/src/network/ssl/qsslcertificate.cpp
index 8993e72..fd647e2 100644
--- a/src/network/ssl/qsslcertificate.cpp
+++ b/src/network/ssl/qsslcertificate.cpp
@@ -634,11 +634,11 @@ QByteArray QSslCertificatePrivate::QByteArray_from_X509(X509 *x509, QSsl::Encodi
QByteArray tmp;
for (int i = 0; i <= array.size() - 64; i += 64) {
tmp += QByteArray::fromRawData(array.data() + i, 64);
- tmp += "\n";
+ tmp += '\n';
}
if (int remainder = array.size() % 64) {
tmp += QByteArray::fromRawData(array.data() + array.size() - remainder, remainder);
- tmp += "\n";
+ tmp += '\n';
}
return BEGINCERTSTRING "\n" + tmp + ENDCERTSTRING "\n";
@@ -696,11 +696,11 @@ QSslCertificate QSslCertificatePrivate::QSslCertificate_from_X509(X509 *x509)
static bool matchLineFeed(const QByteArray &pem, int *offset)
{
- char ch = pem.at(*offset);
+ char ch;
// ignore extra whitespace at the end of the line
- while (ch == ' ' && *offset < pem.size())
- ch = pem.at(++*offset);
+ while (*offset < pem.size() && (ch = pem.at(*offset)) == ' ')
+ ++*offset;
if (ch == '\n') {
*offset += 1;
@@ -732,7 +732,7 @@ QList<QSslCertificate> QSslCertificatePrivate::certificatesFromPem(const QByteAr
break;
offset = endPos + sizeof(ENDCERTSTRING) - 1;
- if (!matchLineFeed(pem, &offset))
+ if (offset < pem.size() && !matchLineFeed(pem, &offset))
break;
QByteArray decoded = QByteArray::fromBase64(
diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp
index 6947aa7..9623570 100644
--- a/src/network/ssl/qsslsocket.cpp
+++ b/src/network/ssl/qsslsocket.cpp
@@ -1109,7 +1109,7 @@ void QSslSocket::setCiphers(const QString &ciphers)
{
Q_D(QSslSocket);
d->configuration.ciphers.clear();
- foreach (QString cipherName, ciphers.split(QLatin1String(":"),QString::SkipEmptyParts)) {
+ foreach (const QString &cipherName, ciphers.split(QLatin1String(":"),QString::SkipEmptyParts)) {
for (int i = 0; i < 3; ++i) {
// ### Crude
QSslCipher cipher(cipherName, QSsl::SslProtocol(i));
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
index de1583e..ce2aee1 100644
--- a/src/network/ssl/qsslsocket_openssl.cpp
+++ b/src/network/ssl/qsslsocket_openssl.cpp
@@ -553,6 +553,12 @@ void QSslSocketBackendPrivate::transmit()
#endif
writeBuffer.free(writtenBytes);
totalBytesWritten += writtenBytes;
+
+ if (writtenBytes < nextDataBlockSize) {
+ // break out of the writing loop and try again after we had read
+ transmitting = true;
+ break;
+ }
}
if (totalBytesWritten > 0) {
@@ -586,12 +592,26 @@ void QSslSocketBackendPrivate::transmit()
while ((pendingBytes = plainSocket->bytesAvailable()) > 0) {
// Read encrypted data from the socket into a buffer.
data.resize(pendingBytes);
- int decryptedBytesRead = plainSocket->read(data.data(), pendingBytes);
+ // just peek() here because q_BIO_write could write less data than expected
+ int encryptedBytesRead = plainSocket->peek(data.data(), pendingBytes);
#ifdef QSSLSOCKET_DEBUG
- qDebug() << "QSslSocketBackendPrivate::transmit: read" << decryptedBytesRead << "encrypted bytes from the socket";
+ qDebug() << "QSslSocketBackendPrivate::transmit: read" << encryptedBytesRead << "encrypted bytes from the socket";
#endif
// Write encrypted data from the buffer into the read BIO.
- q_BIO_write(readBio, data.constData(), decryptedBytesRead);
+ int writtenToBio = q_BIO_write(readBio, data.constData(), encryptedBytesRead);
+
+ // do the actual read() here and throw away the results.
+ if (writtenToBio > 0) {
+ // ### TODO: make this cheaper by not making it memcpy. E.g. make it work with data=0x0 or make it work with seek
+ plainSocket->read(data.data(), writtenToBio);
+ } else {
+ // ### Better error handling.
+ q->setErrorString(QSslSocket::tr("Unable to decrypt data: %1").arg(SSL_ERRORSTR()));
+ q->setSocketError(QAbstractSocket::UnknownSocketError);
+ emit q->error(QAbstractSocket::UnknownSocketError);
+ return;
+ }
+
transmitting = true;
}
@@ -798,7 +818,7 @@ bool QSslSocketBackendPrivate::startHandshake()
QRegExp regexp(commonName, Qt::CaseInsensitive, QRegExp::Wildcard);
if (!regexp.exactMatch(peerName)) {
bool matched = false;
- foreach (QString altName, configuration.peerCertificate
+ foreach (const QString &altName, configuration.peerCertificate
.alternateSubjectNames().values(QSsl::DnsEntry)) {
regexp.setPattern(altName);
if (regexp.exactMatch(peerName)) {
diff --git a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp
index 556b888..8183f08 100644
--- a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp
+++ b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp
@@ -184,6 +184,9 @@ QGLEngineSharedShaders::QGLEngineSharedShaders(const QGLContext* context)
simpleShaderProg->addShader(vertexShader);
simpleShaderProg->addShader(fragShader);
simpleShaderProg->bindAttributeLocation("vertexCoordsArray", QT_VERTEX_COORDS_ATTR);
+ simpleShaderProg->bindAttributeLocation("pmvMatrix1", QT_PMV_MATRIX_1_ATTR);
+ simpleShaderProg->bindAttributeLocation("pmvMatrix2", QT_PMV_MATRIX_2_ATTR);
+ simpleShaderProg->bindAttributeLocation("pmvMatrix3", QT_PMV_MATRIX_3_ATTR);
simpleShaderProg->link();
if (!simpleShaderProg->isLinked()) {
qCritical() << "Errors linking simple shader:"
@@ -324,6 +327,11 @@ QGLEngineShaderProg *QGLEngineSharedShaders::findProgramInCache(const QGLEngineS
newProg->program->bindAttributeLocation("textureCoordArray", QT_TEXTURE_COORDS_ATTR);
if (newProg->useOpacityAttribute)
newProg->program->bindAttributeLocation("opacityArray", QT_OPACITY_ATTR);
+ if (newProg->usePmvMatrix) {
+ newProg->program->bindAttributeLocation("pmvMatrix1", QT_PMV_MATRIX_1_ATTR);
+ newProg->program->bindAttributeLocation("pmvMatrix2", QT_PMV_MATRIX_2_ATTR);
+ newProg->program->bindAttributeLocation("pmvMatrix3", QT_PMV_MATRIX_3_ATTR);
+ }
newProg->program->link();
if (!newProg->program->isLinked()) {
@@ -424,7 +432,6 @@ GLuint QGLEngineShaderManager::getUniformLocation(Uniform id)
"patternColor",
"globalOpacity",
"depth",
- "pmvMatrix",
"maskTexture",
"fragmentColor",
"linearData",
@@ -743,6 +750,7 @@ bool QGLEngineShaderManager::useCorrectShaderProg()
}
requiredProgram.useTextureCoords = texCoords;
requiredProgram.useOpacityAttribute = (opacityMode == AttributeOpacity);
+ requiredProgram.usePmvMatrix = true;
// At this point, requiredProgram is fully populated so try to find the program in the cache
currentShaderProg = sharedShaders->findProgramInCache(requiredProgram);
diff --git a/src/opengl/gl2paintengineex/qglengineshadermanager_p.h b/src/opengl/gl2paintengineex/qglengineshadermanager_p.h
index c52e5c0..3ab4ebe 100644
--- a/src/opengl/gl2paintengineex/qglengineshadermanager_p.h
+++ b/src/opengl/gl2paintengineex/qglengineshadermanager_p.h
@@ -253,6 +253,9 @@ struct QGLEngineCachedShaderProg
static const GLuint QT_VERTEX_COORDS_ATTR = 0;
static const GLuint QT_TEXTURE_COORDS_ATTR = 1;
static const GLuint QT_OPACITY_ATTR = 2;
+static const GLuint QT_PMV_MATRIX_1_ATTR = 3;
+static const GLuint QT_PMV_MATRIX_2_ATTR = 4;
+static const GLuint QT_PMV_MATRIX_3_ATTR = 5;
class QGLEngineShaderProg;
@@ -397,6 +400,7 @@ public:
bool useTextureCoords;
bool useOpacityAttribute;
+ bool usePmvMatrix;
bool operator==(const QGLEngineShaderProg& other) {
// We don't care about the program
@@ -431,7 +435,6 @@ public:
PatternColor,
GlobalOpacity,
Depth,
- PmvMatrix,
MaskTexture,
FragmentColor,
LinearData,
diff --git a/src/opengl/gl2paintengineex/qglengineshadersource_p.h b/src/opengl/gl2paintengineex/qglengineshadersource_p.h
index d9a61e9..ee04166 100644
--- a/src/opengl/gl2paintengineex/qglengineshadersource_p.h
+++ b/src/opengl/gl2paintengineex/qglengineshadersource_p.h
@@ -63,210 +63,229 @@ QT_BEGIN_NAMESPACE
QT_MODULE(OpenGL)
-static const char* const qglslMainVertexShader = "\
- uniform highp float depth;\
- void setPosition();\
- void main(void)\
- {\
- setPosition();\
- gl_Position.z = depth * gl_Position.w;\
- }";
-
-static const char* const qglslMainWithTexCoordsVertexShader = "\
- attribute highp vec2 textureCoordArray; \
- varying highp vec2 textureCoords; \
- uniform highp float depth;\
- void setPosition();\
- void main(void) \
- {\
- setPosition();\
- gl_Position.z = depth * gl_Position.w;\
- textureCoords = textureCoordArray; \
- }";
-
-static const char* const qglslMainWithTexCoordsAndOpacityVertexShader = "\
- attribute highp vec2 textureCoordArray; \
- attribute lowp float opacityArray; \
- varying highp vec2 textureCoords; \
- varying lowp float opacity; \
- uniform highp float depth; \
- void setPosition(); \
- void main(void) \
- { \
- setPosition(); \
- gl_Position.z = depth * gl_Position.w; \
- textureCoords = textureCoordArray; \
- opacity = opacityArray; \
- }";
+static const char* const qglslMainVertexShader = "\n\
+ void setPosition(); \n\
+ void main(void) \n\
+ { \n\
+ setPosition(); \n\
+ }\n";
+
+static const char* const qglslMainWithTexCoordsVertexShader = "\n\
+ attribute highp vec2 textureCoordArray; \n\
+ varying highp vec2 textureCoords; \n\
+ void setPosition(); \n\
+ void main(void) \n\
+ { \n\
+ setPosition(); \n\
+ textureCoords = textureCoordArray; \n\
+ }\n";
+
+static const char* const qglslMainWithTexCoordsAndOpacityVertexShader = "\n\
+ attribute highp vec2 textureCoordArray; \n\
+ attribute lowp float opacityArray; \n\
+ varying highp vec2 textureCoords; \n\
+ varying lowp float opacity; \n\
+ void setPosition(); \n\
+ void main(void) \n\
+ { \n\
+ setPosition(); \n\
+ textureCoords = textureCoordArray; \n\
+ opacity = opacityArray; \n\
+ }\n";
// NOTE: We let GL do the perspective correction so texture lookups in the fragment
// shader are also perspective corrected.
-static const char* const qglslPositionOnlyVertexShader = "\
- attribute highp vec2 vertexCoordsArray;\
- uniform highp mat3 pmvMatrix;\
- void setPosition(void)\
- {\
- vec3 transformedPos = pmvMatrix * vec3(vertexCoordsArray.xy, 1.0); \
- gl_Position = vec4(transformedPos.xy, 0.0, transformedPos.z); \
- }";
-
-static const char* const qglslUntransformedPositionVertexShader = "\
- attribute highp vec4 vertexCoordsArray;\
- void setPosition(void)\
- {\
- gl_Position = vertexCoordsArray;\
- }";
+static const char* const qglslPositionOnlyVertexShader = "\n\
+ attribute highp vec2 vertexCoordsArray; \n\
+ attribute highp vec3 pmvMatrix1; \n\
+ attribute highp vec3 pmvMatrix2; \n\
+ attribute highp vec3 pmvMatrix3; \n\
+ void setPosition(void) \n\
+ { \n\
+ highp mat3 pmvMatrix = mat3(pmvMatrix1, pmvMatrix2, pmvMatrix3); \n\
+ vec3 transformedPos = pmvMatrix * vec3(vertexCoordsArray.xy, 1.0); \n\
+ gl_Position = vec4(transformedPos.xy, 0.0, transformedPos.z); \n\
+ }\n";
+
+static const char* const qglslUntransformedPositionVertexShader = "\n\
+ attribute highp vec4 vertexCoordsArray; \n\
+ void setPosition(void) \n\
+ { \n\
+ gl_Position = vertexCoordsArray; \n\
+ }\n";
// Pattern Brush - This assumes the texture size is 8x8 and thus, the inverted size is 0.125
-static const char* const qglslPositionWithPatternBrushVertexShader = "\
- attribute highp vec2 vertexCoordsArray; \
- uniform highp mat3 pmvMatrix; \
- uniform mediump vec2 halfViewportSize; \
- uniform highp vec2 invertedTextureSize; \
- uniform highp mat3 brushTransform; \
- varying highp vec2 patternTexCoords; \
- void setPosition(void) { \
- vec3 transformedPos = pmvMatrix * vec3(vertexCoordsArray.xy, 1.0); \
- gl_Position.xy = transformedPos.xy / transformedPos.z; \
- mediump vec2 viewportCoords = (gl_Position.xy + 1.0) * halfViewportSize; \
- mediump vec3 hTexCoords = brushTransform * vec3(viewportCoords, 1.0); \
- mediump float invertedHTexCoordsZ = 1.0 / hTexCoords.z; \
- gl_Position = vec4(gl_Position.xy * invertedHTexCoordsZ, 0.0, invertedHTexCoordsZ); \
- patternTexCoords.xy = (hTexCoords.xy * 0.125) * invertedHTexCoordsZ; \
- }";
+static const char* const qglslPositionWithPatternBrushVertexShader = "\n\
+ attribute highp vec2 vertexCoordsArray; \n\
+ attribute highp vec3 pmvMatrix1; \n\
+ attribute highp vec3 pmvMatrix2; \n\
+ attribute highp vec3 pmvMatrix3; \n\
+ uniform mediump vec2 halfViewportSize; \n\
+ uniform highp vec2 invertedTextureSize; \n\
+ uniform highp mat3 brushTransform; \n\
+ varying highp vec2 patternTexCoords; \n\
+ void setPosition(void) \n\
+ { \n\
+ highp mat3 pmvMatrix = mat3(pmvMatrix1, pmvMatrix2, pmvMatrix3); \n\
+ vec3 transformedPos = pmvMatrix * vec3(vertexCoordsArray.xy, 1.0); \n\
+ gl_Position.xy = transformedPos.xy / transformedPos.z; \n\
+ mediump vec2 viewportCoords = (gl_Position.xy + 1.0) * halfViewportSize; \n\
+ mediump vec3 hTexCoords = brushTransform * vec3(viewportCoords, 1.0); \n\
+ mediump float invertedHTexCoordsZ = 1.0 / hTexCoords.z; \n\
+ gl_Position = vec4(gl_Position.xy * invertedHTexCoordsZ, 0.0, invertedHTexCoordsZ); \n\
+ patternTexCoords.xy = (hTexCoords.xy * 0.125) * invertedHTexCoordsZ; \n\
+ }\n";
static const char* const qglslAffinePositionWithPatternBrushVertexShader
= qglslPositionWithPatternBrushVertexShader;
-static const char* const qglslPatternBrushSrcFragmentShader = "\
- uniform lowp sampler2D brushTexture;\
- uniform lowp vec4 patternColor; \
- varying highp vec2 patternTexCoords;\
- lowp vec4 srcPixel() { \
- return patternColor * (1.0 - texture2D(brushTexture, patternTexCoords).r); \
+static const char* const qglslPatternBrushSrcFragmentShader = "\n\
+ uniform lowp sampler2D brushTexture; \n\
+ uniform lowp vec4 patternColor; \n\
+ varying highp vec2 patternTexCoords;\n\
+ lowp vec4 srcPixel() \n\
+ { \n\
+ return patternColor * (1.0 - texture2D(brushTexture, patternTexCoords).r); \n\
}\n";
// Linear Gradient Brush
-static const char* const qglslPositionWithLinearGradientBrushVertexShader = "\
- attribute highp vec2 vertexCoordsArray; \
- uniform highp mat3 pmvMatrix; \
- uniform mediump vec2 halfViewportSize; \
- uniform highp vec3 linearData; \
- uniform highp mat3 brushTransform; \
- varying mediump float index; \
- void setPosition() { \
- vec3 transformedPos = pmvMatrix * vec3(vertexCoordsArray.xy, 1.0); \
- gl_Position.xy = transformedPos.xy / transformedPos.z; \
- mediump vec2 viewportCoords = (gl_Position.xy + 1.0) * halfViewportSize; \
- mediump vec3 hTexCoords = brushTransform * vec3(viewportCoords, 1); \
- mediump float invertedHTexCoordsZ = 1.0 / hTexCoords.z; \
- gl_Position = vec4(gl_Position.xy * invertedHTexCoordsZ, 0.0, invertedHTexCoordsZ); \
- index = (dot(linearData.xy, hTexCoords.xy) * linearData.z) * invertedHTexCoordsZ; \
- }";
+static const char* const qglslPositionWithLinearGradientBrushVertexShader = "\n\
+ attribute highp vec2 vertexCoordsArray; \n\
+ attribute highp vec3 pmvMatrix1; \n\
+ attribute highp vec3 pmvMatrix2; \n\
+ attribute highp vec3 pmvMatrix3; \n\
+ uniform mediump vec2 halfViewportSize; \n\
+ uniform highp vec3 linearData; \n\
+ uniform highp mat3 brushTransform; \n\
+ varying mediump float index; \n\
+ void setPosition() \n\
+ { \n\
+ highp mat3 pmvMatrix = mat3(pmvMatrix1, pmvMatrix2, pmvMatrix3); \n\
+ vec3 transformedPos = pmvMatrix * vec3(vertexCoordsArray.xy, 1.0); \n\
+ gl_Position.xy = transformedPos.xy / transformedPos.z; \n\
+ mediump vec2 viewportCoords = (gl_Position.xy + 1.0) * halfViewportSize; \n\
+ mediump vec3 hTexCoords = brushTransform * vec3(viewportCoords, 1); \n\
+ mediump float invertedHTexCoordsZ = 1.0 / hTexCoords.z; \n\
+ gl_Position = vec4(gl_Position.xy * invertedHTexCoordsZ, 0.0, invertedHTexCoordsZ); \n\
+ index = (dot(linearData.xy, hTexCoords.xy) * linearData.z) * invertedHTexCoordsZ; \n\
+ }\n";
static const char* const qglslAffinePositionWithLinearGradientBrushVertexShader
= qglslPositionWithLinearGradientBrushVertexShader;
-static const char* const qglslLinearGradientBrushSrcFragmentShader = "\
- uniform lowp sampler2D brushTexture; \
- varying mediump float index; \
- lowp vec4 srcPixel() { \
- mediump vec2 val = vec2(index, 0.5); \
- return texture2D(brushTexture, val); \
+static const char* const qglslLinearGradientBrushSrcFragmentShader = "\n\
+ uniform lowp sampler2D brushTexture; \n\
+ varying mediump float index; \n\
+ lowp vec4 srcPixel() \n\
+ { \n\
+ mediump vec2 val = vec2(index, 0.5); \n\
+ return texture2D(brushTexture, val); \n\
}\n";
// Conical Gradient Brush
-static const char* const qglslPositionWithConicalGradientBrushVertexShader = "\
- attribute highp vec2 vertexCoordsArray;\
- uniform highp mat3 pmvMatrix;\
- uniform mediump vec2 halfViewportSize; \
- uniform highp mat3 brushTransform; \
- varying highp vec2 A; \
- void setPosition(void)\
- {\
- vec3 transformedPos = pmvMatrix * vec3(vertexCoordsArray.xy, 1.0); \
- gl_Position.xy = transformedPos.xy / transformedPos.z; \
- mediump vec2 viewportCoords = (gl_Position.xy + 1.0) * halfViewportSize; \
- mediump vec3 hTexCoords = brushTransform * vec3(viewportCoords, 1); \
- mediump float invertedHTexCoordsZ = 1.0 / hTexCoords.z; \
- gl_Position = vec4(gl_Position.xy * invertedHTexCoordsZ, 0.0, invertedHTexCoordsZ); \
- A = hTexCoords.xy * invertedHTexCoordsZ; \
- }";
+static const char* const qglslPositionWithConicalGradientBrushVertexShader = "\n\
+ attribute highp vec2 vertexCoordsArray; \n\
+ attribute highp vec3 pmvMatrix1; \n\
+ attribute highp vec3 pmvMatrix2; \n\
+ attribute highp vec3 pmvMatrix3; \n\
+ uniform mediump vec2 halfViewportSize; \n\
+ uniform highp mat3 brushTransform; \n\
+ varying highp vec2 A; \n\
+ void setPosition(void) \n\
+ { \n\
+ highp mat3 pmvMatrix = mat3(pmvMatrix1, pmvMatrix2, pmvMatrix3); \n\
+ vec3 transformedPos = pmvMatrix * vec3(vertexCoordsArray.xy, 1.0); \n\
+ gl_Position.xy = transformedPos.xy / transformedPos.z; \n\
+ mediump vec2 viewportCoords = (gl_Position.xy + 1.0) * halfViewportSize; \n\
+ mediump vec3 hTexCoords = brushTransform * vec3(viewportCoords, 1); \n\
+ mediump float invertedHTexCoordsZ = 1.0 / hTexCoords.z; \n\
+ gl_Position = vec4(gl_Position.xy * invertedHTexCoordsZ, 0.0, invertedHTexCoordsZ); \n\
+ A = hTexCoords.xy * invertedHTexCoordsZ; \n\
+ }\n";
static const char* const qglslAffinePositionWithConicalGradientBrushVertexShader
= qglslPositionWithConicalGradientBrushVertexShader;
static const char* const qglslConicalGradientBrushSrcFragmentShader = "\n\
#define INVERSE_2PI 0.1591549430918953358 \n\
- uniform lowp sampler2D brushTexture; \n\
- uniform mediump float angle; \
- varying highp vec2 A; \
- lowp vec4 srcPixel() { \
- highp float t; \
- if (abs(A.y) == abs(A.x)) \
- t = (atan(-A.y + 0.002, A.x) + angle) * INVERSE_2PI; \
- else \
- t = (atan(-A.y, A.x) + angle) * INVERSE_2PI; \
- return texture2D(brushTexture, vec2(t - floor(t), 0.5)); \
- }";
+ uniform lowp sampler2D brushTexture; \n\
+ uniform mediump float angle; \n\
+ varying highp vec2 A; \n\
+ lowp vec4 srcPixel() \n\
+ { \n\
+ highp float t; \n\
+ if (abs(A.y) == abs(A.x)) \n\
+ t = (atan(-A.y + 0.002, A.x) + angle) * INVERSE_2PI; \n\
+ else \n\
+ t = (atan(-A.y, A.x) + angle) * INVERSE_2PI; \n\
+ return texture2D(brushTexture, vec2(t - floor(t), 0.5)); \n\
+ }\n";
// Radial Gradient Brush
-static const char* const qglslPositionWithRadialGradientBrushVertexShader = "\
- attribute highp vec2 vertexCoordsArray;\
- uniform highp mat3 pmvMatrix;\
- uniform mediump vec2 halfViewportSize; \
- uniform highp mat3 brushTransform; \
- uniform highp vec2 fmp; \
- varying highp float b; \
- varying highp vec2 A; \
- void setPosition(void) \
- {\
- vec3 transformedPos = pmvMatrix * vec3(vertexCoordsArray.xy, 1.0); \
- gl_Position.xy = transformedPos.xy / transformedPos.z; \
- mediump vec2 viewportCoords = (gl_Position.xy + 1.0) * halfViewportSize; \
- mediump vec3 hTexCoords = brushTransform * vec3(viewportCoords, 1); \
- mediump float invertedHTexCoordsZ = 1.0 / hTexCoords.z; \
- gl_Position = vec4(gl_Position.xy * invertedHTexCoordsZ, 0.0, invertedHTexCoordsZ); \
- A = hTexCoords.xy * invertedHTexCoordsZ; \
- b = 2.0 * dot(A, fmp); \
- }";
+static const char* const qglslPositionWithRadialGradientBrushVertexShader = "\n\
+ attribute highp vec2 vertexCoordsArray;\n\
+ attribute highp vec3 pmvMatrix1; \n\
+ attribute highp vec3 pmvMatrix2; \n\
+ attribute highp vec3 pmvMatrix3; \n\
+ uniform mediump vec2 halfViewportSize; \n\
+ uniform highp mat3 brushTransform; \n\
+ uniform highp vec2 fmp; \n\
+ varying highp float b; \n\
+ varying highp vec2 A; \n\
+ void setPosition(void) \n\
+ {\n\
+ highp mat3 pmvMatrix = mat3(pmvMatrix1, pmvMatrix2, pmvMatrix3); \n\
+ vec3 transformedPos = pmvMatrix * vec3(vertexCoordsArray.xy, 1.0); \n\
+ gl_Position.xy = transformedPos.xy / transformedPos.z; \n\
+ mediump vec2 viewportCoords = (gl_Position.xy + 1.0) * halfViewportSize; \n\
+ mediump vec3 hTexCoords = brushTransform * vec3(viewportCoords, 1); \n\
+ mediump float invertedHTexCoordsZ = 1.0 / hTexCoords.z; \n\
+ gl_Position = vec4(gl_Position.xy * invertedHTexCoordsZ, 0.0, invertedHTexCoordsZ); \n\
+ A = hTexCoords.xy * invertedHTexCoordsZ; \n\
+ b = 2.0 * dot(A, fmp); \n\
+ }\n";
static const char* const qglslAffinePositionWithRadialGradientBrushVertexShader
= qglslPositionWithRadialGradientBrushVertexShader;
-static const char* const qglslRadialGradientBrushSrcFragmentShader = "\
- uniform lowp sampler2D brushTexture; \
- uniform highp float fmp2_m_radius2; \
- uniform highp float inverse_2_fmp2_m_radius2; \
- varying highp float b; \
- varying highp vec2 A; \
- lowp vec4 srcPixel() { \
- highp float c = -dot(A, A); \
- highp vec2 val = vec2((-b + sqrt(b*b - 4.0*fmp2_m_radius2*c)) * inverse_2_fmp2_m_radius2, 0.5); \
- return texture2D(brushTexture, val); \
- }";
+static const char* const qglslRadialGradientBrushSrcFragmentShader = "\n\
+ uniform lowp sampler2D brushTexture; \n\
+ uniform highp float fmp2_m_radius2; \n\
+ uniform highp float inverse_2_fmp2_m_radius2; \n\
+ varying highp float b; \n\
+ varying highp vec2 A; \n\
+ lowp vec4 srcPixel() \n\
+ { \n\
+ highp float c = -dot(A, A); \n\
+ highp vec2 val = vec2((-b + sqrt(b*b - 4.0*fmp2_m_radius2*c)) * inverse_2_fmp2_m_radius2, 0.5); \n\
+ return texture2D(brushTexture, val); \n\
+ }\n";
// Texture Brush
-static const char* const qglslPositionWithTextureBrushVertexShader = "\
- attribute highp vec2 vertexCoordsArray; \
- uniform highp mat3 pmvMatrix; \
- uniform mediump vec2 halfViewportSize; \
- uniform highp vec2 invertedTextureSize; \
- uniform highp mat3 brushTransform; \
- varying highp vec2 textureCoords; \
- void setPosition(void) { \
- vec3 transformedPos = pmvMatrix * vec3(vertexCoordsArray.xy, 1.0); \
- gl_Position.xy = transformedPos.xy / transformedPos.z; \
- mediump vec2 viewportCoords = (gl_Position.xy + 1.0) * halfViewportSize; \
- mediump vec3 hTexCoords = brushTransform * vec3(viewportCoords, 1); \
- mediump float invertedHTexCoordsZ = 1.0 / hTexCoords.z; \
- gl_Position = vec4(gl_Position.xy * invertedHTexCoordsZ, 0.0, invertedHTexCoordsZ); \
- textureCoords.xy = (hTexCoords.xy * invertedTextureSize) * gl_Position.w; \
- }";
+static const char* const qglslPositionWithTextureBrushVertexShader = "\n\
+ attribute highp vec2 vertexCoordsArray; \n\
+ attribute highp vec3 pmvMatrix1; \n\
+ attribute highp vec3 pmvMatrix2; \n\
+ attribute highp vec3 pmvMatrix3; \n\
+ uniform mediump vec2 halfViewportSize; \n\
+ uniform highp vec2 invertedTextureSize; \n\
+ uniform highp mat3 brushTransform; \n\
+ varying highp vec2 textureCoords; \n\
+ void setPosition(void) \n\
+ { \n\
+ highp mat3 pmvMatrix = mat3(pmvMatrix1, pmvMatrix2, pmvMatrix3); \n\
+ vec3 transformedPos = pmvMatrix * vec3(vertexCoordsArray.xy, 1.0); \n\
+ gl_Position.xy = transformedPos.xy / transformedPos.z; \n\
+ mediump vec2 viewportCoords = (gl_Position.xy + 1.0) * halfViewportSize; \n\
+ mediump vec3 hTexCoords = brushTransform * vec3(viewportCoords, 1); \n\
+ mediump float invertedHTexCoordsZ = 1.0 / hTexCoords.z; \n\
+ gl_Position = vec4(gl_Position.xy * invertedHTexCoordsZ, 0.0, invertedHTexCoordsZ); \n\
+ textureCoords.xy = (hTexCoords.xy * invertedTextureSize) * gl_Position.w; \n\
+ }\n";
static const char* const qglslAffinePositionWithTextureBrushVertexShader
= qglslPositionWithTextureBrushVertexShader;
@@ -275,148 +294,165 @@ static const char* const qglslAffinePositionWithTextureBrushVertexShader
// OpenGL ES does not support GL_REPEAT wrap modes for NPOT textures. So instead,
// we emulate GL_REPEAT by only taking the fractional part of the texture coords.
// TODO: Special case POT textures which don't need this emulation
-static const char* const qglslTextureBrushSrcFragmentShader = "\
- varying highp vec2 textureCoords; \
- uniform lowp sampler2D brushTexture; \
- lowp vec4 srcPixel() { \
- return texture2D(brushTexture, fract(textureCoords)); \
- }";
+static const char* const qglslTextureBrushSrcFragmentShader = "\n\
+ varying highp vec2 textureCoords; \n\
+ uniform lowp sampler2D brushTexture; \n\
+ lowp vec4 srcPixel() { \n\
+ return texture2D(brushTexture, fract(textureCoords)); \n\
+ }\n";
#else
-static const char* const qglslTextureBrushSrcFragmentShader = "\
- varying highp vec2 textureCoords; \
- uniform lowp sampler2D brushTexture; \
- lowp vec4 srcPixel() { \
- return texture2D(brushTexture, textureCoords); \
- }";
+static const char* const qglslTextureBrushSrcFragmentShader = "\n\
+ varying highp vec2 textureCoords; \n\
+ uniform lowp sampler2D brushTexture; \n\
+ lowp vec4 srcPixel() \n\
+ { \n\
+ return texture2D(brushTexture, textureCoords); \n\
+ }\n";
#endif
-static const char* const qglslTextureBrushSrcWithPatternFragmentShader = "\
- varying highp vec2 textureCoords; \
- uniform lowp vec4 patternColor; \
- uniform lowp sampler2D brushTexture; \
- lowp vec4 srcPixel() { \
- return patternColor * (1.0 - texture2D(brushTexture, textureCoords).r); \
- }";
+static const char* const qglslTextureBrushSrcWithPatternFragmentShader = "\n\
+ varying highp vec2 textureCoords; \n\
+ uniform lowp vec4 patternColor; \n\
+ uniform lowp sampler2D brushTexture; \n\
+ lowp vec4 srcPixel() \n\
+ { \n\
+ return patternColor * (1.0 - texture2D(brushTexture, textureCoords).r); \n\
+ }\n";
// Solid Fill Brush
-static const char* const qglslSolidBrushSrcFragmentShader = "\
- uniform lowp vec4 fragmentColor; \
- lowp vec4 srcPixel() { \
- return fragmentColor; \
- }";
-
-static const char* const qglslImageSrcFragmentShader = "\
- varying highp vec2 textureCoords; \
- uniform lowp sampler2D imageTexture; \
- lowp vec4 srcPixel() { \
- return texture2D(imageTexture, textureCoords); \
- }";
-
-static const char* const qglslCustomSrcFragmentShader = "\
- varying highp vec2 textureCoords; \
- uniform lowp sampler2D imageTexture; \
- lowp vec4 customShader(lowp sampler2D texture, highp vec2 coords); \
- lowp vec4 srcPixel() { \
- return customShader(imageTexture, textureCoords); \
- }";
-
-static const char* const qglslImageSrcWithPatternFragmentShader = "\
- varying highp vec2 textureCoords; \
- uniform lowp vec4 patternColor; \
- uniform lowp sampler2D imageTexture; \
- lowp vec4 srcPixel() { \
- return patternColor * (1.0 - texture2D(imageTexture, textureCoords).r); \
- }\n";
-
-static const char* const qglslNonPremultipliedImageSrcFragmentShader = "\
- varying highp vec2 textureCoords; \
- uniform lowp sampler2D imageTexture; \
- lowp vec4 srcPixel() { \
- lowp vec4 sample = texture2D(imageTexture, textureCoords); \
- sample.rgb = sample.rgb * sample.a; \
- return sample; \
- }";
-
-static const char* const qglslShockingPinkSrcFragmentShader = "\
- lowp vec4 srcPixel() { \
- return vec4(0.98, 0.06, 0.75, 1.0); \
- }";
-
-static const char* const qglslMainFragmentShader_ImageArrays = "\
- varying lowp float opacity; \
- lowp vec4 srcPixel(); \
- void main() { \
- gl_FragColor = srcPixel() * opacity; \
- }";
-
-static const char* const qglslMainFragmentShader_CMO = "\
- uniform lowp float globalOpacity; \
- lowp vec4 srcPixel(); \
- lowp vec4 applyMask(lowp vec4); \
- lowp vec4 compose(lowp vec4); \
- void main() { \
- gl_FragColor = applyMask(compose(srcPixel()*globalOpacity))); \
- }";
-
-static const char* const qglslMainFragmentShader_CM = "\
- lowp vec4 srcPixel(); \
- lowp vec4 applyMask(lowp vec4); \
- lowp vec4 compose(lowp vec4); \
- void main() { \
- gl_FragColor = applyMask(compose(srcPixel())); \
- }";
-
-static const char* const qglslMainFragmentShader_MO = "\
- uniform lowp float globalOpacity; \
- lowp vec4 srcPixel(); \
- lowp vec4 applyMask(lowp vec4); \
- void main() { \
- gl_FragColor = applyMask(srcPixel()*globalOpacity); \
- }";
-
-static const char* const qglslMainFragmentShader_M = "\
- lowp vec4 srcPixel(); \
- lowp vec4 applyMask(lowp vec4); \
- void main() { \
- gl_FragColor = applyMask(srcPixel()); \
- }";
-
-static const char* const qglslMainFragmentShader_CO = "\
- uniform lowp float globalOpacity; \
- lowp vec4 srcPixel(); \
- lowp vec4 compose(lowp vec4); \
- void main() { \
- gl_FragColor = compose(srcPixel()*globalOpacity); \
- }";
-
-static const char* const qglslMainFragmentShader_C = "\
- lowp vec4 srcPixel(); \
- lowp vec4 compose(lowp vec4); \
- void main() { \
- gl_FragColor = compose(srcPixel()); \
- }";
-
-static const char* const qglslMainFragmentShader_O = "\
- uniform lowp float globalOpacity; \
- lowp vec4 srcPixel(); \
- void main() { \
- gl_FragColor = srcPixel()*globalOpacity; \
- }";
-
-static const char* const qglslMainFragmentShader = "\
- lowp vec4 srcPixel(); \
- void main() { \
- gl_FragColor = srcPixel(); \
- }";
-
-static const char* const qglslMaskFragmentShader = "\
- varying highp vec2 textureCoords;\
- uniform lowp sampler2D maskTexture;\
- lowp vec4 applyMask(lowp vec4 src) \
- {\
- lowp vec4 mask = texture2D(maskTexture, textureCoords); \
- return src * mask.a; \
- }";
+static const char* const qglslSolidBrushSrcFragmentShader = "\n\
+ uniform lowp vec4 fragmentColor; \n\
+ lowp vec4 srcPixel() \n\
+ { \n\
+ return fragmentColor; \n\
+ }\n";
+
+static const char* const qglslImageSrcFragmentShader = "\n\
+ varying highp vec2 textureCoords; \n\
+ uniform lowp sampler2D imageTexture; \n\
+ lowp vec4 srcPixel() \n\
+ { \n\
+ return texture2D(imageTexture, textureCoords); \n\
+ }\n";
+
+static const char* const qglslCustomSrcFragmentShader = "\n\
+ varying highp vec2 textureCoords; \n\
+ uniform lowp sampler2D imageTexture; \n\
+ lowp vec4 customShader(lowp sampler2D texture, highp vec2 coords); \n\
+ lowp vec4 srcPixel() \n\
+ { \n\
+ return customShader(imageTexture, textureCoords); \n\
+ }\n";
+
+static const char* const qglslImageSrcWithPatternFragmentShader = "\n\
+ varying highp vec2 textureCoords; \n\
+ uniform lowp vec4 patternColor; \n\
+ uniform lowp sampler2D imageTexture; \n\
+ lowp vec4 srcPixel() \n\
+ { \n\
+ return patternColor * (1.0 - texture2D(imageTexture, textureCoords).r); \n\
+ }\n";
+
+static const char* const qglslNonPremultipliedImageSrcFragmentShader = "\n\
+ varying highp vec2 textureCoords; \n\
+ uniform lowp sampler2D imageTexture; \n\
+ lowp vec4 srcPixel() \n\
+ { \n\
+ lowp vec4 sample = texture2D(imageTexture, textureCoords); \n\
+ sample.rgb = sample.rgb * sample.a; \n\
+ return sample; \n\
+ }\n";
+
+static const char* const qglslShockingPinkSrcFragmentShader = "\n\
+ lowp vec4 srcPixel() \n\
+ { \n\
+ return vec4(0.98, 0.06, 0.75, 1.0); \n\
+ }\n";
+
+static const char* const qglslMainFragmentShader_ImageArrays = "\n\
+ varying lowp float opacity; \n\
+ lowp vec4 srcPixel(); \n\
+ void main() \n\
+ { \n\
+ gl_FragColor = srcPixel() * opacity; \n\
+ }\n";
+
+static const char* const qglslMainFragmentShader_CMO = "\n\
+ uniform lowp float globalOpacity; \n\
+ lowp vec4 srcPixel(); \n\
+ lowp vec4 applyMask(lowp vec4); \n\
+ lowp vec4 compose(lowp vec4); \n\
+ void main() \n\
+ { \n\
+ gl_FragColor = applyMask(compose(srcPixel()*globalOpacity))); \n\
+ }\n";
+
+static const char* const qglslMainFragmentShader_CM = "\n\
+ lowp vec4 srcPixel(); \n\
+ lowp vec4 applyMask(lowp vec4); \n\
+ lowp vec4 compose(lowp vec4); \n\
+ void main() \n\
+ { \n\
+ gl_FragColor = applyMask(compose(srcPixel())); \n\
+ }\n";
+
+static const char* const qglslMainFragmentShader_MO = "\n\
+ uniform lowp float globalOpacity; \n\
+ lowp vec4 srcPixel(); \n\
+ lowp vec4 applyMask(lowp vec4); \n\
+ void main() \n\
+ { \n\
+ gl_FragColor = applyMask(srcPixel()*globalOpacity); \n\
+ }\n";
+
+static const char* const qglslMainFragmentShader_M = "\n\
+ lowp vec4 srcPixel(); \n\
+ lowp vec4 applyMask(lowp vec4); \n\
+ void main() \n\
+ { \n\
+ gl_FragColor = applyMask(srcPixel()); \n\
+ }\n";
+
+static const char* const qglslMainFragmentShader_CO = "\n\
+ uniform lowp float globalOpacity; \n\
+ lowp vec4 srcPixel(); \n\
+ lowp vec4 compose(lowp vec4); \n\
+ void main() \n\
+ { \n\
+ gl_FragColor = compose(srcPixel()*globalOpacity); \n\
+ }\n";
+
+static const char* const qglslMainFragmentShader_C = "\n\
+ lowp vec4 srcPixel(); \n\
+ lowp vec4 compose(lowp vec4); \n\
+ void main() \n\
+ { \n\
+ gl_FragColor = compose(srcPixel()); \n\
+ }\n";
+
+static const char* const qglslMainFragmentShader_O = "\n\
+ uniform lowp float globalOpacity; \n\
+ lowp vec4 srcPixel(); \n\
+ void main() \n\
+ { \n\
+ gl_FragColor = srcPixel()*globalOpacity; \n\
+ }\n";
+
+static const char* const qglslMainFragmentShader = "\n\
+ lowp vec4 srcPixel(); \n\
+ void main() \n\
+ { \n\
+ gl_FragColor = srcPixel(); \n\
+ }\n";
+
+static const char* const qglslMaskFragmentShader = "\n\
+ varying highp vec2 textureCoords;\n\
+ uniform lowp sampler2D maskTexture;\n\
+ lowp vec4 applyMask(lowp vec4 src) \n\
+ {\n\
+ lowp vec4 mask = texture2D(maskTexture, textureCoords); \n\
+ return src * mask.a; \n\
+ }\n";
// For source over with subpixel antialiasing, the final color is calculated per component as follows
// (.a is alpha component, .c is red, green or blue component):
@@ -433,23 +469,23 @@ static const char* const qglslMaskFragmentShader = "\
// dest.c = dest.c * (1 - mask.c) + src.c * alpha
//
-static const char* const qglslRgbMaskFragmentShaderPass1 = "\
- varying highp vec2 textureCoords;\
- uniform lowp sampler2D maskTexture;\
- lowp vec4 applyMask(lowp vec4 src) \
- {\
- lowp vec4 mask = texture2D(maskTexture, textureCoords); \
- return src.a * mask; \
- }";
-
-static const char* const qglslRgbMaskFragmentShaderPass2 = "\
- varying highp vec2 textureCoords;\
- uniform lowp sampler2D maskTexture;\
- lowp vec4 applyMask(lowp vec4 src) \
- {\
- lowp vec4 mask = texture2D(maskTexture, textureCoords); \
- return src * mask; \
- }";
+static const char* const qglslRgbMaskFragmentShaderPass1 = "\n\
+ varying highp vec2 textureCoords;\n\
+ uniform lowp sampler2D maskTexture;\n\
+ lowp vec4 applyMask(lowp vec4 src) \n\
+ { \n\
+ lowp vec4 mask = texture2D(maskTexture, textureCoords); \n\
+ return src.a * mask; \n\
+ }\n";
+
+static const char* const qglslRgbMaskFragmentShaderPass2 = "\n\
+ varying highp vec2 textureCoords;\n\
+ uniform lowp sampler2D maskTexture;\n\
+ lowp vec4 applyMask(lowp vec4 src) \n\
+ { \n\
+ lowp vec4 mask = texture2D(maskTexture, textureCoords); \n\
+ return src * mask; \n\
+ }\n";
/*
Left to implement:
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
index 5e41cc1..24560d1 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
@@ -169,12 +169,6 @@ void QGL2PaintEngineExPrivate::useSimpleShader()
if (matrixDirty)
updateMatrix();
-
- if (simpleShaderMatrixUniformDirty) {
- const GLuint location = shaderManager->simpleProgram()->uniformLocation("pmvMatrix");
- glUniformMatrix3fv(location, 1, GL_FALSE, (GLfloat*)pmvMatrix);
- simpleShaderMatrixUniformDirty = false;
- }
}
void QGL2PaintEngineExPrivate::updateBrushTexture()
@@ -393,9 +387,11 @@ void QGL2PaintEngineExPrivate::updateMatrix()
matrixDirty = false;
- // The actual data has been updated so both shader program's uniforms need updating
- simpleShaderMatrixUniformDirty = true;
- shaderMatrixUniformDirty = true;
+ // Set the PMV matrix attribute. As we use an attributes rather than uniforms, we only
+ // need to do this once for every matrix change and persists across all shader programs.
+ glVertexAttrib3fv(QT_PMV_MATRIX_1_ATTR, pmvMatrix[0]);
+ glVertexAttrib3fv(QT_PMV_MATRIX_2_ATTR, pmvMatrix[1]);
+ glVertexAttrib3fv(QT_PMV_MATRIX_3_ATTR, pmvMatrix[2]);
dasher.setInvScale(inverseScale);
stroker.setInvScale(inverseScale);
@@ -1033,18 +1029,12 @@ bool QGL2PaintEngineExPrivate::prepareForDraw(bool srcPixelsAreOpaque)
if (changed) {
// The shader program has changed so mark all uniforms as dirty:
brushUniformsDirty = true;
- shaderMatrixUniformDirty = true;
opacityUniformDirty = true;
}
if (brushUniformsDirty && mode != ImageDrawingMode && mode != ImageArrayDrawingMode)
updateBrushUniforms();
- if (shaderMatrixUniformDirty) {
- glUniformMatrix3fv(location(QGLEngineShaderManager::PmvMatrix), 1, GL_FALSE, (GLfloat*)pmvMatrix);
- shaderMatrixUniformDirty = false;
- }
-
if (opacityMode == QGLEngineShaderManager::UniformOpacity && opacityUniformDirty) {
shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::GlobalOpacity), (GLfloat)q->state()->opacity);
opacityUniformDirty = false;
@@ -2060,11 +2050,8 @@ void QGL2PaintEngineEx::setState(QPainterState *new_state)
if (old_state == s || old_state->renderHintsChanged)
renderHintsChanged();
- if (old_state == s || old_state->matrixChanged) {
+ if (old_state == s || old_state->matrixChanged)
d->matrixDirty = true;
- d->simpleShaderMatrixUniformDirty = true;
- d->shaderMatrixUniformDirty = true;
- }
if (old_state == s || old_state->compositionModeChanged)
d->compositionModeDirty = true;
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h
index e3d0bfc..35c88f4 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h
@@ -252,8 +252,6 @@ public:
bool compositionModeDirty;
bool brushTextureDirty;
bool brushUniformsDirty;
- bool simpleShaderMatrixUniformDirty;
- bool shaderMatrixUniformDirty;
bool opacityUniformDirty;
bool stencilClean; // Has the stencil not been used for clipping so far?
diff --git a/src/opengl/opengl.pro b/src/opengl/opengl.pro
index 69cfd30..ff42a49 100644
--- a/src/opengl/opengl.pro
+++ b/src/opengl/opengl.pro
@@ -13,7 +13,6 @@ include(../qbase.pri)
!win32:!embedded:!mac:CONFIG += x11
contains(QT_CONFIG, opengl):CONFIG += opengl
contains(QT_CONFIG, opengles1):CONFIG += opengles1
-contains(QT_CONFIG, opengles1cl):CONFIG += opengles1cl
contains(QT_CONFIG, opengles2):CONFIG += opengles2
contains(QT_CONFIG, egl):CONFIG += egl
@@ -26,6 +25,7 @@ HEADERS += qgl.h \
qglframebufferobject_p.h \
qglextensions_p.h \
qglpaintdevice_p.h \
+ qglbuffer.h \
SOURCES += qgl.cpp \
@@ -34,6 +34,7 @@ SOURCES += qgl.cpp \
qglframebufferobject.cpp \
qglextensions.cpp \
qglpaintdevice.cpp \
+ qglbuffer.cpp \
!contains(QT_CONFIG, opengles2) {
@@ -41,7 +42,7 @@ SOURCES += qgl.cpp \
SOURCES += qpaintengine_opengl.cpp
}
-!contains(QT_CONFIG, opengles1):!contains(QT_CONFIG, opengles1cl) {
+!contains(QT_CONFIG, opengles1) {
HEADERS += qglshaderprogram.h \
qglpixmapfilter_p.h \
qgraphicsshadereffect_p.h \
@@ -76,7 +77,7 @@ SOURCES += qgl.cpp \
}
x11 {
- contains(QT_CONFIG, opengles1)|contains(QT_CONFIG, opengles1cl)|contains(QT_CONFIG, opengles2) {
+ contains(QT_CONFIG, opengles1)|contains(QT_CONFIG, opengles2) {
SOURCES += qgl_x11egl.cpp \
qglpixelbuffer_egl.cpp \
qgl_egl.cpp \
@@ -123,8 +124,7 @@ wince*: {
qglpixelbuffer_egl.cpp \
qgl_egl.cpp
- HEADERS += qgl_cl_p.h \
- qgl_egl_p.h \
+ HEADERS += qgl_egl_p.h
}
embedded {
diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp
index b7139a2..e9ca4c4 100644
--- a/src/opengl/qgl.cpp
+++ b/src/opengl/qgl.cpp
@@ -67,7 +67,7 @@
#include "qimage.h"
#include "qgl_p.h"
-#if !defined(QT_OPENGL_ES_1) && !defined(QT_OPENGL_ES_1_CL)
+#if !defined(QT_OPENGL_ES_1)
#include "gl2paintengineex/qpaintengineex_opengl2_p.h"
#endif
@@ -95,11 +95,6 @@
QT_BEGIN_NAMESPACE
-#ifdef QT_OPENGL_ES_1_CL
-#include "qgl_cl_p.h"
-#endif
-
-
#if defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_QWS)
QGLExtensionFuncs QGLContextPrivate::qt_extensionFuncs;
#endif
@@ -1085,8 +1080,9 @@ int QGLFormat::stencilBufferSize() const
/*!
\since 4.7
- Set the OpenGL version. If a context compatible with the requested OpenGL version
- cannot be created, a context compatible with version 1.x is created instead.
+ Set the OpenGL version to the \a major and \a minor numbers. If a
+ context compatible with the requested OpenGL version cannot be
+ created, a context compatible with version 1.x is created instead.
\sa majorVersion(), minorVersion()
*/
@@ -1129,8 +1125,9 @@ int QGLFormat::minorVersion() const
\enum QGLFormat::OpenGLContextProfile
\since 4.7
- This enum describes the OpenGL context profiles that can be specified for contexts implementing
- OpenGL version 3.2 or higher. These profiles are different from OpenGL ES profiles.
+ This enum describes the OpenGL context profiles that can be
+ specified for contexts implementing OpenGL version 3.2 or
+ higher. These profiles are different from OpenGL ES profiles.
\value NoProfile OpenGL version is lower than 3.2.
\value CoreProfile Functionality deprecated in OpenGL version 3.0 is not available.
@@ -1140,8 +1137,8 @@ int QGLFormat::minorVersion() const
/*!
\since 4.7
- Set the OpenGL context profile. The profile is ignored if the requested OpenGL
- version is less than 3.2.
+ Set the OpenGL context profile to \a profile. The \a profile is
+ ignored if the requested OpenGL version is less than 3.2.
\sa profile()
*/
@@ -1655,7 +1652,7 @@ QImage qt_gl_read_texture(const QSize &size, bool alpha_format, bool include_alp
QImage img(size, alpha_format ? QImage::Format_ARGB32_Premultiplied : QImage::Format_RGB32);
int w = size.width();
int h = size.height();
-#if !defined(QT_OPENGL_ES_2) && !defined(QT_OPENGL_ES_1) && !defined(QT_OPENGL_ES_1_CL)
+#if !defined(QT_OPENGL_ES_2) && !defined(QT_OPENGL_ES_1)
//### glGetTexImage not in GL ES 2.0, need to do something else here!
glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, img.bits());
#endif
@@ -2433,7 +2430,7 @@ QGLTexture *QGLContextPrivate::bindTexture(const QPixmap &pixmap, GLenum target,
{
Q_Q(QGLContext);
QPixmapData *pd = pixmap.pixmapData();
-#if !defined(QT_OPENGL_ES_1) && !defined(QT_OPENGL_ES_1_CL)
+#if !defined(QT_OPENGL_ES_1)
if (target == GL_TEXTURE_2D && pd->classId() == QPixmapData::OpenGLClass) {
const QGLPixmapData *data = static_cast<const QGLPixmapData *>(pd);
@@ -2680,41 +2677,41 @@ void QGLContext::deleteTexture(QMacCompatGLuint id)
}
#endif
-void qt_add_rect_to_array(const QRectF &r, q_vertexType *array)
+void qt_add_rect_to_array(const QRectF &r, GLfloat *array)
{
qreal left = r.left();
qreal right = r.right();
qreal top = r.top();
qreal bottom = r.bottom();
- array[0] = f2vt(left);
- array[1] = f2vt(top);
- array[2] = f2vt(right);
- array[3] = f2vt(top);
- array[4] = f2vt(right);
- array[5] = f2vt(bottom);
- array[6] = f2vt(left);
- array[7] = f2vt(bottom);
+ array[0] = left;
+ array[1] = top;
+ array[2] = right;
+ array[3] = top;
+ array[4] = right;
+ array[5] = bottom;
+ array[6] = left;
+ array[7] = bottom;
}
-void qt_add_texcoords_to_array(qreal x1, qreal y1, qreal x2, qreal y2, q_vertexType *array)
+void qt_add_texcoords_to_array(qreal x1, qreal y1, qreal x2, qreal y2, GLfloat *array)
{
- array[0] = f2vt(x1);
- array[1] = f2vt(y1);
- array[2] = f2vt(x2);
- array[3] = f2vt(y1);
- array[4] = f2vt(x2);
- array[5] = f2vt(y2);
- array[6] = f2vt(x1);
- array[7] = f2vt(y2);
+ array[0] = x1;
+ array[1] = y1;
+ array[2] = x2;
+ array[3] = y1;
+ array[4] = x2;
+ array[5] = y2;
+ array[6] = x1;
+ array[7] = y2;
}
#if !defined(QT_OPENGL_ES_2)
static void qDrawTextureRect(const QRectF &target, GLint textureWidth, GLint textureHeight, GLenum textureTarget)
{
- q_vertexType tx = f2vt(1);
- q_vertexType ty = f2vt(1);
+ GLfloat tx = 1.0f;
+ GLfloat ty = 1.0f;
#ifdef QT_OPENGL_ES
Q_UNUSED(textureWidth);
@@ -2727,20 +2724,20 @@ static void qDrawTextureRect(const QRectF &target, GLint textureWidth, GLint tex
glGetTexLevelParameteriv(textureTarget, 0, GL_TEXTURE_HEIGHT, &textureHeight);
}
- tx = f2vt(textureWidth);
- ty = f2vt(textureHeight);
+ tx = GLfloat(textureWidth);
+ ty = GLfloat(textureHeight);
}
#endif
- q_vertexType texCoordArray[4*2] = {
+ GLfloat texCoordArray[4*2] = {
0, ty, tx, ty, tx, 0, 0, 0
};
- q_vertexType vertexArray[4*2];
+ GLfloat vertexArray[4*2];
qt_add_rect_to_array(target, vertexArray);
- glVertexPointer(2, q_vertexTypeEnum, 0, vertexArray);
- glTexCoordPointer(2, q_vertexTypeEnum, 0, texCoordArray);
+ glVertexPointer(2, GL_FLOAT, 0, vertexArray);
+ glTexCoordPointer(2, GL_FLOAT, 0, texCoordArray);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
@@ -4494,6 +4491,13 @@ static void qt_gl_draw_text(QPainter *p, int x, int y, const QString &str,
\note This function temporarily disables depth-testing when the
text is drawn.
+ \note This function can only be used inside a
+ QPainter::beginNativePainting()/QPainter::endNativePainting() block
+ if the default OpenGL paint engine is QPaintEngine::OpenGL. To make
+ QPaintEngine::OpenGL the default GL engine, call
+ QGL::setPreferredPaintEngine(QPaintEngine::OpenGL) before the
+ QApplication constructor.
+
\l{Overpainting Example}{Overpaint} with QPainter::drawText() instead.
*/
@@ -4513,8 +4517,17 @@ void QGLWidget::renderText(int x, int y, const QString &str, const QFont &font,
bool auto_swap = autoBufferSwap();
QPaintEngine::Type oldEngineType = qgl_engine_selector()->preferredPaintEngine();
- qgl_engine_selector()->setPreferredPaintEngine(QPaintEngine::OpenGL);
+
QPaintEngine *engine = paintEngine();
+ if (engine && (oldEngineType == QPaintEngine::OpenGL2) && engine->isActive()) {
+ qWarning("QGLWidget::renderText(): Calling renderText() while a GL 2 paint engine is"
+ " active on the same device is not allowed.");
+ return;
+ }
+
+ // this changes what paintEngine() returns
+ qgl_engine_selector()->setPreferredPaintEngine(QPaintEngine::OpenGL);
+ engine = paintEngine();
QPainter *p;
bool reuse_painter = false;
if (engine->isActive()) {
@@ -4607,8 +4620,17 @@ void QGLWidget::renderText(double x, double y, double z, const QString &str, con
win_y = height - win_y; // y is inverted
QPaintEngine::Type oldEngineType = qgl_engine_selector()->preferredPaintEngine();
- qgl_engine_selector()->setPreferredPaintEngine(QPaintEngine::OpenGL);
QPaintEngine *engine = paintEngine();
+
+ if (engine && (oldEngineType == QPaintEngine::OpenGL2) && engine->isActive()) {
+ qWarning("QGLWidget::renderText(): Calling renderText() while a GL 2 paint engine is"
+ " active on the same device is not allowed.");
+ return;
+ }
+
+ // this changes what paintEngine() returns
+ qgl_engine_selector()->setPreferredPaintEngine(QPaintEngine::OpenGL);
+ engine = paintEngine();
QPainter *p;
bool reuse_painter = false;
bool use_depth_testing = glIsEnabled(GL_DEPTH_TEST);
@@ -4877,7 +4899,7 @@ void QGLWidget::drawTexture(const QPointF &point, QMacCompatGLuint textureId, QM
}
#endif
-#if !defined(QT_OPENGL_ES_1) && !defined(QT_OPENGL_ES_1_CL)
+#if !defined(QT_OPENGL_ES_1)
Q_GLOBAL_STATIC(QGL2PaintEngineEx, qt_gl_2_engine)
#endif
@@ -4887,7 +4909,7 @@ Q_GLOBAL_STATIC(QOpenGLPaintEngine, qt_gl_engine)
Q_OPENGL_EXPORT QPaintEngine* qt_qgl_paint_engine()
{
-#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_1_CL)
+#if defined(QT_OPENGL_ES_1)
return qt_gl_engine();
#elif defined(QT_OPENGL_ES_2)
return qt_gl_2_engine();
@@ -5010,7 +5032,7 @@ QGLExtensions::Extensions QGLExtensions::currentContextExtensions()
glExtensions |= GenerateMipmap;
glExtensions |= FragmentShader;
#endif
-#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_1_CL)
+#if defined(QT_OPENGL_ES_1)
if (extensions.match("GL_OES_framebuffer_object"))
glExtensions |= FramebufferObject;
#endif
diff --git a/src/opengl/qgl.h b/src/opengl/qgl.h
index 8ada8ce..64f54a3 100644
--- a/src/opengl/qgl.h
+++ b/src/opengl/qgl.h
@@ -57,7 +57,7 @@ QT_BEGIN_HEADER
#if defined(Q_WS_MAC)
# include <OpenGL/gl.h>
# include <OpenGL/glu.h>
-#elif defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_1_CL)
+#elif defined(QT_OPENGL_ES_1)
# include <GLES/gl.h>
#ifndef GL_DOUBLE
# define GL_DOUBLE GL_FLOAT
diff --git a/src/opengl/qgl_cl_p.h b/src/opengl/qgl_cl_p.h
deleted file mode 100644
index 82b492b..0000000
--- a/src/opengl/qgl_cl_p.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtOpenGL module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-#ifdef QT_OPENGL_ES_1_CL
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists for the convenience
-// of the QGLWidget class. This header file may change from
-// version to version without notice, or even be removed.
-//
-// We mean it.
-//
-
-QT_BEGIN_NAMESPACE
-
-inline void glTexParameterf (GLenum target, GLenum pname, GLfloat param)
-{
- glTexParameterx(target, pname, FLOAT2X(param));
-}
-inline void glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
-{
- glClearColorx(FLOAT2X(red) ,FLOAT2X(green), FLOAT2X(blue), FLOAT2X(alpha));
-}
-inline void glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
-{
- glColor4x(FLOAT2X(red) ,FLOAT2X(green), FLOAT2X(blue), FLOAT2X(alpha));
-}
-
-inline void glOrthof (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
-{
- glOrthox(FLOAT2X(left), FLOAT2X(right), FLOAT2X(bottom), FLOAT2X(top), FLOAT2X(zNear), FLOAT2X(zFar));
-}
-
-inline void glPointSize (GLfloat size)
-{
- glPointSizex(FLOAT2X(size));
-}
-
-inline void glPolygonOffset (GLfloat factor, GLfloat units)
-{
- glPolygonOffsetx (FLOAT2X(factor), FLOAT2X(units));
-}
-
-inline void glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
-{
- glRotatex(FLOAT2X(angle), FLOAT2X(x), FLOAT2X(y), FLOAT2X(z));
-}
-
-inline void glTranslatef (GLfloat x, GLfloat y, GLfloat z)
-{
- glTranslatex(FLOAT2X(x) ,FLOAT2X(y) ,FLOAT2X(z));
-}
-
-inline void glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz)
-{
- glNormal3x(FLOAT2X(nx), FLOAT2X(ny), FLOAT2X(nz));
-}
-
-inline void glScalef(GLfloat x, GLfloat y, GLfloat z)
-{
- glScalex(FLOAT2X(x), FLOAT2X(y), FLOAT2X(z));
-}
-
-inline void glClearDepthf (GLclampf depth)
-{
- glClearDepthx(FLOAT2X(depth));
-}
-
-inline void glAlphaFunc (GLenum func, GLclampf ref)
-{
- glAlphaFuncx(func, FLOAT2X(ref));
-}
-
-inline void glLoadMatrixf (const GLfloat *_m)
-{
- GLfixed m[16];
- for (int i =0; i < 16; i++)
- m[i] = FLOAT2X(_m[i]);
- glLoadMatrixx(m);
-}
-
-inline void glMultMatrixf (const GLfloat *_m)
-{
- GLfixed m[16];
- for (int i =0; i < 16; i++)
- m[i] = FLOAT2X(_m[i]);
- glMultMatrixx (m);
-}
-
-
-inline void glLineWidth (GLfloat width)
-{
- glLineWidthx(FLOAT2X(width));
-}
-
-QT_END_NAMESPACE
-
-#endif //QT_OPENGL_ES_1_CL
-
diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h
index 9e8e335..d17db3a 100644
--- a/src/opengl/qgl_p.h
+++ b/src/opengl/qgl_p.h
@@ -64,22 +64,6 @@
#include "qcache.h"
#include "qglpaintdevice_p.h"
-#ifndef QT_OPENGL_ES_1_CL
-#define q_vertexType float
-#define q_vertexTypeEnum GL_FLOAT
-#define f2vt(f) (f)
-#define vt2f(x) (x)
-#define i2vt(i) (float(i))
-#else
-#define FLOAT2X(f) (int( (f) * (65536)))
-#define X2FLOAT(x) (float(x) / 65536.0f)
-#define f2vt(f) FLOAT2X(f)
-#define i2vt(i) ((i)*65536)
-#define vt2f(x) X2FLOAT(x)
-#define q_vertexType GLfixed
-#define q_vertexTypeEnum GL_FIXED
-#endif //QT_OPENGL_ES_1_CL
-
#ifdef QT_OPENGL_ES
QT_BEGIN_INCLUDE_NAMESPACE
#if defined(QT_OPENGL_ES_2)
diff --git a/src/opengl/qglbuffer.cpp b/src/opengl/qglbuffer.cpp
new file mode 100644
index 0000000..7022a53
--- /dev/null
+++ b/src/opengl/qglbuffer.cpp
@@ -0,0 +1,454 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtOpenGL module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtOpenGL/qgl.h>
+#include <QtOpenGL/private/qgl_p.h>
+#include <QtOpenGL/private/qglextensions_p.h>
+#include "qglbuffer.h"
+
+QT_BEGIN_NAMESPACE
+
+/*!
+ \class QGLBuffer
+ \brief The QGLBuffer class provides functions for creating and managing GL buffer objects.
+ \since 4.7
+ \ingroup painting-3D
+
+ Buffer objects are created in the GL server so that the
+ client application can avoid uploading vertices, indices,
+ texture image data, etc every time they are needed.
+*/
+
+/*!
+ \enum QGLBuffer::Type
+ This enum defines the type of GL buffer object to create with QGLBuffer.
+
+ \value VertexBuffer Vertex buffer object for use when specifying
+ vertex arrays.
+ \value IndexBuffer Index buffer object for use with \c{glDrawElements()}.
+ \value PixelPackBuffer Pixel pack buffer object for reading pixel
+ data from the GL server (for example, with \c{glReadPixels()}).
+ Not supported under OpenGL/ES.
+ \value PixelUnpackBuffer Pixel unpack buffer object for writing pixel
+ data to the GL server (for example, with \c{glTexImage2D()}).
+ Not supported under OpenGL/ES.
+*/
+
+/*!
+ \enum QGLBuffer::UsagePattern
+ This enum defines the usage pattern of a QGLBuffer object.
+
+ \value StreamDraw The data will be set once and used a few times
+ for drawing operations. Under OpenGL/ES 1.1 this is identical
+ to StaticDraw.
+ \value StreamRead The data will be set once and used a few times
+ for reading data back from the GL server. Not supported
+ under OpenGL/ES.
+ \value StreamCopy The data will be set once and used a few times
+ for reading data back from the GL server for use in further
+ drawing operations. Not supported under OpenGL/ES.
+ \value StaticDraw The data will be set once and used many times
+ for drawing operations.
+ \value StaticRead The data will be set once and used many times
+ for reading data back from the GL server. Not supported
+ under OpenGL/ES.
+ \value StaticCopy The data will be set once and used many times
+ for reading data back from the GL server for use in further
+ drawing operations. Not supported under OpenGL/ES.
+ \value DynamicDraw The data will be modified repeatedly and used
+ many times for drawing operations.
+ \value DynamicRead The data will be modified repeatedly and used
+ many times for reading data back from the GL server.
+ Not supported under OpenGL/ES.
+ \value DynamicCopy The data will be modified repeatedly and used
+ many times for reading data back from the GL server for
+ use in further drawing operations. Not supported under OpenGL/ES.
+*/
+
+/*!
+ \enum QGLBuffer::Access
+ This enum defines the access mode for QGLBuffer::map().
+
+ \value ReadOnly The buffer will be mapped for reading only.
+ \value WriteOnly The buffer will be mapped for writing only.
+ \value ReadWrite The buffer will be mapped for reading and writing.
+*/
+
+class QGLBufferPrivate
+{
+public:
+ QGLBufferPrivate(QGLBuffer::Type t)
+ : type(t),
+ guard(0),
+ usagePattern(QGLBuffer::StaticDraw),
+ actualUsagePattern(QGLBuffer::StaticDraw)
+ {
+ }
+
+ QGLBuffer::Type type;
+ QGLSharedResourceGuard guard;
+ QGLBuffer::UsagePattern usagePattern;
+ QGLBuffer::UsagePattern actualUsagePattern;
+};
+
+/*!
+ Constructs a new buffer object of \a type.
+
+ Note: this constructor just creates the QGLBuffer instance. The actual
+ buffer object in the GL server is not created until create() is called.
+
+ \sa create()
+*/
+QGLBuffer::QGLBuffer(QGLBuffer::Type type)
+ : d_ptr(new QGLBufferPrivate(type))
+{
+}
+
+#define ctx d->guard.context()
+
+/*!
+ Destroys this buffer object, including the storage being
+ used in the GL server.
+*/
+QGLBuffer::~QGLBuffer()
+{
+ Q_D(QGLBuffer);
+ GLuint bufferId = d->guard.id();
+ if (bufferId) {
+ // Switch to the original creating context to destroy it.
+ QGLShareContextScope scope(d->guard.context());
+ glDeleteBuffers(1, &bufferId);
+ }
+}
+
+/*!
+ Returns the type of buffer represented by this object.
+*/
+QGLBuffer::Type QGLBuffer::type() const
+{
+ Q_D(const QGLBuffer);
+ return d->type;
+}
+
+/*!
+ Returns the usage pattern for this buffer object.
+ The default value is StaticDraw.
+
+ \sa setUsagePattern()
+*/
+QGLBuffer::UsagePattern QGLBuffer::usagePattern() const
+{
+ Q_D(const QGLBuffer);
+ return d->usagePattern;
+}
+
+/*!
+ Sets the usage pattern for this buffer object to \a value.
+ This function must be called before allocate() or write().
+
+ \sa usagePattern(), allocate(), write()
+*/
+void QGLBuffer::setUsagePattern(QGLBuffer::UsagePattern value)
+{
+ Q_D(QGLBuffer);
+#if defined(QT_OPENGL_ES_1)
+ // OpenGL/ES 1.1 does not support GL_STREAM_DRAW, so use GL_STATIC_DRAW.
+ // OpenGL/ES 2.0 does support GL_STREAM_DRAW.
+ d->usagePattern = value;
+ if (value == StreamDraw)
+ d->actualUsagePattern = StaticDraw;
+ else
+ d->actualUsagePattern = value;
+#else
+ d->usagePattern = d->actualUsagePattern = value;
+#endif
+}
+
+#undef ctx
+
+/*!
+ Creates the buffer object in the GL server. Returns true if
+ the object was created; false otherwise.
+
+ This function must be called with a current QGLContext.
+ The buffer will be bound to and can only be used in
+ that context (or any other context that is shared with it).
+
+ This function will return false if the GL implementation
+ does not support buffers, or there is no current QGLContext.
+
+ \sa isCreated(), allocate(), write()
+*/
+bool QGLBuffer::create()
+{
+ Q_D(QGLBuffer);
+ if (d->guard.id())
+ return true;
+ const QGLContext *ctx = QGLContext::currentContext();
+ if (ctx) {
+ if (!qt_resolve_buffer_extensions(const_cast<QGLContext *>(ctx)))
+ return false;
+ GLuint bufferId = 0;
+ glGenBuffers(1, &bufferId);
+ if (bufferId) {
+ d->guard.setContext(ctx);
+ d->guard.setId(bufferId);
+ return true;
+ }
+ }
+ return false;
+}
+
+#define ctx d->guard.context()
+
+/*!
+ Returns true if this buffer has been created; false otherwise.
+
+ \sa create()
+*/
+bool QGLBuffer::isCreated() const
+{
+ Q_D(const QGLBuffer);
+ return d->guard.id() != 0;
+}
+
+/*!
+ Reads the \a count bytes in this buffer starting at \a offset
+ into \a data. Returns true on success; false if reading from
+ the buffer is not supported. Buffer reading is not supported
+ under OpenGL/ES.
+
+ It is assumed that this buffer has been bound to the current context.
+
+ \sa write(), bind()
+*/
+bool QGLBuffer::read(int offset, void *data, int count)
+{
+#if !defined(QT_OPENGL_ES)
+ Q_D(QGLBuffer);
+ if (!glGetBufferSubData || !d->guard.id())
+ return false;
+ while (glGetError() != GL_NO_ERROR) ; // Clear error state.
+ glGetBufferSubData(d->type, offset, count, data);
+ return glGetError() == GL_NO_ERROR;
+#else
+ Q_UNUSED(offset);
+ Q_UNUSED(data);
+ Q_UNUSED(count);
+ return false;
+#endif
+}
+
+/*!
+ Replaces the \a count bytes of this buffer starting at \a offset
+ with the contents of \a data. Any other bytes in the buffer
+ will be left unmodified.
+
+ It is assumed that create() has been called on this buffer and that
+ it has been bound to the current context.
+
+ \sa create(), read(), allocate()
+*/
+void QGLBuffer::write(int offset, const void *data, int count)
+{
+ Q_D(QGLBuffer);
+ if (d->guard.id())
+ glBufferSubData(d->type, offset, count, data);
+}
+
+/*!
+ Allocates \a count bytes of space to the buffer, initialized to
+ the contents of \a data. Any previous contents will be removed.
+
+ It is assumed that create() has been called on this buffer and that
+ it has been bound to the current context.
+
+ \sa create(), read(), write()
+*/
+void QGLBuffer::allocate(const void *data, int count)
+{
+ Q_D(QGLBuffer);
+ if (d->guard.id())
+ glBufferData(d->type, count, data, d->actualUsagePattern);
+}
+
+/*!
+ \fn void QGLBuffer::allocate(int count)
+ \overload
+
+ Allocates \a count bytes of space to the buffer. Any previous
+ contents will be removed.
+
+ It is assumed that create() has been called on this buffer and that
+ it has been bound to the current context.
+
+ \sa create(), write()
+*/
+
+/*!
+ Binds the buffer associated with this object to the current
+ GL context. Returns false if binding was not possible, usually because
+ type() is not supported on this GL implementation.
+
+ The buffer must be bound to the same QGLContext current when create()
+ was called, or to another QGLContext that is sharing with it.
+ Otherwise, false will be returned from this function.
+
+ \sa release(), create()
+*/
+bool QGLBuffer::bind() const
+{
+ Q_D(const QGLBuffer);
+ GLuint bufferId = d->guard.id();
+ if (bufferId) {
+ if (!QGLContext::areSharing(QGLContext::currentContext(),
+ d->guard.context())) {
+#ifndef QT_NO_DEBUG
+ qWarning("QGLBuffer::bind: buffer is not valid in the current context");
+#endif
+ return false;
+ }
+ glBindBuffer(d->type, bufferId);
+ return true;
+ } else {
+ return false;
+ }
+}
+
+/*!
+ Releases the buffer associated with this object from the
+ current GL context.
+
+ This function must be called with the same QGLContext current
+ as when bind() was called on the buffer.
+
+ \sa bind()
+*/
+void QGLBuffer::release() const
+{
+ Q_D(const QGLBuffer);
+ if (d->guard.id())
+ glBindBuffer(d->type, 0);
+}
+
+/*!
+ Returns the GL identifier associated with this buffer; zero if
+ the buffer has not been created.
+
+ \sa isCreated()
+*/
+uint QGLBuffer::bufferId() const
+{
+ Q_D(const QGLBuffer);
+ return d->guard.id();
+}
+
+#ifndef GL_BUFFER_SIZE
+#define GL_BUFFER_SIZE 0x8764
+#endif
+
+/*!
+ Returns the size of the data in this buffer, for reading operations.
+ Returns -1 if fetching the buffer size is not supported, or the
+ buffer has not been created.
+
+ It is assumed that this buffer has been bound to the current context.
+
+ \sa isCreated(), bind()
+*/
+int QGLBuffer::size() const
+{
+ Q_D(const QGLBuffer);
+ if (!d->guard.id())
+ return -1;
+ GLint value = -1;
+ glGetBufferParameteriv(d->type, GL_BUFFER_SIZE, &value);
+ return value;
+}
+
+/*!
+ Maps the contents of this buffer into the application's memory
+ space and returns a pointer to it. Returns null if memory
+ mapping is not possible. The \a access parameter indicates the
+ type of access to be performed.
+
+ It is assumed that create() has been called on this buffer and that
+ it has been bound to the current context.
+
+ This function is only supported under OpenGL/ES if the
+ \c{GL_OES_mapbuffer} extension is present.
+
+ \sa unmap(), create(), bind()
+*/
+void *QGLBuffer::map(QGLBuffer::Access access)
+{
+ Q_D(QGLBuffer);
+ if (!d->guard.id())
+ return 0;
+ if (!glMapBufferARB)
+ return 0;
+ return glMapBufferARB(d->type, access);
+}
+
+/*!
+ Unmaps the buffer after it was mapped into the application's
+ memory space with a previous call to map(). Returns true if
+ the unmap succeeded; false otherwise.
+
+ It is assumed that this buffer has been bound to the current context,
+ and that it was previously mapped with map().
+
+ This function is only supported under OpenGL/ES if the
+ \c{GL_OES_mapbuffer} extension is present.
+
+ \sa map()
+*/
+bool QGLBuffer::unmap()
+{
+ Q_D(QGLBuffer);
+ if (!d->guard.id())
+ return false;
+ if (!glUnmapBufferARB)
+ return false;
+ return glUnmapBufferARB(d->type) == GL_TRUE;
+}
+
+QT_END_NAMESPACE
diff --git a/src/opengl/qglbuffer.h b/src/opengl/qglbuffer.h
new file mode 100644
index 0000000..ecb86e2
--- /dev/null
+++ b/src/opengl/qglbuffer.h
@@ -0,0 +1,124 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtOpenGL module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QGLBUFFER_H
+#define QGLBUFFER_H
+
+#include <QtCore/qscopedpointer.h>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(OpenGL)
+
+class QGLBufferPrivate;
+
+class Q_OPENGL_EXPORT QGLBuffer
+{
+public:
+ enum Type
+ {
+ VertexBuffer = 0x8892, // GL_ARRAY_BUFFER
+ IndexBuffer = 0x8893, // GL_ELEMENT_ARRAY_BUFFER
+ PixelPackBuffer = 0x88EB, // GL_PIXEL_PACK_BUFFER
+ PixelUnpackBuffer = 0x88EC // GL_PIXEL_UNPACK_BUFFER
+ };
+
+ explicit QGLBuffer(QGLBuffer::Type type);
+ ~QGLBuffer();
+
+ enum UsagePattern
+ {
+ StreamDraw = 0x88E0, // GL_STREAM_DRAW
+ StreamRead = 0x88E1, // GL_STREAM_READ
+ StreamCopy = 0x88E2, // GL_STREAM_COPY
+ StaticDraw = 0x88E4, // GL_STATIC_DRAW
+ StaticRead = 0x88E5, // GL_STATIC_READ
+ StaticCopy = 0x88E6, // GL_STATIC_COPY
+ DynamicDraw = 0x88E8, // GL_DYNAMIC_DRAW
+ DynamicRead = 0x88E9, // GL_DYNAMIC_READ
+ DynamicCopy = 0x88EA // GL_DYNAMIC_COPY
+ };
+
+ enum Access
+ {
+ ReadOnly = 0x88B8, // GL_READ_ONLY
+ WriteOnly = 0x88B9, // GL_WRITE_ONLY
+ ReadWrite = 0x88BA // GL_READ_WRITE
+ };
+
+ QGLBuffer::Type type() const;
+
+ QGLBuffer::UsagePattern usagePattern() const;
+ void setUsagePattern(QGLBuffer::UsagePattern value);
+
+ bool create();
+ bool isCreated() const;
+
+ bool bind() const;
+ void release() const;
+
+ uint bufferId() const;
+
+ int size() const;
+
+ bool read(int offset, void *data, int count);
+ void write(int offset, const void *data, int count);
+
+ void allocate(const void *data, int count);
+ inline void allocate(int count) { allocate(0, count); }
+
+ void *map(QGLBuffer::Access access);
+ bool unmap();
+
+private:
+ QScopedPointer<QGLBufferPrivate> d_ptr;
+
+ Q_DISABLE_COPY(QGLBuffer)
+ Q_DECLARE_PRIVATE(QGLBuffer)
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/opengl/qglextensions.cpp b/src/opengl/qglextensions.cpp
index c091191..03fca39 100644
--- a/src/opengl/qglextensions.cpp
+++ b/src/opengl/qglextensions.cpp
@@ -191,31 +191,35 @@ bool qt_resolve_frag_program_extensions(QGLContext *ctx)
bool qt_resolve_buffer_extensions(QGLContext *ctx)
{
- if (glMapBufferARB && glUnmapBufferARB
-#if !defined(QT_OPENGL_ES_2)
- && glBindBuffer && glDeleteBuffers && glGenBuffers && glBufferData
-#endif
- )
+#if defined(QGL_RESOLVE_BUFFER_FUNCS)
+ if (glBindBuffer && glDeleteBuffers && glGenBuffers && glBufferData
+ && glBufferSubData && glGetBufferParameteriv)
return true;
+#endif
-#if !defined(QT_OPENGL_ES_2)
+#if defined(QGL_RESOLVE_BUFFER_FUNCS)
glBindBuffer = (_glBindBuffer) qt_gl_getProcAddressARB(ctx, "glBindBuffer");
glDeleteBuffers = (_glDeleteBuffers) qt_gl_getProcAddressARB(ctx, "glDeleteBuffers");
glGenBuffers = (_glGenBuffers) qt_gl_getProcAddressARB(ctx, "glGenBuffers");
glBufferData = (_glBufferData) qt_gl_getProcAddressARB(ctx, "glBufferData");
+ glBufferSubData = (_glBufferSubData) qt_gl_getProcAddressARB(ctx, "glBufferSubData");
+ glGetBufferSubData = (_glGetBufferSubData) qt_gl_getProcAddressARB(ctx, "glGetBufferSubData");
+ glGetBufferParameteriv = (_glGetBufferParameteriv) qt_gl_getProcAddressARB(ctx, "glGetBufferParameteriv");
#endif
glMapBufferARB = (_glMapBufferARB) qt_gl_getProcAddressARB(ctx, "glMapBuffer");
glUnmapBufferARB = (_glUnmapBufferARB) qt_gl_getProcAddressARB(ctx, "glUnmapBuffer");
- return glMapBufferARB
- && glUnmapBufferARB
-#if !defined(QT_OPENGL_ES_2)
- && glBindBuffer
+#if defined(QGL_RESOLVE_BUFFER_FUNCS)
+ return glBindBuffer
&& glDeleteBuffers
&& glGenBuffers
&& glBufferData
+ && glBufferSubData
+ && glGetBufferParameteriv;
+ // glGetBufferSubData() is optional
+#else
+ return true;
#endif
- ;
}
bool qt_resolve_glsl_extensions(QGLContext *ctx)
diff --git a/src/opengl/qglextensions_p.h b/src/opengl/qglextensions_p.h
index 86096d2..116dfa6 100644
--- a/src/opengl/qglextensions_p.h
+++ b/src/opengl/qglextensions_p.h
@@ -71,6 +71,7 @@
#include <QtCore/qglobal.h>
#ifndef GL_ARB_vertex_buffer_object
+typedef ptrdiff_t GLintptrARB;
typedef ptrdiff_t GLsizeiptrARB;
#endif
@@ -78,13 +79,25 @@ typedef ptrdiff_t GLsizeiptrARB;
typedef char GLchar;
#endif
-// ARB_pixel_buffer_object
+// ARB_vertex_buffer_object
typedef void (APIENTRY *_glBindBuffer) (GLenum, GLuint);
typedef void (APIENTRY *_glDeleteBuffers) (GLsizei, const GLuint *);
typedef void (APIENTRY *_glGenBuffers) (GLsizei, GLuint *);
typedef void (APIENTRY *_glBufferData) (GLenum, GLsizeiptrARB, const GLvoid *, GLenum);
+typedef void (APIENTRY *_glBufferSubData) (GLenum, GLintptrARB, GLsizeiptrARB, const GLvoid *);
+typedef void (APIENTRY *_glGetBufferSubData) (GLenum, GLintptrARB, GLsizeiptrARB, GLvoid *);
+typedef void (APIENTRY *_glGetBufferParameteriv) (GLenum, GLenum, GLint *);
typedef GLvoid* (APIENTRY *_glMapBufferARB) (GLenum, GLenum);
typedef GLboolean (APIENTRY *_glUnmapBufferARB) (GLenum);
+// We can call the buffer functions directly in OpenGL/ES 1.1 or higher,
+// but all other platforms need to resolve the extensions.
+#if defined(QT_OPENGL_ES)
+#if defined(GL_OES_VERSION_1_0) && !defined(GL_OES_VERSION_1_1)
+#define QGL_RESOLVE_BUFFER_FUNCS 1
+#endif
+#else
+#define QGL_RESOLVE_BUFFER_FUNCS 1
+#endif
// ARB_fragment_program
typedef void (APIENTRY *_glProgramStringARB) (GLenum, GLenum, GLsizei, const GLvoid *);
@@ -285,11 +298,14 @@ struct QGLExtensionFuncs
qt_glRenderbufferStorageMultisampleEXT = 0;
// Buffer objects:
-#if !defined(QT_OPENGL_ES_2)
+#if defined(QGL_RESOLVE_BUFFER_FUNCS)
qt_glBindBuffer = 0;
qt_glDeleteBuffers = 0;
qt_glGenBuffers = 0;
qt_glBufferData = 0;
+ qt_glBufferSubData = 0;
+ qt_glGetBufferSubData = 0;
+ qt_glGetBufferParameteriv = 0;
#endif
qt_glMapBufferARB = 0;
qt_glUnmapBufferARB = 0;
@@ -397,11 +413,14 @@ struct QGLExtensionFuncs
_glRenderbufferStorageMultisampleEXT qt_glRenderbufferStorageMultisampleEXT;
// Buffer objects
-#if !defined(QT_OPENGL_ES_2)
+#if defined(QGL_RESOLVE_BUFFER_FUNCS)
_glBindBuffer qt_glBindBuffer;
_glDeleteBuffers qt_glDeleteBuffers;
_glGenBuffers qt_glGenBuffers;
_glBufferData qt_glBufferData;
+ _glBufferSubData qt_glBufferSubData;
+ _glGetBufferSubData qt_glGetBufferSubData;
+ _glGetBufferParameteriv qt_glGetBufferParameteriv;
#endif
_glMapBufferARB qt_glMapBufferARB;
_glUnmapBufferARB qt_glUnmapBufferARB;
@@ -681,11 +700,14 @@ struct QGLExtensionFuncs
// Buffer objects
-#if !defined(QT_OPENGL_ES_2)
+#if defined(QGL_RESOLVE_BUFFER_FUNCS)
#define glBindBuffer QGLContextPrivate::extensionFuncs(ctx).qt_glBindBuffer
#define glDeleteBuffers QGLContextPrivate::extensionFuncs(ctx).qt_glDeleteBuffers
#define glGenBuffers QGLContextPrivate::extensionFuncs(ctx).qt_glGenBuffers
#define glBufferData QGLContextPrivate::extensionFuncs(ctx).qt_glBufferData
+#define glBufferSubData QGLContextPrivate::extensionFuncs(ctx).qt_glBufferSubData
+#define glGetBufferSubData QGLContextPrivate::extensionFuncs(ctx).qt_glGetBufferSubData
+#define glGetBufferParameteriv QGLContextPrivate::extensionFuncs(ctx).qt_glGetBufferParameteriv
#endif
#define glMapBufferARB QGLContextPrivate::extensionFuncs(ctx).qt_glMapBufferARB
#define glUnmapBufferARB QGLContextPrivate::extensionFuncs(ctx).qt_glUnmapBufferARB
diff --git a/src/opengl/qglframebufferobject.cpp b/src/opengl/qglframebufferobject.cpp
index ce80796..f1d2325 100644
--- a/src/opengl/qglframebufferobject.cpp
+++ b/src/opengl/qglframebufferobject.cpp
@@ -44,7 +44,7 @@
#include <qdebug.h>
#include <private/qgl_p.h>
-#if !defined(QT_OPENGL_ES_1) && !defined(QT_OPENGL_ES_1_CL)
+#if !defined(QT_OPENGL_ES_1)
#include <private/qpaintengineex_opengl2_p.h>
#endif
@@ -56,10 +56,6 @@
#include <qlibrary.h>
#include <qimage.h>
-#ifdef QT_OPENGL_ES_1_CL
-#include "qgl_cl_p.h"
-#endif
-
QT_BEGIN_NAMESPACE
extern QImage qt_gl_read_framebuffer(const QSize&, bool, bool);
@@ -980,7 +976,7 @@ QImage QGLFramebufferObject::toImage() const
return image;
}
-#if !defined(QT_OPENGL_ES_1) && !defined(QT_OPENGL_ES_1_CL)
+#if !defined(QT_OPENGL_ES_1)
Q_GLOBAL_STATIC(QGL2PaintEngineEx, qt_buffer_2_engine)
#endif
@@ -995,7 +991,7 @@ QPaintEngine *QGLFramebufferObject::paintEngine() const
if (d->engine)
return d->engine;
-#if !defined(QT_OPENGL_ES_1) && !defined(QT_OPENGL_ES_1_CL)
+#if !defined(QT_OPENGL_ES_1)
#if !defined (QT_OPENGL_ES_2)
if (qt_gl_preferGL2Engine()) {
#endif
diff --git a/src/opengl/qglpaintdevice.cpp b/src/opengl/qglpaintdevice.cpp
index 7697570..a0b1a79 100644
--- a/src/opengl/qglpaintdevice.cpp
+++ b/src/opengl/qglpaintdevice.cpp
@@ -48,14 +48,10 @@
#include <private/qpixmapdata_x11gl_p.h>
#endif
-#if !defined(QT_OPENGL_ES_1) && !defined(QT_OPENGL_ES_1_CL)
+#if !defined(QT_OPENGL_ES_1)
#include <private/qpixmapdata_gl_p.h>
#endif
-#if defined(QT_OPENGL_ES_1_CL)
-#include "qgl_cl_p.h"
-#endif
-
QT_BEGIN_NAMESPACE
QGLPaintDevice::QGLPaintDevice()
@@ -198,7 +194,7 @@ QGLPaintDevice* QGLPaintDevice::getDevice(QPaintDevice* pd)
glpd = &(static_cast<QGLFramebufferObject*>(pd)->d_func()->glDevice);
break;
case QInternal::Pixmap: {
-#if !defined(QT_OPENGL_ES_1) && !defined(QT_OPENGL_ES_1_CL)
+#if !defined(QT_OPENGL_ES_1)
QPixmapData* pmd = static_cast<QPixmap*>(pd)->pixmapData();
if (pmd->classId() == QPixmapData::OpenGLClass)
glpd = static_cast<QGLPixmapData*>(pmd)->glDevice();
diff --git a/src/opengl/qglpixelbuffer.cpp b/src/opengl/qglpixelbuffer.cpp
index 46f7697..eca9550 100644
--- a/src/opengl/qglpixelbuffer.cpp
+++ b/src/opengl/qglpixelbuffer.cpp
@@ -78,7 +78,7 @@
#include <QtCore/qglobal.h>
-#if !defined(QT_OPENGL_ES_1) && !defined(QT_OPENGL_ES_1_CL)
+#if !defined(QT_OPENGL_ES_1)
#include <private/qpaintengineex_opengl2_p.h>
#endif
@@ -387,7 +387,7 @@ bool QGLPixelBuffer::isValid() const
return !d->invalid;
}
-#if !defined(QT_OPENGL_ES_1) && !defined(QT_OPENGL_ES_1_CL)
+#if !defined(QT_OPENGL_ES_1)
Q_GLOBAL_STATIC(QGL2PaintEngineEx, qt_buffer_2_engine)
#endif
@@ -398,7 +398,7 @@ Q_GLOBAL_STATIC(QOpenGLPaintEngine, qt_buffer_engine)
/*! \reimp */
QPaintEngine *QGLPixelBuffer::paintEngine() const
{
-#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_1_CL)
+#if defined(QT_OPENGL_ES_1)
return qt_buffer_engine();
#elif defined(QT_OPENGL_ES_2)
return qt_buffer_2_engine();
diff --git a/src/opengl/qglpixelbuffer_egl.cpp b/src/opengl/qglpixelbuffer_egl.cpp
index ca19011..1e3223e 100644
--- a/src/opengl/qglpixelbuffer_egl.cpp
+++ b/src/opengl/qglpixelbuffer_egl.cpp
@@ -47,10 +47,6 @@
#include <qimage.h>
#include <private/qgl_p.h>
-#ifdef QT_OPENGL_ES_1_CL
-#include "qgl_cl_p.h"
-#endif
-
QT_BEGIN_NAMESPACE
#ifdef EGL_BIND_TO_TEXTURE_RGBA
diff --git a/src/opengl/qglshaderprogram.cpp b/src/opengl/qglshaderprogram.cpp
index 5e2f1f5..80b4872 100644
--- a/src/opengl/qglshaderprogram.cpp
+++ b/src/opengl/qglshaderprogram.cpp
@@ -50,7 +50,7 @@
QT_BEGIN_NAMESPACE
-#if !defined(QT_OPENGL_ES_1_CL) && !defined(QT_OPENGL_ES_1)
+#if !defined(QT_OPENGL_ES_1)
/*!
\class QGLShaderProgram
@@ -106,6 +106,19 @@ QT_BEGIN_NAMESPACE
\snippet doc/src/snippets/code/src_opengl_qglshaderprogram.cpp 2
+ \section1 Binary shaders and programs
+
+ Binary shaders may be specified using \c{glShaderBinary()} on
+ the return value from QGLShader::shaderId(). The QGLShader instance
+ containing the binary can then be added to the shader program with
+ addShader() and linked in the usual fashion with link().
+
+ Binary programs may be specified using \c{glProgramBinaryOES()}
+ on the return value from programId(). Then the application should
+ call link(), which will notice that the program has already been
+ specified and linked, allowing other operations to be performed
+ on the shader program.
+
\sa QGLShader
*/
@@ -632,8 +645,6 @@ bool QGLShaderProgram::addShader(QGLShader *shader)
qWarning("QGLShaderProgram::addShader: Program and shader are not associated with same context.");
return false;
}
- if (!shader->d_func()->compiled)
- return false;
if (!shader->d_func()->shaderGuard.id())
return false;
glAttachShader(d->programGuard.id(), shader->d_func()->shaderGuard.id());
@@ -820,8 +831,20 @@ bool QGLShaderProgram::link()
GLuint program = d->programGuard.id();
if (!program)
return false;
+ GLint value;
+ if (d->shaders.isEmpty()) {
+ // If there are no explicit shaders, then it is possible that the
+ // application added a program binary with glProgramBinaryOES(),
+ // or otherwise populated the shaders itself. Check to see if the
+ // program is already linked and bail out if so.
+ value = 0;
+ glGetProgramiv(program, GL_LINK_STATUS, &value);
+ d->linked = (value != 0);
+ if (d->linked)
+ return true;
+ }
glLinkProgram(program);
- GLint value = 0;
+ value = 0;
glGetProgramiv(program, GL_LINK_STATUS, &value);
d->linked = (value != 0);
value = 0;
@@ -928,6 +951,15 @@ void QGLShaderProgram::release()
GLuint QGLShaderProgram::programId() const
{
Q_D(const QGLShaderProgram);
+ GLuint id = d->programGuard.id();
+ if (id)
+ return id;
+
+ // Create the identifier if we don't have one yet. This is for
+ // applications that want to create the attached shader configuration
+ // themselves, particularly those using program binaries.
+ if (!const_cast<QGLShaderProgram *>(this)->init())
+ return 0;
return d->programGuard.id();
}
@@ -1394,6 +1426,38 @@ void QGLShaderProgram::setAttributeArray
}
/*!
+ Sets an array of vertex \a values on the attribute at \a location
+ in this shader program. The \a stride indicates the number of bytes
+ between vertices. A default \a stride value of zero indicates that
+ the vertices are densely packed in \a values.
+
+ The \a type indicates the type of elements in the \a values array,
+ usually \c{GL_FLOAT}, \c{GL_UNSIGNED_BYTE}, etc. The \a tupleSize
+ indicates the number of components per vertex: 1, 2, 3, or 4.
+
+ The array will become active when enableAttributeArray() is called
+ on the \a location. Otherwise the value specified with
+ setAttributeValue() for \a location will be used.
+
+ The setAttributeBuffer() function can be used to set the attribute
+ array to an offset within a vertex buffer.
+
+ \sa setAttributeValue(), setUniformValue(), enableAttributeArray()
+ \sa disableAttributeArray(), setAttributeBuffer()
+ \since 4.7
+*/
+void QGLShaderProgram::setAttributeArray
+ (int location, GLenum type, const void *values, int tupleSize, int stride)
+{
+ Q_D(QGLShaderProgram);
+ Q_UNUSED(d);
+ if (location != -1) {
+ glVertexAttribPointer(location, tupleSize, type, GL_FALSE,
+ stride, values);
+ }
+}
+
+/*!
\overload
Sets an array of vertex \a values on the attribute called \a name
@@ -1479,6 +1543,90 @@ void QGLShaderProgram::setAttributeArray
}
/*!
+ \overload
+
+ Sets an array of vertex \a values on the attribute called \a name
+ in this shader program. The \a stride indicates the number of bytes
+ between vertices. A default \a stride value of zero indicates that
+ the vertices are densely packed in \a values.
+
+ The \a type indicates the type of elements in the \a values array,
+ usually \c{GL_FLOAT}, \c{GL_UNSIGNED_BYTE}, etc. The \a tupleSize
+ indicates the number of components per vertex: 1, 2, 3, or 4.
+
+ The array will become active when enableAttributeArray() is called
+ on the \a location. Otherwise the value specified with
+ setAttributeValue() for \a location will be used.
+
+ The setAttributeBuffer() function can be used to set the attribute
+ array to an offset within a vertex buffer.
+
+ \sa setAttributeValue(), setUniformValue(), enableAttributeArray()
+ \sa disableAttributeArray(), setAttributeBuffer()
+ \since 4.7
+*/
+void QGLShaderProgram::setAttributeArray
+ (const char *name, GLenum type, const void *values, int tupleSize, int stride)
+{
+ setAttributeArray(attributeLocation(name), type, values, tupleSize, stride);
+}
+
+/*!
+ Sets an array of vertex values on the attribute at \a location
+ in this shader program, starting at a specific \a offset in the
+ currently bound vertex buffer. The \a stride indicates the number
+ of bytes between vertices. A default \a stride value of zero
+ indicates that the vertices are densely packed in \a values.
+
+ The \a type indicates the type of elements in the \a values array,
+ usually \c{GL_FLOAT}, \c{GL_UNSIGNED_BYTE}, etc. The \a tupleSize
+ indicates the number of components per vertex: 1, 2, 3, or 4.
+
+ The array will become active when enableAttributeArray() is called
+ on the \a location. Otherwise the value specified with
+ setAttributeValue() for \a location will be used.
+
+ \sa setAttributeArray()
+ \since 4.7
+*/
+void QGLShaderProgram::setAttributeBuffer
+ (int location, GLenum type, int offset, int tupleSize, int stride)
+{
+ Q_D(QGLShaderProgram);
+ Q_UNUSED(d);
+ if (location != -1) {
+ glVertexAttribPointer(location, tupleSize, type, GL_FALSE, stride,
+ reinterpret_cast<const void *>(offset));
+ }
+}
+
+/*!
+ \overload
+
+ Sets an array of vertex values on the attribute called \a name
+ in this shader program, starting at a specific \a offset in the
+ currently bound vertex buffer. The \a stride indicates the number
+ of bytes between vertices. A default \a stride value of zero
+ indicates that the vertices are densely packed in \a values.
+
+ The \a type indicates the type of elements in the \a values array,
+ usually \c{GL_FLOAT}, \c{GL_UNSIGNED_BYTE}, etc. The \a tupleSize
+ indicates the number of components per vertex: 1, 2, 3, or 4.
+
+ The array will become active when enableAttributeArray() is called
+ on the \a location. Otherwise the value specified with
+ setAttributeValue() for \a location will be used.
+
+ \sa setAttributeArray()
+ \since 4.7
+*/
+void QGLShaderProgram::setAttributeBuffer
+ (const char *name, GLenum type, int offset, int tupleSize, int stride)
+{
+ setAttributeBuffer(attributeLocation(name), type, offset, tupleSize, stride);
+}
+
+/*!
Enables the vertex array at \a location in this shader program
so that the value set by setAttributeArray() on \a location
will be used by the shader program.
@@ -2275,6 +2423,42 @@ void QGLShaderProgram::setUniformValue(const char *name, const QMatrix4x4& value
\overload
Sets the uniform variable at \a location in the current context
+ to a 2x2 matrix \a value. The matrix elements must be specified
+ in column-major order.
+
+ \sa setAttributeValue()
+ \since 4.7
+*/
+void QGLShaderProgram::setUniformValue(int location, const GLfloat value[2][2])
+{
+ Q_D(QGLShaderProgram);
+ Q_UNUSED(d);
+ if (location != -1)
+ glUniformMatrix2fv(location, 1, GL_FALSE, value[0]);
+}
+
+/*!
+ \overload
+
+ Sets the uniform variable at \a location in the current context
+ to a 3x3 matrix \a value. The matrix elements must be specified
+ in column-major order.
+
+ \sa setAttributeValue()
+ \since 4.7
+*/
+void QGLShaderProgram::setUniformValue(int location, const GLfloat value[3][3])
+{
+ Q_D(QGLShaderProgram);
+ Q_UNUSED(d);
+ if (location != -1)
+ glUniformMatrix3fv(location, 1, GL_FALSE, value[0]);
+}
+
+/*!
+ \overload
+
+ Sets the uniform variable at \a location in the current context
to a 4x4 matrix \a value. The matrix elements must be specified
in column-major order.
@@ -2288,6 +2472,37 @@ void QGLShaderProgram::setUniformValue(int location, const GLfloat value[4][4])
glUniformMatrix4fv(location, 1, GL_FALSE, value[0]);
}
+
+/*!
+ \overload
+
+ Sets the uniform variable called \a name in the current context
+ to a 2x2 matrix \a value. The matrix elements must be specified
+ in column-major order.
+
+ \sa setAttributeValue()
+ \since 4.7
+*/
+void QGLShaderProgram::setUniformValue(const char *name, const GLfloat value[2][2])
+{
+ setUniformValue(uniformLocation(name), value);
+}
+
+/*!
+ \overload
+
+ Sets the uniform variable called \a name in the current context
+ to a 3x3 matrix \a value. The matrix elements must be specified
+ in column-major order.
+
+ \sa setAttributeValue()
+ \since 4.7
+*/
+void QGLShaderProgram::setUniformValue(const char *name, const GLfloat value[3][3])
+{
+ setUniformValue(uniformLocation(name), value);
+}
+
/*!
\overload
@@ -2911,6 +3126,6 @@ void QGLShaderProgram::setUniformValueArray(const char *name, const QMacCompatGL
}
#endif
-#endif // !defined(QT_OPENGL_ES_1_CL) && !defined(QT_OPENGL_ES_1)
+#endif // !defined(QT_OPENGL_ES_1)
QT_END_NAMESPACE
diff --git a/src/opengl/qglshaderprogram.h b/src/opengl/qglshaderprogram.h
index 24ab986..2500275 100644
--- a/src/opengl/qglshaderprogram.h
+++ b/src/opengl/qglshaderprogram.h
@@ -54,7 +54,7 @@ QT_BEGIN_NAMESPACE
QT_MODULE(OpenGL)
-#if !defined(QT_OPENGL_ES_1_CL) && !defined(QT_OPENGL_ES_1)
+#if !defined(QT_OPENGL_ES_1)
class QGLShaderProgram;
class QGLShaderPrivate;
@@ -165,6 +165,8 @@ public:
void setAttributeArray
(int location, const QVector4D *values, int stride = 0);
void setAttributeArray
+ (int location, GLenum type, const void *values, int tupleSize, int stride = 0);
+ void setAttributeArray
(const char *name, const GLfloat *values, int tupleSize, int stride = 0);
void setAttributeArray
(const char *name, const QVector2D *values, int stride = 0);
@@ -172,6 +174,13 @@ public:
(const char *name, const QVector3D *values, int stride = 0);
void setAttributeArray
(const char *name, const QVector4D *values, int stride = 0);
+ void setAttributeArray
+ (const char *name, GLenum type, const void *values, int tupleSize, int stride = 0);
+
+ void setAttributeBuffer
+ (int location, GLenum type, int offset, int tupleSize, int stride = 0);
+ void setAttributeBuffer
+ (const char *name, GLenum type, int offset, int tupleSize, int stride = 0);
void enableAttributeArray(int location);
void enableAttributeArray(const char *name);
@@ -216,6 +225,8 @@ public:
void setUniformValue(int location, const QMatrix4x2& value);
void setUniformValue(int location, const QMatrix4x3& value);
void setUniformValue(int location, const QMatrix4x4& value);
+ void setUniformValue(int location, const GLfloat value[2][2]);
+ void setUniformValue(int location, const GLfloat value[3][3]);
void setUniformValue(int location, const GLfloat value[4][4]);
void setUniformValue(int location, const QTransform& value);
@@ -242,6 +253,8 @@ public:
void setUniformValue(const char *name, const QMatrix4x2& value);
void setUniformValue(const char *name, const QMatrix4x3& value);
void setUniformValue(const char *name, const QMatrix4x4& value);
+ void setUniformValue(const char *name, const GLfloat value[2][2]);
+ void setUniformValue(const char *name, const GLfloat value[3][3]);
void setUniformValue(const char *name, const GLfloat value[4][4]);
void setUniformValue(const char *name, const QTransform& value);
diff --git a/src/opengl/qgraphicsshadereffect.cpp b/src/opengl/qgraphicsshadereffect.cpp
index dddc85d..f53ef54 100644
--- a/src/opengl/qgraphicsshadereffect.cpp
+++ b/src/opengl/qgraphicsshadereffect.cpp
@@ -40,7 +40,7 @@
****************************************************************************/
#include "qgraphicsshadereffect_p.h"
-#if !defined(QT_OPENGL_ES_1) && !defined(QT_OPENGL_ES_1_CL)
+#if !defined(QT_OPENGL_ES_1)
#include "qglshaderprogram.h"
#include "gl2paintengineex/qglcustomshaderstage_p.h"
#define QGL_HAVE_CUSTOM_SHADERS 1
diff --git a/src/opengl/qpaintengine_opengl.cpp b/src/opengl/qpaintengine_opengl.cpp
index 57918d0..3845e43 100644
--- a/src/opengl/qpaintengine_opengl.cpp
+++ b/src/opengl/qpaintengine_opengl.cpp
@@ -71,10 +71,6 @@
#include "private/qwsmanager_p.h"
#endif
-#ifdef QT_OPENGL_ES_1_CL
-#include "qgl_cl_p.h"
-#endif
-
#define QGL_FUNC_CONTEXT QGLContext *ctx = const_cast<QGLContext *>(device->context());
#include <stdlib.h>
@@ -780,7 +776,7 @@ public:
void drawOffscreenPath(const QPainterPath &path);
void composite(const QRectF &rect, const QPoint &maskOffset = QPoint());
- void composite(GLuint primitive, const q_vertexType *vertexArray, int vertexCount, const QPoint &maskOffset = QPoint());
+ void composite(GLuint primitive, const GLfloat *vertexArray, int vertexCount, const QPoint &maskOffset = QPoint());
bool createFragmentPrograms();
void deleteFragmentPrograms();
@@ -1787,7 +1783,7 @@ class QOpenGLTrapezoidToArrayTessellator : public QOpenGLTessellator
public:
QOpenGLTrapezoidToArrayTessellator() : vertices(0), allocated(0), size(0) {}
~QOpenGLTrapezoidToArrayTessellator() { free(vertices); }
- q_vertexType *vertices;
+ GLfloat *vertices;
int allocated;
int size;
QRectF bounds;
@@ -1808,36 +1804,36 @@ void QOpenGLTrapezoidToArrayTessellator::addTrap(const Trapezoid &trap)
if (size > allocated - 12) {
#endif
allocated = qMax(2*allocated, 512);
- vertices = (q_vertexType *)realloc(vertices, allocated * sizeof(q_vertexType));
+ vertices = (GLfloat *)realloc(vertices, allocated * sizeof(GLfloat));
}
QGLTrapezoid t = toGLTrapezoid(trap);
#ifndef QT_OPENGL_ES
- vertices[size++] = f2vt(t.topLeftX);
- vertices[size++] = f2vt(t.top);
- vertices[size++] = f2vt(t.topRightX);
- vertices[size++] = f2vt(t.top);
- vertices[size++] = f2vt(t.bottomRightX);
- vertices[size++] = f2vt(t.bottom);
- vertices[size++] = f2vt(t.bottomLeftX);
- vertices[size++] = f2vt(t.bottom);
+ vertices[size++] = t.topLeftX;
+ vertices[size++] = t.top;
+ vertices[size++] = t.topRightX;
+ vertices[size++] = t.top;
+ vertices[size++] = t.bottomRightX;
+ vertices[size++] = t.bottom;
+ vertices[size++] = t.bottomLeftX;
+ vertices[size++] = t.bottom;
#else
// First triangle
- vertices[size++] = f2vt(t.topLeftX);
- vertices[size++] = f2vt(t.top);
- vertices[size++] = f2vt(t.topRightX);
- vertices[size++] = f2vt(t.top);
- vertices[size++] = f2vt(t.bottomRightX);
- vertices[size++] = f2vt(t.bottom);
+ vertices[size++] = t.topLeftX;
+ vertices[size++] = t.top;
+ vertices[size++] = t.topRightX;
+ vertices[size++] = t.top;
+ vertices[size++] = t.bottomRightX;
+ vertices[size++] = t.bottom;
// Second triangle
- vertices[size++] = f2vt(t.bottomLeftX);
- vertices[size++] = f2vt(t.bottom);
- vertices[size++] = f2vt(t.topLeftX);
- vertices[size++] = f2vt(t.top);
- vertices[size++] = f2vt(t.bottomRightX);
- vertices[size++] = f2vt(t.bottom);
+ vertices[size++] = t.bottomLeftX;
+ vertices[size++] = t.bottom;
+ vertices[size++] = t.topLeftX;
+ vertices[size++] = t.top;
+ vertices[size++] = t.bottomRightX;
+ vertices[size++] = t.bottom;
#endif
}
@@ -1864,7 +1860,7 @@ void QOpenGLPaintEnginePrivate::fillPolygon_dev(const QPointF *polygonPoints, in
if (use_fragment_programs && !(fast_style && has_fast_composition_mode)) {
composite(geometry_mode, tessellator.vertices, tessellator.size / 2);
} else {
- glVertexPointer(2, q_vertexTypeEnum, 0, tessellator.vertices);
+ glVertexPointer(2, GL_FLOAT, 0, tessellator.vertices);
glEnableClientState(GL_VERTEX_ARRAY);
glDrawArrays(geometry_mode, 0, tessellator.size/2);
glDisableClientState(GL_VERTEX_ARRAY);
@@ -2265,7 +2261,7 @@ void QOpenGLPaintEnginePrivate::updateDepthClip()
return;
}
-#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_2) || defined(QT_OPENGL_ES_1_CL)
+#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_2)
glClearDepthf(0.0f);
#else
glClearDepth(0.0f);
@@ -2281,12 +2277,12 @@ void QOpenGLPaintEnginePrivate::updateDepthClip()
const QVector<QRect> rects = q->state()->clipEnabled ? q->state()->clipRegion.rects() : q->systemClip().rects();
// rectangle count * 2 (triangles) * vertex count * component count (Z omitted)
- QDataBuffer<q_vertexType> clipVertex(rects.size()*2*3*2);
+ QDataBuffer<GLfloat> clipVertex(rects.size()*2*3*2);
for (int i = 0; i < rects.size(); ++i) {
- q_vertexType x = i2vt(rects.at(i).left());
- q_vertexType w = i2vt(rects.at(i).width());
- q_vertexType h = i2vt(rects.at(i).height());
- q_vertexType y = i2vt(rects.at(i).top());
+ GLfloat x = GLfloat(rects.at(i).left());
+ GLfloat w = GLfloat(rects.at(i).width());
+ GLfloat h = GLfloat(rects.at(i).height());
+ GLfloat y = GLfloat(rects.at(i).top());
// First triangle
clipVertex.add(x);
@@ -2314,7 +2310,7 @@ void QOpenGLPaintEnginePrivate::updateDepthClip()
glLoadIdentity();
glEnableClientState(GL_VERTEX_ARRAY);
- glVertexPointer(2, q_vertexTypeEnum, 0, clipVertex.data());
+ glVertexPointer(2, GL_FLOAT, 0, clipVertex.data());
glDrawArrays(GL_TRIANGLES, 0, rects.size()*2*3);
glDisableClientState(GL_VERTEX_ARRAY);
@@ -3106,8 +3102,8 @@ QGLTrapezoidMaskGenerator::QGLTrapezoidMaskGenerator(const QPainterPath &path, c
{
}
-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);
+extern void qt_add_rect_to_array(const QRectF &r, GLfloat *array);
+extern void qt_add_texcoords_to_array(qreal x1, qreal y1, qreal x2, qreal y2, GLfloat *array);
void QGLTrapezoidMaskGenerator::drawMask(const QRect &rect)
{
@@ -3138,7 +3134,7 @@ void QGLTrapezoidMaskGenerator::drawMask(const QRect &rect)
// clear mask
glBlendFunc(GL_ZERO, GL_ZERO); // clear
- glVertexPointer(2, q_vertexTypeEnum, 0, vertexArray);
+ glVertexPointer(2, GL_FLOAT, 0, vertexArray);
glEnableClientState(GL_VERTEX_ARRAY);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
glDisableClientState(GL_VERTEX_ARRAY);
@@ -3369,7 +3365,7 @@ void QGLEllipseMaskGenerator::drawMask(const QRect &rect)
glProgramLocalParameter4fvARB(GL_FRAGMENT_PROGRAM_ARB, maskVariableLocations[VAR_ELLIPSE_OFFSET], ellipse_offset);
glEnableClientState(GL_VERTEX_ARRAY);
- glVertexPointer(2, q_vertexTypeEnum, 0, vertexArray);
+ glVertexPointer(2, GL_FLOAT, 0, vertexArray);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
glDisableClientState(GL_VERTEX_ARRAY);
glDisable(GL_FRAGMENT_PROGRAM_ARB);
@@ -3399,7 +3395,7 @@ void QOpenGLPaintEnginePrivate::drawFastRect(const QRectF &r)
Q_Q(QOpenGLPaintEngine);
DEBUG_ONCE_STR("QOpenGLPaintEngine::drawRects(): drawing fast rect");
- q_vertexType vertexArray[10];
+ GLfloat vertexArray[10];
qt_add_rect_to_array(r, vertexArray);
if (has_pen)
@@ -3420,7 +3416,7 @@ void QOpenGLPaintEnginePrivate::drawFastRect(const QRectF &r)
if (fast_style && has_fast_composition_mode) {
glEnableClientState(GL_VERTEX_ARRAY);
- glVertexPointer(2, q_vertexTypeEnum, 0, vertexArray);
+ glVertexPointer(2, GL_FLOAT, 0, vertexArray);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
glDisableClientState(GL_VERTEX_ARRAY);
} else {
@@ -3439,7 +3435,7 @@ void QOpenGLPaintEnginePrivate::drawFastRect(const QRectF &r)
vertexArray[8] = vertexArray[0];
vertexArray[9] = vertexArray[1];
- glVertexPointer(2, q_vertexTypeEnum, 0, vertexArray);
+ glVertexPointer(2, GL_FLOAT, 0, vertexArray);
glEnableClientState(GL_VERTEX_ARRAY);
glDrawArrays(GL_LINE_STRIP, 0, 5);
glDisableClientState(GL_VERTEX_ARRAY);
@@ -3546,7 +3542,7 @@ void QOpenGLPaintEngine::drawRects(const QRectF *rects, int rectCount)
}
}
-static void addQuadAsTriangle(q_vertexType *quad, q_vertexType *triangle)
+static void addQuadAsTriangle(GLfloat *quad, GLfloat *triangle)
{
triangle[0] = quad[0];
triangle[1] = quad[1];
@@ -3607,7 +3603,7 @@ void QOpenGLPaintEngine::drawPoints(const QPointF *points, int pointCount)
d->flushDrawQueue();
if (d->has_fast_pen) {
- QVarLengthArray<q_vertexType> vertexArray(6 * pointCount);
+ QVarLengthArray<GLfloat> vertexArray(6 * pointCount);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
@@ -3617,25 +3613,22 @@ void QOpenGLPaintEngine::drawPoints(const QPointF *points, int pointCount)
for (int i = 0; i < pointCount; ++i) {
QPointF mapped = d->matrix.map(points[i]);
- qreal xf = qRound(mapped.x());
- qreal yf = qRound(mapped.y());
-
- q_vertexType x = f2vt(xf);
- q_vertexType y = f2vt(yf);
+ GLfloat x = GLfloat(qRound(mapped.x()));
+ GLfloat y = GLfloat(qRound(mapped.y()));
vertexArray[j++] = x;
- vertexArray[j++] = y - f2vt(0.5);
+ vertexArray[j++] = y - 0.5f;
- vertexArray[j++] = x + f2vt(1.5);
- vertexArray[j++] = y + f2vt(1.0);
+ vertexArray[j++] = x + 1.5f;
+ vertexArray[j++] = y + 1.0f;
vertexArray[j++] = x;
- vertexArray[j++] = y + f2vt(1.0);
+ vertexArray[j++] = y + 1.0f;
}
glEnableClientState(GL_VERTEX_ARRAY);
- glVertexPointer(2, q_vertexTypeEnum, 0, vertexArray.constData());
+ glVertexPointer(2, GL_FLOAT, 0, vertexArray.constData());
glDrawArrays(GL_TRIANGLES, 0, pointCount*3);
glDisableClientState(GL_VERTEX_ARRAY);
@@ -3652,7 +3645,7 @@ void QOpenGLPaintEngine::drawPoints(const QPointF *points, int pointCount)
}
else {
Q_ASSERT(sizeof(QPointF) == 8);
- glVertexPointer(2, q_vertexTypeEnum, 0, vertexArray);
+ glVertexPointer(2, GL_FLOAT, 0, vertexArray);
}
glEnableClientState(GL_VERTEX_ARRAY);
@@ -3720,47 +3713,47 @@ void QOpenGLPaintEngine::drawLines(const QLineF *lines, int lineCount)
}
}
- q_vertexType endCap = f2vt(d->cpen.capStyle() == Qt::FlatCap ? 0 : 0.5);
+ GLfloat endCap = d->cpen.capStyle() == Qt::FlatCap ? 0.0f : 0.5f;
if (useRects) {
- QVarLengthArray<q_vertexType> vertexArray(12 * lineCount);
+ QVarLengthArray<GLfloat> vertexArray(12 * lineCount);
- q_vertexType quad[8];
+ GLfloat quad[8];
for (int i = 0; i < lineCount; ++i) {
- q_vertexType x1 = f2vt(lines[i].x1());
- q_vertexType x2 = f2vt(lines[i].x2());
- q_vertexType y1 = f2vt(lines[i].y1());
- q_vertexType y2 = f2vt(lines[i].y2());
+ GLfloat x1 = lines[i].x1();
+ GLfloat x2 = lines[i].x2();
+ GLfloat y1 = lines[i].y1();
+ GLfloat y2 = lines[i].y2();
if (x1 == x2) {
if (y1 > y2)
qSwap(y1, y2);
- quad[0] = x1 - f2vt(0.5);
+ quad[0] = x1 - 0.5f;
quad[1] = y1 - endCap;
- quad[2] = x1 + f2vt(0.5);
+ quad[2] = x1 + 0.5f;
quad[3] = y1 - endCap;
- quad[4] = x1 + f2vt(0.5);
+ quad[4] = x1 + 0.5f;
quad[5] = y2 + endCap;
- quad[6] = x1 - f2vt(0.5);
+ quad[6] = x1 - 0.5f;
quad[7] = y2 + endCap;
} else {
if (x1 > x2)
qSwap(x1, x2);
quad[0] = x1 - endCap;
- quad[1] = y1 + f2vt(0.5);
+ quad[1] = y1 + 0.5f;
quad[2] = x1 - endCap;
- quad[3] = y1 - f2vt(0.5);
+ quad[3] = y1 - 0.5f;
quad[4] = x2 + endCap;
- quad[5] = y1 - f2vt(0.5);
+ quad[5] = y1 - 0.5f;
quad[6] = x2 + endCap;
- quad[7] = y1 + f2vt(0.5);
+ quad[7] = y1 + 0.5f;
}
addQuadAsTriangle(quad, &vertexArray[12*i]);
@@ -3768,26 +3761,26 @@ void QOpenGLPaintEngine::drawLines(const QLineF *lines, int lineCount)
glEnableClientState(GL_VERTEX_ARRAY);
- glVertexPointer(2, q_vertexTypeEnum, 0, vertexArray.constData());
+ glVertexPointer(2, GL_FLOAT, 0, vertexArray.constData());
glDrawArrays(GL_TRIANGLES, 0, lineCount*6);
glDisableClientState(GL_VERTEX_ARRAY);
} else {
- QVarLengthArray<q_vertexType> vertexArray(4 * lineCount);
+ QVarLengthArray<GLfloat> vertexArray(4 * lineCount);
for (int i = 0; i < lineCount; ++i) {
const QPointF a = lines[i].p1();
- vertexArray[4*i] = f2vt(lines[i].x1());
- vertexArray[4*i+1] = f2vt(lines[i].y1());
- vertexArray[4*i+2] = f2vt(lines[i].x2());
- vertexArray[4*i+3] = f2vt(lines[i].y2());
+ vertexArray[4*i] = lines[i].x1();
+ vertexArray[4*i+1] = lines[i].y1();
+ vertexArray[4*i+2] = lines[i].x2();
+ vertexArray[4*i+3] = lines[i].y2();
}
glEnableClientState(GL_VERTEX_ARRAY);
- glVertexPointer(2, q_vertexTypeEnum, 0, vertexArray.constData());
+ glVertexPointer(2, GL_FLOAT, 0, vertexArray.constData());
glDrawArrays(GL_LINES, 0, lineCount*2);
- glVertexPointer(2, q_vertexTypeEnum, 4*sizeof(q_vertexType), vertexArray.constData() + 2);
+ glVertexPointer(2, GL_FLOAT, 4*sizeof(GLfloat), vertexArray.constData() + 2);
glDrawArrays(GL_POINTS, 0, lineCount);
glDisableClientState(GL_VERTEX_ARRAY);
@@ -3874,7 +3867,7 @@ void QOpenGLPaintEngine::drawPolygon(const QPointF *points, int pointCount, Poly
}
else {
Q_ASSERT(sizeof(QPointF) == 8);
- glVertexPointer(2, q_vertexTypeEnum, 0, vertexArray);
+ glVertexPointer(2, GL_FLOAT, 0, vertexArray);
}
glEnableClientState(GL_VERTEX_ARRAY);
@@ -3893,12 +3886,12 @@ void QOpenGLPaintEngine::drawPolygon(const QPointF *points, int pointCount, Poly
if (d->has_pen) {
if (d->has_fast_pen && !d->high_quality_antialiasing) {
d->setGradientOps(d->cpen.brush(), bounds);
- QVarLengthArray<q_vertexType> vertexArray(pointCount*2 + 2);
- glVertexPointer(2, q_vertexTypeEnum, 0, vertexArray.constData());
+ QVarLengthArray<GLfloat> vertexArray(pointCount*2 + 2);
+ glVertexPointer(2, GL_FLOAT, 0, vertexArray.constData());
int i;
for (i=0; i<pointCount; ++i) {
- vertexArray[i*2] = f2vt(points[i].x());
- vertexArray[i*2+1] = f2vt(points[i].y());
+ vertexArray[i*2] = points[i].x();
+ vertexArray[i*2+1] = points[i].y();
}
glEnableClientState(GL_VERTEX_ARRAY);
@@ -4074,7 +4067,7 @@ void QOpenGLPaintEnginePrivate::strokePathFastPen(const QPainterPath &path, bool
switch (e.type) {
case QPainterPath::MoveToElement:
if (i != 0) {
- glVertexPointer(2, q_vertexTypeEnum, 0, tess_points.data());
+ glVertexPointer(2, GL_FLOAT, 0, tess_points.data());
glDrawArrays(GL_LINE_STRIP, 0, tess_points.size());
tess_points.reset();
}
@@ -4124,7 +4117,7 @@ void QOpenGLPaintEnginePrivate::strokePathFastPen(const QPainterPath &path, bool
break;
} // end of switch
}
- glVertexPointer(2, q_vertexTypeEnum, 0, tess_points.data());
+ glVertexPointer(2, GL_FLOAT, 0, tess_points.data());
glDrawArrays(GL_LINE_STRIP, 0, tess_points.size());
glDisableClientState(GL_VERTEX_ARRAY);
#endif
@@ -4391,8 +4384,8 @@ void QOpenGLPaintEngine::drawTiledPixmap(const QRectF &r, const QPixmap &pm, con
glRotatef(180.0, 0.0, 0.0, 1.0);
}
- q_vertexType vertexArray[4*2];
- q_vertexType texCoordArray[4*2];
+ GLfloat vertexArray[4*2];
+ GLfloat texCoordArray[4*2];
double offset_x = offset.x() / pm.width();
double offset_y = offset.y() / pm.height();
@@ -4401,8 +4394,8 @@ void QOpenGLPaintEngine::drawTiledPixmap(const QRectF &r, const QPixmap &pm, con
qt_add_texcoords_to_array(offset_x, offset_y,
tc_w + offset_x, tc_h + offset_y, texCoordArray);
- glVertexPointer(2, q_vertexTypeEnum, 0, vertexArray);
- glTexCoordPointer(2, q_vertexTypeEnum, 0, texCoordArray);
+ glVertexPointer(2, GL_FLOAT, 0, vertexArray);
+ glTexCoordPointer(2, GL_FLOAT, 0, texCoordArray);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
@@ -4483,14 +4476,14 @@ void QOpenGLPaintEngine::drawTextureRect(int tx_width, int tx_height, const QRec
y2 = sr.y();
}
- q_vertexType vertexArray[4*2];
- q_vertexType texCoordArray[4*2];
+ GLfloat vertexArray[4*2];
+ GLfloat texCoordArray[4*2];
qt_add_rect_to_array(r, vertexArray);
qt_add_texcoords_to_array(x1, y2, x2, y1, texCoordArray);
- glVertexPointer(2, q_vertexTypeEnum, 0, vertexArray);
- glTexCoordPointer(2, q_vertexTypeEnum, 0, texCoordArray);
+ glVertexPointer(2, GL_FLOAT, 0, vertexArray);
+ glTexCoordPointer(2, GL_FLOAT, 0, texCoordArray);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
@@ -4943,11 +4936,11 @@ void QOpenGLPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textIte
#endif
// do the actual drawing
- q_vertexType vertexArray[4*2];
- q_vertexType texCoordArray[4*2];
+ GLfloat vertexArray[4*2];
+ GLfloat texCoordArray[4*2];
- glVertexPointer(2, q_vertexTypeEnum, 0, vertexArray);
- glTexCoordPointer(2, q_vertexTypeEnum, 0, texCoordArray);
+ glVertexPointer(2, GL_FLOAT, 0, vertexArray);
+ glTexCoordPointer(2, GL_FLOAT, 0, texCoordArray);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
@@ -5160,7 +5153,7 @@ void QOpenGLPaintEnginePrivate::composite(const QRectF &rect, const QPoint &mask
Q_UNUSED(rect);
Q_UNUSED(maskOffset);
#else
- q_vertexType vertexArray[8];
+ GLfloat vertexArray[8];
qt_add_rect_to_array(rect, vertexArray);
composite(GL_TRIANGLE_FAN, vertexArray, 4, maskOffset);
@@ -5168,7 +5161,7 @@ void QOpenGLPaintEnginePrivate::composite(const QRectF &rect, const QPoint &mask
}
-void QOpenGLPaintEnginePrivate::composite(GLuint primitive, const q_vertexType *vertexArray, int vertexCount, const QPoint &maskOffset)
+void QOpenGLPaintEnginePrivate::composite(GLuint primitive, const GLfloat *vertexArray, int vertexCount, const QPoint &maskOffset)
{
#ifdef QT_OPENGL_ES
Q_UNUSED(primitive);
@@ -5191,8 +5184,8 @@ void QOpenGLPaintEnginePrivate::composite(GLuint primitive, const q_vertexType *
qreal minX = 1e9, minY = 1e9, maxX = -1e9, maxY = -1e9;
for (int i = 0; i < vertexCount; ++i) {
- qreal x = vt2f(vertexArray[2 * i]);
- qreal y = vt2f(vertexArray[2 * i + 1]);
+ qreal x = vertexArray[2 * i];
+ qreal y = vertexArray[2 * i + 1];
qreal tx, ty;
matrix.map(x, y, &tx, &ty);
@@ -5251,7 +5244,7 @@ void QOpenGLPaintEnginePrivate::composite(GLuint primitive, const q_vertexType *
}
glEnableClientState(GL_VERTEX_ARRAY);
- glVertexPointer(2, q_vertexTypeEnum, 0, vertexArray);
+ glVertexPointer(2, GL_FLOAT, 0, vertexArray);
glEnable(GL_FRAGMENT_PROGRAM_ARB);
GLuint program = qt_gl_program_cache()->getProgram(device->context(),
fragment_brush,
diff --git a/src/opengl/qpixmapdata_gl.cpp b/src/opengl/qpixmapdata_gl.cpp
index 6d47687..aa80664 100644
--- a/src/opengl/qpixmapdata_gl.cpp
+++ b/src/opengl/qpixmapdata_gl.cpp
@@ -252,10 +252,6 @@ QGLPixmapData::QGLPixmapData(PixelType type)
{
setSerialNumber(++qt_gl_pixmap_serial);
m_glDevice.setPixmapData(this);
-
- // Set InteralBindOptions minus the memory managed, since this
- // QGLTexture is not managed as part of the internal texture cache
- m_texture.options = QGLContext::PremultipliedAlphaBindOption;
}
QGLPixmapData::~QGLPixmapData()
@@ -344,18 +340,18 @@ void QGLPixmapData::ensureCreated() const
}
if (!m_source.isNull()) {
- glBindTexture(target, m_texture.id);
if (external_format == GL_RGB) {
- const QImage tx = m_source.convertToFormat(QImage::Format_RGB888);
+ const QImage tx = m_source.convertToFormat(QImage::Format_RGB888).mirrored(false, true);
+
+ glBindTexture(target, m_texture.id);
glTexSubImage2D(target, 0, 0, 0, w, h, external_format,
GL_UNSIGNED_BYTE, tx.bits());
} else {
const QImage tx = ctx->d_func()->convertToGLFormat(m_source, true, external_format);
+
+ glBindTexture(target, m_texture.id);
glTexSubImage2D(target, 0, 0, 0, w, h, external_format,
GL_UNSIGNED_BYTE, tx.bits());
- // convertToGLFormat will flip the Y axis, so it needs to
- // be drawn upside down
- m_texture.options |= QGLContext::InvertedYBindOption;
}
if (useFramebufferObjects())
diff --git a/src/opengl/qpixmapdata_x11gl_egl.cpp b/src/opengl/qpixmapdata_x11gl_egl.cpp
index 55aa1d0..edce56a 100644
--- a/src/opengl/qpixmapdata_x11gl_egl.cpp
+++ b/src/opengl/qpixmapdata_x11gl_egl.cpp
@@ -45,7 +45,7 @@
#include <private/qegl_p.h>
#include <private/qeglproperties_p.h>
-#if !defined(QT_OPENGL_ES_1) && !defined(QT_OPENGL_ES_1_CL)
+#if !defined(QT_OPENGL_ES_1)
#include <private/qpaintengineex_opengl2_p.h>
#endif
@@ -196,7 +196,7 @@ QX11GLPixmapData::~QX11GLPixmapData()
{
}
-#if !defined(QT_OPENGL_ES_1) && !defined(QT_OPENGL_ES_1_CL)
+#if !defined(QT_OPENGL_ES_1)
Q_GLOBAL_STATIC(QGL2PaintEngineEx, qt_gl_pixmap_2_engine)
#endif
@@ -220,7 +220,7 @@ QPaintEngine* QX11GLPixmapData::paintEngine() const
QPaintEngine* engine;
-#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_1_CL)
+#if defined(QT_OPENGL_ES_1)
engine = qt_gl_pixmap_engine();
#elif defined(QT_OPENGL_ES_2)
engine = qt_gl_pixmap_2_engine();
@@ -237,7 +237,7 @@ QPaintEngine* QX11GLPixmapData::paintEngine() const
if (engine->isActive()) {
qWarning("Pixmap paint engine already active");
-#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_1_CL)
+#if defined(QT_OPENGL_ES_1)
engine = new QOpenGLPaintEngine;
#elif defined(QT_OPENGL_ES_2)
engine = new QGL2PaintEngineEx;
diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp
index 7a565e6..4ac4a3a 100644
--- a/src/opengl/qwindowsurface_gl.cpp
+++ b/src/opengl/qwindowsurface_gl.cpp
@@ -82,10 +82,6 @@
#define GLX_SAMPLES_ARB 100001
#endif
-#ifdef QT_OPENGL_ES_1_CL
-#include "qgl_cl_p.h"
-#endif
-
#ifdef QT_OPENGL_ES
#include <private/qegl_p.h>
#endif
@@ -838,22 +834,22 @@ static void drawTexture(const QRectF &rect, GLuint tex_id, const QSize &texSize,
src.setBottom(src.bottom() / height);
}
- const q_vertexType tx1 = f2vt(src.left());
- const q_vertexType tx2 = f2vt(src.right());
- const q_vertexType ty1 = f2vt(src.top());
- const q_vertexType ty2 = f2vt(src.bottom());
+ const GLfloat tx1 = src.left();
+ const GLfloat tx2 = src.right();
+ const GLfloat ty1 = src.top();
+ const GLfloat ty2 = src.bottom();
- q_vertexType texCoordArray[4*2] = {
+ GLfloat texCoordArray[4*2] = {
tx1, ty2, tx2, ty2, tx2, ty1, tx1, ty1
};
- q_vertexType vertexArray[4*2];
- extern void qt_add_rect_to_array(const QRectF &r, q_vertexType *array); // qpaintengine_opengl.cpp
+ GLfloat vertexArray[4*2];
+ extern void qt_add_rect_to_array(const QRectF &r, GLfloat *array); // qpaintengine_opengl.cpp
qt_add_rect_to_array(rect, vertexArray);
#if !defined(QT_OPENGL_ES_2)
- glVertexPointer(2, q_vertexTypeEnum, 0, vertexArray);
- glTexCoordPointer(2, q_vertexTypeEnum, 0, texCoordArray);
+ glVertexPointer(2, GL_FLOAT, 0, vertexArray);
+ glTexCoordPointer(2, GL_FLOAT, 0, texCoordArray);
glBindTexture(target, tex_id);
glEnable(target);
diff --git a/src/openvg/qpixmapdata_vg.cpp b/src/openvg/qpixmapdata_vg.cpp
index cc0e5a1..3087b77 100644
--- a/src/openvg/qpixmapdata_vg.cpp
+++ b/src/openvg/qpixmapdata_vg.cpp
@@ -46,11 +46,13 @@
#include "qvgimagepool_p.h"
#ifdef QT_SYMBIAN_SUPPORTS_SGIMAGE
+#include <private/qt_s60_p.h>
+#include <fbs.h>
#include <graphics/sgimage.h>
typedef EGLImageKHR (*pfnEglCreateImageKHR)(EGLDisplay, EGLContext, EGLenum, EGLClientBuffer, EGLint*);
typedef EGLBoolean (*pfnEglDestroyImageKHR)(EGLDisplay, EGLImageKHR);
typedef VGImage (*pfnVgCreateEGLImageTargetKHR)(VGeglImageKHR);
-#endif
+#endif // QT_SYMBIAN_SUPPORTS_SGIMAGE
QT_BEGIN_NAMESPACE
@@ -425,6 +427,34 @@ Q_OPENVG_EXPORT VGImage qPixmapToVGImage(const QPixmap& pixmap)
}
#if defined(Q_OS_SYMBIAN)
+
+static CFbsBitmap* createBlitCopy(CFbsBitmap* bitmap)
+{
+ CFbsBitmap *copy = q_check_ptr(new CFbsBitmap);
+ if(!copy)
+ return 0;
+
+ if (copy->Create(bitmap->SizeInPixels(), bitmap->DisplayMode()) != KErrNone) {
+ delete copy;
+ copy = 0;
+
+ return 0;
+ }
+
+ CFbsBitmapDevice* bitmapDevice = 0;
+ CFbsBitGc *bitmapGc = 0;
+ QT_TRAP_THROWING(bitmapDevice = CFbsBitmapDevice::NewL(copy));
+ QT_TRAP_THROWING(bitmapGc = CFbsBitGc::NewL());
+ bitmapGc->Activate(bitmapDevice);
+
+ bitmapGc->BitBlt(TPoint(), bitmap);
+
+ delete bitmapGc;
+ delete bitmapDevice;
+
+ return copy;
+}
+
void QVGPixmapData::cleanup()
{
is_null = w = h = 0;
@@ -510,7 +540,49 @@ void QVGPixmapData::fromNativeType(void* pixmap, NativeType type)
eglDestroyImageKHR(context->display(), eglImage);
SgDriver::Close();
} else if (type == QPixmapData::FbsBitmap) {
+ CFbsBitmap *bitmap = reinterpret_cast<CFbsBitmap*>(pixmap);
+
+ bool deleteSourceBitmap = false;
+
+#ifdef Q_SYMBIAN_HAS_EXTENDED_BITMAP_TYPE
+
+ // Rasterize extended bitmaps
+
+ TUid extendedBitmapType = bitmap->ExtendedBitmapType();
+ if (extendedBitmapType != KNullUid) {
+ bitmap = createBlitCopy(bitmap);
+ deleteSourceBitmap = true;
+ }
+#endif
+
+ if (bitmap->IsCompressedInRAM()) {
+ bitmap = createBlitCopy(bitmap);
+ deleteSourceBitmap = true;
+ }
+
+ TDisplayMode displayMode = bitmap->DisplayMode();
+ QImage::Format format = qt_TDisplayMode2Format(displayMode);
+
+ TSize size = bitmap->SizeInPixels();
+
+ bitmap->BeginDataAccess();
+ uchar *bytes = (uchar*)bitmap->DataAddress();
+ QImage img = QImage(bytes, size.iWidth, size.iHeight, format);
+ img = img.copy();
+ bitmap->EndDataAccess();
+
+ if(displayMode == EGray2) {
+ //Symbian thinks set pixels are white/transparent, Qt thinks they are foreground/solid
+ //So invert mono bitmaps so that masks work correctly.
+ img.invertPixels();
+ } else if(displayMode == EColor16M) {
+ img = img.rgbSwapped(); // EColor16M is BGR
+ }
+
+ fromImage(img, Qt::AutoColor);
+ if(deleteSourceBitmap)
+ delete bitmap;
}
#else
Q_UNUSED(pixmap);
@@ -593,7 +665,25 @@ void* QVGPixmapData::toNativeType(NativeType type)
SgDriver::Close();
return reinterpret_cast<void*>(sgImage);
} else if (type == QPixmapData::FbsBitmap) {
- return 0;
+ CFbsBitmap *bitmap = q_check_ptr(new CFbsBitmap);
+
+ if (bitmap) {
+ if (bitmap->Create(TSize(source.width(), source.height()),
+ EColor16MAP) == KErrNone) {
+ const uchar *sptr = qt_vg_imageBits(source);
+ bitmap->BeginDataAccess();
+
+ uchar *dptr = (uchar*)bitmap->DataAddress();
+ Mem::Copy(dptr, sptr, source.byteCount());
+
+ bitmap->EndDataAccess();
+ } else {
+ delete bitmap;
+ bitmap = 0;
+ }
+ }
+
+ return reinterpret_cast<void*>(bitmap);
}
#else
Q_UNUSED(type);
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp
index 1cbfdaf..f27440e 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp
@@ -552,6 +552,34 @@ QImage *QDirectFBPixmapData::buffer()
return &lockedImage;
}
+
+bool QDirectFBPixmapData::scroll(int dx, int dy, const QRect &rect)
+{
+ if (!dfbSurface) {
+ return false;
+ }
+ unlockSurface();
+ DFBResult result = dfbSurface->SetBlittingFlags(dfbSurface, DSBLIT_NOFX);
+ if (result != DFB_OK) {
+ DirectFBError("QDirectFBPixmapData::scroll", result);
+ return false;
+ }
+ result = dfbSurface->SetPorterDuff(dfbSurface, DSPD_NONE);
+ if (result != DFB_OK) {
+ DirectFBError("QDirectFBPixmapData::scroll", result);
+ return false;
+ }
+
+ const DFBRectangle source = { rect.x(), rect.y(), rect.width(), rect.height() };
+ result = dfbSurface->Blit(dfbSurface, dfbSurface, &source, source.x + dx, source.y + dy);
+ if (result != DFB_OK) {
+ DirectFBError("QDirectFBPixmapData::scroll", result);
+ return false;
+ }
+
+ return true;
+}
+
void QDirectFBPixmapData::invalidate()
{
if (dfbSurface) {
@@ -568,6 +596,3 @@ void QDirectFBPixmapData::invalidate()
QT_END_NAMESPACE
#endif // QT_NO_QWS_DIRECTFB
-
-
-
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h b/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h
index f9b14a9..da6edc6 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h
@@ -81,6 +81,7 @@ public:
virtual QImage toImage() const;
virtual QPaintEngine *paintEngine() const;
virtual QImage *buffer();
+ virtual bool scroll(int dx, int dy, const QRect &rect);
// Pure virtual in QPixmapData, so re-implement here and delegate to QDirectFBPaintDevice
virtual int metric(QPaintDevice::PaintDeviceMetric m) const { return QDirectFBPaintDevice::metric(m); }
diff --git a/src/plugins/graphicssystems/opengl/main.cpp b/src/plugins/graphicssystems/opengl/main.cpp
index 19631b6..abcfb7f 100644
--- a/src/plugins/graphicssystems/opengl/main.cpp
+++ b/src/plugins/graphicssystems/opengl/main.cpp
@@ -56,7 +56,7 @@ QStringList QGLGraphicsSystemPlugin::keys() const
{
QStringList list;
list << QLatin1String("OpenGL") << QLatin1String("OpenGL1");
-#if !defined(QT_OPENGL_ES_1) && !defined(QT_OPENGL_ES_1_CL)
+#if !defined(QT_OPENGL_ES_1)
list << QLatin1String("OpenGL2");
#endif
return list;
@@ -69,7 +69,7 @@ QGraphicsSystem* QGLGraphicsSystemPlugin::create(const QString& system)
return new QGLGraphicsSystem;
}
-#if !defined(QT_OPENGL_ES_1) && !defined(QT_OPENGL_ES_1_CL)
+#if !defined(QT_OPENGL_ES_1)
if (system.toLower() == QLatin1String("opengl2")) {
QGL::setPreferredPaintEngine(QPaintEngine::OpenGL2);
return new QGLGraphicsSystem;
diff --git a/src/plugins/imageformats/ico/qicohandler.cpp b/src/plugins/imageformats/ico/qicohandler.cpp
index 4f49476..b2351fa 100644
--- a/src/plugins/imageformats/ico/qicohandler.cpp
+++ b/src/plugins/imageformats/ico/qicohandler.cpp
@@ -556,7 +556,11 @@ QImage ICOReader::iconAt(int index)
else // # colors used
icoAttrib.ncolors = header.biClrUsed ? header.biClrUsed : 1 << icoAttrib.nbits;
icoAttrib.w = iconEntry.bWidth;
+ if (icoAttrib.w == 0)
+ icoAttrib.w = header.biWidth;
icoAttrib.h = iconEntry.bHeight;
+ if (icoAttrib.h == 0)
+ icoAttrib.h = header.biHeight/2;
QImage::Format format = QImage::Format_ARGB32;
if (icoAttrib.nbits == 24)
diff --git a/src/qbase.pri b/src/qbase.pri
index 22a57db..58bb6d4 100644
--- a/src/qbase.pri
+++ b/src/qbase.pri
@@ -94,31 +94,17 @@ symbian {
DEFINES+=QT_MAKEDLL
TARGET.CAPABILITY = All -Tcb
- defBlock = \
- "$${LITERAL_HASH}ifdef WINSCW" \
- "DEFFILE ../s60installs/bwins/$${TARGET}.def" \
- "$${LITERAL_HASH}elif defined EABI" \
- "DEFFILE ../s60installs/eabi/$${TARGET}.def" \
- "$${LITERAL_HASH}endif"
-
- contains(QT_CONFIG, private_tests) {
- #When building autotest configuration, there are extra exports from
- #the Qt DLLs, which we don't want in the frozen DEF files.
- MMP_RULES += EXPORTUNFROZEN
- } else {
- #When building without autotests, DEF files are used by default.
- #This is to maintain binary compatibility with previous releases.
-
- #with defBlock enabled, removed exported symbols are treated as errors
- #and there is binary compatibility between successive builds.
- #with defBlock disabled, binary compatibility is broken every time you build
- MMP_RULES += defBlock
-
- #with EXPORTUNFROZEN enabled, new exports are included in the dll without
- #needing to run abld freeze, however binary compatibility is only maintained
- #for symbols that are frozen (and only if defBlock is also enabled)
- #the downside of EXPORTUNFROZEN is that the linker gets run twice
- #MMP_RULES += EXPORTUNFROZEN
+ # When building without autotests, DEF files are used by default.
+ # This is to maintain binary compatibility with previous releases.
+ # To explicitly disable DEF files usage, eg. when lots of code churn is
+ # going on, and functions may be added and removed before shipping,
+ # configure with -no-usedeffiles
+ # WARNING - disabling DEF files *will* break BC with previous released versions
+ # of Qt, and the only compatibility will be between this build of Qt and anything
+ # built in this exact environment. *Never* use this when building a version
+ # for release.
+ contains(CONFIG, def_files) {
+ defFilePath=../s60installs
}
}
load(armcc_warnings)
diff --git a/src/s60installs/backup_registration.xml b/src/s60installs/backup_registration.xml
new file mode 100644
index 0000000..e026140
--- /dev/null
+++ b/src/s60installs/backup_registration.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" standalone="yes"?>
+<backup_registration>
+ <system_backup/>
+ <restore requires_reboot = "no"/>
+</backup_registration>
diff --git a/src/s60installs/bwins/QtCoreu.def b/src/s60installs/bwins/QtCoreu.def
index fe752c8..e7e890c 100644
--- a/src/s60installs/bwins/QtCoreu.def
+++ b/src/s60installs/bwins/QtCoreu.def
@@ -4398,4 +4398,5 @@ EXPORTS
?object@WrappedEvent@QStateMachine@@QBEPAVQObject@@XZ @ 4397 NONAME ; class QObject * QStateMachine::WrappedEvent::object(void) const
?sender@SignalEvent@QStateMachine@@QBEPAVQObject@@XZ @ 4398 NONAME ; class QObject * QStateMachine::SignalEvent::sender(void) const
?signalIndex@SignalEvent@QStateMachine@@QBEHXZ @ 4399 NONAME ; int QStateMachine::SignalEvent::signalIndex(void) const
+ ?disconnectOne@QMetaObject@@SA_NPBVQObject@@H0H@Z @ 4400 NONAME ; bool QMetaObject::disconnectOne(class QObject const *, int, class QObject const *, int)
diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def
index 7a629d7..155e3e7 100644
--- a/src/s60installs/bwins/QtGuiu.def
+++ b/src/s60installs/bwins/QtGuiu.def
@@ -5527,7 +5527,7 @@ EXPORTS
?invalidateChildrenSceneTransform@QGraphicsItemPrivate@@QAEXXZ @ 5526 NONAME ; void QGraphicsItemPrivate::invalidateChildrenSceneTransform(void)
?invalidateDepthRecursively@QGraphicsItemPrivate@@QAEXXZ @ 5527 NONAME ; void QGraphicsItemPrivate::invalidateDepthRecursively(void)
?invalidateFilter@QSortFilterProxyModel@@IAEXXZ @ 5528 NONAME ; void QSortFilterProxyModel::invalidateFilter(void)
- ?invalidateGraphicsEffectsRecursively@QGraphicsItemPrivate@@QAEXXZ @ 5529 NONAME ; void QGraphicsItemPrivate::invalidateGraphicsEffectsRecursively(void)
+ ?invalidateGraphicsEffectsRecursively@QGraphicsItemPrivate@@QAEXXZ @ 5529 NONAME ABSENT ; void QGraphicsItemPrivate::invalidateGraphicsEffectsRecursively(void)
?invalidateGraphicsEffectsRecursively@QWidgetPrivate@@QAEXXZ @ 5530 NONAME ; void QWidgetPrivate::invalidateGraphicsEffectsRecursively(void)
?invalidateScene@QGraphicsView@@QAEXABVQRectF@@V?$QFlags@W4SceneLayer@QGraphicsScene@@@@@Z @ 5531 NONAME ; void QGraphicsView::invalidateScene(class QRectF const &, class QFlags<enum QGraphicsScene::SceneLayer>)
?invalidateSizeCache@QWidgetItemV2@@AAEXXZ @ 5532 NONAME ; void QWidgetItemV2::invalidateSizeCache(void)
@@ -9555,7 +9555,7 @@ EXPORTS
?setParent@QWidget@@QAEXPAV1@@Z @ 9554 NONAME ; void QWidget::setParent(class QWidget *)
?setParent@QWidget@@QAEXPAV1@V?$QFlags@W4WindowType@Qt@@@@@Z @ 9555 NONAME ; void QWidget::setParent(class QWidget *, class QFlags<enum Qt::WindowType>)
?setParentItem@QGraphicsItem@@QAEXPAV1@@Z @ 9556 NONAME ; void QGraphicsItem::setParentItem(class QGraphicsItem *)
- ?setParentItemHelper@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 9557 NONAME ; void QGraphicsItemPrivate::setParentItemHelper(class QGraphicsItem *)
+ ?setParentItemHelper@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 9557 NONAME ABSENT ; void QGraphicsItemPrivate::setParentItemHelper(class QGraphicsItem *)
?setParentLayoutItem@QGraphicsLayoutItem@@QAEXPAV1@@Z @ 9558 NONAME ; void QGraphicsLayoutItem::setParentLayoutItem(class QGraphicsLayoutItem *)
?setParent_sys@QWidgetPrivate@@QAEXPAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 9559 NONAME ; void QWidgetPrivate::setParent_sys(class QWidget *, class QFlags<enum Qt::WindowType>)
?setPasswordCharacter@QLineControl@@QAEXABVQChar@@@Z @ 9560 NONAME ; void QLineControl::setPasswordCharacter(class QChar const &)
@@ -10694,10 +10694,10 @@ EXPORTS
?swipeAngle@QSwipeGesture@@QBEMXZ @ 10693 NONAME ; float QSwipeGesture::swipeAngle(void) const
?symbianEventFilter@QApplication@@UAE_NPBVQSymbianEvent@@@Z @ 10694 NONAME ; bool QApplication::symbianEventFilter(class QSymbianEvent const *)
?symbianFilterEvent@QInputContext@@UAE_NPAVQWidget@@PBVQSymbianEvent@@@Z @ 10695 NONAME ; bool QInputContext::symbianFilterEvent(class QWidget *, class QSymbianEvent const *)
- ?symbianHandleCommand@QApplicationPrivate@@QAEHH@Z @ 10696 NONAME ; int QApplicationPrivate::symbianHandleCommand(int)
+ ?symbianHandleCommand@QApplicationPrivate@@QAEHH@Z @ 10696 NONAME ABSENT ; int QApplicationPrivate::symbianHandleCommand(int)
?symbianProcessEvent@QApplication@@QAEHPBVQSymbianEvent@@@Z @ 10697 NONAME ; int QApplication::symbianProcessEvent(class QSymbianEvent const *)
- ?symbianProcessWsEvent@QApplicationPrivate@@QAEHPBVTWsEvent@@@Z @ 10698 NONAME ; int QApplicationPrivate::symbianProcessWsEvent(class TWsEvent const *)
- ?symbianResourceChange@QApplicationPrivate@@QAEHH@Z @ 10699 NONAME ; int QApplicationPrivate::symbianResourceChange(int)
+ ?symbianProcessWsEvent@QApplicationPrivate@@QAEHPBVTWsEvent@@@Z @ 10698 NONAME ABSENT ; int QApplicationPrivate::symbianProcessWsEvent(class TWsEvent const *)
+ ?symbianResourceChange@QApplicationPrivate@@QAEHH@Z @ 10699 NONAME ABSENT ; int QApplicationPrivate::symbianResourceChange(int)
?symbol@Parser@QCss@@QBEABUSymbol@2@XZ @ 10700 NONAME ; struct QCss::Symbol const & QCss::Parser::symbol(void) const
?sync@QPaintEngineEx@@UAEXXZ @ 10701 NONAME ; void QPaintEngineEx::sync(void)
?syncBackingStore@QWidgetPrivate@@QAEXABVQRegion@@@Z @ 10702 NONAME ; void QWidgetPrivate::syncBackingStore(class QRegion const &)
@@ -12525,4 +12525,12 @@ EXPORTS
??0Tab@QTextOption@@QAE@ABU01@@Z @ 12524 NONAME ; QTextOption::Tab::Tab(struct QTextOption::Tab const &)
?effectiveBoundingRect@QGraphicsItemPrivate@@QBE?AVQRectF@@ABV2@@Z @ 12525 NONAME ; class QRectF QGraphicsItemPrivate::effectiveBoundingRect(class QRectF const &) const
?glyphCache@QFontEngine@@QBEPAVQFontEngineGlyphCache@@PAXW4Type@2@ABVQTransform@@@Z @ 12526 NONAME ; class QFontEngineGlyphCache * QFontEngine::glyphCache(void *, enum QFontEngineGlyphCache::Type, class QTransform const &) const
+ ?qt_blurImage@@YAXAAVQImage@@M_NH@Z @ 12527 NONAME ; void qt_blurImage(class QImage &, float, bool, int)
+ ?qt_blurImage@@YAXPAVQPainter@@AAVQImage@@M_N2H@Z @ 12528 NONAME ; void qt_blurImage(class QPainter *, class QImage &, float, bool, bool, int)
+ ?qt_halfScaled@@YA?AVQImage@@ABV1@@Z @ 12529 NONAME ; class QImage qt_halfScaled(class QImage const &)
+ ?qt_memrotate90@@YAXPBIHHHPAIH@Z @ 12530 NONAME ; void qt_memrotate90(unsigned int const *, int, int, int, unsigned int *, int)
+ ?qt_memrotate90_gl@@YAXPBIHHHPAIH@Z @ 12531 NONAME ; void qt_memrotate90_gl(unsigned int const *, int, int, int, unsigned int *, int)
+ ?symbianHandleCommand@QApplicationPrivate@@QAEHPBVQSymbianEvent@@@Z @ 12532 NONAME ; int QApplicationPrivate::symbianHandleCommand(class QSymbianEvent const *)
+ ?symbianProcessWsEvent@QApplicationPrivate@@QAEHPBVQSymbianEvent@@@Z @ 12533 NONAME ; int QApplicationPrivate::symbianProcessWsEvent(class QSymbianEvent const *)
+ ?symbianResourceChange@QApplicationPrivate@@QAEHPBVQSymbianEvent@@@Z @ 12534 NONAME ; int QApplicationPrivate::symbianResourceChange(class QSymbianEvent const *)
diff --git a/src/s60installs/bwins/QtScriptu.def b/src/s60installs/bwins/QtScriptu.def
index 8b53524..19f7037 100644
--- a/src/s60installs/bwins/QtScriptu.def
+++ b/src/s60installs/bwins/QtScriptu.def
@@ -369,4 +369,5 @@ EXPORTS
?willExecuteProgram@QScriptEngineAgentPrivate@@UAEXABVDebuggerCallFrame@QTJSC@@HH@Z @ 368 NONAME ; void QScriptEngineAgentPrivate::willExecuteProgram(class QTJSC::DebuggerCallFrame const &, int, int)
?staticMetaObject@QScriptExtensionPlugin@@2UQMetaObject@@B @ 369 NONAME ; struct QMetaObject const QScriptExtensionPlugin::staticMetaObject
?staticMetaObject@QScriptEngine@@2UQMetaObject@@B @ 370 NONAME ; struct QMetaObject const QScriptEngine::staticMetaObject
+ ?isQObject@QScriptDeclarativeClass@@UBE_NXZ @ 371 NONAME ; bool QScriptDeclarativeClass::isQObject(void) const
diff --git a/src/s60installs/eabi/QtCoreu.def b/src/s60installs/eabi/QtCoreu.def
index 89fa76f..a427ff9 100644
--- a/src/s60installs/eabi/QtCoreu.def
+++ b/src/s60installs/eabi/QtCoreu.def
@@ -3633,4 +3633,5 @@ EXPORTS
_ZTIN13QStateMachine12WrappedEventE @ 3632 NONAME
_ZTVN13QStateMachine11SignalEventE @ 3633 NONAME
_ZTVN13QStateMachine12WrappedEventE @ 3634 NONAME
+ _ZN11QMetaObject13disconnectOneEPK7QObjectiS2_i @ 3635 NONAME
diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def
index b6862e5..a9a69aa 100644
--- a/src/s60installs/eabi/QtGuiu.def
+++ b/src/s60installs/eabi/QtGuiu.def
@@ -4671,7 +4671,7 @@ EXPORTS
_ZN20QGraphicsItemPrivate18setTransformHelperERK10QTransform @ 4670 NONAME
_ZN20QGraphicsItemPrivate18subFocusItemChangeEv @ 4671 NONAME
_ZN20QGraphicsItemPrivate18updateAncestorFlagEN13QGraphicsItem16GraphicsItemFlagENS_12AncestorFlagEbb @ 4672 NONAME
- _ZN20QGraphicsItemPrivate19setParentItemHelperEP13QGraphicsItem @ 4673 NONAME
+ _ZN20QGraphicsItemPrivate19setParentItemHelperEP13QGraphicsItem @ 4673 NONAME ABSENT
_ZN20QGraphicsItemPrivate20removeExtraItemCacheEv @ 4674 NONAME
_ZN20QGraphicsItemPrivate23appendGraphicsTransformEP18QGraphicsTransform @ 4675 NONAME
_ZN20QGraphicsItemPrivate25movableAncestorIsSelectedEPK13QGraphicsItem @ 4676 NONAME
@@ -11629,9 +11629,9 @@ EXPORTS
_ZN18QTapAndHoldGestureC1EP7QObject @ 11628 NONAME
_ZN18QTapAndHoldGestureC2EP7QObject @ 11629 NONAME
_ZN19QAbstractScrollArea18setViewportMarginsERK8QMargins @ 11630 NONAME
- _ZN19QApplicationPrivate20symbianHandleCommandEi @ 11631 NONAME
- _ZN19QApplicationPrivate21symbianProcessWsEventEPK8TWsEvent @ 11632 NONAME
- _ZN19QApplicationPrivate21symbianResourceChangeEi @ 11633 NONAME
+ _ZN19QApplicationPrivate20symbianHandleCommandEi @ 11631 NONAME ABSENT
+ _ZN19QApplicationPrivate21symbianProcessWsEventEPK8TWsEvent @ 11632 NONAME ABSENT
+ _ZN19QApplicationPrivate21symbianResourceChangeEi @ 11633 NONAME ABSENT
_ZN19QGraphicsBlurEffect12setBlurHintsE6QFlagsINS_8BlurHintEE @ 11634 NONAME
_ZN19QGraphicsBlurEffect13setBlurRadiusEf @ 11635 NONAME
_ZN19QGraphicsBlurEffect16blurHintsChangedE6QFlagsINS_8BlurHintEE @ 11636 NONAME
@@ -11639,7 +11639,7 @@ EXPORTS
_ZN19QGraphicsBlurEffect4drawEP8QPainter @ 11638 NONAME
_ZN19QKeyEventTransition15setModifierMaskE6QFlagsIN2Qt16KeyboardModifierEE @ 11639 NONAME
_ZN20QGraphicsItemPrivate18siblingOrderChangeEv @ 11640 NONAME
- _ZN20QGraphicsItemPrivate36invalidateGraphicsEffectsRecursivelyEv @ 11641 NONAME
+ _ZN20QGraphicsItemPrivate36invalidateGraphicsEffectsRecursivelyEv @ 11641 NONAME ABSENT
_ZN21QMouseEventTransition14setHitTestPathERK12QPainterPath @ 11642 NONAME
_ZN21QMouseEventTransition15setModifierMaskE6QFlagsIN2Qt16KeyboardModifierEE @ 11643 NONAME
_ZN22QGraphicsOpacityEffect4drawEP8QPainter @ 11644 NONAME
@@ -11784,4 +11784,12 @@ EXPORTS
_ZNK14QEglProperties8toStringEv @ 11783 NONAME ABSENT
_ZNK11QFontEngine10glyphCacheEPvN21QFontEngineGlyphCache4TypeERK10QTransform @ 11784 NONAME
_ZNK20QGraphicsItemPrivate21effectiveBoundingRectERK6QRectF @ 11785 NONAME
+ _Z12qt_blurImageP8QPainterR6QImagefbbi @ 11786 NONAME
+ _Z12qt_blurImageR6QImagefbi @ 11787 NONAME
+ _Z13qt_halfScaledRK6QImage @ 11788 NONAME
+ _Z14qt_memrotate90PKjiiiPji @ 11789 NONAME
+ _Z17qt_memrotate90_glPKjiiiPji @ 11790 NONAME
+ _ZN19QApplicationPrivate20symbianHandleCommandEPK13QSymbianEvent @ 11791 NONAME
+ _ZN19QApplicationPrivate21symbianProcessWsEventEPK13QSymbianEvent @ 11792 NONAME
+ _ZN19QApplicationPrivate21symbianResourceChangeEPK13QSymbianEvent @ 11793 NONAME
diff --git a/src/s60installs/eabi/QtScriptu.def b/src/s60installs/eabi/QtScriptu.def
index 8df03c2..8a4be2c 100644
--- a/src/s60installs/eabi/QtScriptu.def
+++ b/src/s60installs/eabi/QtScriptu.def
@@ -393,4 +393,5 @@ EXPORTS
_ZNK23QScriptDeclarativeClass7contextEv @ 392 NONAME
_ZTI23QScriptDeclarativeClass @ 393 NONAME
_ZTV23QScriptDeclarativeClass @ 394 NONAME
+ _ZNK23QScriptDeclarativeClass9isQObjectEv @ 395 NONAME
diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro
index 55eaee1..5318693 100644
--- a/src/s60installs/s60installs.pro
+++ b/src/s60installs/s60installs.pro
@@ -78,7 +78,11 @@ symbian: {
DEPLOYMENT += phonon_backend_plugins
}
- DEPLOYMENT += qtresources qtlibraries imageformats_plugins codecs_plugins graphicssystems_plugins
+ # Support backup & restore for Qt libraries
+ qtbackup.sources = backup_registration.xml
+ qtbackup.path = c:/private/10202D56/import/packages/$$replace(TARGET.UID3, 0x,)
+
+ DEPLOYMENT += qtresources qtlibraries qtbackup imageformats_plugins codecs_plugins graphicssystems_plugins
contains(QT_CONFIG, svg): {
qtlibraries.sources += QtSvg.dll
@@ -110,6 +114,10 @@ symbian: {
graphicssystems_plugins.sources += qvggraphicssystem.dll
}
+ contains(QT_CONFIG, multimedia) {
+ qtlibraries.sources += QtMultimedia.dll
+ }
+
BLD_INF_RULES.prj_exports += "qt.iby $$CORE_MW_LAYER_IBY_EXPORT_PATH(qt.iby)"
BLD_INF_RULES.prj_exports += "qtdemoapps.iby $$CORE_APP_LAYER_IBY_EXPORT_PATH(qtdemoapps.iby)"
}
diff --git a/src/s60installs/sqlite3.sis b/src/s60installs/sqlite3.sis
index 1785365..11e069e 100644
--- a/src/s60installs/sqlite3.sis
+++ b/src/s60installs/sqlite3.sis
Binary files differ
diff --git a/src/s60installs/sqlite3_selfsigned.sis b/src/s60installs/sqlite3_selfsigned.sis
new file mode 100644
index 0000000..a025ac5
--- /dev/null
+++ b/src/s60installs/sqlite3_selfsigned.sis
Binary files differ
diff --git a/src/script/api/qscriptprogram.cpp b/src/script/api/qscriptprogram.cpp
index c452052..d4a32f4 100644
--- a/src/script/api/qscriptprogram.cpp
+++ b/src/script/api/qscriptprogram.cpp
@@ -63,7 +63,6 @@ QScriptProgramPrivate::QScriptProgramPrivate(const QString &src,
QScriptProgramPrivate::~QScriptProgramPrivate()
{
- delete _executable;
}
QScriptProgramPrivate *QScriptProgramPrivate::get(const QScriptProgram &q)
@@ -76,17 +75,17 @@ JSC::EvalExecutable *QScriptProgramPrivate::executable(JSC::ExecState *exec,
{
if (_executable) {
if (eng == engine)
- return _executable;
- delete _executable;
+ return _executable.get();
+ _executable = 0;
}
WTF::PassRefPtr<QScript::UStringSourceProviderWithFeedback> provider
= QScript::UStringSourceProviderWithFeedback::create(sourceCode, fileName, firstLineNumber, eng);
sourceId = provider->asID();
JSC::SourceCode source(provider, firstLineNumber); //after construction of SourceCode provider variable will be null.
- _executable = new JSC::EvalExecutable(exec, source);
+ _executable = JSC::EvalExecutable::create(exec, source);
engine = eng;
isCompiled = false;
- return _executable;
+ return _executable.get();
}
/*!
diff --git a/src/script/api/qscriptprogram_p.h b/src/script/api/qscriptprogram_p.h
index 427ab34..95e75fd 100644
--- a/src/script/api/qscriptprogram_p.h
+++ b/src/script/api/qscriptprogram_p.h
@@ -37,6 +37,8 @@
#include <QtCore/qobjectdefs.h>
+#include "RefPtr.h"
+
namespace JSC
{
class EvalExecutable;
@@ -67,7 +69,7 @@ public:
int firstLineNumber;
QScriptEnginePrivate *engine;
- JSC::EvalExecutable *_executable;
+ WTF::RefPtr<JSC::EvalExecutable> _executable;
intptr_t sourceId;
bool isCompiled;
};
diff --git a/src/script/api/qscriptvalue.cpp b/src/script/api/qscriptvalue.cpp
index 1db2e1b..5bfe46a 100644
--- a/src/script/api/qscriptvalue.cpp
+++ b/src/script/api/qscriptvalue.cpp
@@ -1148,10 +1148,15 @@ bool QScriptValue::strictlyEquals(const QScriptValue &other) const
}
if (d->type != other.d_ptr->type) {
- if (d->type == QScriptValuePrivate::JavaScriptCore)
- return JSC::JSValue::strictEqual(d->jscValue, d->engine->scriptValueToJSCValue(other));
- else if (other.d_ptr->type == QScriptValuePrivate::JavaScriptCore)
- return JSC::JSValue::strictEqual(other.d_ptr->engine->scriptValueToJSCValue(*this), other.d_ptr->jscValue);
+ if (d->type == QScriptValuePrivate::JavaScriptCore) {
+ QScriptEnginePrivate *eng_p = d->engine ? d->engine : other.d_ptr->engine;
+ if (eng_p)
+ return JSC::JSValue::strictEqual(d->jscValue, eng_p->scriptValueToJSCValue(other));
+ } else if (other.d_ptr->type == QScriptValuePrivate::JavaScriptCore) {
+ QScriptEnginePrivate *eng_p = other.d_ptr->engine ? other.d_ptr->engine : d->engine;
+ if (eng_p)
+ return JSC::JSValue::strictEqual(eng_p->scriptValueToJSCValue(*this), other.d_ptr->jscValue);
+ }
return false;
}
diff --git a/src/scripttools/debugging/qscriptdebuggerconsole.cpp b/src/scripttools/debugging/qscriptdebuggerconsole.cpp
index 7fd80f0..2f7a998 100644
--- a/src/scripttools/debugging/qscriptdebuggerconsole.cpp
+++ b/src/scripttools/debugging/qscriptdebuggerconsole.cpp
@@ -44,16 +44,216 @@
#include "qscriptdebuggerconsolecommandmanager_p.h"
#include "qscriptdebuggerscriptedconsolecommand_p.h"
#include "qscriptmessagehandlerinterface_p.h"
+#include "qscriptbreakpointdata_p.h"
+#include "qscriptdebuggerresponse_p.h"
+#include "qscriptdebuggervalueproperty_p.h"
+#include "qscriptscriptdata_p.h"
#include <QtCore/qdir.h>
#include <QtCore/qfileinfo.h>
#include <QtCore/qstring.h>
#include <QtCore/qstringlist.h>
#include <QtCore/qdebug.h>
+#include <QtScript/qscriptcontextinfo.h>
#include <QtScript/qscriptengine.h>
+Q_DECLARE_METATYPE(QScriptDebuggerResponse)
+Q_DECLARE_METATYPE(QScriptBreakpointData)
+Q_DECLARE_METATYPE(QScriptBreakpointMap)
+Q_DECLARE_METATYPE(QScriptScriptData)
+Q_DECLARE_METATYPE(QScriptScriptMap)
+Q_DECLARE_METATYPE(QScriptContextInfo)
+Q_DECLARE_METATYPE(QScriptDebuggerValue)
+Q_DECLARE_METATYPE(QScriptDebuggerValueProperty)
+Q_DECLARE_METATYPE(QScriptDebuggerValuePropertyList)
+Q_DECLARE_METATYPE(QScriptDebuggerConsoleCommand*)
+Q_DECLARE_METATYPE(QScriptDebuggerConsoleCommandList)
+Q_DECLARE_METATYPE(QScriptDebuggerConsoleCommandGroupData)
+Q_DECLARE_METATYPE(QScriptDebuggerConsoleCommandGroupMap)
+
QT_BEGIN_NAMESPACE
+static QScriptValue debuggerResponseToScriptValue(QScriptEngine *eng, const QScriptDebuggerResponse &in)
+{
+ QScriptValue out = eng->newObject();
+ out.setProperty(QString::fromLatin1("result"), qScriptValueFromValue(eng, in.result()));
+ out.setProperty(QString::fromLatin1("error"), QScriptValue(eng, in.error()));
+ out.setProperty(QString::fromLatin1("async"), QScriptValue(eng, in.async()));
+ return out;
+}
+
+static void debuggerResponseFromScriptValue(const QScriptValue &, QScriptDebuggerResponse &)
+{
+ Q_ASSERT(0);
+}
+
+static QScriptValue breakpointDataToScriptValue(QScriptEngine *eng, const QScriptBreakpointData &in)
+{
+ QScriptValue out = eng->newObject();
+ out.setProperty(QString::fromLatin1("scriptId"), QScriptValue(eng, qsreal(in.scriptId())));
+ out.setProperty(QString::fromLatin1("fileName"), QScriptValue(eng, in.fileName()));
+ out.setProperty(QString::fromLatin1("lineNumber"), QScriptValue(eng, in.lineNumber()));
+ out.setProperty(QString::fromLatin1("enabled"), QScriptValue(eng, in.isEnabled()));
+ out.setProperty(QString::fromLatin1("singleShot"), QScriptValue(eng, in.isSingleShot()));
+ out.setProperty(QString::fromLatin1("ignoreCount"), QScriptValue(eng, in.ignoreCount()));
+ out.setProperty(QString::fromLatin1("condition"), QScriptValue(eng, in.condition()));
+ return out;
+}
+
+static void breakpointDataFromScriptValue(const QScriptValue &in, QScriptBreakpointData &out)
+{
+ QScriptValue scriptId = in.property(QString::fromLatin1("scriptId"));
+ if (scriptId.isValid())
+ out.setScriptId((qint64)scriptId.toNumber());
+ out.setFileName(in.property(QString::fromLatin1("fileName")).toString());
+ out.setLineNumber(in.property(QString::fromLatin1("lineNumber")).toInt32());
+ QScriptValue enabled = in.property(QString::fromLatin1("enabled"));
+ if (enabled.isValid())
+ out.setEnabled(enabled.toBoolean());
+ QScriptValue singleShot = in.property(QString::fromLatin1("singleShot"));
+ if (singleShot.isValid())
+ out.setSingleShot(singleShot.toBoolean());
+ out.setIgnoreCount(in.property(QString::fromLatin1("ignoreCount")).toInt32());
+ out.setCondition(in.property(QString::fromLatin1("condition")).toString());
+}
+
+static QScriptValue breakpointMapToScriptValue(QScriptEngine *eng, const QScriptBreakpointMap &in)
+{
+ QScriptValue out = eng->newObject();
+ QScriptBreakpointMap::const_iterator it;
+ for (it = in.constBegin(); it != in.constEnd(); ++it) {
+ out.setProperty(QString::number(it.key()), qScriptValueFromValue(eng, it.value()));
+ }
+ return out;
+}
+
+static void breakpointMapFromScriptValue(const QScriptValue &, QScriptBreakpointMap &)
+{
+ Q_ASSERT(0);
+}
+
+static QScriptValue scriptDataToScriptValue(QScriptEngine *eng, const QScriptScriptData &in)
+{
+ QScriptValue out = eng->newObject();
+ out.setProperty(QString::fromLatin1("contents"), QScriptValue(eng, in.contents()));
+ out.setProperty(QString::fromLatin1("fileName"), QScriptValue(eng, in.fileName()));
+ out.setProperty(QString::fromLatin1("baseLineNumber"), QScriptValue(eng, in.baseLineNumber()));
+ return out;
+}
+
+static void scriptDataFromScriptValue(const QScriptValue &in, QScriptScriptData &out)
+{
+ QString contents = in.property(QString::fromLatin1("contents")).toString();
+ QString fileName = in.property(QString::fromLatin1("fileName")).toString();
+ int baseLineNumber = in.property(QString::fromLatin1("baseLineNumber")).toInt32();
+ QScriptScriptData tmp(contents, fileName, baseLineNumber);
+ out = tmp;
+}
+
+static QScriptValue scriptMapToScriptValue(QScriptEngine *eng, const QScriptScriptMap &in)
+{
+ QScriptValue out = eng->newObject();
+ QScriptScriptMap::const_iterator it;
+ for (it = in.constBegin(); it != in.constEnd(); ++it) {
+ out.setProperty(QString::number(it.key()), qScriptValueFromValue(eng, it.value()));
+ }
+ return out;
+}
+
+static void scriptMapFromScriptValue(const QScriptValue &, QScriptScriptMap &)
+{
+ Q_ASSERT(0);
+}
+
+static QScriptValue consoleCommandToScriptValue(
+ QScriptEngine *eng, QScriptDebuggerConsoleCommand* const &in)
+{
+ if (!in)
+ return eng->undefinedValue();
+ QScriptValue out = eng->newObject();
+ out.setProperty(QString::fromLatin1("name"), QScriptValue(eng, in->name()));
+ out.setProperty(QString::fromLatin1("group"), QScriptValue(eng, in->group()));
+ out.setProperty(QString::fromLatin1("shortDescription"), QScriptValue(eng, in->shortDescription()));
+ out.setProperty(QString::fromLatin1("longDescription"), QScriptValue(eng, in->longDescription()));
+ out.setProperty(QString::fromLatin1("aliases"), qScriptValueFromValue(eng, in->aliases()));
+ out.setProperty(QString::fromLatin1("seeAlso"), qScriptValueFromValue(eng, in->seeAlso()));
+ return out;
+}
+
+static void consoleCommandFromScriptValue(
+ const QScriptValue &, QScriptDebuggerConsoleCommand* &)
+{
+ Q_ASSERT(0);
+}
+
+static QScriptValue consoleCommandGroupDataToScriptValue(
+ QScriptEngine *eng, const QScriptDebuggerConsoleCommandGroupData &in)
+{
+ QScriptValue out = eng->newObject();
+ out.setProperty(QString::fromLatin1("longDescription"), QScriptValue(eng, in.longDescription()));
+ out.setProperty(QString::fromLatin1("shortDescription"), QScriptValue(eng, in.shortDescription()));
+ return out;
+}
+
+static void consoleCommandGroupDataFromScriptValue(
+ const QScriptValue &, QScriptDebuggerConsoleCommandGroupData &)
+{
+ Q_ASSERT(0);
+}
+
+static QScriptValue consoleCommandGroupMapToScriptValue(
+ QScriptEngine *eng, const QScriptDebuggerConsoleCommandGroupMap &in)
+{
+ QScriptValue out = eng->newObject();
+ QScriptDebuggerConsoleCommandGroupMap::const_iterator it;
+ for (it = in.constBegin(); it != in.constEnd(); ++it) {
+ out.setProperty(it.key(), qScriptValueFromValue(eng, it.value()));
+ }
+ return out;
+}
+
+static void consoleCommandGroupMapFromScriptValue(
+ const QScriptValue &, QScriptDebuggerConsoleCommandGroupMap &)
+{
+ Q_ASSERT(0);
+}
+
+static QScriptValue contextInfoToScriptValue(QScriptEngine *eng, const QScriptContextInfo &in)
+{
+ QScriptValue out = eng->newObject();
+ out.setProperty(QString::fromLatin1("scriptId"), QScriptValue(eng, qsreal(in.scriptId())));
+ out.setProperty(QString::fromLatin1("fileName"), QScriptValue(eng, in.fileName()));
+ out.setProperty(QString::fromLatin1("lineNumber"), QScriptValue(eng, in.lineNumber()));
+ out.setProperty(QString::fromLatin1("columnNumber"), QScriptValue(eng, in.columnNumber()));
+ out.setProperty(QString::fromLatin1("functionName"), QScriptValue(eng, in.functionName()));
+ return out;
+}
+
+static void contextInfoFromScriptValue(const QScriptValue &, QScriptContextInfo &)
+{
+ Q_ASSERT(0);
+}
+
+static QScriptValue debuggerScriptValuePropertyToScriptValue(QScriptEngine *eng, const QScriptDebuggerValueProperty &in)
+{
+ QScriptValue out = eng->newObject();
+ out.setProperty(QString::fromLatin1("name"), QScriptValue(eng, in.name()));
+ out.setProperty(QString::fromLatin1("value"), qScriptValueFromValue(eng, in.value()));
+ out.setProperty(QString::fromLatin1("valueAsString"), QScriptValue(eng, in.valueAsString()));
+ out.setProperty(QString::fromLatin1("flags"), QScriptValue(eng, static_cast<int>(in.flags())));
+ return out;
+}
+
+static void debuggerScriptValuePropertyFromScriptValue(const QScriptValue &in, QScriptDebuggerValueProperty &out)
+{
+ QString name = in.property(QString::fromLatin1("name")).toString();
+ QScriptDebuggerValue value = qscriptvalue_cast<QScriptDebuggerValue>(in.property(QString::fromLatin1("value")));
+ QString valueAsString = in.property(QString::fromLatin1("valueAsString")).toString();
+ int flags = in.property(QString::fromLatin1("flags")).toInt32();
+ QScriptDebuggerValueProperty tmp(name, value, valueAsString, QScriptValue::PropertyFlags(flags));
+ out = tmp;
+}
+
/*!
\since 4.5
\class QScriptDebuggerConsole
@@ -76,6 +276,7 @@ public:
QScriptMessageHandlerInterface *messageHandler,
QScriptDebuggerCommandSchedulerInterface *commandScheduler);
+ QScriptEngine *commandEngine;
QScriptDebuggerConsoleCommandManager *commandManager;
QString commandPrefix;
QString input;
@@ -99,11 +300,29 @@ QScriptDebuggerConsolePrivate::QScriptDebuggerConsolePrivate(QScriptDebuggerCons
evaluateAction = 0;
commandPrefix = QLatin1String(".");
commandManager = new QScriptDebuggerConsoleCommandManager();
+
+ commandEngine = new QScriptEngine;
+ qScriptRegisterMetaType<QScriptBreakpointData>(commandEngine, breakpointDataToScriptValue, breakpointDataFromScriptValue);
+ qScriptRegisterMetaType<QScriptBreakpointMap>(commandEngine, breakpointMapToScriptValue, breakpointMapFromScriptValue);
+ qScriptRegisterMetaType<QScriptScriptData>(commandEngine, scriptDataToScriptValue, scriptDataFromScriptValue);
+ qScriptRegisterMetaType<QScriptScriptMap>(commandEngine, scriptMapToScriptValue, scriptMapFromScriptValue);
+ qScriptRegisterMetaType<QScriptContextInfo>(commandEngine, contextInfoToScriptValue, contextInfoFromScriptValue);
+ qScriptRegisterMetaType<QScriptDebuggerValueProperty>(commandEngine, debuggerScriptValuePropertyToScriptValue, debuggerScriptValuePropertyFromScriptValue);
+ qScriptRegisterSequenceMetaType<QScriptDebuggerValuePropertyList>(commandEngine);
+ qScriptRegisterMetaType<QScriptDebuggerResponse>(commandEngine, debuggerResponseToScriptValue, debuggerResponseFromScriptValue);
+ qScriptRegisterMetaType<QScriptDebuggerConsoleCommand*>(commandEngine, consoleCommandToScriptValue, consoleCommandFromScriptValue);
+ qScriptRegisterSequenceMetaType<QScriptDebuggerConsoleCommandList>(commandEngine);
+ qScriptRegisterMetaType<QScriptDebuggerConsoleCommandGroupData>(commandEngine, consoleCommandGroupDataToScriptValue, consoleCommandGroupDataFromScriptValue);
+ qScriptRegisterMetaType<QScriptDebuggerConsoleCommandGroupMap>(commandEngine, consoleCommandGroupMapToScriptValue, consoleCommandGroupMapFromScriptValue);
+// ### can't do this, if it's an object ID the conversion will be incorrect since
+// ### the object ID refers to an object in a different engine!
+// qScriptRegisterMetaType(commandEngine, debuggerScriptValueToScriptValue, debuggerScriptValueFromScriptValue);
}
QScriptDebuggerConsolePrivate::~QScriptDebuggerConsolePrivate()
{
delete commandManager;
+ delete commandEngine;
}
/*!
@@ -126,7 +345,7 @@ void QScriptDebuggerConsolePrivate::loadScriptedCommands(
QString program = stream.readAll();
QScriptDebuggerScriptedConsoleCommand *command;
command = QScriptDebuggerScriptedConsoleCommand::parse(
- program, fileName, messageHandler);
+ program, fileName, commandEngine, messageHandler);
if (!command)
continue;
commandManager->addCommand(command);
diff --git a/src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp b/src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp
index 068de42..ec6230b 100644
--- a/src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp
+++ b/src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp
@@ -54,6 +54,7 @@
#include <QtCore/qdebug.h>
#include <QtCore/qcoreapplication.h>
+#include <QtCore/qpointer.h>
#include <QtGui/qbrush.h>
#include <QtGui/qfont.h>
@@ -370,6 +371,7 @@ public:
{
if (!m_index.isValid()) {
// nothing to do, the node has been removed
+ finish();
return;
}
QScriptDebuggerCommandSchedulerFrontend frontend(commandScheduler(), this);
@@ -475,7 +477,7 @@ namespace {
class InitModelJob : public QScriptDebuggerCommandSchedulerJob
{
public:
- InitModelJob(QScriptDebuggerLocalsModelPrivate *model,
+ InitModelJob(QScriptDebuggerLocalsModel *model,
int frameIndex,
QScriptDebuggerCommandSchedulerInterface *scheduler)
: QScriptDebuggerCommandSchedulerJob(scheduler),
@@ -484,6 +486,11 @@ public:
void start()
{
+ if (!m_model) {
+ // Model has been deleted.
+ finish();
+ return;
+ }
QScriptDebuggerCommandSchedulerFrontend frontend(commandScheduler(), this);
frontend.scheduleGetScopeChain(m_frameIndex);
}
@@ -491,7 +498,13 @@ public:
void handleResponse(const QScriptDebuggerResponse &response,
int)
{
+ if (!m_model) {
+ // Model has been deleted.
+ finish();
+ return;
+ }
QScriptDebuggerCommandSchedulerFrontend frontend(commandScheduler(), this);
+ QScriptDebuggerLocalsModelPrivate *model_d = QScriptDebuggerLocalsModelPrivate::get(m_model);
switch (m_state) {
case 0: {
QScriptDebuggerValueList scopeChain = response.resultAsScriptValueList();
@@ -500,23 +513,23 @@ public:
QString name = QString::fromLatin1("Scope");
if (i > 0)
name.append(QString::fromLatin1(" (%0)").arg(i));
- QModelIndex index = m_model->addTopLevelObject(name, scopeObject);
+ QModelIndex index = model_d->addTopLevelObject(name, scopeObject);
if (i == 0)
- m_model->emitScopeObjectAvailable(index);
+ model_d->emitScopeObjectAvailable(index);
}
frontend.scheduleGetThisObject(m_frameIndex);
++m_state;
} break;
case 1: {
QScriptDebuggerValue thisObject = response.resultAsScriptValue();
- m_model->addTopLevelObject(QLatin1String("this"), thisObject);
+ model_d->addTopLevelObject(QLatin1String("this"), thisObject);
finish();
} break;
}
}
private:
- QScriptDebuggerLocalsModelPrivate *m_model;
+ QPointer<QScriptDebuggerLocalsModel> m_model;
int m_frameIndex;
int m_state;
};
@@ -527,7 +540,7 @@ void QScriptDebuggerLocalsModel::init(int frameIndex)
{
Q_D(QScriptDebuggerLocalsModel);
d->frameIndex = frameIndex;
- QScriptDebuggerJob *job = new InitModelJob(d, frameIndex, d->commandScheduler);
+ QScriptDebuggerJob *job = new InitModelJob(this, frameIndex, d->commandScheduler);
d->jobScheduler->scheduleJob(job);
}
@@ -536,7 +549,7 @@ namespace {
class SyncModelJob : public QScriptDebuggerCommandSchedulerJob
{
public:
- SyncModelJob(QScriptDebuggerLocalsModelPrivate *model,
+ SyncModelJob(QScriptDebuggerLocalsModel *model,
int frameIndex,
QScriptDebuggerCommandSchedulerInterface *scheduler)
: QScriptDebuggerCommandSchedulerJob(scheduler),
@@ -545,6 +558,11 @@ public:
void start()
{
+ if (!m_model) {
+ // Model has been deleted.
+ finish();
+ return;
+ }
QScriptDebuggerCommandSchedulerFrontend frontend(commandScheduler(), this);
frontend.scheduleGetScopeChain(m_frameIndex);
}
@@ -552,6 +570,11 @@ public:
void handleResponse(const QScriptDebuggerResponse &response,
int)
{
+ if (!m_model) {
+ // Model has been deleted.
+ finish();
+ return;
+ }
QScriptDebuggerCommandSchedulerFrontend frontend(commandScheduler(), this);
switch (m_state) {
case 0: {
@@ -561,18 +584,19 @@ public:
++m_state;
} break;
case 1: {
+ QScriptDebuggerLocalsModelPrivate *model_d = QScriptDebuggerLocalsModelPrivate::get(m_model);
QScriptDebuggerValue thisObject = response.resultAsScriptValue();
m_topLevelObjects.append(thisObject);
- bool equal = (m_topLevelObjects.size() == m_model->invisibleRootNode->children.size());
+ bool equal = (m_topLevelObjects.size() == model_d->invisibleRootNode->children.size());
for (int i = 0; equal && (i < m_topLevelObjects.size()); ++i) {
const QScriptDebuggerValue &object = m_topLevelObjects.at(i);
- equal = (object == m_model->invisibleRootNode->children.at(i)->property.value());
+ equal = (object == model_d->invisibleRootNode->children.at(i)->property.value());
}
if (!equal) {
// the scope chain and/or this-object changed, so invalidate the model.
// we could try to be more clever, i.e. figure out
// exactly which objects were popped/pushed
- m_model->removeTopLevelNodes();
+ model_d->removeTopLevelNodes();
for (int j = 0; j < m_topLevelObjects.size(); ++j) {
const QScriptDebuggerValue &object = m_topLevelObjects.at(j);
QString name;
@@ -583,12 +607,12 @@ public:
if (j > 0)
name.append(QString::fromLatin1(" (%0)").arg(j));
}
- QModelIndex index = m_model->addTopLevelObject(name, object);
+ QModelIndex index = model_d->addTopLevelObject(name, object);
if (j == 0)
- m_model->emitScopeObjectAvailable(index);
+ model_d->emitScopeObjectAvailable(index);
}
} else {
- m_model->syncTopLevelNodes();
+ model_d->syncTopLevelNodes();
}
finish();
} break;
@@ -596,7 +620,7 @@ public:
}
private:
- QScriptDebuggerLocalsModelPrivate *m_model;
+ QPointer<QScriptDebuggerLocalsModel> m_model;
int m_frameIndex;
int m_state;
QScriptDebuggerValueList m_topLevelObjects;
@@ -608,7 +632,7 @@ void QScriptDebuggerLocalsModel::sync(int frameIndex)
{
Q_D(QScriptDebuggerLocalsModel);
d->frameIndex = frameIndex;
- QScriptDebuggerJob *job = new SyncModelJob(d, frameIndex, d->commandScheduler);
+ QScriptDebuggerJob *job = new SyncModelJob(this, frameIndex, d->commandScheduler);
d->jobScheduler->scheduleJob(job);
}
@@ -636,6 +660,7 @@ public:
{
if (!m_index.isValid()) {
// nothing to do, the node has been removed
+ finish();
return;
}
QScriptDebuggerCommandSchedulerFrontend frontend(commandScheduler(), this);
diff --git a/src/scripttools/debugging/qscriptdebuggerlocalswidget.cpp b/src/scripttools/debugging/qscriptdebuggerlocalswidget.cpp
index 516a200..bbced5f 100644
--- a/src/scripttools/debugging/qscriptdebuggerlocalswidget.cpp
+++ b/src/scripttools/debugging/qscriptdebuggerlocalswidget.cpp
@@ -70,6 +70,8 @@ public:
bool hasChildren(const QModelIndex &parent) const
{
+ if (!sourceModel())
+ return false;
QModelIndex sourceParent = mapToSource(parent);
if (parent.isValid() && !sourceParent.isValid())
return false;
@@ -184,7 +186,8 @@ void QScriptDebuggerLocalsWidgetPrivate::_q_insertCompletion(const QString &text
void QScriptDebuggerLocalsWidgetPrivate::_q_expandIndex(const QModelIndex &index)
{
- view->expand(proxy->mapFromSource(index));
+ if (view->model() == index.model())
+ view->expand(proxy->mapFromSource(index));
}
class QScriptDebuggerLocalsItemDelegate
diff --git a/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp b/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp
index 8d6a579..117c2d6 100644
--- a/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp
+++ b/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp
@@ -46,8 +46,6 @@
#include "qscriptmessagehandlerinterface_p.h"
#include "qscriptdebuggerconsoleglobalobject_p.h"
#include "qscriptdebuggerresponse_p.h"
-#include "qscriptdebuggervalue_p.h"
-#include "qscriptdebuggervalueproperty_p.h"
#include "qscriptdebuggercommandschedulerinterface_p.h"
#include <QtCore/qstring.h>
@@ -59,202 +57,9 @@
#include <QtCore/qdebug.h>
Q_DECLARE_METATYPE(QScriptDebuggerResponse)
-Q_DECLARE_METATYPE(QScriptBreakpointData)
-Q_DECLARE_METATYPE(QScriptBreakpointMap)
-Q_DECLARE_METATYPE(QScriptScriptData)
-Q_DECLARE_METATYPE(QScriptScriptMap)
-Q_DECLARE_METATYPE(QScriptContextInfo)
-Q_DECLARE_METATYPE(QScriptDebuggerValue)
-Q_DECLARE_METATYPE(QScriptDebuggerValueProperty)
-Q_DECLARE_METATYPE(QScriptDebuggerValuePropertyList)
-Q_DECLARE_METATYPE(QScriptDebuggerConsoleCommand*)
-Q_DECLARE_METATYPE(QScriptDebuggerConsoleCommandList)
-Q_DECLARE_METATYPE(QScriptDebuggerConsoleCommandGroupData)
-Q_DECLARE_METATYPE(QScriptDebuggerConsoleCommandGroupMap)
QT_BEGIN_NAMESPACE
-static QScriptValue debuggerResponseToScriptValue(QScriptEngine *eng, const QScriptDebuggerResponse &in)
-{
- QScriptValue out = eng->newObject();
- out.setProperty(QString::fromLatin1("result"), qScriptValueFromValue(eng, in.result()));
- out.setProperty(QString::fromLatin1("error"), QScriptValue(eng, in.error()));
- out.setProperty(QString::fromLatin1("async"), QScriptValue(eng, in.async()));
- return out;
-}
-
-static void debuggerResponseFromScriptValue(const QScriptValue &, QScriptDebuggerResponse &)
-{
- Q_ASSERT(0);
-}
-
-static QScriptValue breakpointDataToScriptValue(QScriptEngine *eng, const QScriptBreakpointData &in)
-{
- QScriptValue out = eng->newObject();
- out.setProperty(QString::fromLatin1("scriptId"), QScriptValue(eng, qsreal(in.scriptId())));
- out.setProperty(QString::fromLatin1("fileName"), QScriptValue(eng, in.fileName()));
- out.setProperty(QString::fromLatin1("lineNumber"), QScriptValue(eng, in.lineNumber()));
- out.setProperty(QString::fromLatin1("enabled"), QScriptValue(eng, in.isEnabled()));
- out.setProperty(QString::fromLatin1("singleShot"), QScriptValue(eng, in.isSingleShot()));
- out.setProperty(QString::fromLatin1("ignoreCount"), QScriptValue(eng, in.ignoreCount()));
- out.setProperty(QString::fromLatin1("condition"), QScriptValue(eng, in.condition()));
- return out;
-}
-
-static void breakpointDataFromScriptValue(const QScriptValue &in, QScriptBreakpointData &out)
-{
- QScriptValue scriptId = in.property(QString::fromLatin1("scriptId"));
- if (scriptId.isValid())
- out.setScriptId((qint64)scriptId.toNumber());
- out.setFileName(in.property(QString::fromLatin1("fileName")).toString());
- out.setLineNumber(in.property(QString::fromLatin1("lineNumber")).toInt32());
- QScriptValue enabled = in.property(QString::fromLatin1("enabled"));
- if (enabled.isValid())
- out.setEnabled(enabled.toBoolean());
- QScriptValue singleShot = in.property(QString::fromLatin1("singleShot"));
- if (singleShot.isValid())
- out.setSingleShot(singleShot.toBoolean());
- out.setIgnoreCount(in.property(QString::fromLatin1("ignoreCount")).toInt32());
- out.setCondition(in.property(QString::fromLatin1("condition")).toString());
-}
-
-static QScriptValue breakpointMapToScriptValue(QScriptEngine *eng, const QScriptBreakpointMap &in)
-{
- QScriptValue out = eng->newObject();
- QScriptBreakpointMap::const_iterator it;
- for (it = in.constBegin(); it != in.constEnd(); ++it) {
- out.setProperty(QString::number(it.key()), qScriptValueFromValue(eng, it.value()));
- }
- return out;
-}
-
-static void breakpointMapFromScriptValue(const QScriptValue &, QScriptBreakpointMap &)
-{
- Q_ASSERT(0);
-}
-
-static QScriptValue scriptDataToScriptValue(QScriptEngine *eng, const QScriptScriptData &in)
-{
- QScriptValue out = eng->newObject();
- out.setProperty(QString::fromLatin1("contents"), QScriptValue(eng, in.contents()));
- out.setProperty(QString::fromLatin1("fileName"), QScriptValue(eng, in.fileName()));
- out.setProperty(QString::fromLatin1("baseLineNumber"), QScriptValue(eng, in.baseLineNumber()));
- return out;
-}
-
-static void scriptDataFromScriptValue(const QScriptValue &in, QScriptScriptData &out)
-{
- QString contents = in.property(QString::fromLatin1("contents")).toString();
- QString fileName = in.property(QString::fromLatin1("fileName")).toString();
- int baseLineNumber = in.property(QString::fromLatin1("baseLineNumber")).toInt32();
- QScriptScriptData tmp(contents, fileName, baseLineNumber);
- out = tmp;
-}
-
-static QScriptValue scriptMapToScriptValue(QScriptEngine *eng, const QScriptScriptMap &in)
-{
- QScriptValue out = eng->newObject();
- QScriptScriptMap::const_iterator it;
- for (it = in.constBegin(); it != in.constEnd(); ++it) {
- out.setProperty(QString::number(it.key()), qScriptValueFromValue(eng, it.value()));
- }
- return out;
-}
-
-static void scriptMapFromScriptValue(const QScriptValue &, QScriptScriptMap &)
-{
- Q_ASSERT(0);
-}
-
-static QScriptValue consoleCommandToScriptValue(
- QScriptEngine *eng, QScriptDebuggerConsoleCommand* const &in)
-{
- if (!in)
- return eng->undefinedValue();
- QScriptValue out = eng->newObject();
- out.setProperty(QString::fromLatin1("name"), QScriptValue(eng, in->name()));
- out.setProperty(QString::fromLatin1("group"), QScriptValue(eng, in->group()));
- out.setProperty(QString::fromLatin1("shortDescription"), QScriptValue(eng, in->shortDescription()));
- out.setProperty(QString::fromLatin1("longDescription"), QScriptValue(eng, in->longDescription()));
- out.setProperty(QString::fromLatin1("aliases"), qScriptValueFromValue(eng, in->aliases()));
- out.setProperty(QString::fromLatin1("seeAlso"), qScriptValueFromValue(eng, in->seeAlso()));
- return out;
-}
-
-static void consoleCommandFromScriptValue(
- const QScriptValue &, QScriptDebuggerConsoleCommand* &)
-{
- Q_ASSERT(0);
-}
-
-static QScriptValue consoleCommandGroupDataToScriptValue(
- QScriptEngine *eng, const QScriptDebuggerConsoleCommandGroupData &in)
-{
- QScriptValue out = eng->newObject();
- out.setProperty(QString::fromLatin1("longDescription"), QScriptValue(eng, in.longDescription()));
- out.setProperty(QString::fromLatin1("shortDescription"), QScriptValue(eng, in.shortDescription()));
- return out;
-}
-
-static void consoleCommandGroupDataFromScriptValue(
- const QScriptValue &, QScriptDebuggerConsoleCommandGroupData &)
-{
- Q_ASSERT(0);
-}
-
-static QScriptValue consoleCommandGroupMapToScriptValue(
- QScriptEngine *eng, const QScriptDebuggerConsoleCommandGroupMap &in)
-{
- QScriptValue out = eng->newObject();
- QScriptDebuggerConsoleCommandGroupMap::const_iterator it;
- for (it = in.constBegin(); it != in.constEnd(); ++it) {
- out.setProperty(it.key(), qScriptValueFromValue(eng, it.value()));
- }
- return out;
-}
-
-static void consoleCommandGroupMapFromScriptValue(
- const QScriptValue &, QScriptDebuggerConsoleCommandGroupMap &)
-{
- Q_ASSERT(0);
-}
-
-static QScriptValue contextInfoToScriptValue(QScriptEngine *eng, const QScriptContextInfo &in)
-{
- QScriptValue out = eng->newObject();
- out.setProperty(QString::fromLatin1("scriptId"), QScriptValue(eng, qsreal(in.scriptId())));
- out.setProperty(QString::fromLatin1("fileName"), QScriptValue(eng, in.fileName()));
- out.setProperty(QString::fromLatin1("lineNumber"), QScriptValue(eng, in.lineNumber()));
- out.setProperty(QString::fromLatin1("columnNumber"), QScriptValue(eng, in.columnNumber()));
- out.setProperty(QString::fromLatin1("functionName"), QScriptValue(eng, in.functionName()));
- return out;
-}
-
-static void contextInfoFromScriptValue(const QScriptValue &, QScriptContextInfo &)
-{
- Q_ASSERT(0);
-}
-
-static QScriptValue debuggerScriptValuePropertyToScriptValue(QScriptEngine *eng, const QScriptDebuggerValueProperty &in)
-{
- QScriptValue out = eng->newObject();
- out.setProperty(QString::fromLatin1("name"), QScriptValue(eng, in.name()));
- out.setProperty(QString::fromLatin1("value"), qScriptValueFromValue(eng, in.value()));
- out.setProperty(QString::fromLatin1("valueAsString"), QScriptValue(eng, in.valueAsString()));
- out.setProperty(QString::fromLatin1("flags"), QScriptValue(eng, static_cast<int>(in.flags())));
- return out;
-}
-
-static void debuggerScriptValuePropertyFromScriptValue(const QScriptValue &in, QScriptDebuggerValueProperty &out)
-{
- QString name = in.property(QString::fromLatin1("name")).toString();
- QScriptDebuggerValue value = qscriptvalue_cast<QScriptDebuggerValue>(in.property(QString::fromLatin1("value")));
- QString valueAsString = in.property(QString::fromLatin1("valueAsString")).toString();
- int flags = in.property(QString::fromLatin1("flags")).toInt32();
- QScriptDebuggerValueProperty tmp(name, value, valueAsString, QScriptValue::PropertyFlags(flags));
- out = tmp;
-}
-
/*!
\since 4.5
\class QScriptDebuggerScriptedConsoleCommand
@@ -279,19 +84,17 @@ public:
QStringList seeAlso;
QStringList argumentTypes;
QStringList subCommands;
- QScriptEngine *engine;
+ QScriptValue globalObject;
QScriptValue execFunction;
QScriptValue responseFunction;
};
QScriptDebuggerScriptedConsoleCommandPrivate::QScriptDebuggerScriptedConsoleCommandPrivate()
{
- engine = 0;
}
QScriptDebuggerScriptedConsoleCommandPrivate::~QScriptDebuggerScriptedConsoleCommandPrivate()
{
- delete engine;
}
QScriptDebuggerScriptedConsoleCommand::QScriptDebuggerScriptedConsoleCommand(
@@ -299,6 +102,7 @@ QScriptDebuggerScriptedConsoleCommand::QScriptDebuggerScriptedConsoleCommand(
const QString &shortDescription, const QString &longDescription,
const QStringList &aliases, const QStringList &seeAlso,
const QStringList &argumentTypes, const QStringList &subCommands,
+ const QScriptValue &globalObject,
const QScriptValue &execFunction, const QScriptValue &responseFunction)
: QScriptDebuggerConsoleCommand(*new QScriptDebuggerScriptedConsoleCommandPrivate)
{
@@ -311,25 +115,9 @@ QScriptDebuggerScriptedConsoleCommand::QScriptDebuggerScriptedConsoleCommand(
d->seeAlso = seeAlso;
d->argumentTypes = argumentTypes;
d->subCommands = subCommands;
+ d->globalObject = globalObject;
d->execFunction = execFunction;
d->responseFunction = responseFunction;
- d->engine = execFunction.engine();
-
- qScriptRegisterMetaType<QScriptBreakpointData>(d->engine, breakpointDataToScriptValue, breakpointDataFromScriptValue);
- qScriptRegisterMetaType<QScriptBreakpointMap>(d->engine, breakpointMapToScriptValue, breakpointMapFromScriptValue);
- qScriptRegisterMetaType<QScriptScriptData>(d->engine, scriptDataToScriptValue, scriptDataFromScriptValue);
- qScriptRegisterMetaType<QScriptScriptMap>(d->engine, scriptMapToScriptValue, scriptMapFromScriptValue);
- qScriptRegisterMetaType<QScriptContextInfo>(d->engine, contextInfoToScriptValue, contextInfoFromScriptValue);
- qScriptRegisterMetaType<QScriptDebuggerValueProperty>(d->engine, debuggerScriptValuePropertyToScriptValue, debuggerScriptValuePropertyFromScriptValue);
- qScriptRegisterSequenceMetaType<QScriptDebuggerValuePropertyList>(d->engine);
- qScriptRegisterMetaType<QScriptDebuggerResponse>(d->engine, debuggerResponseToScriptValue, debuggerResponseFromScriptValue);
- qScriptRegisterMetaType<QScriptDebuggerConsoleCommand*>(d->engine, consoleCommandToScriptValue, consoleCommandFromScriptValue);
- qScriptRegisterSequenceMetaType<QScriptDebuggerConsoleCommandList>(d->engine);
- qScriptRegisterMetaType<QScriptDebuggerConsoleCommandGroupData>(d->engine, consoleCommandGroupDataToScriptValue, consoleCommandGroupDataFromScriptValue);
- qScriptRegisterMetaType<QScriptDebuggerConsoleCommandGroupMap>(d->engine, consoleCommandGroupMapToScriptValue, consoleCommandGroupMapFromScriptValue);
-// ### can't do this, if it's an object ID the conversion will be incorrect since
-// ### the object ID refers to an object in a different engine!
-// qScriptRegisterMetaType(d->engine, debuggerScriptValueToScriptValue, debuggerScriptValueFromScriptValue);
}
QScriptDebuggerScriptedConsoleCommand::~QScriptDebuggerScriptedConsoleCommand()
@@ -405,7 +193,8 @@ int QScriptDebuggerScriptedConsoleCommandJob::scheduleCommand(
void QScriptDebuggerScriptedConsoleCommandJob::start()
{
Q_D(QScriptDebuggerScriptedConsoleCommandJob);
- QScriptEngine *engine = d->command->engine;
+ QScriptEngine *engine = d->command->globalObject.engine();
+ engine->setGlobalObject(d->command->globalObject);
QScriptValueList args;
for (int i = 0; i < d->arguments.size(); ++i)
args.append(QScriptValue(engine, d->arguments.at(i)));
@@ -435,12 +224,13 @@ void QScriptDebuggerScriptedConsoleCommandJob::handleResponse(
{
Q_D(QScriptDebuggerScriptedConsoleCommandJob);
// ### generalize
- QScriptEngine *engine = d->command->engine;
+ QScriptEngine *engine = d->command->globalObject.engine();
+ engine->setGlobalObject(d->command->globalObject);
QScriptValueList args;
args.append(qScriptValueFromValue(engine, response));
args.append(QScriptValue(engine, commandId));
QScriptDebuggerConsoleGlobalObject *global;
- global = qobject_cast<QScriptDebuggerConsoleGlobalObject*>(engine->globalObject().toQObject());
+ global = qobject_cast<QScriptDebuggerConsoleGlobalObject*>(d->command->globalObject.toQObject());
Q_ASSERT(global != 0);
global->setScheduler(this);
global->setResponseHandler(this);
@@ -551,9 +341,8 @@ QScriptDebuggerConsoleCommandJob *QScriptDebuggerScriptedConsoleCommand::createJ
*/
QScriptDebuggerScriptedConsoleCommand *QScriptDebuggerScriptedConsoleCommand::parse(
const QString &program, const QString &fileName,
- QScriptMessageHandlerInterface *messageHandler)
+ QScriptEngine *engine, QScriptMessageHandlerInterface *messageHandler)
{
- QScriptEngine *engine = new QScriptEngine();
// create a custom global object
QScriptDebuggerConsoleGlobalObject *cppGlobal = new QScriptDebuggerConsoleGlobalObject();
QScriptValue global = engine->newQObject(cppGlobal,
@@ -574,14 +363,12 @@ QScriptDebuggerScriptedConsoleCommand *QScriptDebuggerScriptedConsoleCommand::pa
if (engine->hasUncaughtException()) {
messageHandler->message(QtCriticalMsg, ret.toString(), fileName,
engine->uncaughtExceptionLineNumber());
- delete engine;
return 0;
}
QScriptValue name = global.property(QLatin1String("name"));
if (!name.isString()) {
messageHandler->message(QtCriticalMsg, QLatin1String("command definition lacks a name"), fileName);
- delete engine;
return 0;
}
QString nameStr = name.toString();
@@ -590,7 +377,6 @@ QScriptDebuggerScriptedConsoleCommand *QScriptDebuggerScriptedConsoleCommand::pa
if (!group.isString()) {
messageHandler->message(QtCriticalMsg, QString::fromLatin1("definition of command \"%0\" lacks a group name")
.arg(nameStr), fileName);
- delete engine;
return 0;
}
QString groupStr = group.toString();
@@ -599,7 +385,6 @@ QScriptDebuggerScriptedConsoleCommand *QScriptDebuggerScriptedConsoleCommand::pa
if (!shortDesc.isString()) {
messageHandler->message(QtCriticalMsg, QString::fromLatin1("definition of command \"%0\" lacks shortDescription")
.arg(nameStr), fileName);
- delete engine;
return 0;
}
QString shortDescStr = shortDesc.toString();
@@ -608,7 +393,6 @@ QScriptDebuggerScriptedConsoleCommand *QScriptDebuggerScriptedConsoleCommand::pa
if (!longDesc.isString()) {
messageHandler->message(QtCriticalMsg, QString::fromLatin1("definition of command \"%0\" lacks longDescription")
.arg(nameStr), fileName);
- delete engine;
return 0;
}
QString longDescStr = longDesc.toString();
@@ -629,7 +413,6 @@ QScriptDebuggerScriptedConsoleCommand *QScriptDebuggerScriptedConsoleCommand::pa
if (!execFunction.isFunction()) {
messageHandler->message(QtCriticalMsg, QString::fromLatin1("definition of command \"%0\" lacks execute() function")
.arg(nameStr), fileName);
- delete engine;
return 0;
}
@@ -640,7 +423,7 @@ QScriptDebuggerScriptedConsoleCommand *QScriptDebuggerScriptedConsoleCommand::pa
shortDescStr, longDescStr,
aliases, seeAlso,
argTypes, subCommands,
- execFunction, responseFunction);
+ global, execFunction, responseFunction);
return result;
}
diff --git a/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand_p.h b/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand_p.h
index 1536de2..2b2b3f8 100644
--- a/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand_p.h
@@ -57,6 +57,7 @@
QT_BEGIN_NAMESPACE
+class QScriptEngine;
class QScriptValue;
class QScriptDebuggerScriptedConsoleCommandPrivate;
@@ -72,6 +73,7 @@ protected:
const QStringList &seeAlso,
const QStringList &argumentTypes,
const QStringList &subCommands,
+ const QScriptValue &globalObject,
const QScriptValue &execFunction,
const QScriptValue &responseFunction);
public:
@@ -79,7 +81,7 @@ public:
static QScriptDebuggerScriptedConsoleCommand *parse(
const QString &program, const QString &fileName,
- QScriptMessageHandlerInterface *messageHandler);
+ QScriptEngine *engine, QScriptMessageHandlerInterface *messageHandler);
QString name() const;
QString group() const;
diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp
index 9dbefaf..9fff552 100644
--- a/src/sql/drivers/sqlite/qsql_sqlite.cpp
+++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp
@@ -245,9 +245,9 @@ bool QSQLiteResultPrivate::fetchNext(QSqlCachedResult::ValueCache &values, int i
values[i + idx] = QVariant(QVariant::String);
break;
default:
- values[i + idx] = QString::fromUtf16(static_cast<const ushort *>(
+ values[i + idx] = QString(reinterpret_cast<const QChar *>(
sqlite3_column_text16(stmt, i)),
- sqlite3_column_bytes16(stmt, i) / sizeof(ushort));
+ sqlite3_column_bytes16(stmt, i) / sizeof(QChar));
break;
}
}
diff --git a/src/sql/kernel/qsqlresult.cpp b/src/sql/kernel/qsqlresult.cpp
index 5f12b55..3d63f88 100644
--- a/src/sql/kernel/qsqlresult.cpp
+++ b/src/sql/kernel/qsqlresult.cpp
@@ -136,7 +136,7 @@ static QString qFieldSerial(int i)
i >>= 4;
}
- return QString::fromUtf16(arr, int(ptr - arr) + 1);
+ return QString(reinterpret_cast<const QChar *>(arr), int(ptr - arr) + 1);
}
static bool qIsAlnum(QChar ch)
diff --git a/src/src.pro b/src/src.pro
index 8dec49b..f2070ae 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -106,6 +106,7 @@ src_declarative.target = sub-declarative
contains(QT_CONFIG, webkit) {
src_webkit.depends = src_gui src_sql src_network src_xml
contains(QT_CONFIG, phonon):src_webkit.depends += src_phonon
+ contains(QT_CONFIG, xmlpatterns): src_webkit.depends += src_xmlpatterns
contains(QT_CONFIG, declarative):src_declarative.depends += src_webkit
#exists($$QT_SOURCE_TREE/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro): src_webkit.depends += src_javascriptcore
}
diff --git a/src/testlib/qbenchmarkmetric.cpp b/src/testlib/qbenchmarkmetric.cpp
index 75297c4..7356134 100644
--- a/src/testlib/qbenchmarkmetric.cpp
+++ b/src/testlib/qbenchmarkmetric.cpp
@@ -41,6 +41,29 @@
#include <QtTest/private/qbenchmarkmetric_p.h>
+/*!
+ \enum QTest::QBenchmarkMetric
+ \since 4.7
+
+ This enum lists all the things that can be benchmarked.
+
+ \value FramesPerSecond Frames per second
+ \value BitsPerSecond Bits per second
+ \value BytesPerSecond Bytes per second
+ \value WalltimeMilliseconds Clock time in milliseconds
+ \value CPUTicks CPU time
+ \value InstructionReads Instruction reads
+ \value Events Event count
+
+ \sa QTest::benchmarkMetricName(), QTest::benchmarkMetricUnit()
+
+ */
+
+/*!
+ \relates QTest
+ \since 4.7
+ Returns the enum value \a metric as a character string.
+ */
const char * QTest::benchmarkMetricName(QBenchmarkMetric metric)
{
switch (metric) {
@@ -63,6 +86,11 @@ const char * QTest::benchmarkMetricName(QBenchmarkMetric metric)
}
};
+/*!
+ \relates QTest
+ \since 4.7
+ Retuns the units of measure for the specified \a metric.
+ */
const char * QTest::benchmarkMetricUnit(QBenchmarkMetric metric)
{
switch (metric) {
diff --git a/src/tools/rcc/rcc.cpp b/src/tools/rcc/rcc.cpp
index e41cd55..1f6e58f 100644
--- a/src/tools/rcc/rcc.cpp
+++ b/src/tools/rcc/rcc.cpp
@@ -544,6 +544,8 @@ bool RCCResourceLibrary::addFile(const QString &alias, const RCCFileInfo &file)
const QString filename = nodes.at(nodes.size()-1);
RCCFileInfo *s = new RCCFileInfo(file);
s->m_parent = parent;
+ if (parent->m_children.contains(filename))
+ qWarning("potential duplicate alias detected: '%s'", qPrintable(filename));
parent->m_children.insertMulti(filename, s);
return true;
}
diff --git a/src/tools/uic/cpp/cppwriteinitialization.cpp b/src/tools/uic/cpp/cppwriteinitialization.cpp
index d9aff1b..8099ffa 100644
--- a/src/tools/uic/cpp/cppwriteinitialization.cpp
+++ b/src/tools/uic/cpp/cppwriteinitialization.cpp
@@ -2787,8 +2787,8 @@ static void generateMultiDirectiveBegin(QTextStream &outputStream, const QSet<QS
return;
QMap<QString, bool> map; // bool is dummy. The idea is to sort that (always generate in the same order) by putting a set into a map
- foreach (QString str, directives)
- map[str] = true;
+ foreach (const QString &str, directives)
+ map.insert(str, true);
if (map.size() == 1) {
outputStream << "#ifndef " << map.constBegin().key() << endl;
@@ -2797,7 +2797,7 @@ static void generateMultiDirectiveBegin(QTextStream &outputStream, const QSet<QS
outputStream << "#if";
bool doOr = false;
- foreach (QString str, map.keys()) {
+ foreach (const QString &str, map.keys()) {
if (doOr)
outputStream << " ||";
outputStream << " !defined(" << str << ')';
diff --git a/src/tools/uic3/converter.cpp b/src/tools/uic3/converter.cpp
index 2bf293d..e1b4b38 100644
--- a/src/tools/uic3/converter.cpp
+++ b/src/tools/uic3/converter.cpp
@@ -401,7 +401,7 @@ DomUI *Ui3Reader::generateUi4(const QDomElement &widget)
bool resolved = false;
if (objName == receiver) {
// see if it's a custom slot
- foreach (QString cs, ui_custom_slots) {
+ foreach (const QString &cs, ui_custom_slots) {
if (cs == slot) {
resolved = true;
break;
@@ -1122,7 +1122,7 @@ void Ui3Reader::createProperties(const QDomElement &n, QList<DomProperty*> *prop
if (prop->kind() == DomProperty::Set) {
QStringList flags = prop->elementSet().split(QLatin1Char('|'));
QStringList v;
- foreach (QString fl, flags) {
+ foreach (const QString &fl, flags) {
QString e = WidgetInfo::resolveEnumerator(className, fl);
if (e.isEmpty()) {
e = m_porting->renameEnumerator(className + QLatin1String("::") + fl);
@@ -1283,7 +1283,7 @@ QString Ui3Reader::fixType(const QString &t) const
QString newText = t;
//split type name on <>*& and whitespace
QStringList typeNames = t.split(QRegExp(QLatin1String("<|>|\\*|&| ")), QString::SkipEmptyParts);
- foreach(QString typeName , typeNames) {
+ foreach(const QString &typeName , typeNames) {
QString newName = fixClassName(typeName);
if( newName != typeName ) {
newText.replace(typeName, newName);
diff --git a/src/tools/uic3/main.cpp b/src/tools/uic3/main.cpp
index 6acc94f..1ebb76a 100644
--- a/src/tools/uic3/main.cpp
+++ b/src/tools/uic3/main.cpp
@@ -338,10 +338,10 @@ int runUic3(int argc, char * argv[])
QStringList globalIncludes, localIncludes;
ui3.computeDeps(e, globalIncludes, localIncludes, impl);
- foreach (QString i, globalIncludes)
+ foreach (const QString &i, globalIncludes)
printf("%s\n", i.toLatin1().constData());
- foreach (QString i, localIncludes)
+ foreach (const QString &i, localIncludes)
printf("%s\n", i.toLatin1().constData());
if (impl)
diff --git a/src/xml/dom/qdom.cpp b/src/xml/dom/qdom.cpp
index 657c79a..cae959b 100644
--- a/src/xml/dom/qdom.cpp
+++ b/src/xml/dom/qdom.cpp
@@ -2596,11 +2596,15 @@ QDomNode QDomNode::removeChild(const QDomNode& oldChild)
already has an element node as a child, \a newChild is not added as
a child and a null node is returned.
- Calling this function on a null node(created, for example, with the
- default constructor) does nothing.
+ Returns a new reference to \a newChild on success or a \link
+ isNull() null node\endlink on failure.
- The DOM specification disallow inserting attribute nodes, but due
- to historical reasons QDom accept them nevertheless.
+ Calling this function on a null node(created, for example, with
+ the default constructor) does nothing and returns a \link isNull()
+ null node\endlink.
+
+ The DOM specification disallow inserting attribute nodes, but for
+ historical reasons, QDom accepts them anyway.
\sa insertBefore() insertAfter() replaceChild() removeChild()
*/
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index 809b523..960cc43 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -474,7 +474,7 @@ SUBDIRS += \
rcc \
windowsmobile
-contains(QT_CONFIG,opengl):SUBDIRS += qgl
+contains(QT_CONFIG,opengl):SUBDIRS += qgl qglbuffer
contains(QT_CONFIG,qt3support):!wince*:SUBDIRS += $$Q3SUBDIRS
diff --git a/tests/auto/linguist/lupdate/.gitignore b/tests/auto/linguist/lupdate/.gitignore
index 389f2dc..a11e8d1 100644
--- a/tests/auto/linguist/lupdate/.gitignore
+++ b/tests/auto/linguist/lupdate/.gitignore
@@ -1,4 +1,4 @@
tst_lupdate
-testdata/good/*/project.ts
-testdata/good/*/*/project.ts
-testdata/recursivescan/*.ts
+testdata/*/*.ts
+testdata/*/*/*.ts
+testdata/*/*/*/*.ts
diff --git a/tests/auto/linguist/lupdate/testdata/good/cmdline_deeppath/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/cmdline_deeppath/lupdatecmd
new file mode 100644
index 0000000..301d839
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/cmdline_deeppath/lupdatecmd
@@ -0,0 +1,2 @@
+cd ../../recursivescan
+lupdate sub/finddialog.cpp -ts project.ts
diff --git a/tests/auto/linguist/lupdate/testdata/recursivescan/bar.ts.result b/tests/auto/linguist/lupdate/testdata/good/cmdline_deeppath/project.ts.result
index 5c3c21c..5c3c21c 100644
--- a/tests/auto/linguist/lupdate/testdata/recursivescan/bar.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/cmdline_deeppath/project.ts.result
diff --git a/tests/auto/linguist/lupdate/testdata/good/cmdline_recurse/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/cmdline_recurse/lupdatecmd
new file mode 100644
index 0000000..1814e67
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/cmdline_recurse/lupdatecmd
@@ -0,0 +1,2 @@
+cd ../../recursivescan
+lupdate . -ts project.ts
diff --git a/tests/auto/linguist/lupdate/testdata/recursivescan/foo.ts.result b/tests/auto/linguist/lupdate/testdata/good/cmdline_recurse/project.ts.result
index 95a34fa..95a34fa 100644
--- a/tests/auto/linguist/lupdate/testdata/recursivescan/foo.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/cmdline_recurse/project.ts.result
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr3/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/codecfortr3/expectedoutput.txt
new file mode 100644
index 0000000..feecdda
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr3/expectedoutput.txt
@@ -0,0 +1 @@
+lupdate warning: Codec for tr\(\) 'ISO-8859-1' disagrees with existing file's codec 'UTF-8'\. Expect trouble\.
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr3/main.cpp b/tests/auto/linguist/lupdate/testdata/good/codecfortr3/main.cpp
new file mode 100644
index 0000000..e4210c5
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr3/main.cpp
@@ -0,0 +1,45 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+int main(int argc, char **argv)
+{
+ QObject::tr("hi");
+}
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.pro b/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.pro
new file mode 100644
index 0000000..00a4dc4
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.pro
@@ -0,0 +1,4 @@
+SOURCES += main.cpp
+
+TRANSLATIONS = project.ts
+CODECFORTR = latin1
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.ts.before
new file mode 100644
index 0000000..07ad79b
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.ts.before
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="main.cpp" line="44"/>
+ <source>hi</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.ts.result
new file mode 100644
index 0000000..b6899c1
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.ts.result
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="main.cpp" line="44"/>
+ <source>hi</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr4/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/codecfortr4/expectedoutput.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr4/expectedoutput.txt
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr4/main.cpp b/tests/auto/linguist/lupdate/testdata/good/codecfortr4/main.cpp
new file mode 100644
index 0000000..e4210c5
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr4/main.cpp
@@ -0,0 +1,45 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+int main(int argc, char **argv)
+{
+ QObject::tr("hi");
+}
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.pro b/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.pro
new file mode 100644
index 0000000..4fddb02
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.pro
@@ -0,0 +1,4 @@
+SOURCES += main.cpp
+
+TRANSLATIONS = project.ts
+CODECFORTR = latin2
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.ts.before
new file mode 100644
index 0000000..e18e34e
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.ts.before
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<defaultcodec>ISO-8859-2</defaultcodec>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="main.cpp" line="44"/>
+ <source>hi</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.ts.result
new file mode 100644
index 0000000..e18e34e
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.ts.result
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<defaultcodec>ISO-8859-2</defaultcodec>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="main.cpp" line="44"/>
+ <source>hi</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/from_subdir/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/from_subdir/lupdatecmd
new file mode 100644
index 0000000..8a5b4ad
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/from_subdir/lupdatecmd
@@ -0,0 +1 @@
+lupdate translations/translations.pro
diff --git a/tests/auto/linguist/lupdate/testdata/good/from_subdir/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/from_subdir/project.ts.result
new file mode 100644
index 0000000..7167cf3
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/from_subdir/project.ts.result
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>QApplication</name>
+ <message>
+ <location filename="src/main.cpp" line="49"/>
+ <source>string in main.cpp</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.h" line="45"/>
+ <source>string in main.h</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/from_subdir/src/main.cpp b/tests/auto/linguist/lupdate/testdata/good/from_subdir/src/main.cpp
new file mode 100644
index 0000000..1a24ab2
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/from_subdir/src/main.cpp
@@ -0,0 +1,50 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+// IMPORTANT!!!! If you want to add testdata to this file,
+// always add it to the end in order to not change the linenumbers of translations!!!
+
+#include "main.h"
+
+int main(char **argv, int argc)
+{
+ return QApplication::tr("string in main.cpp");
+}
diff --git a/tests/auto/linguist/lupdate/testdata/good/from_subdir/src/main.h b/tests/auto/linguist/lupdate/testdata/good/from_subdir/src/main.h
new file mode 100644
index 0000000..cc07d7c
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/from_subdir/src/main.h
@@ -0,0 +1,45 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+// IMPORTANT!!!! If you want to add testdata to this file,
+// always add it to the end in order to not change the linenumbers of translations!!!
+
+QT_TRANSLATE_NOOP("QApplication", "string in main.h")
diff --git a/tests/auto/linguist/lupdate/testdata/good/from_subdir/translations/translations.pro b/tests/auto/linguist/lupdate/testdata/good/from_subdir/translations/translations.pro
new file mode 100644
index 0000000..1815c37
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/from_subdir/translations/translations.pro
@@ -0,0 +1,7 @@
+VPATH = ../src
+INCLUDEPATH = ../src
+
+SOURCES += main.cpp
+HEADERS += main.h
+
+TRANSLATIONS += ../project.ts
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/recurse_full/expectedoutput.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full/expectedoutput.txt
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/recurse_full/lupdatecmd
new file mode 100644
index 0000000..40987e2
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full/lupdatecmd
@@ -0,0 +1,2 @@
+TRANSLATION: project.ts project_sub.ts
+cd ../../subdirs_full
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_full/project.ts.result
new file mode 100644
index 0000000..7d9a6f4
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full/project.ts.result
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>subdir1</name>
+ <message>
+ <location filename="subdir1/main.cpp" line="45"/>
+ <source>minimal test</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>subsub1</name>
+ <message>
+ <location filename="subdir2/subsub1/main.cpp" line="45"/>
+ <source>minimal test</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full/project_sub.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_full/project_sub.ts.result
new file mode 100644
index 0000000..cddb963
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full/project_sub.ts.result
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<defaultcodec>ISO-8859-2</defaultcodec>
+<context>
+ <name>subsub2</name>
+ <message>
+ <location filename="subdir2/subsub2/main.cpp" line="45"/>
+ <source>minimal test</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/expectedoutput.txt
new file mode 100644
index 0000000..fd7a158
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/expectedoutput.txt
@@ -0,0 +1,2 @@
+lupdate warning: TS files from command line will override TRANSLATIONS in project\.pro\.
+lupdate warning: TS files from command line prevent recursing into .*/subdir2/subsub2/subsub2\.pro\.
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/lupdatecmd
new file mode 100644
index 0000000..33296c3
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/lupdatecmd
@@ -0,0 +1,3 @@
+TRANSLATION: project.ts project_sub.ts
+cd ../../subdirs_full
+lupdate project.pro -ts project.ts
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project.ts.result
new file mode 100644
index 0000000..7d9a6f4
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project.ts.result
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>subdir1</name>
+ <message>
+ <location filename="subdir1/main.cpp" line="45"/>
+ <source>minimal test</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>subsub1</name>
+ <message>
+ <location filename="subdir2/subsub1/main.cpp" line="45"/>
+ <source>minimal test</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project_sub.ts.before b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project_sub.ts.before
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project_sub.ts.before
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project_sub.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project_sub.ts.result
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project_sub.ts.result
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/expectedoutput.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/expectedoutput.txt
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/lupdatecmd
new file mode 100644
index 0000000..628acc0
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/lupdatecmd
@@ -0,0 +1,2 @@
+cd ../../subdirs_full
+lupdate subdir1/subdir1.pro subdir2/subsub1/subsub1.pro -ts project.ts
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/project.ts.result
new file mode 100644
index 0000000..7d9a6f4
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/project.ts.result
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>subdir1</name>
+ <message>
+ <location filename="subdir1/main.cpp" line="45"/>
+ <source>minimal test</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>subsub1</name>
+ <message>
+ <location filename="subdir2/subsub1/main.cpp" line="45"/>
+ <source>minimal test</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/recurse_part/expectedoutput.txt
new file mode 100644
index 0000000..808db18
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_part/expectedoutput.txt
@@ -0,0 +1 @@
+lupdate warning: no TS files specified\. Only diagnostics will be produced for 'project\.pro'\.
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/recurse_part/lupdatecmd
new file mode 100644
index 0000000..3e15bc7
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_part/lupdatecmd
@@ -0,0 +1,2 @@
+TRANSLATION: project.ts project_sub.ts
+cd ../../subdirs_part
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/recurse_part/project.ts.before
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_part/project.ts.before
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_part/project.ts.result
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_part/project.ts.result
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part/project_sub.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_part/project_sub.ts.result
new file mode 100644
index 0000000..cddb963
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_part/project_sub.ts.result
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<defaultcodec>ISO-8859-2</defaultcodec>
+<context>
+ <name>subsub2</name>
+ <message>
+ <location filename="subdir2/subsub2/main.cpp" line="45"/>
+ <source>minimal test</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/expectedoutput.txt
new file mode 100644
index 0000000..b904390
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/expectedoutput.txt
@@ -0,0 +1 @@
+lupdate warning: TS files from command line prevent recursing into .*/subdir2/subsub2/subsub2\.pro\.
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/lupdatecmd
new file mode 100644
index 0000000..41bfcec
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/lupdatecmd
@@ -0,0 +1,3 @@
+TRANSLATION: project.ts project_sub.ts
+cd ../../subdirs_part
+lupdate project.pro -ts project.ts
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project.ts.result
new file mode 100644
index 0000000..7d9a6f4
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project.ts.result
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>subdir1</name>
+ <message>
+ <location filename="subdir1/main.cpp" line="45"/>
+ <source>minimal test</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>subsub1</name>
+ <message>
+ <location filename="subdir2/subsub1/main.cpp" line="45"/>
+ <source>minimal test</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project_sub.ts.before b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project_sub.ts.before
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project_sub.ts.before
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project_sub.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project_sub.ts.result
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project_sub.ts.result
diff --git a/tests/auto/linguist/lupdate/testdata/good/reloutput/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/reloutput/lupdatecmd
index da6103f..90f609b 100644
--- a/tests/auto/linguist/lupdate/testdata/good/reloutput/lupdatecmd
+++ b/tests/auto/linguist/lupdate/testdata/good/reloutput/lupdatecmd
@@ -1,2 +1 @@
TRANSLATION: translations/project.ts
-lupdate project.pro -ts translations/project.ts
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/project.pro b/tests/auto/linguist/lupdate/testdata/subdirs_full/project.pro
new file mode 100644
index 0000000..1f744a7
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/project.pro
@@ -0,0 +1,4 @@
+TEMPLATE = subdirs
+SUBDIRS = subdir1 subdir2/subdir2.pro
+
+TRANSLATIONS = project.ts
diff --git a/config.tests/unix/opengles1cl/opengles1cl.cpp b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/main.cpp
index 4f27c75..0f1dc70 100644
--- a/config.tests/unix/opengles1cl/opengles1cl.cpp
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/main.cpp
@@ -4,7 +4,7 @@
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the config.tests of the Qt Toolkit.
+** This file is part of the test suite of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
@@ -39,13 +39,8 @@
**
****************************************************************************/
-#include <GLES/gl.h>
-int main(int, char **)
+QString foo()
{
- GLfixed a = 0;
- glColor4x(a, a, a, a);
- glClear(GL_COLOR_BUFFER_BIT);
-
- return 0;
+ QCoreApplication::translate("subdir1","minimal test");
}
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/subdir1.pro b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/subdir1.pro
new file mode 100644
index 0000000..28dcadc
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/subdir1.pro
@@ -0,0 +1 @@
+SOURCES += main.cpp
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subdir2.pro b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subdir2.pro
new file mode 100644
index 0000000..f8d03df
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subdir2.pro
@@ -0,0 +1,2 @@
+TEMPLATE = subdirs
+SUBDIRS = subsub1 subsub2
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/main.cpp b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/main.cpp
new file mode 100644
index 0000000..8c82c80
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/main.cpp
@@ -0,0 +1,46 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+QString foo()
+{
+ QCoreApplication::translate("subsub1","minimal test");
+}
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/subsub1.pro b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/subsub1.pro
new file mode 100644
index 0000000..28dcadc
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/subsub1.pro
@@ -0,0 +1 @@
+SOURCES += main.cpp
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/main.cpp b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/main.cpp
new file mode 100644
index 0000000..ff85936
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/main.cpp
@@ -0,0 +1,46 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+QString foo()
+{
+ QCoreApplication::translate("subsub2","minimal test");
+}
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro
new file mode 100644
index 0000000..3499222
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro
@@ -0,0 +1,4 @@
+SOURCES += main.cpp
+
+TRANSLATIONS = ../../project_sub.ts
+CODECFORTR = ISO-8859-2
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/project.pro b/tests/auto/linguist/lupdate/testdata/subdirs_part/project.pro
new file mode 100644
index 0000000..d803c37
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/project.pro
@@ -0,0 +1,2 @@
+TEMPLATE = subdirs
+SUBDIRS = subdir1 subdir2/subdir2.pro
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/main.cpp b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/main.cpp
new file mode 100644
index 0000000..0f1dc70
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/main.cpp
@@ -0,0 +1,46 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+QString foo()
+{
+ QCoreApplication::translate("subdir1","minimal test");
+}
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/subdir1.pro b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/subdir1.pro
new file mode 100644
index 0000000..28dcadc
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/subdir1.pro
@@ -0,0 +1 @@
+SOURCES += main.cpp
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subdir2.pro b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subdir2.pro
new file mode 100644
index 0000000..f8d03df
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subdir2.pro
@@ -0,0 +1,2 @@
+TEMPLATE = subdirs
+SUBDIRS = subsub1 subsub2
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/main.cpp b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/main.cpp
new file mode 100644
index 0000000..8c82c80
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/main.cpp
@@ -0,0 +1,46 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+QString foo()
+{
+ QCoreApplication::translate("subsub1","minimal test");
+}
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/subsub1.pro b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/subsub1.pro
new file mode 100644
index 0000000..28dcadc
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/subsub1.pro
@@ -0,0 +1 @@
+SOURCES += main.cpp
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/main.cpp b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/main.cpp
new file mode 100644
index 0000000..ff85936
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/main.cpp
@@ -0,0 +1,46 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+QString foo()
+{
+ QCoreApplication::translate("subsub2","minimal test");
+}
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro
new file mode 100644
index 0000000..3499222
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro
@@ -0,0 +1,4 @@
+SOURCES += main.cpp
+
+TRANSLATIONS = ../../project_sub.ts
+CODECFORTR = ISO-8859-2
diff --git a/tests/auto/linguist/lupdate/tst_lupdate.cpp b/tests/auto/linguist/lupdate/tst_lupdate.cpp
index 568be37..c179462 100644
--- a/tests/auto/linguist/lupdate/tst_lupdate.cpp
+++ b/tests/auto/linguist/lupdate/tst_lupdate.cpp
@@ -59,8 +59,6 @@ public:
private slots:
void good_data();
void good();
- void commandline_data();
- void commandline();
#if CHECK_SIMTEXTH
void simtexth();
void simtexth_data();
@@ -245,10 +243,10 @@ void tst_lupdate::good()
qDebug() << "Checking...";
- QString generatedtsfile(dir + QLatin1String("/project.ts"));
-
- // look for a command
+ QString workDir = dir;
+ QStringList generatedtsfiles(QLatin1String("project.ts"));
QString lupdatecmd;
+
QFile file(dir + "/lupdatecmd");
if (file.exists()) {
QVERIFY2(file.open(QIODevice::ReadOnly | QIODevice::Text), qPrintable(file.fileName()));
@@ -262,23 +260,32 @@ void tst_lupdate::good()
break;
} else if (cmdstring.startsWith("TRANSLATION:")) {
cmdstring.remove(0, 12);
- generatedtsfile = dir + QLatin1Char('/') + cmdstring.trimmed();
+ generatedtsfiles.clear();
+ foreach (const QByteArray &s, cmdstring.split(' '))
+ if (!s.isEmpty())
+ generatedtsfiles << s;
+ } else if (cmdstring.startsWith("cd ")) {
+ cmdstring.remove(0, 3);
+ workDir = QDir::cleanPath(dir + QLatin1Char('/') + cmdstring);
}
}
file.close();
}
- QFile::remove(generatedtsfile);
- QString beforetsfile = generatedtsfile + QLatin1String(".before");
- if (QFile::exists(beforetsfile))
- QVERIFY2(QFile::copy(beforetsfile, generatedtsfile), qPrintable(beforetsfile));
+ foreach (const QString &ts, generatedtsfiles) {
+ QString genTs = workDir + QLatin1Char('/') + ts;
+ QFile::remove(genTs);
+ QString beforetsfile = dir + QLatin1Char('/') + ts + QLatin1String(".before");
+ if (QFile::exists(beforetsfile))
+ QVERIFY2(QFile::copy(beforetsfile, genTs), qPrintable(beforetsfile));
+ }
if (lupdatecmd.isEmpty())
lupdatecmd = QLatin1String("project.pro");
lupdatecmd.prepend("-silent ");
QProcess proc;
- proc.setWorkingDirectory(dir);
+ proc.setWorkingDirectory(workDir);
proc.setProcessChannelMode(QProcess::MergedChannels);
proc.start(m_cmdLupdate + ' ' + lupdatecmd, QIODevice::ReadWrite | QIODevice::Text);
QVERIFY2(proc.waitForFinished(5000), qPrintable(lupdatecmd));
@@ -287,7 +294,7 @@ void tst_lupdate::good()
"\"lupdate " + lupdatecmd.toLatin1() + "\" crashed\n" + output);
QVERIFY2(!proc.exitCode(),
"\"lupdate " + lupdatecmd.toLatin1() + "\" exited with code " +
- QByteArray::number(proc.exitCode()) + "\n" + proc.readAll());
+ QByteArray::number(proc.exitCode()) + "\n" + output);
// If the file expectedoutput.txt exists, compare the
// console output with the content of that file
@@ -299,47 +306,9 @@ void tst_lupdate::good()
return;
}
- QString expectedFile = generatedtsfile + QLatin1String(".result");
- doCompare(generatedtsfile, expectedFile, false);
-}
-
-void tst_lupdate::commandline_data()
-{
- QTest::addColumn<QString>("currentPath");
- QTest::addColumn<QString>("commandline");
- QTest::addColumn<QString>("generatedtsfile");
- QTest::addColumn<QString>("expectedtsfile");
-
- QTest::newRow("Recursive scan") << QString("recursivescan")
- << QString(". -ts foo.ts") << QString("foo.ts") << QString("foo.ts.result");
- QTest::newRow("Deep path argument") << QString("recursivescan")
- << QString("sub/finddialog.cpp -ts bar.ts") << QString("bar.ts") << QString("bar.ts.result");
-}
-
-void tst_lupdate::commandline()
-{
- QFETCH(QString, currentPath);
- QFETCH(QString, commandline);
- QFETCH(QString, generatedtsfile);
- QFETCH(QString, expectedtsfile);
-
- QString generated =
- m_basePath + currentPath + QLatin1Char('/') + generatedtsfile;
- QFile gen(generated);
- if (gen.exists())
- QVERIFY(gen.remove());
- QProcess proc;
- proc.setWorkingDirectory(m_basePath + currentPath);
- proc.setProcessChannelMode(QProcess::MergedChannels);
- proc.start(m_cmdLupdate + " -silent " + commandline, QIODevice::ReadWrite | QIODevice::Text);
- QVERIFY2(proc.waitForFinished(5000), qPrintable(commandline));
- QVERIFY2(proc.exitStatus() == QProcess::NormalExit,
- "\"lupdate -silent " + commandline.toLatin1() + "\" crashed\n" + proc.readAll());
- QVERIFY2(!proc.exitCode(),
- "\"lupdate -silent " + commandline.toLatin1() + "\" exited with code " +
- QByteArray::number(proc.exitCode()) + "\n" + proc.readAll());
-
- doCompare(generated, m_basePath + currentPath + QLatin1Char('/') + expectedtsfile, false);
+ foreach (const QString &ts, generatedtsfiles)
+ doCompare(workDir + QLatin1Char('/') + ts,
+ dir + QLatin1Char('/') + ts + QLatin1String(".result"), false);
}
#if CHECK_SIMTEXTH
diff --git a/tests/auto/maketestselftest/tst_maketestselftest.cpp b/tests/auto/maketestselftest/tst_maketestselftest.cpp
index c674202..ef92c56 100644
--- a/tests/auto/maketestselftest/tst_maketestselftest.cpp
+++ b/tests/auto/maketestselftest/tst_maketestselftest.cpp
@@ -92,6 +92,9 @@ void tst_MakeTestSelfTest::auto_dot_pro_data()
QStringList subdirs = dir.entryList(QDir::AllDirs|QDir::NoDotAndDotDot);
foreach (const QString& subdir, subdirs) {
+ if (subdir == QString::fromLatin1("tmp")) {
+ continue;
+ }
QTest::newRow(qPrintable(subdir)) << subdir;
}
}
diff --git a/tests/auto/qbytearray/tst_qbytearray.cpp b/tests/auto/qbytearray/tst_qbytearray.cpp
index 35e4463..5c72c7a 100644
--- a/tests/auto/qbytearray/tst_qbytearray.cpp
+++ b/tests/auto/qbytearray/tst_qbytearray.cpp
@@ -76,6 +76,7 @@ private slots:
void qCompress();
void qUncompress_data();
void qUncompress();
+ void qCompressionZeroTermination();
#endif
void constByteArray();
void leftJustified();
@@ -261,6 +262,14 @@ void tst_QByteArray::qUncompress()
}
QCOMPARE(res, out);
}
+
+void tst_QByteArray::qCompressionZeroTermination()
+{
+ QString s = "Hello, I'm a string.";
+ QByteArray ba = ::qUncompress(::qCompress(s.toLocal8Bit()));
+ QVERIFY((int) *(ba.data() + ba.size()) == 0);
+}
+
#endif
void tst_QByteArray::constByteArray()
diff --git a/tests/auto/qdatetime/tst_qdatetime.cpp b/tests/auto/qdatetime/tst_qdatetime.cpp
index 86a4c80..b9d1d7c 100644
--- a/tests/auto/qdatetime/tst_qdatetime.cpp
+++ b/tests/auto/qdatetime/tst_qdatetime.cpp
@@ -147,9 +147,16 @@ Q_DECLARE_METATYPE(QTime)
tst_QDateTime::tst_QDateTime()
{
+#ifdef Q_OS_SYMBIAN
+ // Symbian's timezone server cannot handle DST correctly for dates before year 1997
+ uint x1 = QDateTime(QDate(2000, 1, 1), QTime()).toTime_t();
+ uint x2 = QDateTime(QDate(2000, 6, 1), QTime()).toTime_t();
+ europeanTimeZone = (x1 == 946681200 && x2 == 959810400);
+#else
uint x1 = QDateTime(QDate(1990, 1, 1), QTime()).toTime_t();
uint x2 = QDateTime(QDate(1990, 6, 1), QTime()).toTime_t();
europeanTimeZone = (x1 == 631148400 && x2 == 644191200);
+#endif
}
tst_QDateTime::~tst_QDateTime()
diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp
index c7f9b6b..ba18bbb 100644
--- a/tests/auto/qdir/tst_qdir.cpp
+++ b/tests/auto/qdir/tst_qdir.cpp
@@ -49,6 +49,7 @@
#include <qregexp.h>
#include <qstringlist.h>
#include "../network-settings.h"
+#include "../../shared/filesystem.h"
#if defined(Q_OS_SYMBIAN)
# define STRINGIFY(x) #x
@@ -164,6 +165,8 @@ private slots:
void longFileName_data();
void longFileName();
+
+ void updateFileLists();
};
// Testing get/set functions
@@ -982,6 +985,13 @@ tst_QDir::cleanPath_data()
QTest::newRow("data7") << ".//file1.txt" << "file1.txt";
QTest::newRow("data8") << "/foo/bar/..//file1.txt" << "/foo/file1.txt";
QTest::newRow("data9") << "//" << "/";
+#if !defined(Q_OS_WINCE)
+#if defined Q_OS_WIN
+ QTest::newRow("data10") << "c:\\" << "c:/";
+#else
+ QTest::newRow("data10") << "/:/" << "/:";
+#endif
+#endif
}
@@ -1435,6 +1445,95 @@ void tst_QDir::longFileName()
QFile::remove(fileName);
}
+void tst_QDir::updateFileLists()
+{
+ // Test setup
+
+ FileSystem fs;
+
+ QVERIFY( fs.createDirectory("update-file-lists") );
+ QVERIFY( fs.createFile("update-file-lists/file1.txt") );
+ QVERIFY( fs.createFile("update-file-lists/file2.doc") );
+
+ QVERIFY( fs.createDirectory("update-file-lists/sub-dir1") );
+ QVERIFY( fs.createFile("update-file-lists/sub-dir1/file3.txt") );
+ QVERIFY( fs.createFile("update-file-lists/sub-dir1/file4.doc") );
+ QVERIFY( fs.createFile("update-file-lists/sub-dir1/file5.txt") );
+
+ QVERIFY( fs.createDirectory("update-file-lists/sub-dir2") );
+ QVERIFY( fs.createFile("update-file-lists/sub-dir2/file6.txt") );
+ QVERIFY( fs.createFile("update-file-lists/sub-dir2/file7.txt") );
+ QVERIFY( fs.createFile("update-file-lists/sub-dir2/file8.doc") );
+ QVERIFY( fs.createFile("update-file-lists/sub-dir2/file9.doc") );
+
+ // Actual test
+
+ QDir dir("update-file-lists");
+
+ QCOMPARE(dir.count(), uint(6));
+ QCOMPARE(dir.entryList().size(), 6);
+ QCOMPARE(dir.entryInfoList().size(), 6);
+
+ dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot);
+
+ QCOMPARE(dir.entryList().size(), 4);
+ QCOMPARE(dir.count(), uint(4));
+ QCOMPARE(dir.entryInfoList().size(), 4);
+
+ dir.setPath("update-file-lists/sub-dir1");
+
+ QCOMPARE(dir.entryInfoList().size(), 3);
+ QCOMPARE(dir.count(), uint(3));
+ QCOMPARE(dir.entryList().size(), 3);
+
+ dir.setNameFilters(QStringList("*.txt"));
+
+ QCOMPARE(dir.entryInfoList().size(), 2);
+ QCOMPARE(dir.entryList().size(), 2);
+ QCOMPARE(dir.count(), uint(2));
+
+ dir.setPath("update-file-lists");
+ dir = QDir(dir.path(),
+ "*.txt",
+ QDir::Name | QDir::DirsLast,
+ QDir::AllEntries | QDir::AllDirs | QDir::NoDotAndDotDot);
+
+ QCOMPARE(dir.count(), uint(3));
+ QCOMPARE(dir.entryList().size(), 3);
+ QCOMPARE(dir.entryInfoList().size(), 3);
+ QCOMPARE(dir.entryList(), QStringList() << "file1.txt" << "sub-dir1" << "sub-dir2");
+
+ dir.setSorting(QDir::Name | QDir::DirsFirst);
+
+ QCOMPARE(dir.count(), uint(3));
+ QCOMPARE(dir.entryList().size(), 3);
+ QCOMPARE(dir.entryInfoList().size(), 3);
+ QCOMPARE(dir.entryList(), QStringList() << "sub-dir1" << "sub-dir2" << "file1.txt");
+
+ {
+ QVERIFY( fs.createFile("update-file-lists/extra-file.txt") );
+
+ QDir dir2(dir);
+
+ QCOMPARE(dir2.count(), uint(3));
+ QCOMPARE(dir2.entryList().size(), 3);
+ QCOMPARE(dir2.entryInfoList().size(), 3);
+ QCOMPARE(dir2.entryList(), QStringList() << "sub-dir1" << "sub-dir2" << "file1.txt");
+
+ dir2.refresh();
+
+ QCOMPARE(dir2.count(), uint(4));
+ QCOMPARE(dir2.entryList().size(), 4);
+ QCOMPARE(dir2.entryInfoList().size(), 4);
+ QCOMPARE(dir2.entryList(), QStringList() << "sub-dir1" << "sub-dir2" << "extra-file.txt" << "file1.txt");
+ }
+
+ QCOMPARE(dir.count(), uint(3));
+ QCOMPARE(dir.entryList().size(), 3);
+ QCOMPARE(dir.entryInfoList().size(), 3);
+ QCOMPARE(dir.entryList(), QStringList() << "sub-dir1" << "sub-dir2" << "file1.txt");
+}
+
QTEST_MAIN(tst_QDir)
#include "tst_qdir.moc"
diff --git a/tests/auto/qgl/tst_qgl.cpp b/tests/auto/qgl/tst_qgl.cpp
index d0d69ae..972a0ae 100644
--- a/tests/auto/qgl/tst_qgl.cpp
+++ b/tests/auto/qgl/tst_qgl.cpp
@@ -739,8 +739,6 @@ void tst_QGL::openGLVersionCheck()
#if defined(QT_OPENGL_ES_1)
QVERIFY(QGLFormat::openGLVersionFlags() & QGLFormat::OpenGL_ES_Common_Version_1_0);
-#elif defined(QT_OPENGL_ES_1_CL)
- QVERIFY(QGLFormat::openGLVersionFlags() & QGLFormat::OpenGL_ES_CommonLite_Version_1_0);
#elif defined(QT_OPENGL_ES_2)
QVERIFY(QGLFormat::openGLVersionFlags() & QGLFormat::OpenGL_ES_Version_2_0);
#else
diff --git a/tests/auto/qglbuffer/qglbuffer.pro b/tests/auto/qglbuffer/qglbuffer.pro
new file mode 100644
index 0000000..07d05bb
--- /dev/null
+++ b/tests/auto/qglbuffer/qglbuffer.pro
@@ -0,0 +1,9 @@
+############################################################
+# Project file for autotest for file qglbuffer.h
+############################################################
+
+load(qttest_p4)
+requires(contains(QT_CONFIG,opengl))
+QT += opengl
+
+SOURCES += tst_qglbuffer.cpp
diff --git a/tests/auto/qglbuffer/tst_qglbuffer.cpp b/tests/auto/qglbuffer/tst_qglbuffer.cpp
new file mode 100644
index 0000000..b7d5821
--- /dev/null
+++ b/tests/auto/qglbuffer/tst_qglbuffer.cpp
@@ -0,0 +1,261 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtOpenGL module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtTest/QtTest>
+#include <QtOpenGL/qgl.h>
+#include <QtOpenGL/qglbuffer.h>
+
+class tst_QGLBuffer : public QObject
+{
+ Q_OBJECT
+public:
+ tst_QGLBuffer() {}
+ ~tst_QGLBuffer() {}
+
+private slots:
+ void vertexBuffer_data();
+ void vertexBuffer();
+ void indexBuffer_data();
+ void indexBuffer();
+ void bufferSharing();
+
+private:
+ void testBuffer(QGLBuffer::Type type);
+};
+
+void tst_QGLBuffer::vertexBuffer_data()
+{
+ QTest::addColumn<int>("usagePattern");
+
+ QTest::newRow("StreamDraw") << int(QGLBuffer::StreamDraw);
+ QTest::newRow("StaticDraw") << int(QGLBuffer::StaticDraw);
+ QTest::newRow("DynamicDraw") << int(QGLBuffer::DynamicDraw);
+}
+
+void tst_QGLBuffer::vertexBuffer()
+{
+ testBuffer(QGLBuffer::VertexBuffer);
+}
+
+void tst_QGLBuffer::indexBuffer_data()
+{
+ vertexBuffer_data();
+}
+
+void tst_QGLBuffer::indexBuffer()
+{
+ testBuffer(QGLBuffer::IndexBuffer);
+}
+
+void tst_QGLBuffer::testBuffer(QGLBuffer::Type type)
+{
+ QFETCH(int, usagePattern);
+
+ QGLWidget w;
+ w.makeCurrent();
+
+ // Create the local object, but not the buffer in the server.
+ QGLBuffer buffer(type);
+ QVERIFY(buffer.usagePattern() == QGLBuffer::StaticDraw);
+ buffer.setUsagePattern(QGLBuffer::UsagePattern(usagePattern));
+
+ // Check the initial state.
+ QVERIFY(buffer.type() == type);
+ QVERIFY(!buffer.isCreated());
+ QVERIFY(buffer.bufferId() == 0);
+ QVERIFY(buffer.usagePattern() == QGLBuffer::UsagePattern(usagePattern));
+ QCOMPARE(buffer.size(), -1);
+
+ // Should not be able to bind it yet because it isn't created.
+ QVERIFY(!buffer.bind());
+
+ // Create the buffer - if this fails, then assume that the
+ // GL implementation does not support buffers at all.
+ if (!buffer.create())
+ QSKIP("Buffers are not supported on this platform", SkipAll);
+
+ // Should now have a buffer id.
+ QVERIFY(buffer.bufferId() != 0);
+
+ // Bind the buffer and upload some data.
+ QVERIFY(buffer.bind());
+ static GLfloat const data[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
+ buffer.allocate(data, sizeof(data));
+
+ // Check the buffer size.
+ QCOMPARE(buffer.size(), int(sizeof(data)));
+
+ // Map the buffer and read back its contents.
+ bool haveMap = false;
+ GLfloat *mapped = reinterpret_cast<GLfloat *>
+ (buffer.map(QGLBuffer::ReadOnly));
+ if (mapped) {
+ for (int index = 0; index < 9; ++index)
+ QCOMPARE(mapped[index], data[index]);
+ buffer.unmap();
+ haveMap = true;
+ } else {
+ qWarning("QGLBuffer::map() is not supported on this platform");
+ }
+
+ // Read back the buffer contents using read().
+ bool haveRead = false;
+ GLfloat readdata[9];
+ if (buffer.read(0, readdata, sizeof(readdata))) {
+ for (int index = 0; index < 9; ++index)
+ QCOMPARE(readdata[index], data[index]);
+ haveRead = true;
+ } else {
+ qWarning("QGLBuffer::read() is not supported on this platform");
+ }
+
+ // Write some different data to a specific location and check it.
+ static GLfloat const diffdata[] = {11, 12, 13};
+ buffer.write(sizeof(GLfloat) * 3, diffdata, sizeof(diffdata));
+ if (haveMap) {
+ mapped = reinterpret_cast<GLfloat *>(buffer.map(QGLBuffer::ReadOnly));
+ QVERIFY(mapped != 0);
+ for (int index = 0; index < 9; ++index) {
+ if (index >= 3 && index <= 5)
+ QCOMPARE(mapped[index], diffdata[index - 3]);
+ else
+ QCOMPARE(mapped[index], data[index]);
+ }
+ buffer.unmap();
+ }
+ if (haveRead) {
+ QVERIFY(buffer.read(0, readdata, sizeof(readdata)));
+ for (int index = 0; index < 9; ++index) {
+ if (index >= 3 && index <= 5)
+ QCOMPARE(readdata[index], diffdata[index - 3]);
+ else
+ QCOMPARE(readdata[index], data[index]);
+ }
+ }
+
+ // Write to the buffer using the return value from map.
+ if (haveMap) {
+ mapped = reinterpret_cast<GLfloat *>(buffer.map(QGLBuffer::WriteOnly));
+ QVERIFY(mapped != 0);
+ mapped[6] = 14;
+ buffer.unmap();
+
+ mapped = reinterpret_cast<GLfloat *>(buffer.map(QGLBuffer::ReadOnly));
+ QVERIFY(mapped != 0);
+ static GLfloat const diff2data[] = {11, 12, 13, 14};
+ for (int index = 0; index < 9; ++index) {
+ if (index >= 3 && index <= 6)
+ QCOMPARE(mapped[index], diff2data[index - 3]);
+ else
+ QCOMPARE(mapped[index], data[index]);
+ }
+ buffer.unmap();
+ }
+
+ // Resize the buffer.
+ buffer.allocate(sizeof(GLfloat) * 20);
+ QCOMPARE(buffer.size(), int(sizeof(GLfloat) * 20));
+ buffer.allocate(0, sizeof(GLfloat) * 32);
+ QCOMPARE(buffer.size(), int(sizeof(GLfloat) * 32));
+
+ // Release the buffer.
+ buffer.release();
+}
+
+void tst_QGLBuffer::bufferSharing()
+{
+ QGLWidget *w1 = new QGLWidget();
+ w1->makeCurrent();
+
+ QGLWidget *w2 = new QGLWidget(0, w1);
+ if (!w2->isSharing()) {
+ delete w2;
+ delete w1;
+ QSKIP("Context sharing is not supported on this platform", SkipSingle);
+ }
+
+ // Bind the buffer in the first context and write some data to it.
+ QGLBuffer buffer(QGLBuffer::VertexBuffer);
+ if (!buffer.create())
+ QSKIP("Buffers are not supported on this platform", SkipSingle);
+ QVERIFY(buffer.isCreated());
+ QVERIFY(buffer.bind());
+ static GLfloat const data[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
+ buffer.allocate(data, sizeof(data));
+ QCOMPARE(buffer.size(), int(sizeof(data)));
+ buffer.release();
+
+ // Bind the buffer in the second context and read back the data.
+ w2->makeCurrent();
+ QVERIFY(buffer.bind());
+ QCOMPARE(buffer.size(), int(sizeof(data)));
+ GLfloat readdata[9];
+ if (buffer.read(0, readdata, sizeof(readdata))) {
+ for (int index = 0; index < 9; ++index)
+ QCOMPARE(readdata[index], data[index]);
+ }
+ buffer.release();
+
+ // Delete the first context.
+ delete w1;
+
+ // Make the second context current again because deleting the first
+ // one will call doneCurrent() even though it wasn't current!
+ w2->makeCurrent();
+
+ // The buffer should still be valid in the second context.
+ QVERIFY(buffer.bufferId() != 0);
+ QVERIFY(buffer.isCreated());
+ QVERIFY(buffer.bind());
+ QCOMPARE(buffer.size(), int(sizeof(data)));
+ buffer.release();
+
+ // Delete the second context.
+ delete w2;
+
+ // The buffer should now be invalid.
+ QVERIFY(buffer.bufferId() == 0);
+ QVERIFY(!buffer.isCreated());
+}
+
+QTEST_MAIN(tst_QGLBuffer)
+
+#include "tst_qglbuffer.moc"
diff --git a/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp b/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp
index 51e2a57..795431b 100644
--- a/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp
+++ b/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp
@@ -71,6 +71,7 @@ private slots:
void colorize();
void drawPixmapItem();
void deviceCoordinateTranslateCaching();
+ void inheritOpacity();
};
void tst_QGraphicsEffect::initTestCase()
@@ -79,8 +80,8 @@ void tst_QGraphicsEffect::initTestCase()
class CustomItem : public QGraphicsRectItem
{
public:
- CustomItem(qreal x, qreal y, qreal width, qreal height)
- : QGraphicsRectItem(x, y, width, height), numRepaints(0),
+ CustomItem(qreal x, qreal y, qreal width, qreal height, QGraphicsItem *parent = 0)
+ : QGraphicsRectItem(x, y, width, height, parent), numRepaints(0),
m_painter(0), m_styleOption(0)
{}
@@ -560,6 +561,35 @@ void tst_QGraphicsEffect::deviceCoordinateTranslateCaching()
QVERIFY(item->numRepaints == numRepaints);
}
+void tst_QGraphicsEffect::inheritOpacity()
+{
+ QGraphicsScene scene;
+ QGraphicsRectItem *rectItem = new QGraphicsRectItem(0, 0, 10, 10);
+ CustomItem *item = new CustomItem(0, 0, 10, 10, rectItem);
+
+ scene.addItem(rectItem);
+
+ item->setGraphicsEffect(new DeviceEffect);
+ item->setPen(Qt::NoPen);
+ item->setBrush(Qt::red);
+
+ rectItem->setOpacity(0.5);
+
+ QGraphicsView view(&scene);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+
+ QTRY_VERIFY(item->numRepaints >= 1);
+
+ int numRepaints = item->numRepaints;
+
+ rectItem->setOpacity(1);
+ QTest::qWait(50);
+
+ // item should have been rerendered due to opacity changing
+ QTRY_VERIFY(item->numRepaints > numRepaints);
+}
+
QTEST_MAIN(tst_QGraphicsEffect)
#include "tst_qgraphicseffect.moc"
diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
index 8e43bce..14b9ef0 100644
--- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -316,6 +316,7 @@ private slots:
void childrenBoundingRectTransformed();
void childrenBoundingRect2();
void childrenBoundingRect3();
+ void childrenBoundingRect4();
void group();
void setGroup();
void setGroup2();
@@ -417,6 +418,7 @@ private slots:
void task197802_childrenVisibility();
void QTBUG_4233_updateCachedWithSceneRect();
void QTBUG_5418_textItemSetDefaultColor();
+ void QTBUG_6738_missingUpdateWithSetParent();
private:
QList<QGraphicsItem *> paintedItems;
@@ -3257,6 +3259,32 @@ void tst_QGraphicsItem::childrenBoundingRect3()
QCOMPARE(subTreeRect.height(), qreal(251.7766952966369));
}
+void tst_QGraphicsItem::childrenBoundingRect4()
+{
+ QGraphicsScene scene;
+
+ QGraphicsRectItem *rect = scene.addRect(QRectF(0, 0, 10, 10));
+ QGraphicsRectItem *rect2 = scene.addRect(QRectF(0, 0, 20, 20));
+ QGraphicsRectItem *rect3 = scene.addRect(QRectF(0, 0, 30, 30));
+ rect2->setParentItem(rect);
+ rect3->setParentItem(rect);
+
+ QGraphicsView view(&scene);
+ view.show();
+
+ QTest::qWaitForWindowShown(&view);
+
+ // Try to mess up the cached bounding rect.
+ rect->childrenBoundingRect();
+ rect2->childrenBoundingRect();
+
+ rect3->setOpacity(0.0);
+ rect3->setParentItem(rect2);
+
+ QCOMPARE(rect->childrenBoundingRect(), rect3->boundingRect());
+ QCOMPARE(rect2->childrenBoundingRect(), rect3->boundingRect());
+}
+
void tst_QGraphicsItem::group()
{
QGraphicsScene scene;
@@ -9869,5 +9897,63 @@ void tst_QGraphicsItem::QTBUG_5418_textItemSetDefaultColor()
QCOMPARE(i->painted, 0); //same color as before should not trigger an update (QTBUG-6242)
}
+void tst_QGraphicsItem::QTBUG_6738_missingUpdateWithSetParent()
+{
+ // In all 3 test cases below the reparented item should disappear
+ EventTester *parent = new EventTester;
+ EventTester *child = new EventTester(parent);
+ EventTester *child2 = new EventTester(parent);
+ EventTester *child3 = new EventTester(parent);
+ EventTester *child4 = new EventTester(parent);
+
+ child->setPos(10, 10);
+ child2->setPos(20, 20);
+ child3->setPos(30, 30);
+ child4->setPos(40, 40);
+
+ QGraphicsScene scene;
+ scene.addItem(parent);
+
+ class MyGraphicsView : public QGraphicsView
+ { public:
+ int repaints;
+ QRegion paintedRegion;
+ MyGraphicsView(QGraphicsScene *scene) : QGraphicsView(scene), repaints(0) {}
+ void paintEvent(QPaintEvent *e)
+ {
+ ++repaints;
+ paintedRegion += e->region();
+ QGraphicsView::paintEvent(e);
+ }
+ void reset() { repaints = 0; paintedRegion = QRegion(); }
+ };
+
+ MyGraphicsView view(&scene);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+ QTRY_VERIFY(view.repaints > 0);
+
+ // test case #1
+ view.reset();
+ child2->setVisible(false);
+ child2->setParentItem(child);
+
+ QTRY_VERIFY(view.repaints == 1);
+
+ // test case #2
+ view.reset();
+ child3->setOpacity(0.0);
+ child3->setParentItem(child);
+
+ QTRY_VERIFY(view.repaints == 1);
+
+ // test case #3
+ view.reset();
+ child4->setParentItem(child);
+ child4->setVisible(false);
+
+ QTRY_VERIFY(view.repaints == 1);
+}
+
QTEST_MAIN(tst_QGraphicsItem)
#include "tst_qgraphicsitem.moc"
diff --git a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
index c08a628e..6743fbe 100644
--- a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
+++ b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
@@ -270,6 +270,7 @@ private slots:
void initialFocus_data();
void initialFocus();
void polishItems();
+ void polishItems2();
void isActive();
void siblingIndexAlwaysValid();
@@ -3942,14 +3943,23 @@ void tst_QGraphicsScene::initialFocus()
class PolishItem : public QGraphicsTextItem
{
public:
- PolishItem(QGraphicsItem *parent = 0) : QGraphicsTextItem(parent) { }
+ PolishItem(QGraphicsItem *parent = 0)
+ : QGraphicsTextItem(parent), polished(false), deleteChildrenInPolish(true), addChildrenInPolish(false) { }
+ bool polished;
+ bool deleteChildrenInPolish;
+ bool addChildrenInPolish;
protected:
QVariant itemChange(GraphicsItemChange change, const QVariant& value)
{
if (change == ItemVisibleChange) {
- if (value.toBool())
+ polished = true;
+ if (deleteChildrenInPolish)
qDeleteAll(childItems());
+ if (addChildrenInPolish) {
+ for (int i = 0; i < 10; ++i)
+ new PolishItem(this);
+ }
}
return QGraphicsItem::itemChange(change, value);
}
@@ -3966,6 +3976,35 @@ void tst_QGraphicsScene::polishItems()
QMetaObject::invokeMethod(&scene,"_q_polishItems");
}
+void tst_QGraphicsScene::polishItems2()
+{
+ QGraphicsScene scene;
+ PolishItem *item = new PolishItem;
+ item->addChildrenInPolish = true;
+ item->deleteChildrenInPolish = true;
+ // These children should be deleted in the polish.
+ for (int i = 0; i < 20; ++i)
+ new PolishItem(item);
+ scene.addItem(item);
+
+ // Wait for the polish event to be delivered.
+ QVERIFY(!item->polished);
+ QApplication::sendPostedEvents(&scene, QEvent::MetaCall);
+ QVERIFY(item->polished);
+
+ // We deleted the children we added above, but we also
+ // added 10 new children. These should be polished in the next
+ // event loop iteration.
+ QList<QGraphicsItem *> children = item->childItems();
+ QCOMPARE(children.count(), 10);
+ foreach (QGraphicsItem *child, children)
+ QVERIFY(!static_cast<PolishItem *>(child)->polished);
+
+ QApplication::sendPostedEvents(&scene, QEvent::MetaCall);
+ foreach (QGraphicsItem *child, children)
+ QVERIFY(static_cast<PolishItem *>(child)->polished);
+}
+
void tst_QGraphicsScene::isActive()
{
QGraphicsScene scene1;
diff --git a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
index ac68224..79ce68e 100644
--- a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
+++ b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
@@ -164,6 +164,7 @@ private slots:
void polishEvent();
void polishEvent2();
void autoFillBackground();
+ void initialShow();
// Task fixes
void task236127_bspTreeIndexFails();
@@ -2883,6 +2884,30 @@ void tst_QGraphicsWidget::autoFillBackground()
QCOMPARE(image.pixel(0, 0), color.rgb());
}
+void tst_QGraphicsWidget::initialShow()
+{
+ class MyGraphicsWidget : public QGraphicsWidget
+ { public:
+ MyGraphicsWidget() : repaints(0) {}
+ int repaints;
+ void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget*) { ++repaints; }
+ void polishEvent() { update(); }
+ };
+
+ QGraphicsScene scene;
+ MyGraphicsWidget *widget = new MyGraphicsWidget;
+
+ QGraphicsView view(&scene);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+
+ QTest::qWait(100);
+ scene.addItem(widget);
+ QTest::qWait(100);
+
+ QCOMPARE(widget->repaints, 1);
+}
+
void tst_QGraphicsWidget::QT_BUG_6544_tabFocusFirstUnsetWhenRemovingItems()
{
QGraphicsScene scene;
diff --git a/tests/auto/qheaderview/tst_qheaderview.cpp b/tests/auto/qheaderview/tst_qheaderview.cpp
index 857e7e3..4642830 100644
--- a/tests/auto/qheaderview/tst_qheaderview.cpp
+++ b/tests/auto/qheaderview/tst_qheaderview.cpp
@@ -44,6 +44,7 @@
#include <QStandardItemModel>
#include <QStringListModel>
#include <QSortFilterProxyModel>
+#include <QTableView>
#include <qabstractitemmodel.h>
#include <qapplication.h>
@@ -190,6 +191,7 @@ private slots:
void task236450_hidden();
void task248050_hideRow();
void QTBUG6058_reset();
+ void QTBUG7833_sectionClicked();
protected:
QHeaderView *view;
@@ -1992,6 +1994,68 @@ void tst_QHeaderView::QTBUG6058_reset()
QCOMPARE(checkHeaderViewOrder(&view, QVector<int>() << 2 << 0 << 1 << 3 << 4 << 5 ) , 0);
}
+void tst_QHeaderView::QTBUG7833_sectionClicked()
+{
+
+
+
+
+ QTableView tv;
+ QStandardItemModel *sim = new QStandardItemModel(&tv);
+ QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel(&tv);
+ proxyModel->setSourceModel(sim);
+ proxyModel->setDynamicSortFilter(true);
+ proxyModel->setSortCaseSensitivity(Qt::CaseInsensitive);
+
+ QList<QStandardItem *> row;
+ for (int i = 0; i < 12; i++)
+ row.append(new QStandardItem(QString(QLatin1Char('A' + i))));
+ sim->appendRow(row);
+ row.clear();
+ for (int i = 12; i > 0; i--)
+ row.append(new QStandardItem(QString(QLatin1Char('A' + i))));
+ sim->appendRow(row);
+
+ tv.setSortingEnabled(true);
+ tv.horizontalHeader()->setSortIndicatorShown(true);
+ tv.horizontalHeader()->setClickable(true);
+ tv.horizontalHeader()->setStretchLastSection(true);
+ tv.horizontalHeader()->setResizeMode(QHeaderView::Interactive);
+
+ tv.setModel(proxyModel);
+ tv.setColumnHidden(5, true);
+ tv.setColumnHidden(6, true);
+ tv.horizontalHeader()->swapSections(8, 10);
+ tv.sortByColumn(1, Qt::AscendingOrder);
+
+ QSignalSpy clickedSpy(tv.horizontalHeader(), SIGNAL(sectionClicked(int)));
+ QSignalSpy pressedSpy(tv.horizontalHeader(), SIGNAL(sectionPressed(int)));
+
+
+ QTest::mouseClick(tv.horizontalHeader()->viewport(), Qt::LeftButton, Qt::NoModifier,
+ QPoint(tv.horizontalHeader()->sectionViewportPosition(11) + 5, 5));
+ QCOMPARE(clickedSpy.count(), 1);
+ QCOMPARE(pressedSpy.count(), 1);
+ QCOMPARE(clickedSpy.at(0).at(0).toInt(), 11);
+ QCOMPARE(pressedSpy.at(0).at(0).toInt(), 11);
+
+ QTest::mouseClick(tv.horizontalHeader()->viewport(), Qt::LeftButton, Qt::NoModifier,
+ QPoint(tv.horizontalHeader()->sectionViewportPosition(8) + 5, 5));
+
+ QCOMPARE(clickedSpy.count(), 2);
+ QCOMPARE(pressedSpy.count(), 2);
+ QCOMPARE(clickedSpy.at(1).at(0).toInt(), 8);
+ QCOMPARE(pressedSpy.at(1).at(0).toInt(), 8);
+
+ QTest::mouseClick(tv.horizontalHeader()->viewport(), Qt::LeftButton, Qt::NoModifier,
+ QPoint(tv.horizontalHeader()->sectionViewportPosition(0) + 5, 5));
+
+ QCOMPARE(clickedSpy.count(), 3);
+ QCOMPARE(pressedSpy.count(), 3);
+ QCOMPARE(clickedSpy.at(2).at(0).toInt(), 0);
+ QCOMPARE(pressedSpy.at(2).at(0).toInt(), 0);
+}
+
QTEST_MAIN(tst_QHeaderView)
#include "tst_qheaderview.moc"
diff --git a/tests/auto/qimagereader/baseline/35floppy.ico b/tests/auto/qimagereader/baseline/35floppy.ico
deleted file mode 100644
index 59fd37e..0000000
--- a/tests/auto/qimagereader/baseline/35floppy.ico
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qimagereader/baseline/35floppy.png b/tests/auto/qimagereader/baseline/35floppy.png
new file mode 100644
index 0000000..56b9b44
--- /dev/null
+++ b/tests/auto/qimagereader/baseline/35floppy.png
Binary files differ
diff --git a/tests/auto/qimagereader/baseline/connect.png b/tests/auto/qimagereader/baseline/connect.png
new file mode 100644
index 0000000..9544bb9
--- /dev/null
+++ b/tests/auto/qimagereader/baseline/connect.png
Binary files differ
diff --git a/tests/auto/qimagereader/baseline/kde_favicon.ico b/tests/auto/qimagereader/baseline/kde_favicon.ico
deleted file mode 100644
index 15bcdbb..0000000
--- a/tests/auto/qimagereader/baseline/kde_favicon.ico
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qimagereader/baseline/kde_favicon.png b/tests/auto/qimagereader/baseline/kde_favicon.png
new file mode 100644
index 0000000..e19287b
--- /dev/null
+++ b/tests/auto/qimagereader/baseline/kde_favicon.png
Binary files differ
diff --git a/tests/auto/qimagereader/baseline/semitransparent.ico b/tests/auto/qimagereader/baseline/semitransparent.ico
deleted file mode 100644
index dd23de9..0000000
--- a/tests/auto/qimagereader/baseline/semitransparent.ico
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qimagereader/baseline/semitransparent.png b/tests/auto/qimagereader/baseline/semitransparent.png
new file mode 100644
index 0000000..a3ad780
--- /dev/null
+++ b/tests/auto/qimagereader/baseline/semitransparent.png
Binary files differ
diff --git a/tests/auto/qimagereader/tst_qimagereader.cpp b/tests/auto/qimagereader/tst_qimagereader.cpp
index 72c5c8b..e7cfe68 100644
--- a/tests/auto/qimagereader/tst_qimagereader.cpp
+++ b/tests/auto/qimagereader/tst_qimagereader.cpp
@@ -1633,7 +1633,8 @@ void tst_QImageReader::pixelCompareWithBaseline_data()
QTest::newRow("floppy (16px,32px - 16 colors)") << "35floppy.ico";
QTest::newRow("semitransparent") << "semitransparent.ico";
- QTest::newRow("slightlybroken") << "kde_favicon.ico";
+ QTest::newRow("slightlybrokenBMPHeader") << "kde_favicon.ico";
+ QTest::newRow("sightlybrokenIconHeader") << "connect.ico";
}
void tst_QImageReader::pixelCompareWithBaseline()
@@ -1641,14 +1642,20 @@ void tst_QImageReader::pixelCompareWithBaseline()
QFETCH(QString, fileName);
QImage icoImg;
+ const QString inputFileName(QString::fromAscii("images/%1").arg(fileName));
+ QFileInfo fi(inputFileName);
+
// might fail if the plugin does not exist, which is ok.
- if (icoImg.load(QString::fromAscii("images/%1").arg(fileName))) {
- QString baselineFileName = QString::fromAscii("baseline/%1").arg(fileName);
+ if (icoImg.load(inputFileName)) {
+ icoImg = icoImg.convertToFormat(QImage::Format_ARGB32_Premultiplied);
+ const QString baselineFileName(QString::fromAscii("baseline/%1.png").arg(fi.baseName()));
#if 0
icoImg.save(baselineFileName);
#else
QImage baseImg;
QVERIFY(baseImg.load(baselineFileName));
+ baseImg = baseImg.convertToFormat(QImage::Format_ARGB32_Premultiplied);
+ QCOMPARE(int(baseImg.format()), int(icoImg.format()));
QCOMPARE(baseImg, icoImg);
#endif
}
diff --git a/tests/auto/qlabel/tst_qlabel.cpp b/tests/auto/qlabel/tst_qlabel.cpp
index c3af495..7099917 100644
--- a/tests/auto/qlabel/tst_qlabel.cpp
+++ b/tests/auto/qlabel/tst_qlabel.cpp
@@ -119,6 +119,7 @@ private slots:
void mnemonic_data();
void mnemonic();
+ void selection();
private:
QLabel *testWidget;
@@ -559,6 +560,27 @@ void tst_QLabel::mnemonic()
QCOMPARE(d->shortcutCursor.selectedText(), expectedShortcutCursor);
}
+void tst_QLabel::selection()
+{
+ QLabel label;
+ label.setText("Hello world");
+
+ label.setTextInteractionFlags(Qt::TextSelectableByMouse);
+
+ QVERIFY(!label.hasSelectedText());
+ QCOMPARE(label.selectedText(), QString());
+ QCOMPARE(label.selectionStart(), -1);
+
+ label.setSelection(0, 4);
+ QVERIFY(label.hasSelectedText());
+ QCOMPARE(label.selectedText(), QString::fromLatin1("Hell"));
+ QCOMPARE(label.selectionStart(), 0);
+
+ label.setSelection(6, 5);
+ QVERIFY(label.hasSelectedText());
+ QCOMPARE(label.selectedText(), QString::fromLatin1("world"));
+ QCOMPARE(label.selectionStart(), 6);
+}
QTEST_MAIN(tst_QLabel)
#include "tst_qlabel.moc"
diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp
index d6bf900..49b1e52 100644
--- a/tests/auto/qpixmap/tst_qpixmap.cpp
+++ b/tests/auto/qpixmap/tst_qpixmap.cpp
@@ -146,9 +146,11 @@ private slots:
void fromWinHICON();
#endif
-#if defined(Q_WS_S60)
+#if defined(Q_OS_SYMBIAN)
void fromSymbianCFbsBitmap_data();
void fromSymbianCFbsBitmap();
+ void toSymbianCFbsBitmap_data();
+ void toSymbianCFbsBitmap();
#endif
void onlyNullPixmapsOutsideGuiThread();
@@ -1129,7 +1131,7 @@ void tst_QPixmap::fromWinHICON()
#endif // Q_WS_WIN
-#if defined(Q_WS_S60)
+#if defined(Q_OS_SYMBIAN)
Q_DECLARE_METATYPE(TDisplayMode)
void tst_QPixmap::fromSymbianCFbsBitmap_data()
@@ -1225,6 +1227,45 @@ void tst_QPixmap::fromSymbianCFbsBitmap()
CleanupStack::PopAndDestroy(3);
}
+
+void tst_QPixmap::toSymbianCFbsBitmap_data()
+{
+ QTest::addColumn<int>("red");
+ QTest::addColumn<int>("green");
+ QTest::addColumn<int>("blue");
+
+ QTest::newRow("red") << 255 << 0 << 0;
+ QTest::newRow("green") << 0 << 255 << 0;
+ QTest::newRow("blue") << 0 << 0 << 255;
+}
+
+void tst_QPixmap::toSymbianCFbsBitmap()
+{
+ QFETCH(int, red);
+ QFETCH(int, green);
+ QFETCH(int, blue);
+
+ QPixmap pm(100, 100);
+ pm.fill(QColor(red, green, blue));
+
+ CFbsBitmap *bitmap = pm.toSymbianCFbsBitmap();
+
+ QVERIFY(bitmap != 0);
+
+ // Verify size
+ QCOMPARE(100, (int) bitmap->SizeInPixels().iWidth);
+ QCOMPARE(100, (int) bitmap->SizeInPixels().iHeight);
+
+ // Verify pixel color
+ TRgb pixel;
+ bitmap->GetPixel(pixel, TPoint(0,0));
+ QCOMPARE((int)pixel.Red(), red);
+ QCOMPARE((int)pixel.Green(), green);
+ QCOMPARE((int)pixel.Blue(), blue);
+
+ // Clean up
+ delete bitmap;
+}
#endif
void tst_QPixmap::onlyNullPixmapsOutsideGuiThread()
diff --git a/tests/auto/qscriptvalue/qscriptvalue.pro b/tests/auto/qscriptvalue/qscriptvalue.pro
index 9efde80..1588cc5 100644
--- a/tests/auto/qscriptvalue/qscriptvalue.pro
+++ b/tests/auto/qscriptvalue/qscriptvalue.pro
@@ -1,5 +1,7 @@
load(qttest_p4)
QT = core gui script
SOURCES += tst_qscriptvalue.cpp
+HEADERS += tst_qscriptvalue.h
-
+# Generated by testgen
+SOURCES += tst_qscriptvalue_generated.cpp
diff --git a/tests/auto/qscriptvalue/testgen/data.txt b/tests/auto/qscriptvalue/testgen/data.txt
new file mode 100644
index 0000000..8e7026e
--- /dev/null
+++ b/tests/auto/qscriptvalue/testgen/data.txt
@@ -0,0 +1,116 @@
+# Data set for QScriptValue autotest.
+
+# Each line is a c++ code that should return a QScriptValue object.
+# Lines that are empty or start with '#' will be ignored
+
+QScriptValue()
+
+#Unbound values
+QScriptValue(QScriptValue::UndefinedValue)
+QScriptValue(QScriptValue::NullValue)
+QScriptValue(true)
+QScriptValue(false)
+QScriptValue(int(122))
+QScriptValue(uint(124))
+QScriptValue(0)
+QScriptValue(0.0)
+QScriptValue(123.0)
+QScriptValue(6.37e-8)
+QScriptValue(-6.37e-8)
+QScriptValue(0x43211234)
+QScriptValue(0x10000)
+QScriptValue(0x10001)
+QScriptValue(qSNaN())
+QScriptValue(qQNaN())
+QScriptValue(qInf())
+QScriptValue(-qInf())
+QScriptValue("NaN")
+QScriptValue("Infinity")
+QScriptValue("-Infinity")
+QScriptValue("ciao")
+QScriptValue(QString::fromLatin1("ciao"))
+QScriptValue(QString(""))
+QScriptValue(QString())
+QScriptValue(QString("0"))
+QScriptValue(QString("123"))
+QScriptValue(QString("12.4"))
+
+#Unbound values (bound to a null engine)
+QScriptValue(0, QScriptValue::UndefinedValue)
+QScriptValue(0, QScriptValue::NullValue)
+QScriptValue(0, true)
+QScriptValue(0, false)
+QScriptValue(0, int(122))
+QScriptValue(0, uint(124))
+QScriptValue(0, 0)
+QScriptValue(0, 0.0)
+QScriptValue(0, 123.0)
+QScriptValue(0, 6.37e-8)
+QScriptValue(0, -6.37e-8)
+QScriptValue(0, 0x43211234)
+QScriptValue(0, 0x10000)
+QScriptValue(0, 0x10001)
+QScriptValue(0, qSNaN())
+QScriptValue(0, qQNaN())
+QScriptValue(0, qInf())
+QScriptValue(0, -qInf())
+QScriptValue(0, "NaN")
+QScriptValue(0, "Infinity")
+QScriptValue(0, "-Infinity")
+QScriptValue(0, "ciao")
+QScriptValue(0, QString::fromLatin1("ciao"))
+QScriptValue(0, QString(""))
+QScriptValue(0, QString())
+QScriptValue(0, QString("0"))
+QScriptValue(0, QString("123"))
+QScriptValue(0, QString("12.3"))
+
+#Bound values
+QScriptValue(engine, QScriptValue::UndefinedValue)
+QScriptValue(engine, QScriptValue::NullValue)
+QScriptValue(engine, true)
+QScriptValue(engine, false)
+QScriptValue(engine, int(122))
+QScriptValue(engine, uint(124))
+QScriptValue(engine, 0)
+QScriptValue(engine, 0.0)
+QScriptValue(engine, 123.0)
+QScriptValue(engine, 6.37e-8)
+QScriptValue(engine, -6.37e-8)
+QScriptValue(engine, 0x43211234)
+QScriptValue(engine, 0x10000)
+QScriptValue(engine, 0x10001)
+QScriptValue(engine, qSNaN())
+QScriptValue(engine, qQNaN())
+QScriptValue(engine, qInf())
+QScriptValue(engine, -qInf())
+QScriptValue(engine, "NaN")
+QScriptValue(engine, "Infinity")
+QScriptValue(engine, "-Infinity")
+QScriptValue(engine, "ciao")
+QScriptValue(engine, QString::fromLatin1("ciao"))
+QScriptValue(engine, QString(""))
+QScriptValue(engine, QString())
+QScriptValue(engine, QString("0"))
+QScriptValue(engine, QString("123"))
+QScriptValue(engine, QString("1.23"))
+
+# evaluate
+engine->evaluate("[]")
+engine->evaluate("{}")
+engine->evaluate("Object.prototype")
+engine->evaluate("Date.prototype")
+engine->evaluate("Array.prototype")
+engine->evaluate("Function.prototype")
+engine->evaluate("Error.prototype")
+engine->evaluate("Object")
+engine->evaluate("Array")
+engine->evaluate("Number")
+engine->evaluate("Function")
+engine->evaluate("(function() { return 1; })")
+engine->evaluate("(function() { return 'ciao'; })")
+engine->evaluate("(function() { throw new Error('foo'); })")
+engine->evaluate("/foo/")
+engine->evaluate("new Object()")
+engine->evaluate("new Array()")
+engine->evaluate("new Error()")
diff --git a/tests/auto/qscriptvalue/testgen/gen.py b/tests/auto/qscriptvalue/testgen/gen.py
new file mode 100755
index 0000000..7161e6b
--- /dev/null
+++ b/tests/auto/qscriptvalue/testgen/gen.py
@@ -0,0 +1,242 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+
+## $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$
+
+from __future__ import with_statement
+from string import Template
+
+class Options():
+ """Option manager. It parse and check all paramteres, set internal variables."""
+ def __init__(self, args):
+ import logging as log
+ log.basicConfig()
+ #comand line options parser
+ from optparse import OptionParser
+ #load some directory searching stuff
+ import os.path, sys
+
+ opt = OptionParser("%prog [options] path_to_input_file path_to_output_file.")
+
+ self._o, self._a = opt.parse_args(args)
+
+ try:
+ if not (os.path.exists(self._a[0])):
+ raise Exception("Path doesn't exist")
+ if len(self._a) != 2:
+ raise IndexError("Only two files!")
+ self._o.ipath = self._a[0]
+ self._o.opath = self._a[1]
+ except IndexError:
+ log.error("Bad usage. Please try -h or --help")
+ sys.exit(1)
+ except Exception:
+ log.error("Path '" + self._a[0] + " or " + self._a[1] + "' don't exist")
+ sys.exit(2)
+
+ def __getattr__(self, attr):
+ """map all options properties into this object (remove one level of indirection)"""
+ return getattr(self._o, attr)
+
+
+mainTempl = Template("""/*
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+////////////////////////////////////////////////////////////////
+// THIS FILE IS AUTOGENERATED, ALL MODIFICATIONS WILL BE LAST //
+////////////////////////////////////////////////////////////////
+
+#include "testgenerator.h"
+
+#include <QtCore/qdatastream.h>
+#include <QtCore/qdatetime.h>
+#include <QtCore/qdebug.h>
+#include <QtCore/qfile.h>
+#include <QtCore/qnumeric.h>
+#include <QtCore/qvariant.h>
+#include <QtCore/qvector.h>
+#include <QtScript/qscriptvalue.h>
+#include <QtScript/qscriptengine.h>
+
+
+
+typedef bool (QScriptValue::*ComparisionType) (const QScriptValue&) const;
+static QVector<bool> compare(ComparisionType compare, QScriptValue value, const QScriptValueList& values) {
+ QVector<bool> result;
+ result.reserve(${count});
+
+ QScriptValueList::const_iterator i = values.constBegin();
+ for (; i != values.constEnd(); ++i) {
+ result << (value.*compare)(*i);
+ }
+ return result;
+}
+
+static void dump(QDataStream& out, QScriptValue& value, const QString& expression, const QScriptValueList& allValues)
+{
+ out << QString(expression);
+
+ out << value.isValid();
+ out << value.isBool();
+ out << value.isBoolean();
+ out << value.isNumber();
+ out << value.isFunction();
+ out << value.isNull();
+ out << value.isString();
+ out << value.isUndefined();
+ out << value.isVariant();
+ out << value.isQObject();
+ out << value.isQMetaObject();
+ out << value.isObject();
+ out << value.isDate();
+ out << value.isRegExp();
+ out << value.isArray();
+ out << value.isError();
+
+ out << value.toString();
+ out << value.toNumber();
+ out << value.toBool();
+ out << value.toBoolean();
+ out << value.toInteger();
+ out << value.toInt32();
+ out << value.toUInt32();
+ out << value.toUInt16();
+
+ out << compare(&QScriptValue::equals, value, allValues);
+ out << compare(&QScriptValue::strictlyEquals, value, allValues);
+ out << compare(&QScriptValue::lessThan, value, allValues);
+ out << compare(&QScriptValue::instanceOf, value, allValues);
+
+ out << qscriptvalue_cast<QString>(value);
+ out << qscriptvalue_cast<qsreal>(value);
+ out << qscriptvalue_cast<bool>(value);
+ out << qscriptvalue_cast<qint32>(value);
+ out << qscriptvalue_cast<quint32>(value);
+ out << qscriptvalue_cast<quint16>(value);
+}
+
+void TestGenerator::prepareData()
+{
+ QScriptEngine* engine = new QScriptEngine;
+
+ QScriptValueList allValues;
+ allValues << ${values};
+ QVector<QString> allDataTags;
+ allDataTags.reserve(${count});
+ allDataTags << ${dataTags};
+ QDataStream out(&m_tempFile);
+ out << allDataTags;
+
+ for(unsigned i = 0; i < ${count}; ++i)
+ dump(out, allValues[i], allDataTags[i], allValues);
+
+ delete engine;
+}
+""")
+qsvTempl = Template("""
+ {
+ QScriptValue value = ${expr};
+ dump(out, value, "${expr_esc}", allValues);
+ }""")
+
+
+
+if __name__ == '__main__':
+ import sys
+ o = Options(sys.argv[1:])
+ out = []
+ qsv = []
+ # load input file
+ with open(o.ipath) as f:
+ for row in f.readlines():
+ qsv.append(row)
+
+ #skip comments and empty lines
+ qsv = filter(lambda w: len(w.strip()) and not w.startswith('#'), qsv)
+
+ escape = lambda w: w.replace('\\','\\\\').replace('"','\\"')
+
+ for row in qsv:
+ row = row.replace('\n','')
+ row_esc = escape(row)
+ out.append(qsvTempl.substitute(expr = row, expr_esc = row_esc))
+
+ result = mainTempl.substitute(dump= "".join(out) \
+ , values = (11 * ' ' + '<< ').join(qsv) \
+ , count = len(qsv) \
+ , dataTags = (11 * ' ' + '<< ').join(map(lambda w: '"' + escape(w.replace('\n','')) + '"\n', qsv)))
+
+ with open(o.opath, 'w') as f:
+ f.write(result)
+
+
diff --git a/tools/linguist/shared/proreader.h b/tests/auto/qscriptvalue/testgen/main.cpp
index 70421d7..fe35de9 100644
--- a/tools/linguist/shared/proreader.h
+++ b/tests/auto/qscriptvalue/testgen/main.cpp
@@ -4,7 +4,7 @@
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the Qt Linguist of the Qt Toolkit.
+** This file is part of the test suite of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
@@ -39,19 +39,24 @@
**
****************************************************************************/
-#ifndef PROREADER_H
-#define PROREADER_H
+#include "testgenerator.h"
+#include <QtCore/qdebug.h>
+#include <QtCore/qfile.h>
+#include <QtCore/qstringlist.h>
+#include <QtCore/QCoreApplication>
-#include <QtCore/QHash>
+int main(int argc, char *argv[])
+{
+ QCoreApplication a(argc, argv);
-QT_BEGIN_NAMESPACE
+ if (argc != 2) {
+ qWarning() << "./prog outputfile";
+ exit(1);
+ }
-class ProFileEvaluator;
+ //Procced
+ TestGenerator gen(a.arguments()[1]);
+ gen.run();
-void evaluateProFile(const ProFileEvaluator &visitor, QHash<QByteArray, QStringList> *varMap,
- const QString &projectDir);
-bool evaluateProFile(const QString &fileName, bool verbose, QHash<QByteArray, QStringList> *varMap);
-
-QT_END_NAMESPACE
-
-#endif // PROREADER_H
+ return 0;
+}
diff --git a/tests/auto/qscriptvalue/testgen/testgen.pro b/tests/auto/qscriptvalue/testgen/testgen.pro
new file mode 100644
index 0000000..47709a8
--- /dev/null
+++ b/tests/auto/qscriptvalue/testgen/testgen.pro
@@ -0,0 +1,18 @@
+QT += core script
+TARGET = testgen
+CONFIG += console
+CONFIG -= app_bundle
+TEMPLATE = app
+
+SOURCES += main.cpp \
+ testgenerator.cpp
+HEADERS += testgenerator.h
+
+
+INPUT_DATASET = data.txt
+dataset.name = Generating QScraiptValue autotest's dataset
+dataset.output = autogenerated.cpp
+dataset.commands = python gen.py data.txt autogenerated.cpp
+dataset.input = INPUT_DATASET
+dataset.variable_out = SOURCES
+QMAKE_EXTRA_COMPILERS += dataset
diff --git a/tests/auto/qscriptvalue/testgen/testgenerator.cpp b/tests/auto/qscriptvalue/testgen/testgenerator.cpp
new file mode 100644
index 0000000..d852ea5
--- /dev/null
+++ b/tests/auto/qscriptvalue/testgen/testgenerator.cpp
@@ -0,0 +1,688 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "testgenerator.h"
+
+#include <QtCore/qdatastream.h>
+#include <QtCore/qdatetime.h>
+#include <QtCore/qdebug.h>
+#include <QtCore/qnumeric.h>
+#include <QtCore/qstringlist.h>
+#include <QtCore/qtextstream.h>
+#include <QtCore/qvariant.h>
+#include <QtScript/qscriptvalue.h>
+
+void TestGenerator::save(const QString& data)
+{
+ QTextStream out(&m_ofile);
+ out << data;
+}
+
+static QString escape(QString txt)
+{
+ return txt.replace("\\","\\\\").replace("\"","\\\"").replace("\n","\\n");
+}
+
+template<typename T>
+QString prepareToInsert(T value) {return QString::fromAscii("\"") + escape(value) + "\"";}
+template<>
+QString prepareToInsert<qsreal>(qsreal value)
+{
+ if (qIsNaN(value))
+ return "qQNaN()";
+ if (qIsInf(value))
+ return "qInf()";
+ return QString::number(value, 'g', 16);
+}
+template<>
+QString prepareToInsert<qint32>(qint32 value) {return QString::number(value);}
+template<>
+QString prepareToInsert<quint32>(quint32 value) {return QString::number(value);}
+template<>
+QString prepareToInsert<quint16>(quint16 value) {return QString::number(value);}
+template<>
+QString prepareToInsert<bool>(bool value) {return value ? "true" : "false";}
+template<>
+QString prepareToInsert<QString>(QString value) {return QString::fromAscii("\"") + escape(value) + "\"";}
+
+template<typename T>
+QString typeName() {return QString();}
+template<>
+QString typeName<qsreal>() {return "qsreal";}
+template<>
+QString typeName<qint32>() {return "qint32";}
+template<>
+QString typeName<quint32>() {return "quint32";}
+template<>
+QString typeName<quint16>() {return "quint16";}
+template<>
+QString typeName<bool>() {return "bool";}
+template<>
+QString typeName<QString>() {return "QString";}
+
+static QString generateIsXXXDef(const QString& name, const QList<QString>& list)
+{
+ static const QString templ("void tst_QScriptValue::%1_initData()\n"\
+ "{\n"\
+ " QTest::addColumn<bool>(\"expected\");\n"\
+ " initScriptValues();\n"\
+ "}\n"\
+ "\n"\
+ "void tst_QScriptValue::%1_makeData(const char* expr)\n"\
+ "{\n"\
+ " static QSet<QString> %1;\n"\
+ " if (%1.isEmpty()) {\n"\
+ " %1%2\n"\
+ " }\n"\
+ " newRow(expr) << %1.contains(expr);\n"\
+ "}\n"\
+ "\n"\
+ "void tst_QScriptValue::%1_test(const char*, const QScriptValue& value)\n"\
+ "{\n"\
+ " QFETCH(bool, expected);\n"\
+ " QCOMPARE(value.%1(), expected);\n"\
+ "}\n"\
+ "\n"\
+ "DEFINE_TEST_FUNCTION(%1)\n"\
+ "\n");
+
+ if (!list.size()) {
+ qWarning() << name << ": nothing to add!" ;
+ return QString();
+ }
+
+ QString result = templ;
+ QStringList set;
+ foreach(QString t, list) {
+ t = escape(t);
+ t.append('\"');
+ t.prepend('\"');
+ set.append(QString(" << "));
+ set.append(t);
+ set.append("\n ");
+ }
+ set.append(";");
+ return result.arg(name, set.join(QString()));
+}
+
+template<typename T>
+static QString generateToXXXDef(const QString& name, const QList<QPair<QString, T> >& list)
+{
+ static const QString templ = "\n"\
+ "void tst_QScriptValue::%1_initData()\n"\
+ "{\n"\
+ " QTest::addColumn<%2>(\"expected\");\n"\
+ " initScriptValues();\n"\
+ "}\n"\
+ "\n"\
+ "void tst_QScriptValue::%1_makeData(const char* expr)\n"\
+ "{\n"\
+ " static QHash<QString, %2> %1;\n"\
+ " if (%1.isEmpty()) {\n"\
+ "%3"\
+ " }\n"\
+ " newRow(expr) << %1.value(expr);\n"\
+ "}\n"\
+ "\n"\
+ "void tst_QScriptValue::%1_test(const char*, const QScriptValue& value)\n"\
+ "{\n"\
+ " QFETCH(%2, expected);\n"\
+ " QCOMPARE(value.%1(), expected);\n"\
+ "}\n"\
+ "\n"\
+ "DEFINE_TEST_FUNCTION(%1)\n";
+ QString result = templ;
+
+ typename QList<QPair<QString, T> >::const_iterator i = list.constBegin();
+ QStringList set;
+ for(; i != list.constEnd(); ++i) {
+ QPair<QString, T> t = *i;
+ t.first = escape(t.first);
+ set.append(QString(" "));
+ set.append(name);
+ set.append(".insert(\"");
+ set.append(t.first);
+ set.append(QString::fromAscii("\", "));
+ set.append(prepareToInsert<T>(t.second));
+ set.append(QString::fromAscii(");\n"));
+ }
+ return result.arg(name, typeName<T>(), set.join(QString()));
+}
+
+
+template<>
+QString generateToXXXDef<qsreal>(const QString& name, const QList<QPair<QString, qsreal> >& list)
+{
+ static const QString templ = "\n"\
+ "void tst_QScriptValue::%1_initData()\n"\
+ "{\n"\
+ " QTest::addColumn<%2>(\"expected\");\n"\
+ " initScriptValues();\n"\
+ "}\n"\
+ "\n"\
+ "void tst_QScriptValue::%1_makeData(const char* expr)\n"\
+ "{\n"\
+ " static QHash<QString, %2> %1;\n"\
+ " if (%1.isEmpty()) {\n"\
+ "%3"\
+ " }\n"\
+ " newRow(expr) << %1.value(expr);\n"\
+ "}\n"\
+ "\n"\
+ "void tst_QScriptValue::%1_test(const char*, const QScriptValue& value)\n"\
+ "{\n"\
+ " QFETCH(%2, expected);\n"\
+ "%666"
+ " if (qIsInf(expected)) {\n"\
+ " QVERIFY(qIsInf(value.%1()));\n"\
+ " return;\n"\
+ " }\n"\
+ " QCOMPARE(value.%1(), expected);\n"\
+ "}\n"\
+ "\n"\
+ "DEFINE_TEST_FUNCTION(%1)\n";
+ QString result = templ;
+
+ QList<QPair<QString, qsreal> >::const_iterator i = list.constBegin();
+ QStringList set;
+ for(; i != list.constEnd(); ++i) {
+ QPair<QString, qsreal> t = *i;
+ t.first = escape(t.first);
+ set.append(QString(" "));
+ set.append(name);
+ set.append(".insert(\"");
+ set.append(t.first);
+ set.append(QString::fromAscii("\", "));
+ set.append(prepareToInsert<qsreal>(t.second));
+ set.append(QString::fromAscii(");\n"));
+ }
+ // toInteger shouldn't return NaN, so it would be nice to catch the case.
+ QString hook;
+ if (name == "toNumber") {
+ hook =
+ " if (qIsNaN(expected)) {\n"\
+ " QVERIFY(qIsNaN(value.toNumber()));\n"\
+ " return;\n"\
+ " }\n";
+ }
+ return result.arg(name, typeName<qsreal>(), set.join(QString()), hook);
+}
+
+template<typename T>
+static QString generateCastDef(const QList<QPair<QString, T> >& list)
+{
+ static const QString templ = "\n"\
+ "void tst_QScriptValue::qscriptvalue_cast%2_initData()\n"\
+ "{\n"\
+ " QTest::addColumn<%2>(\"expected\");\n"\
+ " initScriptValues();\n"\
+ "}\n"\
+ "\n"\
+ "void tst_QScriptValue::qscriptvalue_cast%2_makeData(const char* expr)\n"\
+ "{\n"\
+ " static QHash<QString, %2> value;\n"\
+ " if (value.isEmpty()) {\n"\
+ "%3"\
+ " }\n"\
+ " newRow(expr) << value.value(expr);\n"\
+ "}\n"\
+ "\n"\
+ "void tst_QScriptValue::qscriptvalue_cast%2_test(const char*, const QScriptValue& value)\n"\
+ "{\n"\
+ " QFETCH(%2, expected);\n"\
+ " QCOMPARE(qscriptvalue_cast<%2>(value), expected);\n"\
+ "}\n"\
+ "\n"\
+ "DEFINE_TEST_FUNCTION(qscriptvalue_cast%2)\n";
+ QString result = templ;
+
+ typename QList<QPair<QString, T> >::const_iterator i = list.constBegin();
+ QStringList set;
+ for(; i != list.constEnd(); ++i) {
+ QPair<QString, T> t = *i;
+ t.first = escape(t.first);
+ set.append(QString(" "));
+ set.append("value.insert(\"");
+ set.append(t.first);
+ set.append(QString::fromAscii("\", "));
+ set.append(prepareToInsert<T>(t.second));
+ set.append(QString::fromAscii(");\n"));
+ }
+ return result.arg(typeName<T>(), set.join(QString()));
+}
+
+template<>
+QString generateCastDef<qsreal>(const QList<QPair<QString, qsreal> >& list)
+{
+ static const QString templ = "\n"\
+ "void tst_QScriptValue::qscriptvalue_cast%2_initData()\n"\
+ "{\n"\
+ " QTest::addColumn<%2>(\"expected\");\n"\
+ " initScriptValues();\n"\
+ "}\n"\
+ "\n"\
+ "void tst_QScriptValue::qscriptvalue_cast%2_makeData(const char* expr)\n"\
+ "{\n"\
+ " static QHash<QString, %2> value;\n"\
+ " if (value.isEmpty()) {\n"\
+ "%3"\
+ " }\n"\
+ " newRow(expr) << value.value(expr);\n"\
+ "}\n"\
+ "\n"\
+ "void tst_QScriptValue::qscriptvalue_cast%2_test(const char*, const QScriptValue& value)\n"\
+ "{\n"\
+ " QFETCH(%2, expected);\n"\
+ " if (qIsNaN(expected)) {\n"
+ " QVERIFY(qIsNaN(qscriptvalue_cast<%2>(value)));\n"
+ " return;\n"
+ " }\n"\
+ " if (qIsInf(expected)) {\n"
+ " QVERIFY(qIsInf(qscriptvalue_cast<%2>(value)));\n"
+ " return;\n"
+ " }\n"
+ " QCOMPARE(qscriptvalue_cast<%2>(value), expected);\n"\
+ "}\n"\
+ "\n"\
+ "DEFINE_TEST_FUNCTION(qscriptvalue_cast%2)\n";
+ QString result = templ;
+
+ QList<QPair<QString, qsreal> >::const_iterator i = list.constBegin();
+ QStringList set;
+ for(; i != list.constEnd(); ++i) {
+ QPair<QString, qsreal> t = *i;
+ t.first = escape(t.first);
+ set.append(QString(" "));
+ set.append("value.insert(\"");
+ set.append(t.first);
+ set.append(QString::fromAscii("\", "));
+ set.append(prepareToInsert<qsreal>(t.second));
+ set.append(QString::fromAscii(");\n"));
+ }
+ return result.arg(typeName<qsreal>(), set.join(QString()));
+}
+
+static QString generateCompareDef(const QString& comparisionType, const QList<QString> tags)
+{
+ static const QString templ = "\n"\
+ "void tst_QScriptValue::%1_initData()\n"\
+ "{\n"\
+ " QTest::addColumn<QScriptValue>(\"other\");\n"\
+ " QTest::addColumn<bool>(\"expected\");\n"\
+ " initScriptValues();\n"\
+ "}\n"\
+ "\n"\
+ "void tst_QScriptValue::%1_makeData(const char *expr)\n"\
+ "{\n"\
+ " static QSet<QString> equals;\n"\
+ " if (equals.isEmpty()) {\n"\
+ "%2\n"\
+ " }\n"\
+ " QHash<QString, QScriptValue>::const_iterator it;\n"\
+ " for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {\n"\
+ " QString tag = QString::fromLatin1(\"%20 <=> %21\").arg(expr).arg(it.key());\n"\
+ " newRow(tag.toLatin1()) << it.value() << equals.contains(tag);\n"\
+ " }\n"\
+ "}\n"\
+ "\n"\
+ "void tst_QScriptValue::%1_test(const char *, const QScriptValue& value)\n"\
+ "{\n"\
+ " QFETCH(QScriptValue, other);\n"\
+ " QFETCH(bool, expected);\n"\
+ " QCOMPARE(value.%1(other), expected);\n"\
+ "}\n"\
+ "\n"\
+ "DEFINE_TEST_FUNCTION(%1)\n";
+ Q_ASSERT(comparisionType == "strictlyEquals"
+ || comparisionType == "equals"
+ || comparisionType == "lessThan"
+ || comparisionType == "instanceOf");
+ QString result = templ;
+
+ QStringList set;
+ foreach(const QString& tmp, tags) {
+ set.append(" equals.insert(\"" + escape(tmp) + "\");");
+ }
+ return result.arg(comparisionType, set.join("\n"));
+}
+
+static QString generateInitDef(const QVector<QString>& allDataTags)
+{
+ static const QString templ = "/****************************************************************************\n"
+ "**\n"
+ "** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).\n"
+ "** All rights reserved.\n"
+ "** Contact: Nokia Corporation (qt-info@nokia.com)\n"
+ "**\n"
+ "** This file is part of the test suite of the Qt Toolkit.\n"
+ "**\n"
+ "** $QT_BEGIN_LICENSE:LGPL$\n"
+ "** No Commercial Usage\n"
+ "** This file contains pre-release code and may not be distributed.\n"
+ "** You may use this file in accordance with the terms and conditions\n"
+ "** contained in the Technology Preview License Agreement accompanying\n"
+ "** this package.\n"
+ "**\n"
+ "** GNU Lesser General Public License Usage\n"
+ "** Alternatively, this file may be used under the terms of the GNU Lesser\n"
+ "** General Public License version 2.1 as published by the Free Software\n"
+ "** Foundation and appearing in the file LICENSE.LGPL included in the\n"
+ "** packaging of this file. Please review the following information to\n"
+ "** ensure the GNU Lesser General Public License version 2.1 requirements\n"
+ "** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.\n"
+ "**\n"
+ "** In addition, as a special exception, Nokia gives you certain additional\n"
+ "** rights. These rights are described in the Nokia Qt LGPL Exception\n"
+ "** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.\n"
+ "**\n"
+ "** If you have questions regarding the use of this file, please contact\n"
+ "** Nokia at qt-info@nokia.com.\n"
+ "**\n"
+ "**\n"
+ "**\n"
+ "**\n"
+ "**\n"
+ "**\n"
+ "**\n"
+ "**\n"
+ "** $QT_END_LICENSE$\n"
+ "**\n"
+ "****************************************************************************/\n"
+ "\n"\
+ "#include \"tst_qscriptvalue.h\"\n\n"\
+ "#define DEFINE_TEST_VALUE(expr) m_values.insert(QString::fromLatin1(#expr), expr)\n"\
+ "\n"\
+ "void tst_QScriptValue::initScriptValues()\n"\
+ "{\n"\
+ " m_values.clear();\n"\
+ " if (engine) \n"\
+ " delete engine;\n"\
+ " engine = new QScriptEngine;\n"\
+ "%1\n}\n\n";
+ QString result = templ;
+ QStringList set;
+ foreach(const QString tag, allDataTags) {
+ set.append(" DEFINE_TEST_VALUE(" + tag + ");");
+ }
+
+ return result.arg(set.join("\n"));
+}
+
+static void squashTags(QString dataTag, const QVector<bool>& results, QList<QString>& tags, QVector<QString> dataTags)
+{
+ for(int i = 0; i < results.count(); ++i) {
+ if (results.at(i))
+ tags.append(dataTag + " <=> " + dataTags[i]);
+ }
+}
+
+
+QString TestGenerator::generateTest()
+{
+ // All data tags keept in one place.
+ QVector<QString> dataTags;
+
+ // Data tags for values that return true in isXXX call
+ QList<QString> isValidList;
+ QList<QString> isBoolList;
+ QList<QString> isBooleanList;
+ QList<QString> isNumberList;
+ QList<QString> isFunctionList;
+ QList<QString> isNullList;
+ QList<QString> isStringList;
+ QList<QString> isUndefinedList;
+ QList<QString> isVariantList;
+ QList<QString> isQObjectList;
+ QList<QString> isQMetaObjectList;
+ QList<QString> isObjectList;
+ QList<QString> isDateList;
+ QList<QString> isRegExpList;
+ QList<QString> isArrayList;
+ QList<QString> isErrorList;
+
+ // List of pairs data tag and value returned from toXXX call
+ QList<QPair<QString, QString> > toStringList;
+ QList<QPair<QString, qsreal> > toNumberList;
+ QList<QPair<QString, bool> > toBoolList;
+ QList<QPair<QString, bool> > toBooleanList;
+ QList<QPair<QString, qsreal> > toIntegerList;
+ QList<QPair<QString, qint32> > toInt32List;
+ QList<QPair<QString, quint32> > toUInt32List;
+ QList<QPair<QString, quint16> > toUInt16List;
+
+ // List of complex tags returning true
+ QList<QString> equalsList;
+ QList<QString> strictlyEqualsList;
+ QList<QString> lessThanList;
+ QList<QString> instanceOfList;
+
+ QList<QPair<QString, QString> > castStringList;
+ QList<QPair<QString, qsreal> > castSRealList;
+ QList<QPair<QString, bool> > castBoolList;
+ QList<QPair<QString, qint32> > castInt32List;
+ QList<QPair<QString, quint32> > castUInt32List;
+ QList<QPair<QString, quint16> > castUInt16List;
+
+ // Load.
+ m_tempFile.seek(0);
+ QDataStream in(&m_tempFile);
+ in >> dataTags;
+ Q_ASSERT(in.status() == in.Ok);
+
+ while(!in.atEnd())
+ {
+ bool isValidRes;
+ bool isBoolRes;
+ bool isBooleanRes;
+ bool isNumberRes;
+ bool isFunctionRes;
+ bool isNullRes;
+ bool isStringRes;
+ bool isUndefinedRes;
+ bool isVariantRes;
+ bool isQObjectRes;
+ bool isQMetaObjectRes;
+ bool isObjectRes;
+ bool isDateRes;
+ bool isRegExpRes;
+ bool isArrayRes;
+ bool isErrorRes;
+
+ QString toStringRes;
+ qsreal toNumberRes;
+ bool toBoolRes;
+ bool toBooleanRes;
+ qsreal toIntegerRes;
+ qint32 toInt32Res;
+ quint32 toUInt32Res;
+ quint16 toUInt16Res;
+ //toVariantRes;
+ //toDateTimeRes;
+
+ QVector<bool> equalsRes;
+ QVector<bool> strictlyEqualsRes;
+ QVector<bool> lessThanRes;
+ QVector<bool> instanceOfRes;
+
+ QString castStringRes;
+ qsreal castSRealRes;
+ bool castBoolRes;
+ qint32 castInt32Res;
+ quint32 castUInt32Res;
+ quint16 castUInt16Res;
+
+ QString dataTag;
+ in >> dataTag;
+ in >> isValidRes;
+ in >> isBoolRes;
+ in >> isBooleanRes;
+ in >> isNumberRes;
+ in >> isFunctionRes;
+ in >> isNullRes;
+ in >> isStringRes;
+ in >> isUndefinedRes;
+ in >> isVariantRes;
+ in >> isQObjectRes;
+ in >> isQMetaObjectRes;
+ in >> isObjectRes;
+ in >> isDateRes;
+ in >> isRegExpRes;
+ in >> isArrayRes;
+ in >> isErrorRes;
+
+ if (isValidRes) isValidList.append(dataTag);
+ if (isBoolRes) isBoolList.append(dataTag);
+ if (isBooleanRes) isBooleanList.append(dataTag);
+ if (isNumberRes) isNumberList.append(dataTag);
+ if (isFunctionRes) isFunctionList.append(dataTag);
+ if (isNullRes) isNullList.append(dataTag);
+ if (isStringRes) isStringList.append(dataTag);
+ if (isUndefinedRes) isUndefinedList.append(dataTag);
+ if (isVariantRes) isVariantList.append(dataTag);
+ if (isQObjectRes) isQObjectList.append(dataTag);
+ if (isQMetaObjectRes) isQMetaObjectList.append(dataTag);
+ if (isObjectRes) isObjectList.append(dataTag);
+ if (isDateRes) isDateList.append(dataTag);
+ if (isRegExpRes) isRegExpList.append(dataTag);
+ if (isArrayRes) isArrayList.append(dataTag);
+ if (isErrorRes) isErrorList.append(dataTag);
+
+ in >> toStringRes;
+ in >> toNumberRes;
+ in >> toBoolRes;
+ in >> toBooleanRes;
+ in >> toIntegerRes;
+ in >> toInt32Res;
+ in >> toUInt32Res;
+ in >> toUInt16Res;
+ //in >> toVariantRes;
+ //in >> toDateTimeRes;
+
+ toStringList.append(QPair<QString, QString>(dataTag, toStringRes));
+ toNumberList.append(QPair<QString, qsreal>(dataTag, toNumberRes));
+ toBoolList.append(QPair<QString, bool>(dataTag, toBoolRes));
+ toBooleanList.append(QPair<QString, bool>(dataTag, toBooleanRes));
+ toIntegerList.append(QPair<QString, qsreal>(dataTag, toIntegerRes));
+ toInt32List.append(QPair<QString, qint32>(dataTag, toInt32Res));
+ toUInt32List.append(QPair<QString, quint32>(dataTag, toUInt32Res));
+ toUInt16List.append(QPair<QString, quint16>(dataTag, toUInt16Res));
+
+ in >> equalsRes;
+ in >> strictlyEqualsRes;
+ in >> lessThanRes;
+ in >> instanceOfRes;
+
+ squashTags(dataTag, equalsRes, equalsList, dataTags);
+ squashTags(dataTag, strictlyEqualsRes, strictlyEqualsList, dataTags);
+ squashTags(dataTag, lessThanRes, lessThanList, dataTags);
+ squashTags(dataTag, instanceOfRes, instanceOfList, dataTags);
+
+ in >> castStringRes;
+ in >> castSRealRes;
+ in >> castBoolRes;
+ in >> castInt32Res;
+ in >> castUInt32Res;
+ in >> castUInt16Res;
+
+ castStringList.append(QPair<QString, QString>(dataTag, castStringRes));
+ castSRealList.append(QPair<QString, qsreal>(dataTag, castSRealRes));
+ castBoolList.append(QPair<QString, bool>(dataTag, castBoolRes));
+ castInt32List.append(QPair<QString, qint32>(dataTag, castInt32Res));
+ castUInt32List.append(QPair<QString, quint32>(dataTag, castUInt32Res));
+ castUInt16List.append(QPair<QString, quint16>(dataTag, castUInt16Res));
+
+ Q_ASSERT(in.status() == in.Ok);
+ }
+
+ Q_ASSERT(in.atEnd());
+
+ // Generate.
+ QStringList result;
+ result.append(generateInitDef(dataTags));
+ result.append(generateIsXXXDef("isValid", isValidList));
+ result.append(generateIsXXXDef("isBool", isBoolList));
+ result.append(generateIsXXXDef("isBoolean", isBooleanList));
+ result.append(generateIsXXXDef("isNumber", isNumberList));
+ result.append(generateIsXXXDef("isFunction", isFunctionList));
+ result.append(generateIsXXXDef("isNull", isNullList));
+ result.append(generateIsXXXDef("isString", isStringList));
+ result.append(generateIsXXXDef("isUndefined", isUndefinedList));
+ result.append(generateIsXXXDef("isVariant", isVariantList));
+ result.append(generateIsXXXDef("isQObject", isQObjectList));
+ result.append(generateIsXXXDef("isQMetaObject", isQMetaObjectList));
+ result.append(generateIsXXXDef("isObject", isObjectList));
+ result.append(generateIsXXXDef("isDate", isDateList));
+ result.append(generateIsXXXDef("isRegExp", isRegExpList));
+ result.append(generateIsXXXDef("isArray", isArrayList));
+ result.append(generateIsXXXDef("isError", isErrorList));
+
+ result.append(generateToXXXDef<QString>("toString", toStringList));
+ result.append(generateToXXXDef<qsreal>("toNumber", toNumberList));
+ result.append(generateToXXXDef<bool>("toBool", toBoolList));
+ result.append(generateToXXXDef<bool>("toBoolean", toBooleanList));
+ result.append(generateToXXXDef<qsreal>("toInteger", toIntegerList));
+ result.append(generateToXXXDef<qint32>("toInt32", toInt32List));
+ result.append(generateToXXXDef<quint32>("toUInt32", toUInt32List));
+ result.append(generateToXXXDef<quint16>("toUInt16", toUInt16List));
+
+ result.append(generateCompareDef("equals", equalsList));
+ result.append(generateCompareDef("strictlyEquals", strictlyEqualsList));
+ result.append(generateCompareDef("lessThan", lessThanList));
+ result.append(generateCompareDef("instanceOf", instanceOfList));
+
+ result.append(generateCastDef(castStringList));
+ result.append(generateCastDef(castSRealList));
+ result.append(generateCastDef(castBoolList));
+ result.append(generateCastDef(castInt32List));
+ result.append(generateCastDef(castUInt32List));
+ result.append(generateCastDef(castUInt16List));
+
+ return result.join("\n");
+}
+
+
+
+
+
+
+
+
+
diff --git a/tests/auto/qscriptvalue/testgen/testgenerator.h b/tests/auto/qscriptvalue/testgen/testgenerator.h
new file mode 100644
index 0000000..8f4a357
--- /dev/null
+++ b/tests/auto/qscriptvalue/testgen/testgenerator.h
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef TESTGENERATOR_H
+#define TESTGENERATOR_H
+
+#include <QtCore/qdebug.h>
+#include <QtCore/qfile.h>
+#include <QtCore/qtemporaryfile.h>
+
+class TestGenerator {
+public:
+ TestGenerator(QString& outputpath)
+ : m_ofile(outputpath)
+ {
+ // Open output file
+ if (!m_ofile.open(QIODevice::WriteOnly | QIODevice::Text)) {
+ qWarning() << "Can't open output file: " << outputpath;
+ exit(2);
+ }
+ m_tempFile.open();
+ }
+
+ void run()
+ {
+ prepareData();
+ Q_ASSERT(m_tempFile.size());
+ save(generateTest());
+ }
+
+ void prepareData();
+ QString generateTest();
+ void save(const QString& data);
+private:
+ QFile m_ofile;
+ QTemporaryFile m_tempFile;
+};
+
+#endif // TESTGENERATOR_H
diff --git a/tests/auto/qscriptvalue/tst_qscriptvalue.cpp b/tests/auto/qscriptvalue/tst_qscriptvalue.cpp
index b384a55..f83cf58 100644
--- a/tests/auto/qscriptvalue/tst_qscriptvalue.cpp
+++ b/tests/auto/qscriptvalue/tst_qscriptvalue.cpp
@@ -39,14 +39,8 @@
**
****************************************************************************/
-
-#include <QtTest/QtTest>
+#include "tst_qscriptvalue.h"
#include <QtGui/QPushButton>
-#include <QtCore/qnumeric.h>
-
-#include <QtScript/qscriptclass.h>
-#include <QtScript/qscriptvalue.h>
-#include <QtScript/qscriptengine.h>
//TESTED_CLASS=
//TESTED_FILES=
@@ -55,62 +49,70 @@ QT_BEGIN_NAMESPACE
extern bool qt_script_isJITEnabled();
QT_END_NAMESPACE
-class tst_QScriptValue : public QObject
+tst_QScriptValue::tst_QScriptValue()
+ : engine(0)
{
- Q_OBJECT
+}
-public:
- tst_QScriptValue();
- virtual ~tst_QScriptValue();
-
-private slots:
- void ctor();
- void engine();
- void toString();
- void toNumber();
- void toBoolean();
- void toBool();
- void toInteger();
- void toInt32();
- void toUInt32();
- void toUInt16();
- void toVariant();
- void toQObject();
- void toObject();
- void toDateTime();
- void toRegExp();
- void instanceOf();
- void isArray();
- void isDate();
- void isError();
- void isRegExp();
- void getSetPrototype();
- void getSetScope();
- void getSetProperty();
- void arrayElementGetterSetter();
- void getSetData();
- void getSetScriptClass();
- void call();
- void construct();
- void lessThan();
- void equals();
- void strictlyEquals();
- void castToPointer();
- void prettyPrinter_data();
- void prettyPrinter();
- void engineDeleted();
- void valueOfWithClosure();
- void objectId();
-};
+tst_QScriptValue::~tst_QScriptValue()
+{
+ delete engine;
+}
-tst_QScriptValue::tst_QScriptValue()
+void tst_QScriptValue::dataHelper(InitDataFunction init, DefineDataFunction define)
{
+ QTest::addColumn<QString>("__expression__");
+ (this->*init)();
+ QHash<QString,QScriptValue>::const_iterator it;
+ for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {
+ m_currentExpression = it.key();
+ (this->*define)(it.key().toLatin1());
+ }
+ m_currentExpression = QString();
}
-tst_QScriptValue::~tst_QScriptValue()
+QTestData &tst_QScriptValue::newRow(const char *tag)
+{
+ return QTest::newRow(tag) << m_currentExpression;
+}
+
+void tst_QScriptValue::testHelper(TestFunction fun)
+{
+ QFETCH(QString, __expression__);
+ QScriptValue value = m_values.value(__expression__);
+ (this->*fun)(__expression__.toLatin1(), value);
+}
+
+void tst_QScriptValue::assignAndCopyConstruct_initData()
+{
+ QTest::addColumn<int>("dummy");
+ initScriptValues();
+}
+
+void tst_QScriptValue::assignAndCopyConstruct_makeData(const char *expr)
+{
+ newRow(expr) << 0;
+}
+
+void tst_QScriptValue::assignAndCopyConstruct_test(const char *, const QScriptValue &value)
{
+ QScriptValue copy(value);
+ QCOMPARE(copy.strictlyEquals(value), !value.isNumber() || !qIsNaN(value.toNumber()));
+ QCOMPARE(copy.engine(), value.engine());
+
+ QScriptValue assigned = copy;
+ QCOMPARE(assigned.strictlyEquals(value), !copy.isNumber() || !qIsNaN(copy.toNumber()));
+ QCOMPARE(assigned.engine(), assigned.engine());
+
+ QScriptValue other(!value.toBool());
+ assigned = other;
+ QVERIFY(!assigned.strictlyEquals(copy));
+ QVERIFY(assigned.strictlyEquals(other));
+ QCOMPARE(assigned.engine(), other.engine());
}
+DEFINE_TEST_FUNCTION(assignAndCopyConstruct)
+
void tst_QScriptValue::ctor()
{
QScriptEngine eng;
@@ -330,19 +332,12 @@ void tst_QScriptValue::ctor()
QVERIFY(QScriptValue(0, QString("ciao")).isString());
}
-void tst_QScriptValue::engine()
-{
- QScriptEngine eng;
- QScriptValue object = eng.newObject();
- QCOMPARE(object.engine(), &eng);
-}
-
static QScriptValue myFunction(QScriptContext *, QScriptEngine *eng)
{
return eng->undefinedValue();
}
-void tst_QScriptValue::toString()
+void tst_QScriptValue::toString_old()
{
QScriptEngine eng;
@@ -456,7 +451,7 @@ void tst_QScriptValue::toString()
QVERIFY(variant.toString().isEmpty());
}
-void tst_QScriptValue::toNumber()
+void tst_QScriptValue::toNumber_old()
{
QScriptEngine eng;
@@ -529,7 +524,7 @@ void tst_QScriptValue::toNumber()
}
}
-void tst_QScriptValue::toBoolean() // deprecated
+void tst_QScriptValue::toBoolean_old() // deprecated
{
QScriptEngine eng;
@@ -626,7 +621,7 @@ void tst_QScriptValue::toBoolean() // deprecated
}
}
-void tst_QScriptValue::toBool()
+void tst_QScriptValue::toBool_old()
{
QScriptEngine eng;
@@ -723,7 +718,7 @@ void tst_QScriptValue::toBool()
}
}
-void tst_QScriptValue::toInteger()
+void tst_QScriptValue::toInteger_old()
{
QScriptEngine eng;
@@ -810,7 +805,7 @@ void tst_QScriptValue::toInteger()
QCOMPARE(inv.toInteger(), 0.0);
}
-void tst_QScriptValue::toInt32()
+void tst_QScriptValue::toInt32_old()
{
QScriptEngine eng;
@@ -946,7 +941,7 @@ void tst_QScriptValue::toInt32()
QCOMPARE(qscriptvalue_cast<qint32>(inv), 0);
}
-void tst_QScriptValue::toUInt32()
+void tst_QScriptValue::toUInt32_old()
{
QScriptEngine eng;
@@ -1078,7 +1073,7 @@ void tst_QScriptValue::toUInt32()
QCOMPARE(qscriptvalue_cast<quint32>(inv), quint32(0));
}
-void tst_QScriptValue::toUInt16()
+void tst_QScriptValue::toUInt16_old()
{
QScriptEngine eng;
@@ -1239,7 +1234,7 @@ void tst_QScriptValue::toUInt16()
Q_DECLARE_METATYPE(QVariant)
#endif
-void tst_QScriptValue::toVariant()
+void tst_QScriptValue::toVariant_old()
{
QScriptEngine eng;
@@ -1346,7 +1341,7 @@ void tst_QScriptValue::toVariant()
// unfortunately, this is necessary in order to do qscriptvalue_cast<QPushButton*>(...)
Q_DECLARE_METATYPE(QPushButton*)
-void tst_QScriptValue::toQObject()
+void tst_QScriptValue::toQObject_old()
{
QScriptEngine eng;
@@ -1541,7 +1536,7 @@ void tst_QScriptValue::toObject()
}
}
-void tst_QScriptValue::toDateTime()
+void tst_QScriptValue::toDateTime_old()
{
QScriptEngine eng;
QDateTime dt = eng.evaluate("new Date(0)").toDateTime();
@@ -1559,7 +1554,7 @@ void tst_QScriptValue::toDateTime()
QVERIFY(!eng.undefinedValue().toDateTime().isValid());
}
-void tst_QScriptValue::toRegExp()
+void tst_QScriptValue::toRegExp_old()
{
QScriptEngine eng;
{
@@ -1589,7 +1584,7 @@ void tst_QScriptValue::toRegExp()
QVERIFY(eng.undefinedValue().toRegExp().isEmpty());
}
-void tst_QScriptValue::instanceOf()
+void tst_QScriptValue::instanceOf_old()
{
QScriptEngine eng;
QScriptValue obj = eng.newObject();
@@ -1625,7 +1620,7 @@ void tst_QScriptValue::instanceOf()
QCOMPARE(obj.instanceOf(otherEngine.globalObject().property("Object")), false);
}
-void tst_QScriptValue::isArray()
+void tst_QScriptValue::isArray_old()
{
QScriptEngine eng;
QVERIFY(eng.evaluate("[]").isArray());
@@ -1638,7 +1633,7 @@ void tst_QScriptValue::isArray()
QVERIFY(!eng.undefinedValue().isArray());
}
-void tst_QScriptValue::isDate()
+void tst_QScriptValue::isDate_old()
{
QScriptEngine eng;
QVERIFY(eng.evaluate("new Date()").isDate());
@@ -1652,7 +1647,7 @@ void tst_QScriptValue::isDate()
QVERIFY(!eng.undefinedValue().isDate());
}
-void tst_QScriptValue::isError()
+void tst_QScriptValue::isError_old()
{
QStringList errors;
errors << "Error"
@@ -1677,7 +1672,7 @@ void tst_QScriptValue::isError()
QVERIFY(!eng.evaluate("new Object()").isError());
}
-void tst_QScriptValue::isRegExp()
+void tst_QScriptValue::isRegExp_old()
{
QScriptEngine eng;
QVERIFY(eng.evaluate("/foo/").isRegExp());
@@ -2718,7 +2713,7 @@ void tst_QScriptValue::construct()
QVERIFY(!QScriptValue(QScriptValue::NullValue).construct().isValid());
}
-void tst_QScriptValue::lessThan()
+void tst_QScriptValue::lessThan_old()
{
QScriptEngine eng;
@@ -2812,7 +2807,7 @@ void tst_QScriptValue::lessThan()
QCOMPARE(date1.lessThan(QScriptValue(&otherEngine, 123)), false);
}
-void tst_QScriptValue::equals()
+void tst_QScriptValue::equals_old()
{
QScriptEngine eng;
@@ -2907,7 +2902,7 @@ void tst_QScriptValue::equals()
QScriptValue qobj1 = eng.newQObject(this);
QScriptValue qobj2 = eng.newQObject(this);
QScriptValue qobj3 = eng.newQObject(0);
- QScriptValue qobj4 = eng.newQObject(new QObject());
+ QScriptValue qobj4 = eng.newQObject(new QObject(), QScriptEngine::ScriptOwnership);
QVERIFY(qobj1.equals(qobj2)); // compares the QObject pointers
QVERIFY(!qobj2.equals(qobj4)); // compares the QObject pointers
QVERIFY(!qobj2.equals(obj2)); // compares the QObject pointers
@@ -3005,7 +3000,7 @@ void tst_QScriptValue::equals()
QCOMPARE(date1.equals(QScriptValue(&otherEngine, 123)), false);
}
-void tst_QScriptValue::strictlyEquals()
+void tst_QScriptValue::strictlyEquals_old()
{
QScriptEngine eng;
@@ -3091,6 +3086,20 @@ void tst_QScriptValue::strictlyEquals()
QVERIFY(!falskt.strictlyEquals(null));
QVERIFY(!falskt.strictlyEquals(QScriptValue()));
+ QVERIFY(!QScriptValue(false).strictlyEquals(123));
+ QVERIFY(!QScriptValue(QScriptValue::UndefinedValue).strictlyEquals(123));
+ QVERIFY(!QScriptValue(QScriptValue::NullValue).strictlyEquals(123));
+ QVERIFY(!QScriptValue(false).strictlyEquals("ciao"));
+ QVERIFY(!QScriptValue(QScriptValue::UndefinedValue).strictlyEquals("ciao"));
+ QVERIFY(!QScriptValue(QScriptValue::NullValue).strictlyEquals("ciao"));
+ QVERIFY(QScriptValue(&eng, "ciao").strictlyEquals("ciao"));
+ QVERIFY(QScriptValue("ciao").strictlyEquals(QScriptValue(&eng, "ciao")));
+ QVERIFY(!QScriptValue("ciao").strictlyEquals(123));
+ QVERIFY(!QScriptValue("ciao").strictlyEquals(QScriptValue(&eng, 123)));
+ QVERIFY(!QScriptValue(123).strictlyEquals("ciao"));
+ QVERIFY(!QScriptValue(123).strictlyEquals(QScriptValue(&eng, "ciao")));
+ QVERIFY(!QScriptValue(&eng, 123).strictlyEquals("ciao"));
+
QScriptValue obj1 = eng.newObject();
QScriptValue obj2 = eng.newObject();
QCOMPARE(obj1.strictlyEquals(obj2), false);
@@ -3442,4 +3451,3 @@ void tst_QScriptValue::objectId()
}
QTEST_MAIN(tst_QScriptValue)
-#include "tst_qscriptvalue.moc"
diff --git a/tests/auto/qscriptvalue/tst_qscriptvalue.h b/tests/auto/qscriptvalue/tst_qscriptvalue.h
new file mode 100644
index 0000000..6215506
--- /dev/null
+++ b/tests/auto/qscriptvalue/tst_qscriptvalue.h
@@ -0,0 +1,410 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef TST_QSCRIPTVALUE_H
+#define TST_QSCRIPTVALUE_H
+
+#include <QtCore/qobject.h>
+#include <QtCore/qnumeric.h>
+#include <QtScript/qscriptclass.h>
+#include <QtScript/qscriptengine.h>
+#include <QtScript/qscriptvalue.h>
+#include <QtTest/QtTest>
+
+Q_DECLARE_METATYPE(QVariant)
+Q_DECLARE_METATYPE(QScriptValue)
+
+class tst_QScriptValue : public QObject
+{
+ Q_OBJECT
+
+public:
+ tst_QScriptValue();
+ virtual ~tst_QScriptValue();
+
+private slots:
+ // Generated test functions
+ void isArray_data();
+ void isArray();
+
+ void isBool_data();
+ void isBool();
+
+ void isBoolean_data();
+ void isBoolean();
+
+ void isDate_data();
+ void isDate();
+
+ void isError_data();
+ void isError();
+
+ void isFunction_data();
+ void isFunction();
+
+ void isNull_data();
+ void isNull();
+
+ void isNumber_data();
+ void isNumber();
+
+ void isObject_data();
+ void isObject();
+
+// void isQMetaObject_data();
+// void isQMetaObject();
+
+// void isQObject_data();
+// void isQObject();
+
+ void isRegExp_data();
+ void isRegExp();
+
+ void isString_data();
+ void isString();
+
+ void isUndefined_data();
+ void isUndefined();
+
+ void isValid_data();
+ void isValid();
+
+// void isVariant_data();
+// void isVariant();
+
+ void toBool_data();
+ void toBool();
+
+ void toBoolean_data();
+ void toBoolean();
+
+// void toDateTime_data();
+// void toDateTime();
+
+ void toInt32_data();
+ void toInt32();
+
+ void toInteger_data();
+ void toInteger();
+
+ void toNumber_data();
+ void toNumber();
+
+// void toQMetaObject_data();
+// void toQMetaObject();
+
+// void toQObject_data();
+// void toQObject();
+
+// void toRegExp_data();
+// void toRegExp();
+
+ void toString_data();
+ void toString();
+
+ void toUInt16_data();
+ void toUInt16();
+
+ void toUInt32_data();
+ void toUInt32();
+
+// void toVariant_data();
+// void toVariant();
+
+ void equals_data();
+ void equals();
+
+ void strictlyEquals_data();
+ void strictlyEquals();
+
+ void lessThan_data();
+ void lessThan();
+
+ void instanceOf_data();
+ void instanceOf();
+
+ void assignAndCopyConstruct_data();
+ void assignAndCopyConstruct();
+
+ void qscriptvalue_castQString_data();
+ void qscriptvalue_castQString();
+
+ void qscriptvalue_castqsreal_data();
+ void qscriptvalue_castqsreal();
+
+ void qscriptvalue_castbool_data();
+ void qscriptvalue_castbool();
+
+ void qscriptvalue_castqint32_data();
+ void qscriptvalue_castqint32();
+
+ void qscriptvalue_castquint32_data();
+ void qscriptvalue_castquint32();
+
+ void qscriptvalue_castquint16_data();
+ void qscriptvalue_castquint16();
+
+ // Non-generated test functions
+
+ void toObject();
+ void ctor();
+
+ void toString_old();
+ void toNumber_old();
+ void toBoolean_old();
+ void toBool_old();
+ void toInteger_old();
+ void toInt32_old();
+ void toUInt32_old();
+ void toUInt16_old();
+ void toVariant_old();
+ void toQObject_old();
+ void toDateTime_old();
+ void toRegExp_old();
+ void instanceOf_old();
+ void isArray_old();
+ void isDate_old();
+ void isError_old();
+ void isRegExp_old();
+
+ void lessThan_old();
+ void equals_old();
+ void strictlyEquals_old();
+
+ void getSetPrototype();
+ void getSetScope();
+ void getSetProperty();
+ void arrayElementGetterSetter();
+ void getSetData();
+ void getSetScriptClass();
+ void call();
+ void construct();
+ void castToPointer();
+ void prettyPrinter_data();
+ void prettyPrinter();
+ void engineDeleted();
+ void valueOfWithClosure();
+ void objectId();
+
+private:
+ typedef void (tst_QScriptValue::*InitDataFunction)();
+ typedef void (tst_QScriptValue::*DefineDataFunction)(const char *);
+ void dataHelper(InitDataFunction init, DefineDataFunction define);
+ QTestData &newRow(const char *tag);
+
+ typedef void (tst_QScriptValue::*TestFunction)(const char *, const QScriptValue &);
+ void testHelper(TestFunction fun);
+
+ // Generated functions
+
+ void initScriptValues();
+
+ void isArray_initData();
+ void isArray_makeData(const char *expr);
+ void isArray_test(const char *expr, const QScriptValue &value);
+
+ void isBool_initData();
+ void isBool_makeData(const char *expr);
+ void isBool_test(const char *expr, const QScriptValue &value);
+
+ void isBoolean_initData();
+ void isBoolean_makeData(const char *expr);
+ void isBoolean_test(const char *expr, const QScriptValue &value);
+
+ void isDate_initData();
+ void isDate_makeData(const char *expr);
+ void isDate_test(const char *expr, const QScriptValue &value);
+
+ void isError_initData();
+ void isError_makeData(const char *expr);
+ void isError_test(const char *expr, const QScriptValue &value);
+
+ void isFunction_initData();
+ void isFunction_makeData(const char *expr);
+ void isFunction_test(const char *expr, const QScriptValue &value);
+
+ void isNull_initData();
+ void isNull_makeData(const char *expr);
+ void isNull_test(const char *expr, const QScriptValue &value);
+
+ void isNumber_initData();
+ void isNumber_makeData(const char *expr);
+ void isNumber_test(const char *expr, const QScriptValue &value);
+
+ void isObject_initData();
+ void isObject_makeData(const char *expr);
+ void isObject_test(const char *expr, const QScriptValue &value);
+
+ void isQMetaObject_initData();
+ void isQMetaObject_makeData(const char *expr);
+ void isQMetaObject_test(const char *expr, const QScriptValue &value);
+
+ void isQObject_initData();
+ void isQObject_makeData(const char *expr);
+ void isQObject_test(const char *expr, const QScriptValue &value);
+
+ void isRegExp_initData();
+ void isRegExp_makeData(const char *expr);
+ void isRegExp_test(const char *expr, const QScriptValue &value);
+
+ void isString_initData();
+ void isString_makeData(const char *expr);
+ void isString_test(const char *expr, const QScriptValue &value);
+
+ void isUndefined_initData();
+ void isUndefined_makeData(const char *expr);
+ void isUndefined_test(const char *expr, const QScriptValue &value);
+
+ void isValid_initData();
+ void isValid_makeData(const char *expr);
+ void isValid_test(const char *expr, const QScriptValue &value);
+
+ void isVariant_initData();
+ void isVariant_makeData(const char *expr);
+ void isVariant_test(const char *expr, const QScriptValue &value);
+
+ void toBool_initData();
+ void toBool_makeData(const char *);
+ void toBool_test(const char *, const QScriptValue &value);
+
+ void toBoolean_initData();
+ void toBoolean_makeData(const char *);
+ void toBoolean_test(const char *, const QScriptValue &value);
+
+ void toDateTime_initData();
+ void toDateTime_makeData(const char *);
+ void toDateTime_test(const char *, const QScriptValue &value);
+
+ void toInt32_initData();
+ void toInt32_makeData(const char *);
+ void toInt32_test(const char *, const QScriptValue &value);
+
+ void toInteger_initData();
+ void toInteger_makeData(const char *);
+ void toInteger_test(const char *, const QScriptValue &value);
+
+ void toNumber_initData();
+ void toNumber_makeData(const char *);
+ void toNumber_test(const char *, const QScriptValue &value);
+
+ void toQMetaObject_initData();
+ void toQMetaObject_makeData(const char *);
+ void toQMetaObject_test(const char *, const QScriptValue &value);
+
+ void toQObject_initData();
+ void toQObject_makeData(const char *);
+ void toQObject_test(const char *, const QScriptValue &value);
+
+ void toRegExp_initData();
+ void toRegExp_makeData(const char *);
+ void toRegExp_test(const char *, const QScriptValue &value);
+
+ void toString_initData();
+ void toString_makeData(const char *);
+ void toString_test(const char *, const QScriptValue &value);
+
+ void toUInt16_initData();
+ void toUInt16_makeData(const char *);
+ void toUInt16_test(const char *, const QScriptValue &value);
+
+ void toUInt32_initData();
+ void toUInt32_makeData(const char *);
+ void toUInt32_test(const char *, const QScriptValue &value);
+
+ void toVariant_initData();
+ void toVariant_makeData(const char *);
+ void toVariant_test(const char *, const QScriptValue &value);
+
+ void equals_initData();
+ void equals_makeData(const char *);
+ void equals_test(const char *, const QScriptValue &value);
+
+ void strictlyEquals_initData();
+ void strictlyEquals_makeData(const char *);
+ void strictlyEquals_test(const char *, const QScriptValue &value);
+
+ void lessThan_initData();
+ void lessThan_makeData(const char *);
+ void lessThan_test(const char *, const QScriptValue &value);
+
+ void instanceOf_initData();
+ void instanceOf_makeData(const char *);
+ void instanceOf_test(const char *, const QScriptValue &value);
+
+ void assignAndCopyConstruct_initData();
+ void assignAndCopyConstruct_makeData(const char *);
+ void assignAndCopyConstruct_test(const char *, const QScriptValue &value);
+
+ void qscriptvalue_castQString_initData();
+ void qscriptvalue_castQString_makeData(const char *);
+ void qscriptvalue_castQString_test(const char *, const QScriptValue &value);
+
+ void qscriptvalue_castqsreal_initData();
+ void qscriptvalue_castqsreal_makeData(const char *);
+ void qscriptvalue_castqsreal_test(const char *, const QScriptValue &value);
+
+ void qscriptvalue_castbool_initData();
+ void qscriptvalue_castbool_makeData(const char *);
+ void qscriptvalue_castbool_test(const char *, const QScriptValue &value);
+
+ void qscriptvalue_castqint32_initData();
+ void qscriptvalue_castqint32_makeData(const char *);
+ void qscriptvalue_castqint32_test(const char *, const QScriptValue &value);
+
+ void qscriptvalue_castquint32_initData();
+ void qscriptvalue_castquint32_makeData(const char *);
+ void qscriptvalue_castquint32_test(const char *, const QScriptValue &value);
+
+ void qscriptvalue_castquint16_initData();
+ void qscriptvalue_castquint16_makeData(const char *);
+ void qscriptvalue_castquint16_test(const char *, const QScriptValue &value);
+
+private:
+ QScriptEngine *engine;
+ QHash<QString, QScriptValue> m_values;
+ QString m_currentExpression;
+};
+
+#define DEFINE_TEST_FUNCTION(name) \
+void tst_QScriptValue::name##_data() { dataHelper(&tst_QScriptValue::name##_initData, &tst_QScriptValue::name##_makeData); } \
+void tst_QScriptValue::name() { testHelper(&tst_QScriptValue::name##_test); }
+
+#endif
diff --git a/tests/auto/qscriptvalue/tst_qscriptvalue_generated.cpp b/tests/auto/qscriptvalue/tst_qscriptvalue_generated.cpp
new file mode 100644
index 0000000..1d105b4
--- /dev/null
+++ b/tests/auto/qscriptvalue/tst_qscriptvalue_generated.cpp
@@ -0,0 +1,6369 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "tst_qscriptvalue.h"
+
+#define DEFINE_TEST_VALUE(expr) m_values.insert(QString::fromLatin1(#expr), expr)
+
+void tst_QScriptValue::initScriptValues()
+{
+ m_values.clear();
+ if (engine)
+ delete engine;
+ engine = new QScriptEngine;
+ DEFINE_TEST_VALUE(QScriptValue());
+ DEFINE_TEST_VALUE(QScriptValue(QScriptValue::UndefinedValue));
+ DEFINE_TEST_VALUE(QScriptValue(QScriptValue::NullValue));
+ DEFINE_TEST_VALUE(QScriptValue(true));
+ DEFINE_TEST_VALUE(QScriptValue(false));
+ DEFINE_TEST_VALUE(QScriptValue(int(122)));
+ DEFINE_TEST_VALUE(QScriptValue(uint(124)));
+ DEFINE_TEST_VALUE(QScriptValue(0));
+ DEFINE_TEST_VALUE(QScriptValue(0.0));
+ DEFINE_TEST_VALUE(QScriptValue(123.0));
+ DEFINE_TEST_VALUE(QScriptValue(6.37e-8));
+ DEFINE_TEST_VALUE(QScriptValue(-6.37e-8));
+ DEFINE_TEST_VALUE(QScriptValue(0x43211234));
+ DEFINE_TEST_VALUE(QScriptValue(0x10000));
+ DEFINE_TEST_VALUE(QScriptValue(0x10001));
+ DEFINE_TEST_VALUE(QScriptValue(qSNaN()));
+ DEFINE_TEST_VALUE(QScriptValue(qQNaN()));
+ DEFINE_TEST_VALUE(QScriptValue(qInf()));
+ DEFINE_TEST_VALUE(QScriptValue(-qInf()));
+ DEFINE_TEST_VALUE(QScriptValue("NaN"));
+ DEFINE_TEST_VALUE(QScriptValue("Infinity"));
+ DEFINE_TEST_VALUE(QScriptValue("-Infinity"));
+ DEFINE_TEST_VALUE(QScriptValue("ciao"));
+ DEFINE_TEST_VALUE(QScriptValue(QString::fromLatin1("ciao")));
+ DEFINE_TEST_VALUE(QScriptValue(QString("")));
+ DEFINE_TEST_VALUE(QScriptValue(QString()));
+ DEFINE_TEST_VALUE(QScriptValue(QString("0")));
+ DEFINE_TEST_VALUE(QScriptValue(QString("123")));
+ DEFINE_TEST_VALUE(QScriptValue(QString("12.4")));
+ DEFINE_TEST_VALUE(QScriptValue(0, QScriptValue::UndefinedValue));
+ DEFINE_TEST_VALUE(QScriptValue(0, QScriptValue::NullValue));
+ DEFINE_TEST_VALUE(QScriptValue(0, true));
+ DEFINE_TEST_VALUE(QScriptValue(0, false));
+ DEFINE_TEST_VALUE(QScriptValue(0, int(122)));
+ DEFINE_TEST_VALUE(QScriptValue(0, uint(124)));
+ DEFINE_TEST_VALUE(QScriptValue(0, 0));
+ DEFINE_TEST_VALUE(QScriptValue(0, 0.0));
+ DEFINE_TEST_VALUE(QScriptValue(0, 123.0));
+ DEFINE_TEST_VALUE(QScriptValue(0, 6.37e-8));
+ DEFINE_TEST_VALUE(QScriptValue(0, -6.37e-8));
+ DEFINE_TEST_VALUE(QScriptValue(0, 0x43211234));
+ DEFINE_TEST_VALUE(QScriptValue(0, 0x10000));
+ DEFINE_TEST_VALUE(QScriptValue(0, 0x10001));
+ DEFINE_TEST_VALUE(QScriptValue(0, qSNaN()));
+ DEFINE_TEST_VALUE(QScriptValue(0, qQNaN()));
+ DEFINE_TEST_VALUE(QScriptValue(0, qInf()));
+ DEFINE_TEST_VALUE(QScriptValue(0, -qInf()));
+ DEFINE_TEST_VALUE(QScriptValue(0, "NaN"));
+ DEFINE_TEST_VALUE(QScriptValue(0, "Infinity"));
+ DEFINE_TEST_VALUE(QScriptValue(0, "-Infinity"));
+ DEFINE_TEST_VALUE(QScriptValue(0, "ciao"));
+ DEFINE_TEST_VALUE(QScriptValue(0, QString::fromLatin1("ciao")));
+ DEFINE_TEST_VALUE(QScriptValue(0, QString("")));
+ DEFINE_TEST_VALUE(QScriptValue(0, QString()));
+ DEFINE_TEST_VALUE(QScriptValue(0, QString("0")));
+ DEFINE_TEST_VALUE(QScriptValue(0, QString("123")));
+ DEFINE_TEST_VALUE(QScriptValue(0, QString("12.3")));
+ DEFINE_TEST_VALUE(QScriptValue(engine, QScriptValue::UndefinedValue));
+ DEFINE_TEST_VALUE(QScriptValue(engine, QScriptValue::NullValue));
+ DEFINE_TEST_VALUE(QScriptValue(engine, true));
+ DEFINE_TEST_VALUE(QScriptValue(engine, false));
+ DEFINE_TEST_VALUE(QScriptValue(engine, int(122)));
+ DEFINE_TEST_VALUE(QScriptValue(engine, uint(124)));
+ DEFINE_TEST_VALUE(QScriptValue(engine, 0));
+ DEFINE_TEST_VALUE(QScriptValue(engine, 0.0));
+ DEFINE_TEST_VALUE(QScriptValue(engine, 123.0));
+ DEFINE_TEST_VALUE(QScriptValue(engine, 6.37e-8));
+ DEFINE_TEST_VALUE(QScriptValue(engine, -6.37e-8));
+ DEFINE_TEST_VALUE(QScriptValue(engine, 0x43211234));
+ DEFINE_TEST_VALUE(QScriptValue(engine, 0x10000));
+ DEFINE_TEST_VALUE(QScriptValue(engine, 0x10001));
+ DEFINE_TEST_VALUE(QScriptValue(engine, qSNaN()));
+ DEFINE_TEST_VALUE(QScriptValue(engine, qQNaN()));
+ DEFINE_TEST_VALUE(QScriptValue(engine, qInf()));
+ DEFINE_TEST_VALUE(QScriptValue(engine, -qInf()));
+ DEFINE_TEST_VALUE(QScriptValue(engine, "NaN"));
+ DEFINE_TEST_VALUE(QScriptValue(engine, "Infinity"));
+ DEFINE_TEST_VALUE(QScriptValue(engine, "-Infinity"));
+ DEFINE_TEST_VALUE(QScriptValue(engine, "ciao"));
+ DEFINE_TEST_VALUE(QScriptValue(engine, QString::fromLatin1("ciao")));
+ DEFINE_TEST_VALUE(QScriptValue(engine, QString("")));
+ DEFINE_TEST_VALUE(QScriptValue(engine, QString()));
+ DEFINE_TEST_VALUE(QScriptValue(engine, QString("0")));
+ DEFINE_TEST_VALUE(QScriptValue(engine, QString("123")));
+ DEFINE_TEST_VALUE(QScriptValue(engine, QString("1.23")));
+ DEFINE_TEST_VALUE(engine->evaluate("[]"));
+ DEFINE_TEST_VALUE(engine->evaluate("{}"));
+ DEFINE_TEST_VALUE(engine->evaluate("Object.prototype"));
+ DEFINE_TEST_VALUE(engine->evaluate("Date.prototype"));
+ DEFINE_TEST_VALUE(engine->evaluate("Array.prototype"));
+ DEFINE_TEST_VALUE(engine->evaluate("Function.prototype"));
+ DEFINE_TEST_VALUE(engine->evaluate("Error.prototype"));
+ DEFINE_TEST_VALUE(engine->evaluate("Object"));
+ DEFINE_TEST_VALUE(engine->evaluate("Array"));
+ DEFINE_TEST_VALUE(engine->evaluate("Number"));
+ DEFINE_TEST_VALUE(engine->evaluate("Function"));
+ DEFINE_TEST_VALUE(engine->evaluate("(function() { return 1; })"));
+ DEFINE_TEST_VALUE(engine->evaluate("(function() { return 'ciao'; })"));
+ DEFINE_TEST_VALUE(engine->evaluate("(function() { throw new Error('foo'); })"));
+ DEFINE_TEST_VALUE(engine->evaluate("/foo/"));
+ DEFINE_TEST_VALUE(engine->evaluate("new Object()"));
+ DEFINE_TEST_VALUE(engine->evaluate("new Array()"));
+ DEFINE_TEST_VALUE(engine->evaluate("new Error()"));
+}
+
+
+void tst_QScriptValue::isValid_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::isValid_makeData(const char* expr)
+{
+ static QSet<QString> isValid;
+ if (isValid.isEmpty()) {
+ isValid << "QScriptValue(QScriptValue::UndefinedValue)"
+ << "QScriptValue(QScriptValue::NullValue)"
+ << "QScriptValue(true)"
+ << "QScriptValue(false)"
+ << "QScriptValue(int(122))"
+ << "QScriptValue(uint(124))"
+ << "QScriptValue(0)"
+ << "QScriptValue(0.0)"
+ << "QScriptValue(123.0)"
+ << "QScriptValue(6.37e-8)"
+ << "QScriptValue(-6.37e-8)"
+ << "QScriptValue(0x43211234)"
+ << "QScriptValue(0x10000)"
+ << "QScriptValue(0x10001)"
+ << "QScriptValue(qSNaN())"
+ << "QScriptValue(qQNaN())"
+ << "QScriptValue(qInf())"
+ << "QScriptValue(-qInf())"
+ << "QScriptValue(\"NaN\")"
+ << "QScriptValue(\"Infinity\")"
+ << "QScriptValue(\"-Infinity\")"
+ << "QScriptValue(\"ciao\")"
+ << "QScriptValue(QString::fromLatin1(\"ciao\"))"
+ << "QScriptValue(QString(\"\"))"
+ << "QScriptValue(QString())"
+ << "QScriptValue(QString(\"0\"))"
+ << "QScriptValue(QString(\"123\"))"
+ << "QScriptValue(QString(\"12.4\"))"
+ << "QScriptValue(0, QScriptValue::UndefinedValue)"
+ << "QScriptValue(0, QScriptValue::NullValue)"
+ << "QScriptValue(0, true)"
+ << "QScriptValue(0, false)"
+ << "QScriptValue(0, int(122))"
+ << "QScriptValue(0, uint(124))"
+ << "QScriptValue(0, 0)"
+ << "QScriptValue(0, 0.0)"
+ << "QScriptValue(0, 123.0)"
+ << "QScriptValue(0, 6.37e-8)"
+ << "QScriptValue(0, -6.37e-8)"
+ << "QScriptValue(0, 0x43211234)"
+ << "QScriptValue(0, 0x10000)"
+ << "QScriptValue(0, 0x10001)"
+ << "QScriptValue(0, qSNaN())"
+ << "QScriptValue(0, qQNaN())"
+ << "QScriptValue(0, qInf())"
+ << "QScriptValue(0, -qInf())"
+ << "QScriptValue(0, \"NaN\")"
+ << "QScriptValue(0, \"Infinity\")"
+ << "QScriptValue(0, \"-Infinity\")"
+ << "QScriptValue(0, \"ciao\")"
+ << "QScriptValue(0, QString::fromLatin1(\"ciao\"))"
+ << "QScriptValue(0, QString(\"\"))"
+ << "QScriptValue(0, QString())"
+ << "QScriptValue(0, QString(\"0\"))"
+ << "QScriptValue(0, QString(\"123\"))"
+ << "QScriptValue(0, QString(\"12.3\"))"
+ << "QScriptValue(engine, QScriptValue::UndefinedValue)"
+ << "QScriptValue(engine, QScriptValue::NullValue)"
+ << "QScriptValue(engine, true)"
+ << "QScriptValue(engine, false)"
+ << "QScriptValue(engine, int(122))"
+ << "QScriptValue(engine, uint(124))"
+ << "QScriptValue(engine, 0)"
+ << "QScriptValue(engine, 0.0)"
+ << "QScriptValue(engine, 123.0)"
+ << "QScriptValue(engine, 6.37e-8)"
+ << "QScriptValue(engine, -6.37e-8)"
+ << "QScriptValue(engine, 0x43211234)"
+ << "QScriptValue(engine, 0x10000)"
+ << "QScriptValue(engine, 0x10001)"
+ << "QScriptValue(engine, qSNaN())"
+ << "QScriptValue(engine, qQNaN())"
+ << "QScriptValue(engine, qInf())"
+ << "QScriptValue(engine, -qInf())"
+ << "QScriptValue(engine, \"NaN\")"
+ << "QScriptValue(engine, \"Infinity\")"
+ << "QScriptValue(engine, \"-Infinity\")"
+ << "QScriptValue(engine, \"ciao\")"
+ << "QScriptValue(engine, QString::fromLatin1(\"ciao\"))"
+ << "QScriptValue(engine, QString(\"\"))"
+ << "QScriptValue(engine, QString())"
+ << "QScriptValue(engine, QString(\"0\"))"
+ << "QScriptValue(engine, QString(\"123\"))"
+ << "QScriptValue(engine, QString(\"1.23\"))"
+ << "engine->evaluate(\"[]\")"
+ << "engine->evaluate(\"{}\")"
+ << "engine->evaluate(\"Object.prototype\")"
+ << "engine->evaluate(\"Date.prototype\")"
+ << "engine->evaluate(\"Array.prototype\")"
+ << "engine->evaluate(\"Function.prototype\")"
+ << "engine->evaluate(\"Error.prototype\")"
+ << "engine->evaluate(\"Object\")"
+ << "engine->evaluate(\"Array\")"
+ << "engine->evaluate(\"Number\")"
+ << "engine->evaluate(\"Function\")"
+ << "engine->evaluate(\"(function() { return 1; })\")"
+ << "engine->evaluate(\"(function() { return 'ciao'; })\")"
+ << "engine->evaluate(\"(function() { throw new Error('foo'); })\")"
+ << "engine->evaluate(\"/foo/\")"
+ << "engine->evaluate(\"new Object()\")"
+ << "engine->evaluate(\"new Array()\")"
+ << "engine->evaluate(\"new Error()\")"
+ ;
+ }
+ newRow(expr) << isValid.contains(expr);
+}
+
+void tst_QScriptValue::isValid_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.isValid(), expected);
+}
+
+DEFINE_TEST_FUNCTION(isValid)
+
+
+void tst_QScriptValue::isBool_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::isBool_makeData(const char* expr)
+{
+ static QSet<QString> isBool;
+ if (isBool.isEmpty()) {
+ isBool << "QScriptValue(true)"
+ << "QScriptValue(false)"
+ << "QScriptValue(0, true)"
+ << "QScriptValue(0, false)"
+ << "QScriptValue(engine, true)"
+ << "QScriptValue(engine, false)"
+ ;
+ }
+ newRow(expr) << isBool.contains(expr);
+}
+
+void tst_QScriptValue::isBool_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.isBool(), expected);
+}
+
+DEFINE_TEST_FUNCTION(isBool)
+
+
+void tst_QScriptValue::isBoolean_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::isBoolean_makeData(const char* expr)
+{
+ static QSet<QString> isBoolean;
+ if (isBoolean.isEmpty()) {
+ isBoolean << "QScriptValue(true)"
+ << "QScriptValue(false)"
+ << "QScriptValue(0, true)"
+ << "QScriptValue(0, false)"
+ << "QScriptValue(engine, true)"
+ << "QScriptValue(engine, false)"
+ ;
+ }
+ newRow(expr) << isBoolean.contains(expr);
+}
+
+void tst_QScriptValue::isBoolean_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.isBoolean(), expected);
+}
+
+DEFINE_TEST_FUNCTION(isBoolean)
+
+
+void tst_QScriptValue::isNumber_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::isNumber_makeData(const char* expr)
+{
+ static QSet<QString> isNumber;
+ if (isNumber.isEmpty()) {
+ isNumber << "QScriptValue(int(122))"
+ << "QScriptValue(uint(124))"
+ << "QScriptValue(0)"
+ << "QScriptValue(0.0)"
+ << "QScriptValue(123.0)"
+ << "QScriptValue(6.37e-8)"
+ << "QScriptValue(-6.37e-8)"
+ << "QScriptValue(0x43211234)"
+ << "QScriptValue(0x10000)"
+ << "QScriptValue(0x10001)"
+ << "QScriptValue(qSNaN())"
+ << "QScriptValue(qQNaN())"
+ << "QScriptValue(qInf())"
+ << "QScriptValue(-qInf())"
+ << "QScriptValue(0, int(122))"
+ << "QScriptValue(0, uint(124))"
+ << "QScriptValue(0, 0)"
+ << "QScriptValue(0, 0.0)"
+ << "QScriptValue(0, 123.0)"
+ << "QScriptValue(0, 6.37e-8)"
+ << "QScriptValue(0, -6.37e-8)"
+ << "QScriptValue(0, 0x43211234)"
+ << "QScriptValue(0, 0x10000)"
+ << "QScriptValue(0, 0x10001)"
+ << "QScriptValue(0, qSNaN())"
+ << "QScriptValue(0, qQNaN())"
+ << "QScriptValue(0, qInf())"
+ << "QScriptValue(0, -qInf())"
+ << "QScriptValue(engine, int(122))"
+ << "QScriptValue(engine, uint(124))"
+ << "QScriptValue(engine, 0)"
+ << "QScriptValue(engine, 0.0)"
+ << "QScriptValue(engine, 123.0)"
+ << "QScriptValue(engine, 6.37e-8)"
+ << "QScriptValue(engine, -6.37e-8)"
+ << "QScriptValue(engine, 0x43211234)"
+ << "QScriptValue(engine, 0x10000)"
+ << "QScriptValue(engine, 0x10001)"
+ << "QScriptValue(engine, qSNaN())"
+ << "QScriptValue(engine, qQNaN())"
+ << "QScriptValue(engine, qInf())"
+ << "QScriptValue(engine, -qInf())"
+ ;
+ }
+ newRow(expr) << isNumber.contains(expr);
+}
+
+void tst_QScriptValue::isNumber_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.isNumber(), expected);
+}
+
+DEFINE_TEST_FUNCTION(isNumber)
+
+
+void tst_QScriptValue::isFunction_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::isFunction_makeData(const char* expr)
+{
+ static QSet<QString> isFunction;
+ if (isFunction.isEmpty()) {
+ isFunction << "engine->evaluate(\"Function.prototype\")"
+ << "engine->evaluate(\"Object\")"
+ << "engine->evaluate(\"Array\")"
+ << "engine->evaluate(\"Number\")"
+ << "engine->evaluate(\"Function\")"
+ << "engine->evaluate(\"(function() { return 1; })\")"
+ << "engine->evaluate(\"(function() { return 'ciao'; })\")"
+ << "engine->evaluate(\"(function() { throw new Error('foo'); })\")"
+ << "engine->evaluate(\"/foo/\")"
+ ;
+ }
+ newRow(expr) << isFunction.contains(expr);
+}
+
+void tst_QScriptValue::isFunction_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.isFunction(), expected);
+}
+
+DEFINE_TEST_FUNCTION(isFunction)
+
+
+void tst_QScriptValue::isNull_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::isNull_makeData(const char* expr)
+{
+ static QSet<QString> isNull;
+ if (isNull.isEmpty()) {
+ isNull << "QScriptValue(QScriptValue::NullValue)"
+ << "QScriptValue(0, QScriptValue::NullValue)"
+ << "QScriptValue(engine, QScriptValue::NullValue)"
+ ;
+ }
+ newRow(expr) << isNull.contains(expr);
+}
+
+void tst_QScriptValue::isNull_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.isNull(), expected);
+}
+
+DEFINE_TEST_FUNCTION(isNull)
+
+
+void tst_QScriptValue::isString_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::isString_makeData(const char* expr)
+{
+ static QSet<QString> isString;
+ if (isString.isEmpty()) {
+ isString << "QScriptValue(\"NaN\")"
+ << "QScriptValue(\"Infinity\")"
+ << "QScriptValue(\"-Infinity\")"
+ << "QScriptValue(\"ciao\")"
+ << "QScriptValue(QString::fromLatin1(\"ciao\"))"
+ << "QScriptValue(QString(\"\"))"
+ << "QScriptValue(QString())"
+ << "QScriptValue(QString(\"0\"))"
+ << "QScriptValue(QString(\"123\"))"
+ << "QScriptValue(QString(\"12.4\"))"
+ << "QScriptValue(0, \"NaN\")"
+ << "QScriptValue(0, \"Infinity\")"
+ << "QScriptValue(0, \"-Infinity\")"
+ << "QScriptValue(0, \"ciao\")"
+ << "QScriptValue(0, QString::fromLatin1(\"ciao\"))"
+ << "QScriptValue(0, QString(\"\"))"
+ << "QScriptValue(0, QString())"
+ << "QScriptValue(0, QString(\"0\"))"
+ << "QScriptValue(0, QString(\"123\"))"
+ << "QScriptValue(0, QString(\"12.3\"))"
+ << "QScriptValue(engine, \"NaN\")"
+ << "QScriptValue(engine, \"Infinity\")"
+ << "QScriptValue(engine, \"-Infinity\")"
+ << "QScriptValue(engine, \"ciao\")"
+ << "QScriptValue(engine, QString::fromLatin1(\"ciao\"))"
+ << "QScriptValue(engine, QString(\"\"))"
+ << "QScriptValue(engine, QString())"
+ << "QScriptValue(engine, QString(\"0\"))"
+ << "QScriptValue(engine, QString(\"123\"))"
+ << "QScriptValue(engine, QString(\"1.23\"))"
+ ;
+ }
+ newRow(expr) << isString.contains(expr);
+}
+
+void tst_QScriptValue::isString_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.isString(), expected);
+}
+
+DEFINE_TEST_FUNCTION(isString)
+
+
+void tst_QScriptValue::isUndefined_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::isUndefined_makeData(const char* expr)
+{
+ static QSet<QString> isUndefined;
+ if (isUndefined.isEmpty()) {
+ isUndefined << "QScriptValue(QScriptValue::UndefinedValue)"
+ << "QScriptValue(0, QScriptValue::UndefinedValue)"
+ << "QScriptValue(engine, QScriptValue::UndefinedValue)"
+ << "engine->evaluate(\"{}\")"
+ ;
+ }
+ newRow(expr) << isUndefined.contains(expr);
+}
+
+void tst_QScriptValue::isUndefined_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.isUndefined(), expected);
+}
+
+DEFINE_TEST_FUNCTION(isUndefined)
+
+
+
+
+
+void tst_QScriptValue::isObject_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::isObject_makeData(const char* expr)
+{
+ static QSet<QString> isObject;
+ if (isObject.isEmpty()) {
+ isObject << "engine->evaluate(\"[]\")"
+ << "engine->evaluate(\"Object.prototype\")"
+ << "engine->evaluate(\"Date.prototype\")"
+ << "engine->evaluate(\"Array.prototype\")"
+ << "engine->evaluate(\"Function.prototype\")"
+ << "engine->evaluate(\"Error.prototype\")"
+ << "engine->evaluate(\"Object\")"
+ << "engine->evaluate(\"Array\")"
+ << "engine->evaluate(\"Number\")"
+ << "engine->evaluate(\"Function\")"
+ << "engine->evaluate(\"(function() { return 1; })\")"
+ << "engine->evaluate(\"(function() { return 'ciao'; })\")"
+ << "engine->evaluate(\"(function() { throw new Error('foo'); })\")"
+ << "engine->evaluate(\"/foo/\")"
+ << "engine->evaluate(\"new Object()\")"
+ << "engine->evaluate(\"new Array()\")"
+ << "engine->evaluate(\"new Error()\")"
+ ;
+ }
+ newRow(expr) << isObject.contains(expr);
+}
+
+void tst_QScriptValue::isObject_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.isObject(), expected);
+}
+
+DEFINE_TEST_FUNCTION(isObject)
+
+
+void tst_QScriptValue::isDate_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::isDate_makeData(const char* expr)
+{
+ static QSet<QString> isDate;
+ if (isDate.isEmpty()) {
+ isDate << "engine->evaluate(\"Date.prototype\")"
+ ;
+ }
+ newRow(expr) << isDate.contains(expr);
+}
+
+void tst_QScriptValue::isDate_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.isDate(), expected);
+}
+
+DEFINE_TEST_FUNCTION(isDate)
+
+
+void tst_QScriptValue::isRegExp_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::isRegExp_makeData(const char* expr)
+{
+ static QSet<QString> isRegExp;
+ if (isRegExp.isEmpty()) {
+ isRegExp << "engine->evaluate(\"/foo/\")"
+ ;
+ }
+ newRow(expr) << isRegExp.contains(expr);
+}
+
+void tst_QScriptValue::isRegExp_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.isRegExp(), expected);
+}
+
+DEFINE_TEST_FUNCTION(isRegExp)
+
+
+void tst_QScriptValue::isArray_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::isArray_makeData(const char* expr)
+{
+ static QSet<QString> isArray;
+ if (isArray.isEmpty()) {
+ isArray << "engine->evaluate(\"[]\")"
+ << "engine->evaluate(\"Array.prototype\")"
+ << "engine->evaluate(\"new Array()\")"
+ ;
+ }
+ newRow(expr) << isArray.contains(expr);
+}
+
+void tst_QScriptValue::isArray_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.isArray(), expected);
+}
+
+DEFINE_TEST_FUNCTION(isArray)
+
+
+void tst_QScriptValue::isError_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::isError_makeData(const char* expr)
+{
+ static QSet<QString> isError;
+ if (isError.isEmpty()) {
+ isError << "engine->evaluate(\"Error.prototype\")"
+ << "engine->evaluate(\"new Error()\")"
+ ;
+ }
+ newRow(expr) << isError.contains(expr);
+}
+
+void tst_QScriptValue::isError_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.isError(), expected);
+}
+
+DEFINE_TEST_FUNCTION(isError)
+
+
+
+void tst_QScriptValue::toString_initData()
+{
+ QTest::addColumn<QString>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::toString_makeData(const char* expr)
+{
+ static QHash<QString, QString> toString;
+ if (toString.isEmpty()) {
+ toString.insert("QScriptValue()", "");
+ toString.insert("QScriptValue(QScriptValue::UndefinedValue)", "undefined");
+ toString.insert("QScriptValue(QScriptValue::NullValue)", "null");
+ toString.insert("QScriptValue(true)", "true");
+ toString.insert("QScriptValue(false)", "false");
+ toString.insert("QScriptValue(int(122))", "122");
+ toString.insert("QScriptValue(uint(124))", "124");
+ toString.insert("QScriptValue(0)", "0");
+ toString.insert("QScriptValue(0.0)", "0");
+ toString.insert("QScriptValue(123.0)", "123");
+ toString.insert("QScriptValue(6.37e-8)", "6.37e-8");
+ toString.insert("QScriptValue(-6.37e-8)", "-6.37e-8");
+ toString.insert("QScriptValue(0x43211234)", "1126240820");
+ toString.insert("QScriptValue(0x10000)", "65536");
+ toString.insert("QScriptValue(0x10001)", "65537");
+ toString.insert("QScriptValue(qSNaN())", "NaN");
+ toString.insert("QScriptValue(qQNaN())", "NaN");
+ toString.insert("QScriptValue(qInf())", "Infinity");
+ toString.insert("QScriptValue(-qInf())", "-Infinity");
+ toString.insert("QScriptValue(\"NaN\")", "NaN");
+ toString.insert("QScriptValue(\"Infinity\")", "Infinity");
+ toString.insert("QScriptValue(\"-Infinity\")", "-Infinity");
+ toString.insert("QScriptValue(\"ciao\")", "ciao");
+ toString.insert("QScriptValue(QString::fromLatin1(\"ciao\"))", "ciao");
+ toString.insert("QScriptValue(QString(\"\"))", "");
+ toString.insert("QScriptValue(QString())", "");
+ toString.insert("QScriptValue(QString(\"0\"))", "0");
+ toString.insert("QScriptValue(QString(\"123\"))", "123");
+ toString.insert("QScriptValue(QString(\"12.4\"))", "12.4");
+ toString.insert("QScriptValue(0, QScriptValue::UndefinedValue)", "undefined");
+ toString.insert("QScriptValue(0, QScriptValue::NullValue)", "null");
+ toString.insert("QScriptValue(0, true)", "true");
+ toString.insert("QScriptValue(0, false)", "false");
+ toString.insert("QScriptValue(0, int(122))", "122");
+ toString.insert("QScriptValue(0, uint(124))", "124");
+ toString.insert("QScriptValue(0, 0)", "0");
+ toString.insert("QScriptValue(0, 0.0)", "0");
+ toString.insert("QScriptValue(0, 123.0)", "123");
+ toString.insert("QScriptValue(0, 6.37e-8)", "6.37e-8");
+ toString.insert("QScriptValue(0, -6.37e-8)", "-6.37e-8");
+ toString.insert("QScriptValue(0, 0x43211234)", "1126240820");
+ toString.insert("QScriptValue(0, 0x10000)", "65536");
+ toString.insert("QScriptValue(0, 0x10001)", "65537");
+ toString.insert("QScriptValue(0, qSNaN())", "NaN");
+ toString.insert("QScriptValue(0, qQNaN())", "NaN");
+ toString.insert("QScriptValue(0, qInf())", "Infinity");
+ toString.insert("QScriptValue(0, -qInf())", "-Infinity");
+ toString.insert("QScriptValue(0, \"NaN\")", "NaN");
+ toString.insert("QScriptValue(0, \"Infinity\")", "Infinity");
+ toString.insert("QScriptValue(0, \"-Infinity\")", "-Infinity");
+ toString.insert("QScriptValue(0, \"ciao\")", "ciao");
+ toString.insert("QScriptValue(0, QString::fromLatin1(\"ciao\"))", "ciao");
+ toString.insert("QScriptValue(0, QString(\"\"))", "");
+ toString.insert("QScriptValue(0, QString())", "");
+ toString.insert("QScriptValue(0, QString(\"0\"))", "0");
+ toString.insert("QScriptValue(0, QString(\"123\"))", "123");
+ toString.insert("QScriptValue(0, QString(\"12.3\"))", "12.3");
+ toString.insert("QScriptValue(engine, QScriptValue::UndefinedValue)", "undefined");
+ toString.insert("QScriptValue(engine, QScriptValue::NullValue)", "null");
+ toString.insert("QScriptValue(engine, true)", "true");
+ toString.insert("QScriptValue(engine, false)", "false");
+ toString.insert("QScriptValue(engine, int(122))", "122");
+ toString.insert("QScriptValue(engine, uint(124))", "124");
+ toString.insert("QScriptValue(engine, 0)", "0");
+ toString.insert("QScriptValue(engine, 0.0)", "0");
+ toString.insert("QScriptValue(engine, 123.0)", "123");
+ toString.insert("QScriptValue(engine, 6.37e-8)", "6.37e-8");
+ toString.insert("QScriptValue(engine, -6.37e-8)", "-6.37e-8");
+ toString.insert("QScriptValue(engine, 0x43211234)", "1126240820");
+ toString.insert("QScriptValue(engine, 0x10000)", "65536");
+ toString.insert("QScriptValue(engine, 0x10001)", "65537");
+ toString.insert("QScriptValue(engine, qSNaN())", "NaN");
+ toString.insert("QScriptValue(engine, qQNaN())", "NaN");
+ toString.insert("QScriptValue(engine, qInf())", "Infinity");
+ toString.insert("QScriptValue(engine, -qInf())", "-Infinity");
+ toString.insert("QScriptValue(engine, \"NaN\")", "NaN");
+ toString.insert("QScriptValue(engine, \"Infinity\")", "Infinity");
+ toString.insert("QScriptValue(engine, \"-Infinity\")", "-Infinity");
+ toString.insert("QScriptValue(engine, \"ciao\")", "ciao");
+ toString.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\"))", "ciao");
+ toString.insert("QScriptValue(engine, QString(\"\"))", "");
+ toString.insert("QScriptValue(engine, QString())", "");
+ toString.insert("QScriptValue(engine, QString(\"0\"))", "0");
+ toString.insert("QScriptValue(engine, QString(\"123\"))", "123");
+ toString.insert("QScriptValue(engine, QString(\"1.23\"))", "1.23");
+ toString.insert("engine->evaluate(\"[]\")", "");
+ toString.insert("engine->evaluate(\"{}\")", "undefined");
+ toString.insert("engine->evaluate(\"Object.prototype\")", "[object Object]");
+ toString.insert("engine->evaluate(\"Date.prototype\")", "Invalid Date");
+ toString.insert("engine->evaluate(\"Array.prototype\")", "");
+ toString.insert("engine->evaluate(\"Function.prototype\")", "function () {\n [native code]\n}");
+ toString.insert("engine->evaluate(\"Error.prototype\")", "Error: Unknown error");
+ toString.insert("engine->evaluate(\"Object\")", "function Object() {\n [native code]\n}");
+ toString.insert("engine->evaluate(\"Array\")", "function Array() {\n [native code]\n}");
+ toString.insert("engine->evaluate(\"Number\")", "function Number() {\n [native code]\n}");
+ toString.insert("engine->evaluate(\"Function\")", "function Function() {\n [native code]\n}");
+ toString.insert("engine->evaluate(\"(function() { return 1; })\")", "function () { return 1; }");
+ toString.insert("engine->evaluate(\"(function() { return 'ciao'; })\")", "function () { return 'ciao'; }");
+ toString.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\")", "function () { throw new Error('foo'); }");
+ toString.insert("engine->evaluate(\"/foo/\")", "/foo/");
+ toString.insert("engine->evaluate(\"new Object()\")", "[object Object]");
+ toString.insert("engine->evaluate(\"new Array()\")", "");
+ toString.insert("engine->evaluate(\"new Error()\")", "Error: Unknown error");
+ }
+ newRow(expr) << toString.value(expr);
+}
+
+void tst_QScriptValue::toString_test(const char*, const QScriptValue& value)
+{
+ QFETCH(QString, expected);
+ QCOMPARE(value.toString(), expected);
+}
+
+DEFINE_TEST_FUNCTION(toString)
+
+
+void tst_QScriptValue::toNumber_initData()
+{
+ QTest::addColumn<qsreal>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::toNumber_makeData(const char* expr)
+{
+ static QHash<QString, qsreal> toNumber;
+ if (toNumber.isEmpty()) {
+ toNumber.insert("QScriptValue()", 0);
+ toNumber.insert("QScriptValue(QScriptValue::UndefinedValue)", qQNaN());
+ toNumber.insert("QScriptValue(QScriptValue::NullValue)", 0);
+ toNumber.insert("QScriptValue(true)", 1);
+ toNumber.insert("QScriptValue(false)", 0);
+ toNumber.insert("QScriptValue(int(122))", 122);
+ toNumber.insert("QScriptValue(uint(124))", 124);
+ toNumber.insert("QScriptValue(0)", 0);
+ toNumber.insert("QScriptValue(0.0)", 0);
+ toNumber.insert("QScriptValue(123.0)", 123);
+ toNumber.insert("QScriptValue(6.37e-8)", 6.369999999999999e-08);
+ toNumber.insert("QScriptValue(-6.37e-8)", -6.369999999999999e-08);
+ toNumber.insert("QScriptValue(0x43211234)", 1126240820);
+ toNumber.insert("QScriptValue(0x10000)", 65536);
+ toNumber.insert("QScriptValue(0x10001)", 65537);
+ toNumber.insert("QScriptValue(qSNaN())", qQNaN());
+ toNumber.insert("QScriptValue(qQNaN())", qQNaN());
+ toNumber.insert("QScriptValue(qInf())", qInf());
+ toNumber.insert("QScriptValue(-qInf())", qInf());
+ toNumber.insert("QScriptValue(\"NaN\")", qQNaN());
+ toNumber.insert("QScriptValue(\"Infinity\")", qInf());
+ toNumber.insert("QScriptValue(\"-Infinity\")", qInf());
+ toNumber.insert("QScriptValue(\"ciao\")", qQNaN());
+ toNumber.insert("QScriptValue(QString::fromLatin1(\"ciao\"))", qQNaN());
+ toNumber.insert("QScriptValue(QString(\"\"))", 0);
+ toNumber.insert("QScriptValue(QString())", 0);
+ toNumber.insert("QScriptValue(QString(\"0\"))", 0);
+ toNumber.insert("QScriptValue(QString(\"123\"))", 123);
+ toNumber.insert("QScriptValue(QString(\"12.4\"))", 12.4);
+ toNumber.insert("QScriptValue(0, QScriptValue::UndefinedValue)", qQNaN());
+ toNumber.insert("QScriptValue(0, QScriptValue::NullValue)", 0);
+ toNumber.insert("QScriptValue(0, true)", 1);
+ toNumber.insert("QScriptValue(0, false)", 0);
+ toNumber.insert("QScriptValue(0, int(122))", 122);
+ toNumber.insert("QScriptValue(0, uint(124))", 124);
+ toNumber.insert("QScriptValue(0, 0)", 0);
+ toNumber.insert("QScriptValue(0, 0.0)", 0);
+ toNumber.insert("QScriptValue(0, 123.0)", 123);
+ toNumber.insert("QScriptValue(0, 6.37e-8)", 6.369999999999999e-08);
+ toNumber.insert("QScriptValue(0, -6.37e-8)", -6.369999999999999e-08);
+ toNumber.insert("QScriptValue(0, 0x43211234)", 1126240820);
+ toNumber.insert("QScriptValue(0, 0x10000)", 65536);
+ toNumber.insert("QScriptValue(0, 0x10001)", 65537);
+ toNumber.insert("QScriptValue(0, qSNaN())", qQNaN());
+ toNumber.insert("QScriptValue(0, qQNaN())", qQNaN());
+ toNumber.insert("QScriptValue(0, qInf())", qInf());
+ toNumber.insert("QScriptValue(0, -qInf())", qInf());
+ toNumber.insert("QScriptValue(0, \"NaN\")", qQNaN());
+ toNumber.insert("QScriptValue(0, \"Infinity\")", qInf());
+ toNumber.insert("QScriptValue(0, \"-Infinity\")", qInf());
+ toNumber.insert("QScriptValue(0, \"ciao\")", qQNaN());
+ toNumber.insert("QScriptValue(0, QString::fromLatin1(\"ciao\"))", qQNaN());
+ toNumber.insert("QScriptValue(0, QString(\"\"))", 0);
+ toNumber.insert("QScriptValue(0, QString())", 0);
+ toNumber.insert("QScriptValue(0, QString(\"0\"))", 0);
+ toNumber.insert("QScriptValue(0, QString(\"123\"))", 123);
+ toNumber.insert("QScriptValue(0, QString(\"12.3\"))", 12.3);
+ toNumber.insert("QScriptValue(engine, QScriptValue::UndefinedValue)", qQNaN());
+ toNumber.insert("QScriptValue(engine, QScriptValue::NullValue)", 0);
+ toNumber.insert("QScriptValue(engine, true)", 1);
+ toNumber.insert("QScriptValue(engine, false)", 0);
+ toNumber.insert("QScriptValue(engine, int(122))", 122);
+ toNumber.insert("QScriptValue(engine, uint(124))", 124);
+ toNumber.insert("QScriptValue(engine, 0)", 0);
+ toNumber.insert("QScriptValue(engine, 0.0)", 0);
+ toNumber.insert("QScriptValue(engine, 123.0)", 123);
+ toNumber.insert("QScriptValue(engine, 6.37e-8)", 6.369999999999999e-08);
+ toNumber.insert("QScriptValue(engine, -6.37e-8)", -6.369999999999999e-08);
+ toNumber.insert("QScriptValue(engine, 0x43211234)", 1126240820);
+ toNumber.insert("QScriptValue(engine, 0x10000)", 65536);
+ toNumber.insert("QScriptValue(engine, 0x10001)", 65537);
+ toNumber.insert("QScriptValue(engine, qSNaN())", qQNaN());
+ toNumber.insert("QScriptValue(engine, qQNaN())", qQNaN());
+ toNumber.insert("QScriptValue(engine, qInf())", qInf());
+ toNumber.insert("QScriptValue(engine, -qInf())", qInf());
+ toNumber.insert("QScriptValue(engine, \"NaN\")", qQNaN());
+ toNumber.insert("QScriptValue(engine, \"Infinity\")", qInf());
+ toNumber.insert("QScriptValue(engine, \"-Infinity\")", qInf());
+ toNumber.insert("QScriptValue(engine, \"ciao\")", qQNaN());
+ toNumber.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\"))", qQNaN());
+ toNumber.insert("QScriptValue(engine, QString(\"\"))", 0);
+ toNumber.insert("QScriptValue(engine, QString())", 0);
+ toNumber.insert("QScriptValue(engine, QString(\"0\"))", 0);
+ toNumber.insert("QScriptValue(engine, QString(\"123\"))", 123);
+ toNumber.insert("QScriptValue(engine, QString(\"1.23\"))", 1.23);
+ toNumber.insert("engine->evaluate(\"[]\")", 0);
+ toNumber.insert("engine->evaluate(\"{}\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"Object.prototype\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"Date.prototype\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"Array.prototype\")", 0);
+ toNumber.insert("engine->evaluate(\"Function.prototype\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"Error.prototype\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"Object\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"Array\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"Number\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"Function\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"(function() { return 1; })\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"(function() { return 'ciao'; })\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"/foo/\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"new Object()\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"new Array()\")", 0);
+ toNumber.insert("engine->evaluate(\"new Error()\")", qQNaN());
+ }
+ newRow(expr) << toNumber.value(expr);
+}
+
+void tst_QScriptValue::toNumber_test(const char*, const QScriptValue& value)
+{
+ QFETCH(qsreal, expected);
+ if (qIsNaN(expected)) {
+ QVERIFY(qIsNaN(value.toNumber()));
+ return;
+ }
+ if (qIsInf(expected)) {
+ QVERIFY(qIsInf(value.toNumber()));
+ return;
+ }
+ QCOMPARE(value.toNumber(), expected);
+}
+
+DEFINE_TEST_FUNCTION(toNumber)
+
+
+void tst_QScriptValue::toBool_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::toBool_makeData(const char* expr)
+{
+ static QHash<QString, bool> toBool;
+ if (toBool.isEmpty()) {
+ toBool.insert("QScriptValue()", false);
+ toBool.insert("QScriptValue(QScriptValue::UndefinedValue)", false);
+ toBool.insert("QScriptValue(QScriptValue::NullValue)", false);
+ toBool.insert("QScriptValue(true)", true);
+ toBool.insert("QScriptValue(false)", false);
+ toBool.insert("QScriptValue(int(122))", true);
+ toBool.insert("QScriptValue(uint(124))", true);
+ toBool.insert("QScriptValue(0)", false);
+ toBool.insert("QScriptValue(0.0)", false);
+ toBool.insert("QScriptValue(123.0)", true);
+ toBool.insert("QScriptValue(6.37e-8)", true);
+ toBool.insert("QScriptValue(-6.37e-8)", true);
+ toBool.insert("QScriptValue(0x43211234)", true);
+ toBool.insert("QScriptValue(0x10000)", true);
+ toBool.insert("QScriptValue(0x10001)", true);
+ toBool.insert("QScriptValue(qSNaN())", false);
+ toBool.insert("QScriptValue(qQNaN())", false);
+ toBool.insert("QScriptValue(qInf())", true);
+ toBool.insert("QScriptValue(-qInf())", true);
+ toBool.insert("QScriptValue(\"NaN\")", true);
+ toBool.insert("QScriptValue(\"Infinity\")", true);
+ toBool.insert("QScriptValue(\"-Infinity\")", true);
+ toBool.insert("QScriptValue(\"ciao\")", true);
+ toBool.insert("QScriptValue(QString::fromLatin1(\"ciao\"))", true);
+ toBool.insert("QScriptValue(QString(\"\"))", false);
+ toBool.insert("QScriptValue(QString())", false);
+ toBool.insert("QScriptValue(QString(\"0\"))", true);
+ toBool.insert("QScriptValue(QString(\"123\"))", true);
+ toBool.insert("QScriptValue(QString(\"12.4\"))", true);
+ toBool.insert("QScriptValue(0, QScriptValue::UndefinedValue)", false);
+ toBool.insert("QScriptValue(0, QScriptValue::NullValue)", false);
+ toBool.insert("QScriptValue(0, true)", true);
+ toBool.insert("QScriptValue(0, false)", false);
+ toBool.insert("QScriptValue(0, int(122))", true);
+ toBool.insert("QScriptValue(0, uint(124))", true);
+ toBool.insert("QScriptValue(0, 0)", false);
+ toBool.insert("QScriptValue(0, 0.0)", false);
+ toBool.insert("QScriptValue(0, 123.0)", true);
+ toBool.insert("QScriptValue(0, 6.37e-8)", true);
+ toBool.insert("QScriptValue(0, -6.37e-8)", true);
+ toBool.insert("QScriptValue(0, 0x43211234)", true);
+ toBool.insert("QScriptValue(0, 0x10000)", true);
+ toBool.insert("QScriptValue(0, 0x10001)", true);
+ toBool.insert("QScriptValue(0, qSNaN())", false);
+ toBool.insert("QScriptValue(0, qQNaN())", false);
+ toBool.insert("QScriptValue(0, qInf())", true);
+ toBool.insert("QScriptValue(0, -qInf())", true);
+ toBool.insert("QScriptValue(0, \"NaN\")", true);
+ toBool.insert("QScriptValue(0, \"Infinity\")", true);
+ toBool.insert("QScriptValue(0, \"-Infinity\")", true);
+ toBool.insert("QScriptValue(0, \"ciao\")", true);
+ toBool.insert("QScriptValue(0, QString::fromLatin1(\"ciao\"))", true);
+ toBool.insert("QScriptValue(0, QString(\"\"))", false);
+ toBool.insert("QScriptValue(0, QString())", false);
+ toBool.insert("QScriptValue(0, QString(\"0\"))", true);
+ toBool.insert("QScriptValue(0, QString(\"123\"))", true);
+ toBool.insert("QScriptValue(0, QString(\"12.3\"))", true);
+ toBool.insert("QScriptValue(engine, QScriptValue::UndefinedValue)", false);
+ toBool.insert("QScriptValue(engine, QScriptValue::NullValue)", false);
+ toBool.insert("QScriptValue(engine, true)", true);
+ toBool.insert("QScriptValue(engine, false)", false);
+ toBool.insert("QScriptValue(engine, int(122))", true);
+ toBool.insert("QScriptValue(engine, uint(124))", true);
+ toBool.insert("QScriptValue(engine, 0)", false);
+ toBool.insert("QScriptValue(engine, 0.0)", false);
+ toBool.insert("QScriptValue(engine, 123.0)", true);
+ toBool.insert("QScriptValue(engine, 6.37e-8)", true);
+ toBool.insert("QScriptValue(engine, -6.37e-8)", true);
+ toBool.insert("QScriptValue(engine, 0x43211234)", true);
+ toBool.insert("QScriptValue(engine, 0x10000)", true);
+ toBool.insert("QScriptValue(engine, 0x10001)", true);
+ toBool.insert("QScriptValue(engine, qSNaN())", false);
+ toBool.insert("QScriptValue(engine, qQNaN())", false);
+ toBool.insert("QScriptValue(engine, qInf())", true);
+ toBool.insert("QScriptValue(engine, -qInf())", true);
+ toBool.insert("QScriptValue(engine, \"NaN\")", true);
+ toBool.insert("QScriptValue(engine, \"Infinity\")", true);
+ toBool.insert("QScriptValue(engine, \"-Infinity\")", true);
+ toBool.insert("QScriptValue(engine, \"ciao\")", true);
+ toBool.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\"))", true);
+ toBool.insert("QScriptValue(engine, QString(\"\"))", false);
+ toBool.insert("QScriptValue(engine, QString())", false);
+ toBool.insert("QScriptValue(engine, QString(\"0\"))", true);
+ toBool.insert("QScriptValue(engine, QString(\"123\"))", true);
+ toBool.insert("QScriptValue(engine, QString(\"1.23\"))", true);
+ toBool.insert("engine->evaluate(\"[]\")", true);
+ toBool.insert("engine->evaluate(\"{}\")", false);
+ toBool.insert("engine->evaluate(\"Object.prototype\")", true);
+ toBool.insert("engine->evaluate(\"Date.prototype\")", true);
+ toBool.insert("engine->evaluate(\"Array.prototype\")", true);
+ toBool.insert("engine->evaluate(\"Function.prototype\")", true);
+ toBool.insert("engine->evaluate(\"Error.prototype\")", true);
+ toBool.insert("engine->evaluate(\"Object\")", true);
+ toBool.insert("engine->evaluate(\"Array\")", true);
+ toBool.insert("engine->evaluate(\"Number\")", true);
+ toBool.insert("engine->evaluate(\"Function\")", true);
+ toBool.insert("engine->evaluate(\"(function() { return 1; })\")", true);
+ toBool.insert("engine->evaluate(\"(function() { return 'ciao'; })\")", true);
+ toBool.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\")", true);
+ toBool.insert("engine->evaluate(\"/foo/\")", true);
+ toBool.insert("engine->evaluate(\"new Object()\")", true);
+ toBool.insert("engine->evaluate(\"new Array()\")", true);
+ toBool.insert("engine->evaluate(\"new Error()\")", true);
+ }
+ newRow(expr) << toBool.value(expr);
+}
+
+void tst_QScriptValue::toBool_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.toBool(), expected);
+}
+
+DEFINE_TEST_FUNCTION(toBool)
+
+
+void tst_QScriptValue::toBoolean_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::toBoolean_makeData(const char* expr)
+{
+ static QHash<QString, bool> toBoolean;
+ if (toBoolean.isEmpty()) {
+ toBoolean.insert("QScriptValue()", false);
+ toBoolean.insert("QScriptValue(QScriptValue::UndefinedValue)", false);
+ toBoolean.insert("QScriptValue(QScriptValue::NullValue)", false);
+ toBoolean.insert("QScriptValue(true)", true);
+ toBoolean.insert("QScriptValue(false)", false);
+ toBoolean.insert("QScriptValue(int(122))", true);
+ toBoolean.insert("QScriptValue(uint(124))", true);
+ toBoolean.insert("QScriptValue(0)", false);
+ toBoolean.insert("QScriptValue(0.0)", false);
+ toBoolean.insert("QScriptValue(123.0)", true);
+ toBoolean.insert("QScriptValue(6.37e-8)", true);
+ toBoolean.insert("QScriptValue(-6.37e-8)", true);
+ toBoolean.insert("QScriptValue(0x43211234)", true);
+ toBoolean.insert("QScriptValue(0x10000)", true);
+ toBoolean.insert("QScriptValue(0x10001)", true);
+ toBoolean.insert("QScriptValue(qSNaN())", false);
+ toBoolean.insert("QScriptValue(qQNaN())", false);
+ toBoolean.insert("QScriptValue(qInf())", true);
+ toBoolean.insert("QScriptValue(-qInf())", true);
+ toBoolean.insert("QScriptValue(\"NaN\")", true);
+ toBoolean.insert("QScriptValue(\"Infinity\")", true);
+ toBoolean.insert("QScriptValue(\"-Infinity\")", true);
+ toBoolean.insert("QScriptValue(\"ciao\")", true);
+ toBoolean.insert("QScriptValue(QString::fromLatin1(\"ciao\"))", true);
+ toBoolean.insert("QScriptValue(QString(\"\"))", false);
+ toBoolean.insert("QScriptValue(QString())", false);
+ toBoolean.insert("QScriptValue(QString(\"0\"))", true);
+ toBoolean.insert("QScriptValue(QString(\"123\"))", true);
+ toBoolean.insert("QScriptValue(QString(\"12.4\"))", true);
+ toBoolean.insert("QScriptValue(0, QScriptValue::UndefinedValue)", false);
+ toBoolean.insert("QScriptValue(0, QScriptValue::NullValue)", false);
+ toBoolean.insert("QScriptValue(0, true)", true);
+ toBoolean.insert("QScriptValue(0, false)", false);
+ toBoolean.insert("QScriptValue(0, int(122))", true);
+ toBoolean.insert("QScriptValue(0, uint(124))", true);
+ toBoolean.insert("QScriptValue(0, 0)", false);
+ toBoolean.insert("QScriptValue(0, 0.0)", false);
+ toBoolean.insert("QScriptValue(0, 123.0)", true);
+ toBoolean.insert("QScriptValue(0, 6.37e-8)", true);
+ toBoolean.insert("QScriptValue(0, -6.37e-8)", true);
+ toBoolean.insert("QScriptValue(0, 0x43211234)", true);
+ toBoolean.insert("QScriptValue(0, 0x10000)", true);
+ toBoolean.insert("QScriptValue(0, 0x10001)", true);
+ toBoolean.insert("QScriptValue(0, qSNaN())", false);
+ toBoolean.insert("QScriptValue(0, qQNaN())", false);
+ toBoolean.insert("QScriptValue(0, qInf())", true);
+ toBoolean.insert("QScriptValue(0, -qInf())", true);
+ toBoolean.insert("QScriptValue(0, \"NaN\")", true);
+ toBoolean.insert("QScriptValue(0, \"Infinity\")", true);
+ toBoolean.insert("QScriptValue(0, \"-Infinity\")", true);
+ toBoolean.insert("QScriptValue(0, \"ciao\")", true);
+ toBoolean.insert("QScriptValue(0, QString::fromLatin1(\"ciao\"))", true);
+ toBoolean.insert("QScriptValue(0, QString(\"\"))", false);
+ toBoolean.insert("QScriptValue(0, QString())", false);
+ toBoolean.insert("QScriptValue(0, QString(\"0\"))", true);
+ toBoolean.insert("QScriptValue(0, QString(\"123\"))", true);
+ toBoolean.insert("QScriptValue(0, QString(\"12.3\"))", true);
+ toBoolean.insert("QScriptValue(engine, QScriptValue::UndefinedValue)", false);
+ toBoolean.insert("QScriptValue(engine, QScriptValue::NullValue)", false);
+ toBoolean.insert("QScriptValue(engine, true)", true);
+ toBoolean.insert("QScriptValue(engine, false)", false);
+ toBoolean.insert("QScriptValue(engine, int(122))", true);
+ toBoolean.insert("QScriptValue(engine, uint(124))", true);
+ toBoolean.insert("QScriptValue(engine, 0)", false);
+ toBoolean.insert("QScriptValue(engine, 0.0)", false);
+ toBoolean.insert("QScriptValue(engine, 123.0)", true);
+ toBoolean.insert("QScriptValue(engine, 6.37e-8)", true);
+ toBoolean.insert("QScriptValue(engine, -6.37e-8)", true);
+ toBoolean.insert("QScriptValue(engine, 0x43211234)", true);
+ toBoolean.insert("QScriptValue(engine, 0x10000)", true);
+ toBoolean.insert("QScriptValue(engine, 0x10001)", true);
+ toBoolean.insert("QScriptValue(engine, qSNaN())", false);
+ toBoolean.insert("QScriptValue(engine, qQNaN())", false);
+ toBoolean.insert("QScriptValue(engine, qInf())", true);
+ toBoolean.insert("QScriptValue(engine, -qInf())", true);
+ toBoolean.insert("QScriptValue(engine, \"NaN\")", true);
+ toBoolean.insert("QScriptValue(engine, \"Infinity\")", true);
+ toBoolean.insert("QScriptValue(engine, \"-Infinity\")", true);
+ toBoolean.insert("QScriptValue(engine, \"ciao\")", true);
+ toBoolean.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\"))", true);
+ toBoolean.insert("QScriptValue(engine, QString(\"\"))", false);
+ toBoolean.insert("QScriptValue(engine, QString())", false);
+ toBoolean.insert("QScriptValue(engine, QString(\"0\"))", true);
+ toBoolean.insert("QScriptValue(engine, QString(\"123\"))", true);
+ toBoolean.insert("QScriptValue(engine, QString(\"1.23\"))", true);
+ toBoolean.insert("engine->evaluate(\"[]\")", true);
+ toBoolean.insert("engine->evaluate(\"{}\")", false);
+ toBoolean.insert("engine->evaluate(\"Object.prototype\")", true);
+ toBoolean.insert("engine->evaluate(\"Date.prototype\")", true);
+ toBoolean.insert("engine->evaluate(\"Array.prototype\")", true);
+ toBoolean.insert("engine->evaluate(\"Function.prototype\")", true);
+ toBoolean.insert("engine->evaluate(\"Error.prototype\")", true);
+ toBoolean.insert("engine->evaluate(\"Object\")", true);
+ toBoolean.insert("engine->evaluate(\"Array\")", true);
+ toBoolean.insert("engine->evaluate(\"Number\")", true);
+ toBoolean.insert("engine->evaluate(\"Function\")", true);
+ toBoolean.insert("engine->evaluate(\"(function() { return 1; })\")", true);
+ toBoolean.insert("engine->evaluate(\"(function() { return 'ciao'; })\")", true);
+ toBoolean.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\")", true);
+ toBoolean.insert("engine->evaluate(\"/foo/\")", true);
+ toBoolean.insert("engine->evaluate(\"new Object()\")", true);
+ toBoolean.insert("engine->evaluate(\"new Array()\")", true);
+ toBoolean.insert("engine->evaluate(\"new Error()\")", true);
+ }
+ newRow(expr) << toBoolean.value(expr);
+}
+
+void tst_QScriptValue::toBoolean_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.toBoolean(), expected);
+}
+
+DEFINE_TEST_FUNCTION(toBoolean)
+
+
+void tst_QScriptValue::toInteger_initData()
+{
+ QTest::addColumn<qsreal>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::toInteger_makeData(const char* expr)
+{
+ static QHash<QString, qsreal> toInteger;
+ if (toInteger.isEmpty()) {
+ toInteger.insert("QScriptValue()", 0);
+ toInteger.insert("QScriptValue(QScriptValue::UndefinedValue)", 0);
+ toInteger.insert("QScriptValue(QScriptValue::NullValue)", 0);
+ toInteger.insert("QScriptValue(true)", 1);
+ toInteger.insert("QScriptValue(false)", 0);
+ toInteger.insert("QScriptValue(int(122))", 122);
+ toInteger.insert("QScriptValue(uint(124))", 124);
+ toInteger.insert("QScriptValue(0)", 0);
+ toInteger.insert("QScriptValue(0.0)", 0);
+ toInteger.insert("QScriptValue(123.0)", 123);
+ toInteger.insert("QScriptValue(6.37e-8)", 0);
+ toInteger.insert("QScriptValue(-6.37e-8)", 0);
+ toInteger.insert("QScriptValue(0x43211234)", 1126240820);
+ toInteger.insert("QScriptValue(0x10000)", 65536);
+ toInteger.insert("QScriptValue(0x10001)", 65537);
+ toInteger.insert("QScriptValue(qSNaN())", 0);
+ toInteger.insert("QScriptValue(qQNaN())", 0);
+ toInteger.insert("QScriptValue(qInf())", qInf());
+ toInteger.insert("QScriptValue(-qInf())", qInf());
+ toInteger.insert("QScriptValue(\"NaN\")", 0);
+ toInteger.insert("QScriptValue(\"Infinity\")", qInf());
+ toInteger.insert("QScriptValue(\"-Infinity\")", qInf());
+ toInteger.insert("QScriptValue(\"ciao\")", 0);
+ toInteger.insert("QScriptValue(QString::fromLatin1(\"ciao\"))", 0);
+ toInteger.insert("QScriptValue(QString(\"\"))", 0);
+ toInteger.insert("QScriptValue(QString())", 0);
+ toInteger.insert("QScriptValue(QString(\"0\"))", 0);
+ toInteger.insert("QScriptValue(QString(\"123\"))", 123);
+ toInteger.insert("QScriptValue(QString(\"12.4\"))", 12);
+ toInteger.insert("QScriptValue(0, QScriptValue::UndefinedValue)", 0);
+ toInteger.insert("QScriptValue(0, QScriptValue::NullValue)", 0);
+ toInteger.insert("QScriptValue(0, true)", 1);
+ toInteger.insert("QScriptValue(0, false)", 0);
+ toInteger.insert("QScriptValue(0, int(122))", 122);
+ toInteger.insert("QScriptValue(0, uint(124))", 124);
+ toInteger.insert("QScriptValue(0, 0)", 0);
+ toInteger.insert("QScriptValue(0, 0.0)", 0);
+ toInteger.insert("QScriptValue(0, 123.0)", 123);
+ toInteger.insert("QScriptValue(0, 6.37e-8)", 0);
+ toInteger.insert("QScriptValue(0, -6.37e-8)", 0);
+ toInteger.insert("QScriptValue(0, 0x43211234)", 1126240820);
+ toInteger.insert("QScriptValue(0, 0x10000)", 65536);
+ toInteger.insert("QScriptValue(0, 0x10001)", 65537);
+ toInteger.insert("QScriptValue(0, qSNaN())", 0);
+ toInteger.insert("QScriptValue(0, qQNaN())", 0);
+ toInteger.insert("QScriptValue(0, qInf())", qInf());
+ toInteger.insert("QScriptValue(0, -qInf())", qInf());
+ toInteger.insert("QScriptValue(0, \"NaN\")", 0);
+ toInteger.insert("QScriptValue(0, \"Infinity\")", qInf());
+ toInteger.insert("QScriptValue(0, \"-Infinity\")", qInf());
+ toInteger.insert("QScriptValue(0, \"ciao\")", 0);
+ toInteger.insert("QScriptValue(0, QString::fromLatin1(\"ciao\"))", 0);
+ toInteger.insert("QScriptValue(0, QString(\"\"))", 0);
+ toInteger.insert("QScriptValue(0, QString())", 0);
+ toInteger.insert("QScriptValue(0, QString(\"0\"))", 0);
+ toInteger.insert("QScriptValue(0, QString(\"123\"))", 123);
+ toInteger.insert("QScriptValue(0, QString(\"12.3\"))", 12);
+ toInteger.insert("QScriptValue(engine, QScriptValue::UndefinedValue)", 0);
+ toInteger.insert("QScriptValue(engine, QScriptValue::NullValue)", 0);
+ toInteger.insert("QScriptValue(engine, true)", 1);
+ toInteger.insert("QScriptValue(engine, false)", 0);
+ toInteger.insert("QScriptValue(engine, int(122))", 122);
+ toInteger.insert("QScriptValue(engine, uint(124))", 124);
+ toInteger.insert("QScriptValue(engine, 0)", 0);
+ toInteger.insert("QScriptValue(engine, 0.0)", 0);
+ toInteger.insert("QScriptValue(engine, 123.0)", 123);
+ toInteger.insert("QScriptValue(engine, 6.37e-8)", 0);
+ toInteger.insert("QScriptValue(engine, -6.37e-8)", 0);
+ toInteger.insert("QScriptValue(engine, 0x43211234)", 1126240820);
+ toInteger.insert("QScriptValue(engine, 0x10000)", 65536);
+ toInteger.insert("QScriptValue(engine, 0x10001)", 65537);
+ toInteger.insert("QScriptValue(engine, qSNaN())", 0);
+ toInteger.insert("QScriptValue(engine, qQNaN())", 0);
+ toInteger.insert("QScriptValue(engine, qInf())", qInf());
+ toInteger.insert("QScriptValue(engine, -qInf())", qInf());
+ toInteger.insert("QScriptValue(engine, \"NaN\")", 0);
+ toInteger.insert("QScriptValue(engine, \"Infinity\")", qInf());
+ toInteger.insert("QScriptValue(engine, \"-Infinity\")", qInf());
+ toInteger.insert("QScriptValue(engine, \"ciao\")", 0);
+ toInteger.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\"))", 0);
+ toInteger.insert("QScriptValue(engine, QString(\"\"))", 0);
+ toInteger.insert("QScriptValue(engine, QString())", 0);
+ toInteger.insert("QScriptValue(engine, QString(\"0\"))", 0);
+ toInteger.insert("QScriptValue(engine, QString(\"123\"))", 123);
+ toInteger.insert("QScriptValue(engine, QString(\"1.23\"))", 1);
+ toInteger.insert("engine->evaluate(\"[]\")", 0);
+ toInteger.insert("engine->evaluate(\"{}\")", 0);
+ toInteger.insert("engine->evaluate(\"Object.prototype\")", 0);
+ toInteger.insert("engine->evaluate(\"Date.prototype\")", 0);
+ toInteger.insert("engine->evaluate(\"Array.prototype\")", 0);
+ toInteger.insert("engine->evaluate(\"Function.prototype\")", 0);
+ toInteger.insert("engine->evaluate(\"Error.prototype\")", 0);
+ toInteger.insert("engine->evaluate(\"Object\")", 0);
+ toInteger.insert("engine->evaluate(\"Array\")", 0);
+ toInteger.insert("engine->evaluate(\"Number\")", 0);
+ toInteger.insert("engine->evaluate(\"Function\")", 0);
+ toInteger.insert("engine->evaluate(\"(function() { return 1; })\")", 0);
+ toInteger.insert("engine->evaluate(\"(function() { return 'ciao'; })\")", 0);
+ toInteger.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\")", 0);
+ toInteger.insert("engine->evaluate(\"/foo/\")", 0);
+ toInteger.insert("engine->evaluate(\"new Object()\")", 0);
+ toInteger.insert("engine->evaluate(\"new Array()\")", 0);
+ toInteger.insert("engine->evaluate(\"new Error()\")", 0);
+ }
+ newRow(expr) << toInteger.value(expr);
+}
+
+void tst_QScriptValue::toInteger_test(const char*, const QScriptValue& value)
+{
+ QFETCH(qsreal, expected);
+ if (qIsInf(expected)) {
+ QVERIFY(qIsInf(value.toInteger()));
+ return;
+ }
+ QCOMPARE(value.toInteger(), expected);
+}
+
+DEFINE_TEST_FUNCTION(toInteger)
+
+
+void tst_QScriptValue::toInt32_initData()
+{
+ QTest::addColumn<qint32>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::toInt32_makeData(const char* expr)
+{
+ static QHash<QString, qint32> toInt32;
+ if (toInt32.isEmpty()) {
+ toInt32.insert("QScriptValue()", 0);
+ toInt32.insert("QScriptValue(QScriptValue::UndefinedValue)", 0);
+ toInt32.insert("QScriptValue(QScriptValue::NullValue)", 0);
+ toInt32.insert("QScriptValue(true)", 1);
+ toInt32.insert("QScriptValue(false)", 0);
+ toInt32.insert("QScriptValue(int(122))", 122);
+ toInt32.insert("QScriptValue(uint(124))", 124);
+ toInt32.insert("QScriptValue(0)", 0);
+ toInt32.insert("QScriptValue(0.0)", 0);
+ toInt32.insert("QScriptValue(123.0)", 123);
+ toInt32.insert("QScriptValue(6.37e-8)", 0);
+ toInt32.insert("QScriptValue(-6.37e-8)", 0);
+ toInt32.insert("QScriptValue(0x43211234)", 1126240820);
+ toInt32.insert("QScriptValue(0x10000)", 65536);
+ toInt32.insert("QScriptValue(0x10001)", 65537);
+ toInt32.insert("QScriptValue(qSNaN())", 0);
+ toInt32.insert("QScriptValue(qQNaN())", 0);
+ toInt32.insert("QScriptValue(qInf())", 0);
+ toInt32.insert("QScriptValue(-qInf())", 0);
+ toInt32.insert("QScriptValue(\"NaN\")", 0);
+ toInt32.insert("QScriptValue(\"Infinity\")", 0);
+ toInt32.insert("QScriptValue(\"-Infinity\")", 0);
+ toInt32.insert("QScriptValue(\"ciao\")", 0);
+ toInt32.insert("QScriptValue(QString::fromLatin1(\"ciao\"))", 0);
+ toInt32.insert("QScriptValue(QString(\"\"))", 0);
+ toInt32.insert("QScriptValue(QString())", 0);
+ toInt32.insert("QScriptValue(QString(\"0\"))", 0);
+ toInt32.insert("QScriptValue(QString(\"123\"))", 123);
+ toInt32.insert("QScriptValue(QString(\"12.4\"))", 12);
+ toInt32.insert("QScriptValue(0, QScriptValue::UndefinedValue)", 0);
+ toInt32.insert("QScriptValue(0, QScriptValue::NullValue)", 0);
+ toInt32.insert("QScriptValue(0, true)", 1);
+ toInt32.insert("QScriptValue(0, false)", 0);
+ toInt32.insert("QScriptValue(0, int(122))", 122);
+ toInt32.insert("QScriptValue(0, uint(124))", 124);
+ toInt32.insert("QScriptValue(0, 0)", 0);
+ toInt32.insert("QScriptValue(0, 0.0)", 0);
+ toInt32.insert("QScriptValue(0, 123.0)", 123);
+ toInt32.insert("QScriptValue(0, 6.37e-8)", 0);
+ toInt32.insert("QScriptValue(0, -6.37e-8)", 0);
+ toInt32.insert("QScriptValue(0, 0x43211234)", 1126240820);
+ toInt32.insert("QScriptValue(0, 0x10000)", 65536);
+ toInt32.insert("QScriptValue(0, 0x10001)", 65537);
+ toInt32.insert("QScriptValue(0, qSNaN())", 0);
+ toInt32.insert("QScriptValue(0, qQNaN())", 0);
+ toInt32.insert("QScriptValue(0, qInf())", 0);
+ toInt32.insert("QScriptValue(0, -qInf())", 0);
+ toInt32.insert("QScriptValue(0, \"NaN\")", 0);
+ toInt32.insert("QScriptValue(0, \"Infinity\")", 0);
+ toInt32.insert("QScriptValue(0, \"-Infinity\")", 0);
+ toInt32.insert("QScriptValue(0, \"ciao\")", 0);
+ toInt32.insert("QScriptValue(0, QString::fromLatin1(\"ciao\"))", 0);
+ toInt32.insert("QScriptValue(0, QString(\"\"))", 0);
+ toInt32.insert("QScriptValue(0, QString())", 0);
+ toInt32.insert("QScriptValue(0, QString(\"0\"))", 0);
+ toInt32.insert("QScriptValue(0, QString(\"123\"))", 123);
+ toInt32.insert("QScriptValue(0, QString(\"12.3\"))", 12);
+ toInt32.insert("QScriptValue(engine, QScriptValue::UndefinedValue)", 0);
+ toInt32.insert("QScriptValue(engine, QScriptValue::NullValue)", 0);
+ toInt32.insert("QScriptValue(engine, true)", 1);
+ toInt32.insert("QScriptValue(engine, false)", 0);
+ toInt32.insert("QScriptValue(engine, int(122))", 122);
+ toInt32.insert("QScriptValue(engine, uint(124))", 124);
+ toInt32.insert("QScriptValue(engine, 0)", 0);
+ toInt32.insert("QScriptValue(engine, 0.0)", 0);
+ toInt32.insert("QScriptValue(engine, 123.0)", 123);
+ toInt32.insert("QScriptValue(engine, 6.37e-8)", 0);
+ toInt32.insert("QScriptValue(engine, -6.37e-8)", 0);
+ toInt32.insert("QScriptValue(engine, 0x43211234)", 1126240820);
+ toInt32.insert("QScriptValue(engine, 0x10000)", 65536);
+ toInt32.insert("QScriptValue(engine, 0x10001)", 65537);
+ toInt32.insert("QScriptValue(engine, qSNaN())", 0);
+ toInt32.insert("QScriptValue(engine, qQNaN())", 0);
+ toInt32.insert("QScriptValue(engine, qInf())", 0);
+ toInt32.insert("QScriptValue(engine, -qInf())", 0);
+ toInt32.insert("QScriptValue(engine, \"NaN\")", 0);
+ toInt32.insert("QScriptValue(engine, \"Infinity\")", 0);
+ toInt32.insert("QScriptValue(engine, \"-Infinity\")", 0);
+ toInt32.insert("QScriptValue(engine, \"ciao\")", 0);
+ toInt32.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\"))", 0);
+ toInt32.insert("QScriptValue(engine, QString(\"\"))", 0);
+ toInt32.insert("QScriptValue(engine, QString())", 0);
+ toInt32.insert("QScriptValue(engine, QString(\"0\"))", 0);
+ toInt32.insert("QScriptValue(engine, QString(\"123\"))", 123);
+ toInt32.insert("QScriptValue(engine, QString(\"1.23\"))", 1);
+ toInt32.insert("engine->evaluate(\"[]\")", 0);
+ toInt32.insert("engine->evaluate(\"{}\")", 0);
+ toInt32.insert("engine->evaluate(\"Object.prototype\")", 0);
+ toInt32.insert("engine->evaluate(\"Date.prototype\")", 0);
+ toInt32.insert("engine->evaluate(\"Array.prototype\")", 0);
+ toInt32.insert("engine->evaluate(\"Function.prototype\")", 0);
+ toInt32.insert("engine->evaluate(\"Error.prototype\")", 0);
+ toInt32.insert("engine->evaluate(\"Object\")", 0);
+ toInt32.insert("engine->evaluate(\"Array\")", 0);
+ toInt32.insert("engine->evaluate(\"Number\")", 0);
+ toInt32.insert("engine->evaluate(\"Function\")", 0);
+ toInt32.insert("engine->evaluate(\"(function() { return 1; })\")", 0);
+ toInt32.insert("engine->evaluate(\"(function() { return 'ciao'; })\")", 0);
+ toInt32.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\")", 0);
+ toInt32.insert("engine->evaluate(\"/foo/\")", 0);
+ toInt32.insert("engine->evaluate(\"new Object()\")", 0);
+ toInt32.insert("engine->evaluate(\"new Array()\")", 0);
+ toInt32.insert("engine->evaluate(\"new Error()\")", 0);
+ }
+ newRow(expr) << toInt32.value(expr);
+}
+
+void tst_QScriptValue::toInt32_test(const char*, const QScriptValue& value)
+{
+ QFETCH(qint32, expected);
+ QCOMPARE(value.toInt32(), expected);
+}
+
+DEFINE_TEST_FUNCTION(toInt32)
+
+
+void tst_QScriptValue::toUInt32_initData()
+{
+ QTest::addColumn<quint32>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::toUInt32_makeData(const char* expr)
+{
+ static QHash<QString, quint32> toUInt32;
+ if (toUInt32.isEmpty()) {
+ toUInt32.insert("QScriptValue()", 0);
+ toUInt32.insert("QScriptValue(QScriptValue::UndefinedValue)", 0);
+ toUInt32.insert("QScriptValue(QScriptValue::NullValue)", 0);
+ toUInt32.insert("QScriptValue(true)", 1);
+ toUInt32.insert("QScriptValue(false)", 0);
+ toUInt32.insert("QScriptValue(int(122))", 122);
+ toUInt32.insert("QScriptValue(uint(124))", 124);
+ toUInt32.insert("QScriptValue(0)", 0);
+ toUInt32.insert("QScriptValue(0.0)", 0);
+ toUInt32.insert("QScriptValue(123.0)", 123);
+ toUInt32.insert("QScriptValue(6.37e-8)", 0);
+ toUInt32.insert("QScriptValue(-6.37e-8)", 0);
+ toUInt32.insert("QScriptValue(0x43211234)", 1126240820);
+ toUInt32.insert("QScriptValue(0x10000)", 65536);
+ toUInt32.insert("QScriptValue(0x10001)", 65537);
+ toUInt32.insert("QScriptValue(qSNaN())", 0);
+ toUInt32.insert("QScriptValue(qQNaN())", 0);
+ toUInt32.insert("QScriptValue(qInf())", 0);
+ toUInt32.insert("QScriptValue(-qInf())", 0);
+ toUInt32.insert("QScriptValue(\"NaN\")", 0);
+ toUInt32.insert("QScriptValue(\"Infinity\")", 0);
+ toUInt32.insert("QScriptValue(\"-Infinity\")", 0);
+ toUInt32.insert("QScriptValue(\"ciao\")", 0);
+ toUInt32.insert("QScriptValue(QString::fromLatin1(\"ciao\"))", 0);
+ toUInt32.insert("QScriptValue(QString(\"\"))", 0);
+ toUInt32.insert("QScriptValue(QString())", 0);
+ toUInt32.insert("QScriptValue(QString(\"0\"))", 0);
+ toUInt32.insert("QScriptValue(QString(\"123\"))", 123);
+ toUInt32.insert("QScriptValue(QString(\"12.4\"))", 12);
+ toUInt32.insert("QScriptValue(0, QScriptValue::UndefinedValue)", 0);
+ toUInt32.insert("QScriptValue(0, QScriptValue::NullValue)", 0);
+ toUInt32.insert("QScriptValue(0, true)", 1);
+ toUInt32.insert("QScriptValue(0, false)", 0);
+ toUInt32.insert("QScriptValue(0, int(122))", 122);
+ toUInt32.insert("QScriptValue(0, uint(124))", 124);
+ toUInt32.insert("QScriptValue(0, 0)", 0);
+ toUInt32.insert("QScriptValue(0, 0.0)", 0);
+ toUInt32.insert("QScriptValue(0, 123.0)", 123);
+ toUInt32.insert("QScriptValue(0, 6.37e-8)", 0);
+ toUInt32.insert("QScriptValue(0, -6.37e-8)", 0);
+ toUInt32.insert("QScriptValue(0, 0x43211234)", 1126240820);
+ toUInt32.insert("QScriptValue(0, 0x10000)", 65536);
+ toUInt32.insert("QScriptValue(0, 0x10001)", 65537);
+ toUInt32.insert("QScriptValue(0, qSNaN())", 0);
+ toUInt32.insert("QScriptValue(0, qQNaN())", 0);
+ toUInt32.insert("QScriptValue(0, qInf())", 0);
+ toUInt32.insert("QScriptValue(0, -qInf())", 0);
+ toUInt32.insert("QScriptValue(0, \"NaN\")", 0);
+ toUInt32.insert("QScriptValue(0, \"Infinity\")", 0);
+ toUInt32.insert("QScriptValue(0, \"-Infinity\")", 0);
+ toUInt32.insert("QScriptValue(0, \"ciao\")", 0);
+ toUInt32.insert("QScriptValue(0, QString::fromLatin1(\"ciao\"))", 0);
+ toUInt32.insert("QScriptValue(0, QString(\"\"))", 0);
+ toUInt32.insert("QScriptValue(0, QString())", 0);
+ toUInt32.insert("QScriptValue(0, QString(\"0\"))", 0);
+ toUInt32.insert("QScriptValue(0, QString(\"123\"))", 123);
+ toUInt32.insert("QScriptValue(0, QString(\"12.3\"))", 12);
+ toUInt32.insert("QScriptValue(engine, QScriptValue::UndefinedValue)", 0);
+ toUInt32.insert("QScriptValue(engine, QScriptValue::NullValue)", 0);
+ toUInt32.insert("QScriptValue(engine, true)", 1);
+ toUInt32.insert("QScriptValue(engine, false)", 0);
+ toUInt32.insert("QScriptValue(engine, int(122))", 122);
+ toUInt32.insert("QScriptValue(engine, uint(124))", 124);
+ toUInt32.insert("QScriptValue(engine, 0)", 0);
+ toUInt32.insert("QScriptValue(engine, 0.0)", 0);
+ toUInt32.insert("QScriptValue(engine, 123.0)", 123);
+ toUInt32.insert("QScriptValue(engine, 6.37e-8)", 0);
+ toUInt32.insert("QScriptValue(engine, -6.37e-8)", 0);
+ toUInt32.insert("QScriptValue(engine, 0x43211234)", 1126240820);
+ toUInt32.insert("QScriptValue(engine, 0x10000)", 65536);
+ toUInt32.insert("QScriptValue(engine, 0x10001)", 65537);
+ toUInt32.insert("QScriptValue(engine, qSNaN())", 0);
+ toUInt32.insert("QScriptValue(engine, qQNaN())", 0);
+ toUInt32.insert("QScriptValue(engine, qInf())", 0);
+ toUInt32.insert("QScriptValue(engine, -qInf())", 0);
+ toUInt32.insert("QScriptValue(engine, \"NaN\")", 0);
+ toUInt32.insert("QScriptValue(engine, \"Infinity\")", 0);
+ toUInt32.insert("QScriptValue(engine, \"-Infinity\")", 0);
+ toUInt32.insert("QScriptValue(engine, \"ciao\")", 0);
+ toUInt32.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\"))", 0);
+ toUInt32.insert("QScriptValue(engine, QString(\"\"))", 0);
+ toUInt32.insert("QScriptValue(engine, QString())", 0);
+ toUInt32.insert("QScriptValue(engine, QString(\"0\"))", 0);
+ toUInt32.insert("QScriptValue(engine, QString(\"123\"))", 123);
+ toUInt32.insert("QScriptValue(engine, QString(\"1.23\"))", 1);
+ toUInt32.insert("engine->evaluate(\"[]\")", 0);
+ toUInt32.insert("engine->evaluate(\"{}\")", 0);
+ toUInt32.insert("engine->evaluate(\"Object.prototype\")", 0);
+ toUInt32.insert("engine->evaluate(\"Date.prototype\")", 0);
+ toUInt32.insert("engine->evaluate(\"Array.prototype\")", 0);
+ toUInt32.insert("engine->evaluate(\"Function.prototype\")", 0);
+ toUInt32.insert("engine->evaluate(\"Error.prototype\")", 0);
+ toUInt32.insert("engine->evaluate(\"Object\")", 0);
+ toUInt32.insert("engine->evaluate(\"Array\")", 0);
+ toUInt32.insert("engine->evaluate(\"Number\")", 0);
+ toUInt32.insert("engine->evaluate(\"Function\")", 0);
+ toUInt32.insert("engine->evaluate(\"(function() { return 1; })\")", 0);
+ toUInt32.insert("engine->evaluate(\"(function() { return 'ciao'; })\")", 0);
+ toUInt32.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\")", 0);
+ toUInt32.insert("engine->evaluate(\"/foo/\")", 0);
+ toUInt32.insert("engine->evaluate(\"new Object()\")", 0);
+ toUInt32.insert("engine->evaluate(\"new Array()\")", 0);
+ toUInt32.insert("engine->evaluate(\"new Error()\")", 0);
+ }
+ newRow(expr) << toUInt32.value(expr);
+}
+
+void tst_QScriptValue::toUInt32_test(const char*, const QScriptValue& value)
+{
+ QFETCH(quint32, expected);
+ QCOMPARE(value.toUInt32(), expected);
+}
+
+DEFINE_TEST_FUNCTION(toUInt32)
+
+
+void tst_QScriptValue::toUInt16_initData()
+{
+ QTest::addColumn<quint16>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::toUInt16_makeData(const char* expr)
+{
+ static QHash<QString, quint16> toUInt16;
+ if (toUInt16.isEmpty()) {
+ toUInt16.insert("QScriptValue()", 0);
+ toUInt16.insert("QScriptValue(QScriptValue::UndefinedValue)", 0);
+ toUInt16.insert("QScriptValue(QScriptValue::NullValue)", 0);
+ toUInt16.insert("QScriptValue(true)", 1);
+ toUInt16.insert("QScriptValue(false)", 0);
+ toUInt16.insert("QScriptValue(int(122))", 122);
+ toUInt16.insert("QScriptValue(uint(124))", 124);
+ toUInt16.insert("QScriptValue(0)", 0);
+ toUInt16.insert("QScriptValue(0.0)", 0);
+ toUInt16.insert("QScriptValue(123.0)", 123);
+ toUInt16.insert("QScriptValue(6.37e-8)", 0);
+ toUInt16.insert("QScriptValue(-6.37e-8)", 0);
+ toUInt16.insert("QScriptValue(0x43211234)", 4660);
+ toUInt16.insert("QScriptValue(0x10000)", 0);
+ toUInt16.insert("QScriptValue(0x10001)", 1);
+ toUInt16.insert("QScriptValue(qSNaN())", 0);
+ toUInt16.insert("QScriptValue(qQNaN())", 0);
+ toUInt16.insert("QScriptValue(qInf())", 0);
+ toUInt16.insert("QScriptValue(-qInf())", 0);
+ toUInt16.insert("QScriptValue(\"NaN\")", 0);
+ toUInt16.insert("QScriptValue(\"Infinity\")", 0);
+ toUInt16.insert("QScriptValue(\"-Infinity\")", 0);
+ toUInt16.insert("QScriptValue(\"ciao\")", 0);
+ toUInt16.insert("QScriptValue(QString::fromLatin1(\"ciao\"))", 0);
+ toUInt16.insert("QScriptValue(QString(\"\"))", 0);
+ toUInt16.insert("QScriptValue(QString())", 0);
+ toUInt16.insert("QScriptValue(QString(\"0\"))", 0);
+ toUInt16.insert("QScriptValue(QString(\"123\"))", 123);
+ toUInt16.insert("QScriptValue(QString(\"12.4\"))", 12);
+ toUInt16.insert("QScriptValue(0, QScriptValue::UndefinedValue)", 0);
+ toUInt16.insert("QScriptValue(0, QScriptValue::NullValue)", 0);
+ toUInt16.insert("QScriptValue(0, true)", 1);
+ toUInt16.insert("QScriptValue(0, false)", 0);
+ toUInt16.insert("QScriptValue(0, int(122))", 122);
+ toUInt16.insert("QScriptValue(0, uint(124))", 124);
+ toUInt16.insert("QScriptValue(0, 0)", 0);
+ toUInt16.insert("QScriptValue(0, 0.0)", 0);
+ toUInt16.insert("QScriptValue(0, 123.0)", 123);
+ toUInt16.insert("QScriptValue(0, 6.37e-8)", 0);
+ toUInt16.insert("QScriptValue(0, -6.37e-8)", 0);
+ toUInt16.insert("QScriptValue(0, 0x43211234)", 4660);
+ toUInt16.insert("QScriptValue(0, 0x10000)", 0);
+ toUInt16.insert("QScriptValue(0, 0x10001)", 1);
+ toUInt16.insert("QScriptValue(0, qSNaN())", 0);
+ toUInt16.insert("QScriptValue(0, qQNaN())", 0);
+ toUInt16.insert("QScriptValue(0, qInf())", 0);
+ toUInt16.insert("QScriptValue(0, -qInf())", 0);
+ toUInt16.insert("QScriptValue(0, \"NaN\")", 0);
+ toUInt16.insert("QScriptValue(0, \"Infinity\")", 0);
+ toUInt16.insert("QScriptValue(0, \"-Infinity\")", 0);
+ toUInt16.insert("QScriptValue(0, \"ciao\")", 0);
+ toUInt16.insert("QScriptValue(0, QString::fromLatin1(\"ciao\"))", 0);
+ toUInt16.insert("QScriptValue(0, QString(\"\"))", 0);
+ toUInt16.insert("QScriptValue(0, QString())", 0);
+ toUInt16.insert("QScriptValue(0, QString(\"0\"))", 0);
+ toUInt16.insert("QScriptValue(0, QString(\"123\"))", 123);
+ toUInt16.insert("QScriptValue(0, QString(\"12.3\"))", 12);
+ toUInt16.insert("QScriptValue(engine, QScriptValue::UndefinedValue)", 0);
+ toUInt16.insert("QScriptValue(engine, QScriptValue::NullValue)", 0);
+ toUInt16.insert("QScriptValue(engine, true)", 1);
+ toUInt16.insert("QScriptValue(engine, false)", 0);
+ toUInt16.insert("QScriptValue(engine, int(122))", 122);
+ toUInt16.insert("QScriptValue(engine, uint(124))", 124);
+ toUInt16.insert("QScriptValue(engine, 0)", 0);
+ toUInt16.insert("QScriptValue(engine, 0.0)", 0);
+ toUInt16.insert("QScriptValue(engine, 123.0)", 123);
+ toUInt16.insert("QScriptValue(engine, 6.37e-8)", 0);
+ toUInt16.insert("QScriptValue(engine, -6.37e-8)", 0);
+ toUInt16.insert("QScriptValue(engine, 0x43211234)", 4660);
+ toUInt16.insert("QScriptValue(engine, 0x10000)", 0);
+ toUInt16.insert("QScriptValue(engine, 0x10001)", 1);
+ toUInt16.insert("QScriptValue(engine, qSNaN())", 0);
+ toUInt16.insert("QScriptValue(engine, qQNaN())", 0);
+ toUInt16.insert("QScriptValue(engine, qInf())", 0);
+ toUInt16.insert("QScriptValue(engine, -qInf())", 0);
+ toUInt16.insert("QScriptValue(engine, \"NaN\")", 0);
+ toUInt16.insert("QScriptValue(engine, \"Infinity\")", 0);
+ toUInt16.insert("QScriptValue(engine, \"-Infinity\")", 0);
+ toUInt16.insert("QScriptValue(engine, \"ciao\")", 0);
+ toUInt16.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\"))", 0);
+ toUInt16.insert("QScriptValue(engine, QString(\"\"))", 0);
+ toUInt16.insert("QScriptValue(engine, QString())", 0);
+ toUInt16.insert("QScriptValue(engine, QString(\"0\"))", 0);
+ toUInt16.insert("QScriptValue(engine, QString(\"123\"))", 123);
+ toUInt16.insert("QScriptValue(engine, QString(\"1.23\"))", 1);
+ toUInt16.insert("engine->evaluate(\"[]\")", 0);
+ toUInt16.insert("engine->evaluate(\"{}\")", 0);
+ toUInt16.insert("engine->evaluate(\"Object.prototype\")", 0);
+ toUInt16.insert("engine->evaluate(\"Date.prototype\")", 0);
+ toUInt16.insert("engine->evaluate(\"Array.prototype\")", 0);
+ toUInt16.insert("engine->evaluate(\"Function.prototype\")", 0);
+ toUInt16.insert("engine->evaluate(\"Error.prototype\")", 0);
+ toUInt16.insert("engine->evaluate(\"Object\")", 0);
+ toUInt16.insert("engine->evaluate(\"Array\")", 0);
+ toUInt16.insert("engine->evaluate(\"Number\")", 0);
+ toUInt16.insert("engine->evaluate(\"Function\")", 0);
+ toUInt16.insert("engine->evaluate(\"(function() { return 1; })\")", 0);
+ toUInt16.insert("engine->evaluate(\"(function() { return 'ciao'; })\")", 0);
+ toUInt16.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\")", 0);
+ toUInt16.insert("engine->evaluate(\"/foo/\")", 0);
+ toUInt16.insert("engine->evaluate(\"new Object()\")", 0);
+ toUInt16.insert("engine->evaluate(\"new Array()\")", 0);
+ toUInt16.insert("engine->evaluate(\"new Error()\")", 0);
+ }
+ newRow(expr) << toUInt16.value(expr);
+}
+
+void tst_QScriptValue::toUInt16_test(const char*, const QScriptValue& value)
+{
+ QFETCH(quint16, expected);
+ QCOMPARE(value.toUInt16(), expected);
+}
+
+DEFINE_TEST_FUNCTION(toUInt16)
+
+
+void tst_QScriptValue::equals_initData()
+{
+ QTest::addColumn<QScriptValue>("other");
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::equals_makeData(const char *expr)
+{
+ static QSet<QString> equals;
+ if (equals.isEmpty()) {
+ equals.insert("QScriptValue() <=> QScriptValue()");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(true) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(true) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(true) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(false) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(false) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(0) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(-6.37e-8)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, -6.37e-8)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(0x43211234) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0x43211234) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0x43211234) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0x10001) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0x10001) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0x10001) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(qInf()) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(qInf()) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(qInf()) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(qInf()) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(qInf()) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(qInf()) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(-qInf())");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(\"-Infinity\")");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, -qInf())");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, -qInf())");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(-qInf())");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(\"-Infinity\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, -qInf())");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, -qInf())");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(-6.37e-8)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, -6.37e-8)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(-qInf())");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(\"-Infinity\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, -qInf())");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, -qInf())");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(-qInf())");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(\"-Infinity\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, -qInf())");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, -qInf())");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(-6.37e-8)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, -6.37e-8)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(-qInf())");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(\"-Infinity\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, -qInf())");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, -qInf())");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(-qInf())");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(\"-Infinity\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, -qInf())");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, -qInf())");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(false)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0.0)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(QString(\"\"))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(QString())");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, false)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, 0)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, 0.0)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, QString())");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, false)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, 0)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, 0.0)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, QString())");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"[]\")");
+ equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"{}\") <=> engine->evaluate(\"{}\")");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->evaluate(\"Date.prototype\") <=> engine->evaluate(\"Date.prototype\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(false)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0.0)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(QString(\"\"))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(QString())");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, false)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, 0)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, 0.0)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, QString())");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, false)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, 0)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, 0.0)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, QString())");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("engine->evaluate(\"Function.prototype\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("engine->evaluate(\"Object\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Array\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"Number\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"Function\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"(function() { return 1; })\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"(function() { return 'ciao'; })\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"/foo/\")");
+ equals.insert("engine->evaluate(\"new Object()\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(false)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0.0)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(QString(\"\"))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(QString())");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, false)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, 0)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, 0.0)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, QString())");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, false)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, 0)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, 0.0)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, QString())");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"new Array()\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"new Error()\")");
+ }
+ QHash<QString, QScriptValue>::const_iterator it;
+ for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {
+ QString tag = QString::fromLatin1("%20 <=> %21").arg(expr).arg(it.key());
+ newRow(tag.toLatin1()) << it.value() << equals.contains(tag);
+ }
+}
+
+void tst_QScriptValue::equals_test(const char *, const QScriptValue& value)
+{
+ QFETCH(QScriptValue, other);
+ QFETCH(bool, expected);
+ QCOMPARE(value.equals(other), expected);
+}
+
+DEFINE_TEST_FUNCTION(equals)
+
+
+void tst_QScriptValue::strictlyEquals_initData()
+{
+ QTest::addColumn<QScriptValue>("other");
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::strictlyEquals_makeData(const char *expr)
+{
+ static QSet<QString> equals;
+ if (equals.isEmpty()) {
+ equals.insert("QScriptValue() <=> QScriptValue()");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(true) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(true) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(true) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(-6.37e-8)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, -6.37e-8)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(0x43211234) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0x43211234) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0x43211234) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0x10001) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0x10001) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0x10001) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(qInf()) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(qInf()) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(qInf()) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(-qInf())");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, -qInf())");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, -qInf())");
+ equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(\"-Infinity\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(-6.37e-8)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, -6.37e-8)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(-qInf())");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, -qInf())");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, -qInf())");
+ equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(\"-Infinity\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(-6.37e-8)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, -6.37e-8)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(-qInf())");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, -qInf())");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, -qInf())");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(\"-Infinity\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"[]\")");
+ equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("engine->evaluate(\"{}\") <=> engine->evaluate(\"{}\")");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->evaluate(\"Date.prototype\") <=> engine->evaluate(\"Date.prototype\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("engine->evaluate(\"Function.prototype\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("engine->evaluate(\"Object\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Array\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"Number\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"Function\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"(function() { return 1; })\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"(function() { return 'ciao'; })\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"/foo/\")");
+ equals.insert("engine->evaluate(\"new Object()\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"new Array()\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"new Error()\")");
+ }
+ QHash<QString, QScriptValue>::const_iterator it;
+ for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {
+ QString tag = QString::fromLatin1("%20 <=> %21").arg(expr).arg(it.key());
+ newRow(tag.toLatin1()) << it.value() << equals.contains(tag);
+ }
+}
+
+void tst_QScriptValue::strictlyEquals_test(const char *, const QScriptValue& value)
+{
+ QFETCH(QScriptValue, other);
+ QFETCH(bool, expected);
+ QCOMPARE(value.strictlyEquals(other), expected);
+}
+
+DEFINE_TEST_FUNCTION(strictlyEquals)
+
+
+void tst_QScriptValue::lessThan_initData()
+{
+ QTest::addColumn<QScriptValue>("other");
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::lessThan_makeData(const char *expr)
+{
+ static QSet<QString> equals;
+ if (equals.isEmpty()) {
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(true) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(true) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(true) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(true) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(true) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(true) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(true) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(true) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(true) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(true) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(true) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(true) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(true) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(true) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(true) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(true) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(true) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(true) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(true) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(true) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(true) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(true) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(true) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(true) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(true) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(true) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(true) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(true) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(true) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(true) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(false) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(false) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(false) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(false) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(false) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(false) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(false) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(false) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(int(122)) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(uint(124)) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(123.0) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0x43211234) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0x43211234) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0x43211234) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0x43211234) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0x43211234) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0x43211234) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0x10000) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0x10001) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0x10001) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0x10001) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0x10001) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0x10001) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0x10001) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0x10001) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0x10001) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0x10001) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(-6.37e-8)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, -6.37e-8)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(true)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(false)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(-6.37e-8)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, -6.37e-8)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"/foo/\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(\"ciao\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(\"ciao\") <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(\"ciao\") <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(\"ciao\") <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(\"ciao\") <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(\"ciao\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(\"ciao\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(\"ciao\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(\"-Infinity\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"/foo/\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(\"-Infinity\")");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"/foo/\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(-6.37e-8)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, -6.37e-8)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(true)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(false)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(-6.37e-8)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, -6.37e-8)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"/foo/\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(0, \"ciao\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(0, \"ciao\") <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(0, \"ciao\") <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(0, \"ciao\") <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(0, \"ciao\") <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(0, \"ciao\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(0, \"ciao\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(0, \"ciao\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(\"-Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"/foo/\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(\"-Infinity\")");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"/foo/\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(false)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(-6.37e-8)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(QString(\"\"))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(QString())");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, -6.37e-8)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, QString())");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"[]\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(true)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(false)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0.0)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(-6.37e-8)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, false)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, 0)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, 0.0)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, -6.37e-8)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, 0)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"/foo/\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(\"-Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"/foo/\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(\"-Infinity\")");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"/foo/\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(true)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(6.37e-8)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, true)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(int(122))");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(uint(124))");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(123.0)");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(0x43211234)");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(0x10000)");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(0x10001)");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(qInf())");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(\"NaN\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(\"Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(\"ciao\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(0, int(122))");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(0, uint(124))");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(0, 123.0)");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(0, 0x10000)");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(0, 0x10001)");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(0, qInf())");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(0, \"NaN\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"Object\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"Array\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"Number\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"Function\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(true)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(int(122))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(6.37e-8)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(\"NaN\")");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(\"-Infinity\")");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(QString(\"0\"))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, true)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, int(122))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, true)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"/foo/\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(true)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(int(122))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(6.37e-8)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(\"NaN\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(\"-Infinity\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(QString(\"0\"))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, true)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, int(122))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, true)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"/foo/\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->evaluate(\"Function.prototype\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Function.prototype\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"Function.prototype\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"Function.prototype\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"Function.prototype\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"Function.prototype\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"Function.prototype\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> QScriptValue(\"NaN\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->evaluate(\"Array\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Array\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"Array\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"Number\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Function\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Function\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"(function() { return 1; })\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"(function() { return 1; })\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"(function() { return 1; })\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"(function() { return 1; })\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"(function() { return 1; })\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"(function() { return 'ciao'; })\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"(function() { return 'ciao'; })\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"(function() { return 'ciao'; })\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"(function() { return 'ciao'; })\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"(function() { return 'ciao'; })\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"(function() { return 'ciao'; })\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(\"NaN\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(QString(\"0\"))");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"/foo/\") <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->evaluate(\"new Object()\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"new Object()\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"new Object()\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"new Object()\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"new Object()\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"new Object()\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"new Object()\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"new Object()\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"new Object()\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"new Object()\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"new Object()\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"new Object()\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"new Object()\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"new Object()\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(true)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(int(122))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(6.37e-8)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(\"NaN\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(\"-Infinity\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(QString(\"0\"))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, true)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, int(122))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, true)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"/foo/\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> QScriptValue(\"NaN\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"new Error()\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"new Error()\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"new Object()\")");
+ }
+ QHash<QString, QScriptValue>::const_iterator it;
+ for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {
+ QString tag = QString::fromLatin1("%20 <=> %21").arg(expr).arg(it.key());
+ newRow(tag.toLatin1()) << it.value() << equals.contains(tag);
+ }
+}
+
+void tst_QScriptValue::lessThan_test(const char *, const QScriptValue& value)
+{
+ QFETCH(QScriptValue, other);
+ QFETCH(bool, expected);
+ QCOMPARE(value.lessThan(other), expected);
+}
+
+DEFINE_TEST_FUNCTION(lessThan)
+
+
+void tst_QScriptValue::instanceOf_initData()
+{
+ QTest::addColumn<QScriptValue>("other");
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::instanceOf_makeData(const char *expr)
+{
+ static QSet<QString> equals;
+ if (equals.isEmpty()) {
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"Date.prototype\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Function.prototype\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Object\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Object\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"Array\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Array\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"Number\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Number\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"Function\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Function\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"(function() { return 1; })\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"(function() { return 1; })\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"(function() { return 'ciao'; })\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"(function() { return 'ciao'; })\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"new Object()\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"Object\")");
+ }
+ QHash<QString, QScriptValue>::const_iterator it;
+ for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {
+ QString tag = QString::fromLatin1("%20 <=> %21").arg(expr).arg(it.key());
+ newRow(tag.toLatin1()) << it.value() << equals.contains(tag);
+ }
+}
+
+void tst_QScriptValue::instanceOf_test(const char *, const QScriptValue& value)
+{
+ QFETCH(QScriptValue, other);
+ QFETCH(bool, expected);
+ QCOMPARE(value.instanceOf(other), expected);
+}
+
+DEFINE_TEST_FUNCTION(instanceOf)
+
+
+void tst_QScriptValue::qscriptvalue_castQString_initData()
+{
+ QTest::addColumn<QString>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::qscriptvalue_castQString_makeData(const char* expr)
+{
+ static QHash<QString, QString> value;
+ if (value.isEmpty()) {
+ value.insert("QScriptValue()", "");
+ value.insert("QScriptValue(QScriptValue::UndefinedValue)", "");
+ value.insert("QScriptValue(QScriptValue::NullValue)", "");
+ value.insert("QScriptValue(true)", "true");
+ value.insert("QScriptValue(false)", "false");
+ value.insert("QScriptValue(int(122))", "122");
+ value.insert("QScriptValue(uint(124))", "124");
+ value.insert("QScriptValue(0)", "0");
+ value.insert("QScriptValue(0.0)", "0");
+ value.insert("QScriptValue(123.0)", "123");
+ value.insert("QScriptValue(6.37e-8)", "6.37e-8");
+ value.insert("QScriptValue(-6.37e-8)", "-6.37e-8");
+ value.insert("QScriptValue(0x43211234)", "1126240820");
+ value.insert("QScriptValue(0x10000)", "65536");
+ value.insert("QScriptValue(0x10001)", "65537");
+ value.insert("QScriptValue(qSNaN())", "NaN");
+ value.insert("QScriptValue(qQNaN())", "NaN");
+ value.insert("QScriptValue(qInf())", "Infinity");
+ value.insert("QScriptValue(-qInf())", "-Infinity");
+ value.insert("QScriptValue(\"NaN\")", "NaN");
+ value.insert("QScriptValue(\"Infinity\")", "Infinity");
+ value.insert("QScriptValue(\"-Infinity\")", "-Infinity");
+ value.insert("QScriptValue(\"ciao\")", "ciao");
+ value.insert("QScriptValue(QString::fromLatin1(\"ciao\"))", "ciao");
+ value.insert("QScriptValue(QString(\"\"))", "");
+ value.insert("QScriptValue(QString())", "");
+ value.insert("QScriptValue(QString(\"0\"))", "0");
+ value.insert("QScriptValue(QString(\"123\"))", "123");
+ value.insert("QScriptValue(QString(\"12.4\"))", "12.4");
+ value.insert("QScriptValue(0, QScriptValue::UndefinedValue)", "");
+ value.insert("QScriptValue(0, QScriptValue::NullValue)", "");
+ value.insert("QScriptValue(0, true)", "true");
+ value.insert("QScriptValue(0, false)", "false");
+ value.insert("QScriptValue(0, int(122))", "122");
+ value.insert("QScriptValue(0, uint(124))", "124");
+ value.insert("QScriptValue(0, 0)", "0");
+ value.insert("QScriptValue(0, 0.0)", "0");
+ value.insert("QScriptValue(0, 123.0)", "123");
+ value.insert("QScriptValue(0, 6.37e-8)", "6.37e-8");
+ value.insert("QScriptValue(0, -6.37e-8)", "-6.37e-8");
+ value.insert("QScriptValue(0, 0x43211234)", "1126240820");
+ value.insert("QScriptValue(0, 0x10000)", "65536");
+ value.insert("QScriptValue(0, 0x10001)", "65537");
+ value.insert("QScriptValue(0, qSNaN())", "NaN");
+ value.insert("QScriptValue(0, qQNaN())", "NaN");
+ value.insert("QScriptValue(0, qInf())", "Infinity");
+ value.insert("QScriptValue(0, -qInf())", "-Infinity");
+ value.insert("QScriptValue(0, \"NaN\")", "NaN");
+ value.insert("QScriptValue(0, \"Infinity\")", "Infinity");
+ value.insert("QScriptValue(0, \"-Infinity\")", "-Infinity");
+ value.insert("QScriptValue(0, \"ciao\")", "ciao");
+ value.insert("QScriptValue(0, QString::fromLatin1(\"ciao\"))", "ciao");
+ value.insert("QScriptValue(0, QString(\"\"))", "");
+ value.insert("QScriptValue(0, QString())", "");
+ value.insert("QScriptValue(0, QString(\"0\"))", "0");
+ value.insert("QScriptValue(0, QString(\"123\"))", "123");
+ value.insert("QScriptValue(0, QString(\"12.3\"))", "12.3");
+ value.insert("QScriptValue(engine, QScriptValue::UndefinedValue)", "");
+ value.insert("QScriptValue(engine, QScriptValue::NullValue)", "");
+ value.insert("QScriptValue(engine, true)", "true");
+ value.insert("QScriptValue(engine, false)", "false");
+ value.insert("QScriptValue(engine, int(122))", "122");
+ value.insert("QScriptValue(engine, uint(124))", "124");
+ value.insert("QScriptValue(engine, 0)", "0");
+ value.insert("QScriptValue(engine, 0.0)", "0");
+ value.insert("QScriptValue(engine, 123.0)", "123");
+ value.insert("QScriptValue(engine, 6.37e-8)", "6.37e-8");
+ value.insert("QScriptValue(engine, -6.37e-8)", "-6.37e-8");
+ value.insert("QScriptValue(engine, 0x43211234)", "1126240820");
+ value.insert("QScriptValue(engine, 0x10000)", "65536");
+ value.insert("QScriptValue(engine, 0x10001)", "65537");
+ value.insert("QScriptValue(engine, qSNaN())", "NaN");
+ value.insert("QScriptValue(engine, qQNaN())", "NaN");
+ value.insert("QScriptValue(engine, qInf())", "Infinity");
+ value.insert("QScriptValue(engine, -qInf())", "-Infinity");
+ value.insert("QScriptValue(engine, \"NaN\")", "NaN");
+ value.insert("QScriptValue(engine, \"Infinity\")", "Infinity");
+ value.insert("QScriptValue(engine, \"-Infinity\")", "-Infinity");
+ value.insert("QScriptValue(engine, \"ciao\")", "ciao");
+ value.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\"))", "ciao");
+ value.insert("QScriptValue(engine, QString(\"\"))", "");
+ value.insert("QScriptValue(engine, QString())", "");
+ value.insert("QScriptValue(engine, QString(\"0\"))", "0");
+ value.insert("QScriptValue(engine, QString(\"123\"))", "123");
+ value.insert("QScriptValue(engine, QString(\"1.23\"))", "1.23");
+ value.insert("engine->evaluate(\"[]\")", "");
+ value.insert("engine->evaluate(\"{}\")", "");
+ value.insert("engine->evaluate(\"Object.prototype\")", "[object Object]");
+ value.insert("engine->evaluate(\"Date.prototype\")", "Invalid Date");
+ value.insert("engine->evaluate(\"Array.prototype\")", "");
+ value.insert("engine->evaluate(\"Function.prototype\")", "function () {\n [native code]\n}");
+ value.insert("engine->evaluate(\"Error.prototype\")", "Error: Unknown error");
+ value.insert("engine->evaluate(\"Object\")", "function Object() {\n [native code]\n}");
+ value.insert("engine->evaluate(\"Array\")", "function Array() {\n [native code]\n}");
+ value.insert("engine->evaluate(\"Number\")", "function Number() {\n [native code]\n}");
+ value.insert("engine->evaluate(\"Function\")", "function Function() {\n [native code]\n}");
+ value.insert("engine->evaluate(\"(function() { return 1; })\")", "function () { return 1; }");
+ value.insert("engine->evaluate(\"(function() { return 'ciao'; })\")", "function () { return 'ciao'; }");
+ value.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\")", "function () { throw new Error('foo'); }");
+ value.insert("engine->evaluate(\"/foo/\")", "/foo/");
+ value.insert("engine->evaluate(\"new Object()\")", "[object Object]");
+ value.insert("engine->evaluate(\"new Array()\")", "");
+ value.insert("engine->evaluate(\"new Error()\")", "Error: Unknown error");
+ }
+ newRow(expr) << value.value(expr);
+}
+
+void tst_QScriptValue::qscriptvalue_castQString_test(const char*, const QScriptValue& value)
+{
+ QFETCH(QString, expected);
+ QCOMPARE(qscriptvalue_cast<QString>(value), expected);
+}
+
+DEFINE_TEST_FUNCTION(qscriptvalue_castQString)
+
+
+void tst_QScriptValue::qscriptvalue_castqsreal_initData()
+{
+ QTest::addColumn<qsreal>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::qscriptvalue_castqsreal_makeData(const char* expr)
+{
+ static QHash<QString, qsreal> value;
+ if (value.isEmpty()) {
+ value.insert("QScriptValue()", 0);
+ value.insert("QScriptValue(QScriptValue::UndefinedValue)", qQNaN());
+ value.insert("QScriptValue(QScriptValue::NullValue)", 0);
+ value.insert("QScriptValue(true)", 1);
+ value.insert("QScriptValue(false)", 0);
+ value.insert("QScriptValue(int(122))", 122);
+ value.insert("QScriptValue(uint(124))", 124);
+ value.insert("QScriptValue(0)", 0);
+ value.insert("QScriptValue(0.0)", 0);
+ value.insert("QScriptValue(123.0)", 123);
+ value.insert("QScriptValue(6.37e-8)", 6.369999999999999e-08);
+ value.insert("QScriptValue(-6.37e-8)", -6.369999999999999e-08);
+ value.insert("QScriptValue(0x43211234)", 1126240820);
+ value.insert("QScriptValue(0x10000)", 65536);
+ value.insert("QScriptValue(0x10001)", 65537);
+ value.insert("QScriptValue(qSNaN())", qQNaN());
+ value.insert("QScriptValue(qQNaN())", qQNaN());
+ value.insert("QScriptValue(qInf())", qInf());
+ value.insert("QScriptValue(-qInf())", qInf());
+ value.insert("QScriptValue(\"NaN\")", qQNaN());
+ value.insert("QScriptValue(\"Infinity\")", qInf());
+ value.insert("QScriptValue(\"-Infinity\")", qInf());
+ value.insert("QScriptValue(\"ciao\")", qQNaN());
+ value.insert("QScriptValue(QString::fromLatin1(\"ciao\"))", qQNaN());
+ value.insert("QScriptValue(QString(\"\"))", 0);
+ value.insert("QScriptValue(QString())", 0);
+ value.insert("QScriptValue(QString(\"0\"))", 0);
+ value.insert("QScriptValue(QString(\"123\"))", 123);
+ value.insert("QScriptValue(QString(\"12.4\"))", 12.4);
+ value.insert("QScriptValue(0, QScriptValue::UndefinedValue)", qQNaN());
+ value.insert("QScriptValue(0, QScriptValue::NullValue)", 0);
+ value.insert("QScriptValue(0, true)", 1);
+ value.insert("QScriptValue(0, false)", 0);
+ value.insert("QScriptValue(0, int(122))", 122);
+ value.insert("QScriptValue(0, uint(124))", 124);
+ value.insert("QScriptValue(0, 0)", 0);
+ value.insert("QScriptValue(0, 0.0)", 0);
+ value.insert("QScriptValue(0, 123.0)", 123);
+ value.insert("QScriptValue(0, 6.37e-8)", 6.369999999999999e-08);
+ value.insert("QScriptValue(0, -6.37e-8)", -6.369999999999999e-08);
+ value.insert("QScriptValue(0, 0x43211234)", 1126240820);
+ value.insert("QScriptValue(0, 0x10000)", 65536);
+ value.insert("QScriptValue(0, 0x10001)", 65537);
+ value.insert("QScriptValue(0, qSNaN())", qQNaN());
+ value.insert("QScriptValue(0, qQNaN())", qQNaN());
+ value.insert("QScriptValue(0, qInf())", qInf());
+ value.insert("QScriptValue(0, -qInf())", qInf());
+ value.insert("QScriptValue(0, \"NaN\")", qQNaN());
+ value.insert("QScriptValue(0, \"Infinity\")", qInf());
+ value.insert("QScriptValue(0, \"-Infinity\")", qInf());
+ value.insert("QScriptValue(0, \"ciao\")", qQNaN());
+ value.insert("QScriptValue(0, QString::fromLatin1(\"ciao\"))", qQNaN());
+ value.insert("QScriptValue(0, QString(\"\"))", 0);
+ value.insert("QScriptValue(0, QString())", 0);
+ value.insert("QScriptValue(0, QString(\"0\"))", 0);
+ value.insert("QScriptValue(0, QString(\"123\"))", 123);
+ value.insert("QScriptValue(0, QString(\"12.3\"))", 12.3);
+ value.insert("QScriptValue(engine, QScriptValue::UndefinedValue)", qQNaN());
+ value.insert("QScriptValue(engine, QScriptValue::NullValue)", 0);
+ value.insert("QScriptValue(engine, true)", 1);
+ value.insert("QScriptValue(engine, false)", 0);
+ value.insert("QScriptValue(engine, int(122))", 122);
+ value.insert("QScriptValue(engine, uint(124))", 124);
+ value.insert("QScriptValue(engine, 0)", 0);
+ value.insert("QScriptValue(engine, 0.0)", 0);
+ value.insert("QScriptValue(engine, 123.0)", 123);
+ value.insert("QScriptValue(engine, 6.37e-8)", 6.369999999999999e-08);
+ value.insert("QScriptValue(engine, -6.37e-8)", -6.369999999999999e-08);
+ value.insert("QScriptValue(engine, 0x43211234)", 1126240820);
+ value.insert("QScriptValue(engine, 0x10000)", 65536);
+ value.insert("QScriptValue(engine, 0x10001)", 65537);
+ value.insert("QScriptValue(engine, qSNaN())", qQNaN());
+ value.insert("QScriptValue(engine, qQNaN())", qQNaN());
+ value.insert("QScriptValue(engine, qInf())", qInf());
+ value.insert("QScriptValue(engine, -qInf())", qInf());
+ value.insert("QScriptValue(engine, \"NaN\")", qQNaN());
+ value.insert("QScriptValue(engine, \"Infinity\")", qInf());
+ value.insert("QScriptValue(engine, \"-Infinity\")", qInf());
+ value.insert("QScriptValue(engine, \"ciao\")", qQNaN());
+ value.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\"))", qQNaN());
+ value.insert("QScriptValue(engine, QString(\"\"))", 0);
+ value.insert("QScriptValue(engine, QString())", 0);
+ value.insert("QScriptValue(engine, QString(\"0\"))", 0);
+ value.insert("QScriptValue(engine, QString(\"123\"))", 123);
+ value.insert("QScriptValue(engine, QString(\"1.23\"))", 1.23);
+ value.insert("engine->evaluate(\"[]\")", 0);
+ value.insert("engine->evaluate(\"{}\")", qQNaN());
+ value.insert("engine->evaluate(\"Object.prototype\")", qQNaN());
+ value.insert("engine->evaluate(\"Date.prototype\")", qQNaN());
+ value.insert("engine->evaluate(\"Array.prototype\")", 0);
+ value.insert("engine->evaluate(\"Function.prototype\")", qQNaN());
+ value.insert("engine->evaluate(\"Error.prototype\")", qQNaN());
+ value.insert("engine->evaluate(\"Object\")", qQNaN());
+ value.insert("engine->evaluate(\"Array\")", qQNaN());
+ value.insert("engine->evaluate(\"Number\")", qQNaN());
+ value.insert("engine->evaluate(\"Function\")", qQNaN());
+ value.insert("engine->evaluate(\"(function() { return 1; })\")", qQNaN());
+ value.insert("engine->evaluate(\"(function() { return 'ciao'; })\")", qQNaN());
+ value.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\")", qQNaN());
+ value.insert("engine->evaluate(\"/foo/\")", qQNaN());
+ value.insert("engine->evaluate(\"new Object()\")", qQNaN());
+ value.insert("engine->evaluate(\"new Array()\")", 0);
+ value.insert("engine->evaluate(\"new Error()\")", qQNaN());
+ }
+ newRow(expr) << value.value(expr);
+}
+
+void tst_QScriptValue::qscriptvalue_castqsreal_test(const char*, const QScriptValue& value)
+{
+ QFETCH(qsreal, expected);
+ if (qIsNaN(expected)) {
+ QVERIFY(qIsNaN(qscriptvalue_cast<qsreal>(value)));
+ return;
+ }
+ if (qIsInf(expected)) {
+ QVERIFY(qIsInf(qscriptvalue_cast<qsreal>(value)));
+ return;
+ }
+ QCOMPARE(qscriptvalue_cast<qsreal>(value), expected);
+}
+
+DEFINE_TEST_FUNCTION(qscriptvalue_castqsreal)
+
+
+void tst_QScriptValue::qscriptvalue_castbool_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::qscriptvalue_castbool_makeData(const char* expr)
+{
+ static QHash<QString, bool> value;
+ if (value.isEmpty()) {
+ value.insert("QScriptValue()", false);
+ value.insert("QScriptValue(QScriptValue::UndefinedValue)", false);
+ value.insert("QScriptValue(QScriptValue::NullValue)", false);
+ value.insert("QScriptValue(true)", true);
+ value.insert("QScriptValue(false)", false);
+ value.insert("QScriptValue(int(122))", true);
+ value.insert("QScriptValue(uint(124))", true);
+ value.insert("QScriptValue(0)", false);
+ value.insert("QScriptValue(0.0)", false);
+ value.insert("QScriptValue(123.0)", true);
+ value.insert("QScriptValue(6.37e-8)", true);
+ value.insert("QScriptValue(-6.37e-8)", true);
+ value.insert("QScriptValue(0x43211234)", true);
+ value.insert("QScriptValue(0x10000)", true);
+ value.insert("QScriptValue(0x10001)", true);
+ value.insert("QScriptValue(qSNaN())", false);
+ value.insert("QScriptValue(qQNaN())", false);
+ value.insert("QScriptValue(qInf())", true);
+ value.insert("QScriptValue(-qInf())", true);
+ value.insert("QScriptValue(\"NaN\")", true);
+ value.insert("QScriptValue(\"Infinity\")", true);
+ value.insert("QScriptValue(\"-Infinity\")", true);
+ value.insert("QScriptValue(\"ciao\")", true);
+ value.insert("QScriptValue(QString::fromLatin1(\"ciao\"))", true);
+ value.insert("QScriptValue(QString(\"\"))", false);
+ value.insert("QScriptValue(QString())", false);
+ value.insert("QScriptValue(QString(\"0\"))", true);
+ value.insert("QScriptValue(QString(\"123\"))", true);
+ value.insert("QScriptValue(QString(\"12.4\"))", true);
+ value.insert("QScriptValue(0, QScriptValue::UndefinedValue)", false);
+ value.insert("QScriptValue(0, QScriptValue::NullValue)", false);
+ value.insert("QScriptValue(0, true)", true);
+ value.insert("QScriptValue(0, false)", false);
+ value.insert("QScriptValue(0, int(122))", true);
+ value.insert("QScriptValue(0, uint(124))", true);
+ value.insert("QScriptValue(0, 0)", false);
+ value.insert("QScriptValue(0, 0.0)", false);
+ value.insert("QScriptValue(0, 123.0)", true);
+ value.insert("QScriptValue(0, 6.37e-8)", true);
+ value.insert("QScriptValue(0, -6.37e-8)", true);
+ value.insert("QScriptValue(0, 0x43211234)", true);
+ value.insert("QScriptValue(0, 0x10000)", true);
+ value.insert("QScriptValue(0, 0x10001)", true);
+ value.insert("QScriptValue(0, qSNaN())", false);
+ value.insert("QScriptValue(0, qQNaN())", false);
+ value.insert("QScriptValue(0, qInf())", true);
+ value.insert("QScriptValue(0, -qInf())", true);
+ value.insert("QScriptValue(0, \"NaN\")", true);
+ value.insert("QScriptValue(0, \"Infinity\")", true);
+ value.insert("QScriptValue(0, \"-Infinity\")", true);
+ value.insert("QScriptValue(0, \"ciao\")", true);
+ value.insert("QScriptValue(0, QString::fromLatin1(\"ciao\"))", true);
+ value.insert("QScriptValue(0, QString(\"\"))", false);
+ value.insert("QScriptValue(0, QString())", false);
+ value.insert("QScriptValue(0, QString(\"0\"))", true);
+ value.insert("QScriptValue(0, QString(\"123\"))", true);
+ value.insert("QScriptValue(0, QString(\"12.3\"))", true);
+ value.insert("QScriptValue(engine, QScriptValue::UndefinedValue)", false);
+ value.insert("QScriptValue(engine, QScriptValue::NullValue)", false);
+ value.insert("QScriptValue(engine, true)", true);
+ value.insert("QScriptValue(engine, false)", false);
+ value.insert("QScriptValue(engine, int(122))", true);
+ value.insert("QScriptValue(engine, uint(124))", true);
+ value.insert("QScriptValue(engine, 0)", false);
+ value.insert("QScriptValue(engine, 0.0)", false);
+ value.insert("QScriptValue(engine, 123.0)", true);
+ value.insert("QScriptValue(engine, 6.37e-8)", true);
+ value.insert("QScriptValue(engine, -6.37e-8)", true);
+ value.insert("QScriptValue(engine, 0x43211234)", true);
+ value.insert("QScriptValue(engine, 0x10000)", true);
+ value.insert("QScriptValue(engine, 0x10001)", true);
+ value.insert("QScriptValue(engine, qSNaN())", false);
+ value.insert("QScriptValue(engine, qQNaN())", false);
+ value.insert("QScriptValue(engine, qInf())", true);
+ value.insert("QScriptValue(engine, -qInf())", true);
+ value.insert("QScriptValue(engine, \"NaN\")", true);
+ value.insert("QScriptValue(engine, \"Infinity\")", true);
+ value.insert("QScriptValue(engine, \"-Infinity\")", true);
+ value.insert("QScriptValue(engine, \"ciao\")", true);
+ value.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\"))", true);
+ value.insert("QScriptValue(engine, QString(\"\"))", false);
+ value.insert("QScriptValue(engine, QString())", false);
+ value.insert("QScriptValue(engine, QString(\"0\"))", true);
+ value.insert("QScriptValue(engine, QString(\"123\"))", true);
+ value.insert("QScriptValue(engine, QString(\"1.23\"))", true);
+ value.insert("engine->evaluate(\"[]\")", true);
+ value.insert("engine->evaluate(\"{}\")", false);
+ value.insert("engine->evaluate(\"Object.prototype\")", true);
+ value.insert("engine->evaluate(\"Date.prototype\")", true);
+ value.insert("engine->evaluate(\"Array.prototype\")", true);
+ value.insert("engine->evaluate(\"Function.prototype\")", true);
+ value.insert("engine->evaluate(\"Error.prototype\")", true);
+ value.insert("engine->evaluate(\"Object\")", true);
+ value.insert("engine->evaluate(\"Array\")", true);
+ value.insert("engine->evaluate(\"Number\")", true);
+ value.insert("engine->evaluate(\"Function\")", true);
+ value.insert("engine->evaluate(\"(function() { return 1; })\")", true);
+ value.insert("engine->evaluate(\"(function() { return 'ciao'; })\")", true);
+ value.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\")", true);
+ value.insert("engine->evaluate(\"/foo/\")", true);
+ value.insert("engine->evaluate(\"new Object()\")", true);
+ value.insert("engine->evaluate(\"new Array()\")", true);
+ value.insert("engine->evaluate(\"new Error()\")", true);
+ }
+ newRow(expr) << value.value(expr);
+}
+
+void tst_QScriptValue::qscriptvalue_castbool_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(qscriptvalue_cast<bool>(value), expected);
+}
+
+DEFINE_TEST_FUNCTION(qscriptvalue_castbool)
+
+
+void tst_QScriptValue::qscriptvalue_castqint32_initData()
+{
+ QTest::addColumn<qint32>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::qscriptvalue_castqint32_makeData(const char* expr)
+{
+ static QHash<QString, qint32> value;
+ if (value.isEmpty()) {
+ value.insert("QScriptValue()", 0);
+ value.insert("QScriptValue(QScriptValue::UndefinedValue)", 0);
+ value.insert("QScriptValue(QScriptValue::NullValue)", 0);
+ value.insert("QScriptValue(true)", 1);
+ value.insert("QScriptValue(false)", 0);
+ value.insert("QScriptValue(int(122))", 122);
+ value.insert("QScriptValue(uint(124))", 124);
+ value.insert("QScriptValue(0)", 0);
+ value.insert("QScriptValue(0.0)", 0);
+ value.insert("QScriptValue(123.0)", 123);
+ value.insert("QScriptValue(6.37e-8)", 0);
+ value.insert("QScriptValue(-6.37e-8)", 0);
+ value.insert("QScriptValue(0x43211234)", 1126240820);
+ value.insert("QScriptValue(0x10000)", 65536);
+ value.insert("QScriptValue(0x10001)", 65537);
+ value.insert("QScriptValue(qSNaN())", 0);
+ value.insert("QScriptValue(qQNaN())", 0);
+ value.insert("QScriptValue(qInf())", 0);
+ value.insert("QScriptValue(-qInf())", 0);
+ value.insert("QScriptValue(\"NaN\")", 0);
+ value.insert("QScriptValue(\"Infinity\")", 0);
+ value.insert("QScriptValue(\"-Infinity\")", 0);
+ value.insert("QScriptValue(\"ciao\")", 0);
+ value.insert("QScriptValue(QString::fromLatin1(\"ciao\"))", 0);
+ value.insert("QScriptValue(QString(\"\"))", 0);
+ value.insert("QScriptValue(QString())", 0);
+ value.insert("QScriptValue(QString(\"0\"))", 0);
+ value.insert("QScriptValue(QString(\"123\"))", 123);
+ value.insert("QScriptValue(QString(\"12.4\"))", 12);
+ value.insert("QScriptValue(0, QScriptValue::UndefinedValue)", 0);
+ value.insert("QScriptValue(0, QScriptValue::NullValue)", 0);
+ value.insert("QScriptValue(0, true)", 1);
+ value.insert("QScriptValue(0, false)", 0);
+ value.insert("QScriptValue(0, int(122))", 122);
+ value.insert("QScriptValue(0, uint(124))", 124);
+ value.insert("QScriptValue(0, 0)", 0);
+ value.insert("QScriptValue(0, 0.0)", 0);
+ value.insert("QScriptValue(0, 123.0)", 123);
+ value.insert("QScriptValue(0, 6.37e-8)", 0);
+ value.insert("QScriptValue(0, -6.37e-8)", 0);
+ value.insert("QScriptValue(0, 0x43211234)", 1126240820);
+ value.insert("QScriptValue(0, 0x10000)", 65536);
+ value.insert("QScriptValue(0, 0x10001)", 65537);
+ value.insert("QScriptValue(0, qSNaN())", 0);
+ value.insert("QScriptValue(0, qQNaN())", 0);
+ value.insert("QScriptValue(0, qInf())", 0);
+ value.insert("QScriptValue(0, -qInf())", 0);
+ value.insert("QScriptValue(0, \"NaN\")", 0);
+ value.insert("QScriptValue(0, \"Infinity\")", 0);
+ value.insert("QScriptValue(0, \"-Infinity\")", 0);
+ value.insert("QScriptValue(0, \"ciao\")", 0);
+ value.insert("QScriptValue(0, QString::fromLatin1(\"ciao\"))", 0);
+ value.insert("QScriptValue(0, QString(\"\"))", 0);
+ value.insert("QScriptValue(0, QString())", 0);
+ value.insert("QScriptValue(0, QString(\"0\"))", 0);
+ value.insert("QScriptValue(0, QString(\"123\"))", 123);
+ value.insert("QScriptValue(0, QString(\"12.3\"))", 12);
+ value.insert("QScriptValue(engine, QScriptValue::UndefinedValue)", 0);
+ value.insert("QScriptValue(engine, QScriptValue::NullValue)", 0);
+ value.insert("QScriptValue(engine, true)", 1);
+ value.insert("QScriptValue(engine, false)", 0);
+ value.insert("QScriptValue(engine, int(122))", 122);
+ value.insert("QScriptValue(engine, uint(124))", 124);
+ value.insert("QScriptValue(engine, 0)", 0);
+ value.insert("QScriptValue(engine, 0.0)", 0);
+ value.insert("QScriptValue(engine, 123.0)", 123);
+ value.insert("QScriptValue(engine, 6.37e-8)", 0);
+ value.insert("QScriptValue(engine, -6.37e-8)", 0);
+ value.insert("QScriptValue(engine, 0x43211234)", 1126240820);
+ value.insert("QScriptValue(engine, 0x10000)", 65536);
+ value.insert("QScriptValue(engine, 0x10001)", 65537);
+ value.insert("QScriptValue(engine, qSNaN())", 0);
+ value.insert("QScriptValue(engine, qQNaN())", 0);
+ value.insert("QScriptValue(engine, qInf())", 0);
+ value.insert("QScriptValue(engine, -qInf())", 0);
+ value.insert("QScriptValue(engine, \"NaN\")", 0);
+ value.insert("QScriptValue(engine, \"Infinity\")", 0);
+ value.insert("QScriptValue(engine, \"-Infinity\")", 0);
+ value.insert("QScriptValue(engine, \"ciao\")", 0);
+ value.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\"))", 0);
+ value.insert("QScriptValue(engine, QString(\"\"))", 0);
+ value.insert("QScriptValue(engine, QString())", 0);
+ value.insert("QScriptValue(engine, QString(\"0\"))", 0);
+ value.insert("QScriptValue(engine, QString(\"123\"))", 123);
+ value.insert("QScriptValue(engine, QString(\"1.23\"))", 1);
+ value.insert("engine->evaluate(\"[]\")", 0);
+ value.insert("engine->evaluate(\"{}\")", 0);
+ value.insert("engine->evaluate(\"Object.prototype\")", 0);
+ value.insert("engine->evaluate(\"Date.prototype\")", 0);
+ value.insert("engine->evaluate(\"Array.prototype\")", 0);
+ value.insert("engine->evaluate(\"Function.prototype\")", 0);
+ value.insert("engine->evaluate(\"Error.prototype\")", 0);
+ value.insert("engine->evaluate(\"Object\")", 0);
+ value.insert("engine->evaluate(\"Array\")", 0);
+ value.insert("engine->evaluate(\"Number\")", 0);
+ value.insert("engine->evaluate(\"Function\")", 0);
+ value.insert("engine->evaluate(\"(function() { return 1; })\")", 0);
+ value.insert("engine->evaluate(\"(function() { return 'ciao'; })\")", 0);
+ value.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\")", 0);
+ value.insert("engine->evaluate(\"/foo/\")", 0);
+ value.insert("engine->evaluate(\"new Object()\")", 0);
+ value.insert("engine->evaluate(\"new Array()\")", 0);
+ value.insert("engine->evaluate(\"new Error()\")", 0);
+ }
+ newRow(expr) << value.value(expr);
+}
+
+void tst_QScriptValue::qscriptvalue_castqint32_test(const char*, const QScriptValue& value)
+{
+ QFETCH(qint32, expected);
+ QCOMPARE(qscriptvalue_cast<qint32>(value), expected);
+}
+
+DEFINE_TEST_FUNCTION(qscriptvalue_castqint32)
+
+
+void tst_QScriptValue::qscriptvalue_castquint32_initData()
+{
+ QTest::addColumn<quint32>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::qscriptvalue_castquint32_makeData(const char* expr)
+{
+ static QHash<QString, quint32> value;
+ if (value.isEmpty()) {
+ value.insert("QScriptValue()", 0);
+ value.insert("QScriptValue(QScriptValue::UndefinedValue)", 0);
+ value.insert("QScriptValue(QScriptValue::NullValue)", 0);
+ value.insert("QScriptValue(true)", 1);
+ value.insert("QScriptValue(false)", 0);
+ value.insert("QScriptValue(int(122))", 122);
+ value.insert("QScriptValue(uint(124))", 124);
+ value.insert("QScriptValue(0)", 0);
+ value.insert("QScriptValue(0.0)", 0);
+ value.insert("QScriptValue(123.0)", 123);
+ value.insert("QScriptValue(6.37e-8)", 0);
+ value.insert("QScriptValue(-6.37e-8)", 0);
+ value.insert("QScriptValue(0x43211234)", 1126240820);
+ value.insert("QScriptValue(0x10000)", 65536);
+ value.insert("QScriptValue(0x10001)", 65537);
+ value.insert("QScriptValue(qSNaN())", 0);
+ value.insert("QScriptValue(qQNaN())", 0);
+ value.insert("QScriptValue(qInf())", 0);
+ value.insert("QScriptValue(-qInf())", 0);
+ value.insert("QScriptValue(\"NaN\")", 0);
+ value.insert("QScriptValue(\"Infinity\")", 0);
+ value.insert("QScriptValue(\"-Infinity\")", 0);
+ value.insert("QScriptValue(\"ciao\")", 0);
+ value.insert("QScriptValue(QString::fromLatin1(\"ciao\"))", 0);
+ value.insert("QScriptValue(QString(\"\"))", 0);
+ value.insert("QScriptValue(QString())", 0);
+ value.insert("QScriptValue(QString(\"0\"))", 0);
+ value.insert("QScriptValue(QString(\"123\"))", 123);
+ value.insert("QScriptValue(QString(\"12.4\"))", 12);
+ value.insert("QScriptValue(0, QScriptValue::UndefinedValue)", 0);
+ value.insert("QScriptValue(0, QScriptValue::NullValue)", 0);
+ value.insert("QScriptValue(0, true)", 1);
+ value.insert("QScriptValue(0, false)", 0);
+ value.insert("QScriptValue(0, int(122))", 122);
+ value.insert("QScriptValue(0, uint(124))", 124);
+ value.insert("QScriptValue(0, 0)", 0);
+ value.insert("QScriptValue(0, 0.0)", 0);
+ value.insert("QScriptValue(0, 123.0)", 123);
+ value.insert("QScriptValue(0, 6.37e-8)", 0);
+ value.insert("QScriptValue(0, -6.37e-8)", 0);
+ value.insert("QScriptValue(0, 0x43211234)", 1126240820);
+ value.insert("QScriptValue(0, 0x10000)", 65536);
+ value.insert("QScriptValue(0, 0x10001)", 65537);
+ value.insert("QScriptValue(0, qSNaN())", 0);
+ value.insert("QScriptValue(0, qQNaN())", 0);
+ value.insert("QScriptValue(0, qInf())", 0);
+ value.insert("QScriptValue(0, -qInf())", 0);
+ value.insert("QScriptValue(0, \"NaN\")", 0);
+ value.insert("QScriptValue(0, \"Infinity\")", 0);
+ value.insert("QScriptValue(0, \"-Infinity\")", 0);
+ value.insert("QScriptValue(0, \"ciao\")", 0);
+ value.insert("QScriptValue(0, QString::fromLatin1(\"ciao\"))", 0);
+ value.insert("QScriptValue(0, QString(\"\"))", 0);
+ value.insert("QScriptValue(0, QString())", 0);
+ value.insert("QScriptValue(0, QString(\"0\"))", 0);
+ value.insert("QScriptValue(0, QString(\"123\"))", 123);
+ value.insert("QScriptValue(0, QString(\"12.3\"))", 12);
+ value.insert("QScriptValue(engine, QScriptValue::UndefinedValue)", 0);
+ value.insert("QScriptValue(engine, QScriptValue::NullValue)", 0);
+ value.insert("QScriptValue(engine, true)", 1);
+ value.insert("QScriptValue(engine, false)", 0);
+ value.insert("QScriptValue(engine, int(122))", 122);
+ value.insert("QScriptValue(engine, uint(124))", 124);
+ value.insert("QScriptValue(engine, 0)", 0);
+ value.insert("QScriptValue(engine, 0.0)", 0);
+ value.insert("QScriptValue(engine, 123.0)", 123);
+ value.insert("QScriptValue(engine, 6.37e-8)", 0);
+ value.insert("QScriptValue(engine, -6.37e-8)", 0);
+ value.insert("QScriptValue(engine, 0x43211234)", 1126240820);
+ value.insert("QScriptValue(engine, 0x10000)", 65536);
+ value.insert("QScriptValue(engine, 0x10001)", 65537);
+ value.insert("QScriptValue(engine, qSNaN())", 0);
+ value.insert("QScriptValue(engine, qQNaN())", 0);
+ value.insert("QScriptValue(engine, qInf())", 0);
+ value.insert("QScriptValue(engine, -qInf())", 0);
+ value.insert("QScriptValue(engine, \"NaN\")", 0);
+ value.insert("QScriptValue(engine, \"Infinity\")", 0);
+ value.insert("QScriptValue(engine, \"-Infinity\")", 0);
+ value.insert("QScriptValue(engine, \"ciao\")", 0);
+ value.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\"))", 0);
+ value.insert("QScriptValue(engine, QString(\"\"))", 0);
+ value.insert("QScriptValue(engine, QString())", 0);
+ value.insert("QScriptValue(engine, QString(\"0\"))", 0);
+ value.insert("QScriptValue(engine, QString(\"123\"))", 123);
+ value.insert("QScriptValue(engine, QString(\"1.23\"))", 1);
+ value.insert("engine->evaluate(\"[]\")", 0);
+ value.insert("engine->evaluate(\"{}\")", 0);
+ value.insert("engine->evaluate(\"Object.prototype\")", 0);
+ value.insert("engine->evaluate(\"Date.prototype\")", 0);
+ value.insert("engine->evaluate(\"Array.prototype\")", 0);
+ value.insert("engine->evaluate(\"Function.prototype\")", 0);
+ value.insert("engine->evaluate(\"Error.prototype\")", 0);
+ value.insert("engine->evaluate(\"Object\")", 0);
+ value.insert("engine->evaluate(\"Array\")", 0);
+ value.insert("engine->evaluate(\"Number\")", 0);
+ value.insert("engine->evaluate(\"Function\")", 0);
+ value.insert("engine->evaluate(\"(function() { return 1; })\")", 0);
+ value.insert("engine->evaluate(\"(function() { return 'ciao'; })\")", 0);
+ value.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\")", 0);
+ value.insert("engine->evaluate(\"/foo/\")", 0);
+ value.insert("engine->evaluate(\"new Object()\")", 0);
+ value.insert("engine->evaluate(\"new Array()\")", 0);
+ value.insert("engine->evaluate(\"new Error()\")", 0);
+ }
+ newRow(expr) << value.value(expr);
+}
+
+void tst_QScriptValue::qscriptvalue_castquint32_test(const char*, const QScriptValue& value)
+{
+ QFETCH(quint32, expected);
+ QCOMPARE(qscriptvalue_cast<quint32>(value), expected);
+}
+
+DEFINE_TEST_FUNCTION(qscriptvalue_castquint32)
+
+
+void tst_QScriptValue::qscriptvalue_castquint16_initData()
+{
+ QTest::addColumn<quint16>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::qscriptvalue_castquint16_makeData(const char* expr)
+{
+ static QHash<QString, quint16> value;
+ if (value.isEmpty()) {
+ value.insert("QScriptValue()", 0);
+ value.insert("QScriptValue(QScriptValue::UndefinedValue)", 0);
+ value.insert("QScriptValue(QScriptValue::NullValue)", 0);
+ value.insert("QScriptValue(true)", 1);
+ value.insert("QScriptValue(false)", 0);
+ value.insert("QScriptValue(int(122))", 122);
+ value.insert("QScriptValue(uint(124))", 124);
+ value.insert("QScriptValue(0)", 0);
+ value.insert("QScriptValue(0.0)", 0);
+ value.insert("QScriptValue(123.0)", 123);
+ value.insert("QScriptValue(6.37e-8)", 0);
+ value.insert("QScriptValue(-6.37e-8)", 0);
+ value.insert("QScriptValue(0x43211234)", 4660);
+ value.insert("QScriptValue(0x10000)", 0);
+ value.insert("QScriptValue(0x10001)", 1);
+ value.insert("QScriptValue(qSNaN())", 0);
+ value.insert("QScriptValue(qQNaN())", 0);
+ value.insert("QScriptValue(qInf())", 0);
+ value.insert("QScriptValue(-qInf())", 0);
+ value.insert("QScriptValue(\"NaN\")", 0);
+ value.insert("QScriptValue(\"Infinity\")", 0);
+ value.insert("QScriptValue(\"-Infinity\")", 0);
+ value.insert("QScriptValue(\"ciao\")", 0);
+ value.insert("QScriptValue(QString::fromLatin1(\"ciao\"))", 0);
+ value.insert("QScriptValue(QString(\"\"))", 0);
+ value.insert("QScriptValue(QString())", 0);
+ value.insert("QScriptValue(QString(\"0\"))", 0);
+ value.insert("QScriptValue(QString(\"123\"))", 123);
+ value.insert("QScriptValue(QString(\"12.4\"))", 12);
+ value.insert("QScriptValue(0, QScriptValue::UndefinedValue)", 0);
+ value.insert("QScriptValue(0, QScriptValue::NullValue)", 0);
+ value.insert("QScriptValue(0, true)", 1);
+ value.insert("QScriptValue(0, false)", 0);
+ value.insert("QScriptValue(0, int(122))", 122);
+ value.insert("QScriptValue(0, uint(124))", 124);
+ value.insert("QScriptValue(0, 0)", 0);
+ value.insert("QScriptValue(0, 0.0)", 0);
+ value.insert("QScriptValue(0, 123.0)", 123);
+ value.insert("QScriptValue(0, 6.37e-8)", 0);
+ value.insert("QScriptValue(0, -6.37e-8)", 0);
+ value.insert("QScriptValue(0, 0x43211234)", 4660);
+ value.insert("QScriptValue(0, 0x10000)", 0);
+ value.insert("QScriptValue(0, 0x10001)", 1);
+ value.insert("QScriptValue(0, qSNaN())", 0);
+ value.insert("QScriptValue(0, qQNaN())", 0);
+ value.insert("QScriptValue(0, qInf())", 0);
+ value.insert("QScriptValue(0, -qInf())", 0);
+ value.insert("QScriptValue(0, \"NaN\")", 0);
+ value.insert("QScriptValue(0, \"Infinity\")", 0);
+ value.insert("QScriptValue(0, \"-Infinity\")", 0);
+ value.insert("QScriptValue(0, \"ciao\")", 0);
+ value.insert("QScriptValue(0, QString::fromLatin1(\"ciao\"))", 0);
+ value.insert("QScriptValue(0, QString(\"\"))", 0);
+ value.insert("QScriptValue(0, QString())", 0);
+ value.insert("QScriptValue(0, QString(\"0\"))", 0);
+ value.insert("QScriptValue(0, QString(\"123\"))", 123);
+ value.insert("QScriptValue(0, QString(\"12.3\"))", 12);
+ value.insert("QScriptValue(engine, QScriptValue::UndefinedValue)", 0);
+ value.insert("QScriptValue(engine, QScriptValue::NullValue)", 0);
+ value.insert("QScriptValue(engine, true)", 1);
+ value.insert("QScriptValue(engine, false)", 0);
+ value.insert("QScriptValue(engine, int(122))", 122);
+ value.insert("QScriptValue(engine, uint(124))", 124);
+ value.insert("QScriptValue(engine, 0)", 0);
+ value.insert("QScriptValue(engine, 0.0)", 0);
+ value.insert("QScriptValue(engine, 123.0)", 123);
+ value.insert("QScriptValue(engine, 6.37e-8)", 0);
+ value.insert("QScriptValue(engine, -6.37e-8)", 0);
+ value.insert("QScriptValue(engine, 0x43211234)", 4660);
+ value.insert("QScriptValue(engine, 0x10000)", 0);
+ value.insert("QScriptValue(engine, 0x10001)", 1);
+ value.insert("QScriptValue(engine, qSNaN())", 0);
+ value.insert("QScriptValue(engine, qQNaN())", 0);
+ value.insert("QScriptValue(engine, qInf())", 0);
+ value.insert("QScriptValue(engine, -qInf())", 0);
+ value.insert("QScriptValue(engine, \"NaN\")", 0);
+ value.insert("QScriptValue(engine, \"Infinity\")", 0);
+ value.insert("QScriptValue(engine, \"-Infinity\")", 0);
+ value.insert("QScriptValue(engine, \"ciao\")", 0);
+ value.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\"))", 0);
+ value.insert("QScriptValue(engine, QString(\"\"))", 0);
+ value.insert("QScriptValue(engine, QString())", 0);
+ value.insert("QScriptValue(engine, QString(\"0\"))", 0);
+ value.insert("QScriptValue(engine, QString(\"123\"))", 123);
+ value.insert("QScriptValue(engine, QString(\"1.23\"))", 1);
+ value.insert("engine->evaluate(\"[]\")", 0);
+ value.insert("engine->evaluate(\"{}\")", 0);
+ value.insert("engine->evaluate(\"Object.prototype\")", 0);
+ value.insert("engine->evaluate(\"Date.prototype\")", 0);
+ value.insert("engine->evaluate(\"Array.prototype\")", 0);
+ value.insert("engine->evaluate(\"Function.prototype\")", 0);
+ value.insert("engine->evaluate(\"Error.prototype\")", 0);
+ value.insert("engine->evaluate(\"Object\")", 0);
+ value.insert("engine->evaluate(\"Array\")", 0);
+ value.insert("engine->evaluate(\"Number\")", 0);
+ value.insert("engine->evaluate(\"Function\")", 0);
+ value.insert("engine->evaluate(\"(function() { return 1; })\")", 0);
+ value.insert("engine->evaluate(\"(function() { return 'ciao'; })\")", 0);
+ value.insert("engine->evaluate(\"(function() { throw new Error('foo'); })\")", 0);
+ value.insert("engine->evaluate(\"/foo/\")", 0);
+ value.insert("engine->evaluate(\"new Object()\")", 0);
+ value.insert("engine->evaluate(\"new Array()\")", 0);
+ value.insert("engine->evaluate(\"new Error()\")", 0);
+ }
+ newRow(expr) << value.value(expr);
+}
+
+void tst_QScriptValue::qscriptvalue_castquint16_test(const char*, const QScriptValue& value)
+{
+ QFETCH(quint16, expected);
+ QCOMPARE(qscriptvalue_cast<quint16>(value), expected);
+}
+
+DEFINE_TEST_FUNCTION(qscriptvalue_castquint16)
diff --git a/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp b/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
index 8abf3c0..5b2b0cf 100644
--- a/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
+++ b/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
@@ -136,6 +136,7 @@ private slots:
void task252507_mapFromToSource();
void task255652_removeRowsRecursive();
void taskQTBUG_6205_doubleProxySelectionSetSourceModel();
+ void taskQTBUG_7537_appearsAndSort();
protected:
void buildHierarchy(const QStringList &data, QAbstractItemModel *model);
@@ -2852,5 +2853,73 @@ void tst_QSortFilterProxyModel::taskQTBUG_6205_doubleProxySelectionSetSourceMode
QVERIFY(ism.selection().isEmpty());
}
+void tst_QSortFilterProxyModel::taskQTBUG_7537_appearsAndSort()
+{
+ class PModel : public QSortFilterProxyModel
+ {
+ public:
+ PModel() : mVisible(false) {};
+ protected:
+ bool filterAcceptsRow(int, const QModelIndex &) const
+ {
+ return mVisible;
+ }
+
+ public:
+ void updateXX()
+ {
+ mVisible = true;
+ invalidate();
+ }
+ private:
+ bool mVisible;
+ } proxyModel;
+
+
+ QStringListModel sourceModel;
+ QStringList list;
+ list << "b" << "a" << "c";
+ sourceModel.setStringList(list);
+
+ proxyModel.setSourceModel(&sourceModel);
+ proxyModel.setDynamicSortFilter(true);
+ proxyModel.sort(0, Qt::AscendingOrder);
+
+ QApplication::processEvents();
+ QCOMPARE(sourceModel.rowCount(), 3);
+ QCOMPARE(proxyModel.rowCount(), 0); //all rows are hidden at first;
+
+ QSignalSpy spyAbout1(&proxyModel, SIGNAL(layoutAboutToBeChanged()));
+ QSignalSpy spyChanged1(&proxyModel, SIGNAL(layoutChanged()));
+
+ //introducing secondProxyModel to test the layoutChange when many items appears at once
+ QSortFilterProxyModel secondProxyModel;
+ secondProxyModel.setSourceModel(&proxyModel);
+ secondProxyModel.setDynamicSortFilter(true);
+ secondProxyModel.sort(0, Qt::DescendingOrder);
+ QCOMPARE(secondProxyModel.rowCount(), 0); //all rows are hidden at first;
+ QSignalSpy spyAbout2(&secondProxyModel, SIGNAL(layoutAboutToBeChanged()));
+ QSignalSpy spyChanged2(&secondProxyModel, SIGNAL(layoutChanged()));
+
+ proxyModel.updateXX();
+ QApplication::processEvents();
+ //now rows should be visible, and sorted
+ QCOMPARE(proxyModel.rowCount(), 3);
+ QCOMPARE(proxyModel.data(proxyModel.index(0,0), Qt::DisplayRole).toString(), QString::fromLatin1("a"));
+ QCOMPARE(proxyModel.data(proxyModel.index(1,0), Qt::DisplayRole).toString(), QString::fromLatin1("b"));
+ QCOMPARE(proxyModel.data(proxyModel.index(2,0), Qt::DisplayRole).toString(), QString::fromLatin1("c"));
+
+ //now rows should be visible, and sorted
+ QCOMPARE(secondProxyModel.rowCount(), 3);
+ QCOMPARE(secondProxyModel.data(secondProxyModel.index(0,0), Qt::DisplayRole).toString(), QString::fromLatin1("c"));
+ QCOMPARE(secondProxyModel.data(secondProxyModel.index(1,0), Qt::DisplayRole).toString(), QString::fromLatin1("b"));
+ QCOMPARE(secondProxyModel.data(secondProxyModel.index(2,0), Qt::DisplayRole).toString(), QString::fromLatin1("a"));
+
+ QCOMPARE(spyAbout1.count(), 1);
+ QCOMPARE(spyChanged1.count(), 1);
+ QCOMPARE(spyAbout2.count(), 1);
+ QCOMPARE(spyChanged2.count(), 1);
+}
+
QTEST_MAIN(tst_QSortFilterProxyModel)
#include "tst_qsortfilterproxymodel.moc"
diff --git a/tests/auto/qsslcertificate/more-certificates/malformed-just-begin-no-newline.pem b/tests/auto/qsslcertificate/more-certificates/malformed-just-begin-no-newline.pem
new file mode 100644
index 0000000..75f3c32
--- /dev/null
+++ b/tests/auto/qsslcertificate/more-certificates/malformed-just-begin-no-newline.pem
@@ -0,0 +1 @@
+-----BEGIN CERTIFICATE----- \ No newline at end of file
diff --git a/tests/auto/qsslcertificate/more-certificates/malformed-just-begin.pem b/tests/auto/qsslcertificate/more-certificates/malformed-just-begin.pem
new file mode 100644
index 0000000..a71aecf
--- /dev/null
+++ b/tests/auto/qsslcertificate/more-certificates/malformed-just-begin.pem
@@ -0,0 +1 @@
+-----BEGIN CERTIFICATE-----
diff --git a/tests/auto/qsslcertificate/more-certificates/no-ending-newline.pem b/tests/auto/qsslcertificate/more-certificates/no-ending-newline.pem
new file mode 100644
index 0000000..f8056c7
--- /dev/null
+++ b/tests/auto/qsslcertificate/more-certificates/no-ending-newline.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB8zCCAVwCAREwDQYJKoZIhvcNAQEFBQAwWzELMAkGA1UEBhMCQVUxEzARBgNV
+BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRswGQYD
+VQQDExJUZXN0IENBICgxMDI0IGJpdCkwHhcNMDcwNDE3MDc0MDI2WhcNMDcwNTE3
+MDc0MDI2WjApMRowGAYDVQQDExFuYW1lL3dpdGgvc2xhc2hlczELMAkGA1UEBhMC
+Tk8wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOud6QOsME+pWANExxgmL0iT
+1ayg++hTxHsqAYnm/FoMxfUh+NdKkgJn2/GfNppinfPOSI667VqonU+7JBZDTLV5
+CPbZIo9fFQpDJQN6naev4yaxU1VeYFfI7S8c8zYKeGSR+RenNNeLvfH80YxPpZZ1
+snv8IfDH2V8MVxiyr7lLAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAleaU4pgzV6KY
++q9QuXapUYMsC2GiNtDmkG3k+MTHUO8XlE4hqPrIM6rRf7zKQdZ950R2wL9FSnYl
+Qm1Tdv38dCka6ivMBqvRuOt9axH3m0G7nzHL7U3zaCbtEx3yVln+b3yYtiVpTuq0
+3MLrt7tQGAW6ra8ISf6YY1W65/uVXZE=
+-----END CERTIFICATE----- \ No newline at end of file
diff --git a/tests/auto/qsslcertificate/tst_qsslcertificate.cpp b/tests/auto/qsslcertificate/tst_qsslcertificate.cpp
index 44f8522..c76c11f 100644
--- a/tests/auto/qsslcertificate/tst_qsslcertificate.cpp
+++ b/tests/auto/qsslcertificate/tst_qsslcertificate.cpp
@@ -543,6 +543,9 @@ void tst_QSslCertificate::fromPath_data()
QTest::newRow("\"d.*/c.*.pem\" wildcard der") << QString("d.*/c.*.pem") << int(QRegExp::Wildcard) << false << 0;
QTest::newRow("trailing-whitespace") << QString("more-certificates/trailing-whitespace.pem") << int(QRegExp::FixedString) << true << 1;
+ QTest::newRow("no-ending-newline") << QString("more-certificates/no-ending-newline.pem") << int(QRegExp::FixedString) << true << 1;
+ QTest::newRow("malformed-just-begin") << QString("more-certificates/malformed-just-begin.pem") << int(QRegExp::FixedString) << true << 0;
+ QTest::newRow("malformed-just-begin-no-newline") << QString("more-certificates/malformed-just-begin-no-newline.pem") << int(QRegExp::FixedString) << true << 0;
}
void tst_QSslCertificate::fromPath()
diff --git a/tests/auto/qstyle/tst_qstyle.cpp b/tests/auto/qstyle/tst_qstyle.cpp
index 51fde74..a76c82d 100644
--- a/tests/auto/qstyle/tst_qstyle.cpp
+++ b/tests/auto/qstyle/tst_qstyle.cpp
@@ -52,6 +52,7 @@
#include <qstyleoption.h>
#include <qscrollbar.h>
#include <qprogressbar.h>
+#include <qtoolbutton.h>
#include <qplastiquestyle.h>
#include <qwindowsstyle.h>
@@ -445,6 +446,8 @@ void tst_QStyle::testWindowsVistaStyle()
if (QSysInfo::WindowsVersion == QSysInfo::WV_VISTA)
testPainting(&vistastyle, "vista");
+ else if (QSysInfo::WindowsVersion == QSysInfo::WV_XP)
+ testPainting(&vistastyle, "xp");
#endif
}
@@ -460,6 +463,7 @@ void comparePixmap(const QString &filename, const QPixmap &pixmap)
void tst_QStyle::testPainting(QStyle *style, const QString &platform)
{
+qDebug("TEST PAINTING");
//Test Menu
QString fileName = "images/" + platform + "/menu.png";
QMenu menu;
@@ -538,6 +542,19 @@ void tst_QStyle::testPainting(QStyle *style, const QString &platform)
pixmap = QPixmap::grabWidget(&mdiArea);
mdiArea.hide();
comparePixmap(fileName, pixmap);
+
+ // QToolButton
+ fileName = "images/" + platform + "/toolbutton.png";
+ QToolButton tb;
+ tb.setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
+ tb.setText("AaQqPpXx");
+ tb.setIcon(style->standardPixmap(QStyle::SP_DirHomeIcon));
+ tb.setStyle(style);
+ tb.show();
+ pixmap = QPixmap::grabWidget(&tb);
+ tb.hide();
+ comparePixmap(fileName, pixmap);
+
}
void tst_QStyle::testMacStyle()
diff --git a/tests/auto/qtableview/tst_qtableview.cpp b/tests/auto/qtableview/tst_qtableview.cpp
index 7a5e68f..430712c 100644
--- a/tests/auto/qtableview/tst_qtableview.cpp
+++ b/tests/auto/qtableview/tst_qtableview.cpp
@@ -3024,6 +3024,14 @@ void tst_QTableView::spans_data()
<< QPoint(0, 0)
<< 1
<< 1;
+
+ QTest::newRow("QTBUG-6004 (follow-up): No failing Q_ASSERT, then it passes.")
+ << 10 << 10
+ << (SpanList() << QRect(2, 2, 1, 3) << QRect(2, 2, 1, 1))
+ << false
+ << QPoint(0, 0)
+ << 1
+ << 1;
}
void tst_QTableView::spans()
diff --git a/tests/auto/qurl/tst_qurl.cpp b/tests/auto/qurl/tst_qurl.cpp
index ecd6f09..f108f4c 100644
--- a/tests/auto/qurl/tst_qurl.cpp
+++ b/tests/auto/qurl/tst_qurl.cpp
@@ -90,7 +90,6 @@ public slots:
private slots:
void getSetCheck();
void constructing();
- void isDetached();
void assignment();
void comparison();
void copying();
@@ -166,6 +165,8 @@ private slots:
void ace_testsuite();
void std3violations_data();
void std3violations();
+ void std3deviations_data();
+ void std3deviations();
void tldRestrictions_data();
void tldRestrictions();
void emptyQueryOrFragment();
@@ -319,25 +320,6 @@ void tst_QUrl::constructing()
QVERIFY(!buildUNC.isEmpty());
}
-void tst_QUrl::isDetached()
-{
- QUrl url;
- QVERIFY(!url.isDetached());
-
- url = "http://qt.nokia.com/";
- QVERIFY(url.isDetached());
-
- url.clear();
- QVERIFY(!url.isDetached());
-
- url.setHost("qt.nokia.com");
- QVERIFY(url.isDetached());
-
- QUrl url2 = url;
- QVERIFY(!url.isDetached());
- QVERIFY(!url2.isDetached());
-}
-
void tst_QUrl::assignment()
{
QUrl url("http://qt.nokia.com/");
@@ -3258,6 +3240,8 @@ void tst_QUrl::std3violations_data()
QTest::newRow("bang") << "foo!" << false;
QTest::newRow("plus") << "foo+bar" << false;
QTest::newRow("dot") << "foo.bar";
+ QTest::newRow("startingdot") << ".bar" << false;
+ QTest::newRow("startingdot2") << ".example.com" << false;
QTest::newRow("slash") << "foo/bar" << true;
QTest::newRow("colon") << "foo:80" << true;
QTest::newRow("question") << "foo?bar" << true;
@@ -3302,6 +3286,24 @@ void tst_QUrl::std3violations()
QVERIFY(!url.isValid());
}
+void tst_QUrl::std3deviations_data()
+{
+ QTest::addColumn<QString>("source");
+
+ QTest::newRow("ending-dot") << "example.com.";
+ QTest::newRow("ending-dot3002") << QString("example.com") + QChar(0x3002);
+}
+
+void tst_QUrl::std3deviations()
+{
+ QFETCH(QString, source);
+ QVERIFY(!QUrl::toAce(source).isEmpty());
+
+ QUrl url;
+ url.setHost(source);
+ QVERIFY(!url.host().isEmpty());
+}
+
void tst_QUrl::tldRestrictions_data()
{
QTest::addColumn<QString>("tld");
diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp
index ee4e726..ea90ae3 100644
--- a/tests/auto/qwidget/tst_qwidget.cpp
+++ b/tests/auto/qwidget/tst_qwidget.cpp
@@ -5439,26 +5439,24 @@ public:
QRegion r;
};
-template<typename R, typename C>
-void verifyColor(R const& region, C const& color)
-{
- const QRegion r = QRegion(region);
- for (int i = 0; i < r.rects().size(); ++i) {
- const QRect rect = r.rects().at(i);
- for (int t = 0; t < 5; t++) {
- const QPixmap pixmap = QPixmap::grabWindow(QDesktopWidget().winId(),
- rect.left(), rect.top(),
- rect.width(), rect.height());
- QCOMPARE(pixmap.size(), rect.size());
- QPixmap expectedPixmap(pixmap); /* ensure equal formats */
- expectedPixmap.fill(color);
- if (pixmap.toImage().pixel(0,0) != QColor(color).rgb() && t < 4 )
- { QTest::qWait(200); continue; }
- QCOMPARE(pixmap.toImage().pixel(0,0), QColor(color).rgb());
- QCOMPARE(pixmap, expectedPixmap);
- break;
- }
- }
+#define VERIFY_COLOR(region, color) { \
+ const QRegion r = QRegion(region); \
+ for (int i = 0; i < r.rects().size(); ++i) { \
+ const QRect rect = r.rects().at(i); \
+ for (int t = 0; t < 5; t++) { \
+ const QPixmap pixmap = QPixmap::grabWindow(QDesktopWidget().winId(), \
+ rect.left(), rect.top(), \
+ rect.width(), rect.height()); \
+ QCOMPARE(pixmap.size(), rect.size()); \
+ QPixmap expectedPixmap(pixmap); /* ensure equal formats */ \
+ expectedPixmap.fill(color); \
+ if (pixmap.toImage().pixel(0,0) != QColor(color).rgb() && t < 4 ) \
+ { QTest::qWait(200); continue; } \
+ QCOMPARE(pixmap.toImage().pixel(0,0), QColor(color).rgb()); \
+ QCOMPARE(pixmap, expectedPixmap); \
+ break; \
+ } \
+ } \
}
void tst_QWidget::moveChild_data()
@@ -5499,9 +5497,9 @@ void tst_QWidget::moveChild()
#endif
QTRY_COMPARE(parent.r, QRegion(parent.rect()) - child.geometry());
QTRY_COMPARE(child.r, QRegion(child.rect()));
- verifyColor(child.geometry().translated(tlwOffset),
+ VERIFY_COLOR(child.geometry().translated(tlwOffset),
child.color);
- verifyColor(QRegion(parent.geometry()) - child.geometry().translated(tlwOffset),
+ VERIFY_COLOR(QRegion(parent.geometry()) - child.geometry().translated(tlwOffset),
parent.color);
parent.reset();
child.reset();
@@ -5520,9 +5518,9 @@ void tst_QWidget::moveChild()
// should be scrolled in backingstore
QCOMPARE(child.r, QRegion());
#endif
- verifyColor(child.geometry().translated(tlwOffset),
+ VERIFY_COLOR(child.geometry().translated(tlwOffset),
child.color);
- verifyColor(QRegion(parent.geometry()) - child.geometry().translated(tlwOffset),
+ VERIFY_COLOR(QRegion(parent.geometry()) - child.geometry().translated(tlwOffset),
parent.color);
}
@@ -5553,8 +5551,8 @@ void tst_QWidget::showAndMoveChild()
child.move(desktopDimensions.width()/2, desktopDimensions.height()/2);
qApp->processEvents();
- verifyColor(child.geometry().translated(tlwOffset), Qt::blue);
- verifyColor(QRegion(parent.geometry()) - child.geometry().translated(tlwOffset), Qt::red);
+ VERIFY_COLOR(child.geometry().translated(tlwOffset), Qt::blue);
+ VERIFY_COLOR(QRegion(parent.geometry()) - child.geometry().translated(tlwOffset), Qt::red);
}
void tst_QWidget::subtractOpaqueSiblings()
diff --git a/tests/auto/selftests/expected_xunit.txt b/tests/auto/selftests/expected_xunit.txt
index 5ec4668..3c014e3 100644
--- a/tests/auto/selftests/expected_xunit.txt
+++ b/tests/auto/selftests/expected_xunit.txt
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<testsuite errors="5" failures="3" tests="9" name="tst_Xunit">
<properties>
- <property value="4.6.2" name="QTestVersion"/>
- <property value="4.6.2" name="QtVersion"/>
+ <property value="<INSERT_QT_VERSION_HERE>" name="QTestVersion"/>
+ <property value="<INSERT_QT_VERSION_HERE>" name="QtVersion"/>
</properties>
<testcase result="pass" name="initTestCase"/>
<testcase result="pass" name="testFunc1">
diff --git a/tests/auto/selftests/tst_selftests.cpp b/tests/auto/selftests/tst_selftests.cpp
index 6608439..3d58c15 100644
--- a/tests/auto/selftests/tst_selftests.cpp
+++ b/tests/auto/selftests/tst_selftests.cpp
@@ -248,7 +248,7 @@ void tst_Selftests::doRunSubTest(QString &subdir, QStringList &arguments )
continue;
const QString output(QString::fromLatin1(line));
- const QString expected(QString::fromLatin1(exp.at(i)));
+ const QString expected(QString::fromLatin1(exp.at(i)).replace("<INSERT_QT_VERSION_HERE>", QT_VERSION_STR));
if (line.contains("ASSERT") && output != expected)
QEXPECT_FAIL("assert", "QTestLib prints out the absolute path.", Continue);
diff --git a/tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro b/tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro
index 39267c8..3f49ccc 100644
--- a/tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro
+++ b/tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro
@@ -1,7 +1,6 @@
TEMPLATE = subdirs
contains(QT_CONFIG,xmlpatterns) {
SUBDIRS += lib
- !wince*:lib.file = lib/lib.pro
test.depends = lib
}
SUBDIRS += test
diff --git a/tests/benchmarks/benchmarks.pro b/tests/benchmarks/benchmarks.pro
index 1c78f1f..7a27cc9 100644
--- a/tests/benchmarks/benchmarks.pro
+++ b/tests/benchmarks/benchmarks.pro
@@ -5,6 +5,7 @@ SUBDIRS = containers-associative \
qbytearray \
qfileinfo \
qfile_vs_qnetworkaccessmanager \
+ qfontmetrics \
qhostinfo \
qpainter \
qtestlib-simple events \
diff --git a/tests/benchmarks/qfontmetrics/main.cpp b/tests/benchmarks/qfontmetrics/main.cpp
new file mode 100644
index 0000000..d3f85ef
--- /dev/null
+++ b/tests/benchmarks/qfontmetrics/main.cpp
@@ -0,0 +1,112 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QObject>
+#include <QFont>
+#include <QFontMetrics>
+
+#include <qtest.h>
+
+//this test benchmarks the once-off (per font configuration) cost
+//associated with using QFontMetrics
+class tst_QFontMetrics : public QObject
+{
+ Q_OBJECT
+public:
+ tst_QFontMetrics() {}
+private slots:
+ void fontmetrics_create();
+ void fontmetrics_create_once_loaded();
+
+ void fontmetrics_height();
+ void fontmetrics_height_once_loaded();
+
+private:
+ void testQFontMetrics(const QFontMetrics &fm);
+};
+
+void tst_QFontMetrics::testQFontMetrics( const QFontMetrics &fm )
+{
+ int fontHeight = fm.height();
+}
+
+void tst_QFontMetrics::fontmetrics_create()
+{
+ QBENCHMARK {
+ QFont boldfont = QApplication::font();
+ boldfont.setBold( true );
+ boldfont.setPointSize(boldfont.pointSize() * 1.5 );
+ QFontMetrics bfm( boldfont );
+ }
+}
+
+void tst_QFontMetrics::fontmetrics_create_once_loaded()
+{
+ QBENCHMARK {
+ QFont boldfont = QApplication::font();
+ boldfont.setBold( true );
+ boldfont.setPointSize(boldfont.pointSize() * 1.5 );
+ QFontMetrics bfm( boldfont );
+ }
+}
+
+void tst_QFontMetrics::fontmetrics_height()
+{
+ QFont boldfont = QApplication::font();
+ boldfont.setBold( true );
+ boldfont.setPointSize(boldfont.pointSize() * 1.5 );
+ QFontMetrics bfm( boldfont );
+
+ QBENCHMARK { testQFontMetrics(bfm); }
+}
+
+void tst_QFontMetrics::fontmetrics_height_once_loaded()
+{
+ QFont boldfont = QApplication::font();
+ boldfont.setBold( true );
+ boldfont.setPointSize(boldfont.pointSize() * 1.5 );
+ QFontMetrics bfm( boldfont );
+ QBENCHMARK { testQFontMetrics(bfm); }
+}
+
+QTEST_MAIN(tst_QFontMetrics)
+
+#include "main.moc"
diff --git a/tests/benchmarks/qfontmetrics/qfontmetrics.pro b/tests/benchmarks/qfontmetrics/qfontmetrics.pro
new file mode 100644
index 0000000..b6c7b92
--- /dev/null
+++ b/tests/benchmarks/qfontmetrics/qfontmetrics.pro
@@ -0,0 +1,5 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_QFontMetrics
+
+SOURCES += main.cpp
diff --git a/tests/benchmarks/qpainter/tst_qpainter.cpp b/tests/benchmarks/qpainter/tst_qpainter.cpp
index 7c6634e..39b2244 100644
--- a/tests/benchmarks/qpainter/tst_qpainter.cpp
+++ b/tests/benchmarks/qpainter/tst_qpainter.cpp
@@ -45,6 +45,10 @@
#include <QDialog>
#include <QImage>
#include <QPaintEngine>
+#include <math.h>
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
Q_DECLARE_METATYPE(QLine)
Q_DECLARE_METATYPE(QRect)
@@ -178,6 +182,35 @@ private slots:
void clipAndFill_data();
void clipAndFill();
+ void drawRoundedRect();
+ void drawScaledRoundedRect();
+ void drawTransformedRoundedRect();
+
+ void drawScaledAntialiasedRoundedRect_data();
+ void drawTransformedAntialiasedRoundedRect_data();
+ void drawAntialiasedRoundedRect();
+ void drawScaledAntialiasedRoundedRect();
+ void drawTransformedAntialiasedRoundedRect();
+
+ void drawScaledImageRoundedRect_data();
+ void drawTransformedImageRoundedRect_data();
+ void drawImageRoundedRect();
+ void drawScaledImageRoundedRect();
+ void drawTransformedImageRoundedRect();
+
+ void drawScaledBorderPixmapRoundedRect_data();
+ void drawTransformedBorderPixmapRoundedRect_data();
+ void drawBorderPixmapRoundedRect();
+ void drawScaledBorderPixmapRoundedRect();
+ void drawTransformedBorderPixmapRoundedRect();
+
+ void drawTransformedTransparentImage_data();
+ void drawTransformedSemiTransparentImage_data();
+ void drawTransformedFilledImage_data();
+ void drawTransformedTransparentImage();
+ void drawTransformedSemiTransparentImage();
+ void drawTransformedFilledImage();
+
private:
void setupBrushes();
void createPrimitives();
@@ -185,6 +218,8 @@ private:
void drawPrimitives_data_helper(bool fancypens);
void fillPrimitives_helper(QPainter *painter, PrimitiveType type, PrimitiveSet *s);
+ QTransform transformForAngle(qreal angle);
+
QPaintDevice *surface()
{
return new QPixmap(1024, 1024);
@@ -1123,6 +1158,474 @@ void tst_QPainter::clipAndFill()
}
}
+QTransform tst_QPainter::transformForAngle(qreal angle)
+{
+ const qreal inv_dist_to_plane = 1. / 1024.;
+
+ QTransform transform;
+
+ QTransform rotTrans;
+ rotTrans.translate(-40, 0);
+ QTransform rotTrans2;
+ rotTrans2.translate(40, 0);
+
+ qreal rad = angle * 2. * M_PI / 360.;
+ qreal c = ::cos(rad);
+ qreal s = ::sin(rad);
+
+ qreal x = 0;
+ qreal y = 80;
+ qreal z = 0;
+
+ qreal len = x * x + y * y + z * z;
+ if (len != 1.) {
+ len = ::sqrt(len);
+ x /= len;
+ y /= len;
+ z /= len;
+ }
+
+ QTransform rot(x*x*(1-c)+c, x*y*(1-c)-z*s, x*z*(1-c)+y*s*inv_dist_to_plane,
+ y*x*(1-c)+z*s, y*y*(1-c)+c, y*z*(1-c)-x*s*inv_dist_to_plane,
+ 0, 0, 1);
+
+ transform *= rotTrans;
+ transform *= rot;
+ transform *= rotTrans2;
+
+ return transform;
+}
+
+void tst_QPainter::drawRoundedRect()
+{
+ QImage surface(100, 100, QImage::Format_RGB16);
+ surface.fill(QColor(255,255,255).rgb());
+ QPainter p(&surface);
+
+ p.setPen(QPen(Qt::black, 1));
+ p.setBrush(Qt::red);
+
+ QBENCHMARK {
+ p.drawRoundedRect(QRectF(.5, .5, 80, 80), 10, 10);
+ }
+}
+
+void tst_QPainter::drawScaledRoundedRect()
+{
+ QImage surface(400, 400, QImage::Format_RGB16);
+ surface.fill(QColor(255,255,255).rgb());
+ QPainter p(&surface);
+
+ p.setPen(QPen(Qt::black, 1));
+ p.setBrush(Qt::red);
+ p.scale(3, 3);
+
+ QBENCHMARK {
+ p.drawRoundedRect(10, 10, 80, 80, 10, 10);
+ }
+}
+
+void tst_QPainter::drawTransformedRoundedRect()
+{
+ QImage surface(400, 400, QImage::Format_RGB16);
+ surface.fill(QColor(255,255,255).rgb());
+ QPainter p(&surface);
+
+ p.setPen(QPen(Qt::black, 1));
+ p.setBrush(Qt::red);
+
+ QBENCHMARK {
+ p.setWorldTransform(QTransform(0.956957, 0, 0.000704124, 0, 1, 0, 16.141, 0, 0.735953));
+ p.drawRoundedRect(100, 100, 80, 80, 10, 10);
+ }
+}
+
+void tst_QPainter::drawAntialiasedRoundedRect()
+{
+ QImage surface(100, 100, QImage::Format_RGB16);
+ surface.fill(QColor(255,255,255).rgb());
+ QPainter p(&surface);
+
+ p.setRenderHint(QPainter::Antialiasing, true);
+ p.setPen(QPen(Qt::black, 1));
+ p.setBrush(Qt::red);
+
+ QBENCHMARK {
+ p.drawRoundedRect(QRectF(.5, .5, 80, 80), 10, 10);
+ }
+}
+
+void tst_QPainter::drawScaledAntialiasedRoundedRect_data()
+{
+ QTest::addColumn<float>("scale");
+
+ for (float i = 0; i < 3; i += .1)
+ QTest::newRow(QString(QLatin1String("scale=%1")).arg(i).toLatin1()) << i;
+}
+
+void tst_QPainter::drawScaledAntialiasedRoundedRect()
+{
+ QFETCH(float, scale);
+
+ QImage surface(400, 400, QImage::Format_RGB16);
+ surface.fill(QColor(255,255,255).rgb());
+ QPainter p(&surface);
+
+ p.setRenderHint(QPainter::Antialiasing, true);
+ p.setPen(QPen(Qt::black, 1));
+ p.setBrush(Qt::red);
+ p.scale(scale, scale);
+
+ QBENCHMARK {
+ p.drawRoundedRect(10, 10, 80, 80, 10, 10);
+ }
+}
+
+void tst_QPainter::drawTransformedAntialiasedRoundedRect_data()
+{
+ QTest::addColumn<QTransform>("transform");
+
+ for (float angle = 0; angle < 360; angle += 10)
+ QTest::newRow(QString(QLatin1String("angle=%1")).arg(angle).toLatin1()) << transformForAngle(angle);
+}
+
+void tst_QPainter::drawTransformedAntialiasedRoundedRect()
+{
+ QFETCH(QTransform, transform);
+
+ QImage surface(400, 400, QImage::Format_RGB16);
+ surface.fill(QColor(255,255,255).rgb());
+ QPainter p(&surface);
+
+ p.setRenderHint(QPainter::Antialiasing, true);
+ p.setPen(QPen(Qt::black, 1));
+ p.setBrush(Qt::red);
+
+ QBENCHMARK {
+ p.setWorldTransform(transform);
+ p.drawRoundedRect(100, 100, 80, 80, 10, 10);
+ }
+}
+
+void tst_QPainter::drawImageRoundedRect()
+{
+ //setup image
+ const int radius = 10;
+ QImage rectImage(81, 81, QImage::Format_ARGB32_Premultiplied);
+ rectImage.fill(0);
+ QPainter rp(&rectImage);
+ rp.setRenderHint(QPainter::Antialiasing);
+ rp.setPen(Qt::black);
+ rp.setBrush(Qt::red);
+ rp.drawRoundedRect(QRectF(.5, .5, 80, 80), radius, radius);
+
+ //setup surface
+ QImage surface(100, 100, QImage::Format_RGB16);
+ surface.fill(QColor(255,255,255).rgb());
+ QPainter p(&surface);
+
+ QBENCHMARK {
+ p.drawImage(0,0, rectImage);
+ }
+}
+
+void tst_QPainter::drawScaledImageRoundedRect_data()
+{
+ QTest::addColumn<int>("imageType");
+
+ QTest::newRow("imagetype=ARGB32_Pre") << (int)QImage::Format_ARGB32_Premultiplied;
+ QTest::newRow("imagetype=ARGB8565_Pre") << (int)QImage::Format_ARGB8565_Premultiplied;
+}
+
+void tst_QPainter::drawScaledImageRoundedRect()
+{
+ QFETCH(int, imageType);
+
+ //setup image
+ const int radius = 10;
+ QImage rectImage(81, 81, (QImage::Format)imageType);
+ rectImage.fill(0);
+ QPainter rp(&rectImage);
+ rp.setRenderHint(QPainter::Antialiasing);
+ rp.setPen(Qt::black);
+ rp.setBrush(Qt::red);
+ rp.drawRoundedRect(QRectF(.5, .5, 80, 80), radius, radius);
+
+ //setup surface
+ QImage surface(400, 400, QImage::Format_RGB16);
+ surface.fill(QColor(255,255,255).rgb());
+ QPainter p(&surface);
+ p.scale(3, 3);
+
+ QBENCHMARK {
+ p.drawImage(0,0, rectImage);
+ }
+}
+
+void tst_QPainter::drawTransformedImageRoundedRect_data()
+{
+ QTest::addColumn<int>("imageType");
+
+ QTest::newRow("imagetype=ARGB32_Pre") << (int)QImage::Format_ARGB32_Premultiplied;
+ QTest::newRow("imagetype=ARGB8565_Pre") << (int)QImage::Format_ARGB8565_Premultiplied;
+}
+
+void tst_QPainter::drawTransformedImageRoundedRect()
+{
+ QFETCH(int, imageType);
+
+ //setup image
+ const int radius = 10;
+ QImage rectImage(81, 81, (QImage::Format)imageType);
+ rectImage.fill(0);
+ QPainter rp(&rectImage);
+ rp.setRenderHint(QPainter::Antialiasing);
+ rp.setPen(Qt::black);
+ rp.setBrush(Qt::red);
+ rp.drawRoundedRect(QRectF(.5, .5, 80, 80), radius, radius);
+
+ //setup surface
+ QImage surface(400, 400, QImage::Format_RGB16);
+ surface.fill(QColor(255,255,255).rgb());
+ QPainter p(&surface);
+
+ QBENCHMARK {
+ p.setWorldTransform(QTransform(0.956957, 0, 0.000704124, 0, 1, 0, 16.141, 0, 0.735953));
+ p.drawImage(100,100, rectImage);
+ }
+}
+
+//code from QmlGraphicsRectangle for drawing rounded rects
+void tst_QPainter::drawBorderPixmapRoundedRect()
+{
+ //setup image
+ const int pw = 1;
+ const int radius = 10;
+ QImage rectImage(radius*2 + 3 + pw*2, radius*2 + 3 + pw*2, QImage::Format_ARGB32_Premultiplied);
+ rectImage.fill(0);
+ QPainter rp(&rectImage);
+ rp.setRenderHint(QPainter::Antialiasing);
+ rp.setPen(Qt::black);
+ rp.setBrush(Qt::red);
+ if (pw%2)
+ rp.drawRoundedRect(QRectF(qreal(pw)/2+1, qreal(pw)/2+1, rectImage.width()-(pw+1), rectImage.height()-(pw+1)), radius, radius);
+ else
+ rp.drawRoundedRect(QRectF(qreal(pw)/2, qreal(pw)/2, rectImage.width()-pw, rectImage.height()-pw), radius, radius);
+ QPixmap rectPixmap = QPixmap::fromImage(rectImage);
+
+ //setup surface
+ QImage surface(100, 100, QImage::Format_RGB16);
+ surface.fill(QColor(255,255,255).rgb());
+ QPainter p(&surface);
+
+ QBENCHMARK {
+ const int pw = 2;
+ int width = 80;
+ int height = 80;
+
+ int xOffset = (rectPixmap.width()-1)/2;
+ int yOffset = (rectPixmap.height()-1)/2;
+ Q_ASSERT(rectPixmap.width() == 2*xOffset + 1);
+ Q_ASSERT(rectPixmap.height() == 2*yOffset + 1);
+
+ QMargins margins(xOffset, yOffset, xOffset, yOffset);
+ QTileRules rules(Qt::StretchTile, Qt::StretchTile);
+ //NOTE: even though our item may have qreal-based width and height, qDrawBorderPixmap only supports QRects
+ qDrawBorderPixmap(&p, QRect(-pw/2, -pw/2, width+pw, height+pw), margins, rectPixmap, rectPixmap.rect(), margins, rules);
+ }
+}
+
+void tst_QPainter::drawScaledBorderPixmapRoundedRect_data()
+{
+ QTest::addColumn<float>("scale");
+ QTest::addColumn<int>("imageType");
+
+ for (float i = 0; i < 3; i += .1)
+ QTest::newRow(QString(QLatin1String("scale=%1; imagetype=ARGB32_Pre")).arg(i).toLatin1()) << i << (int)QImage::Format_ARGB32_Premultiplied;
+ //for (float i = 0; i < 3; i += .1)
+ // QTest::newRow(QString(QLatin1String("scale=%1; imagetype=ARGB8565_Pre")).arg(i).toLatin1()) << i << (int)QImage::Format_ARGB8565_Premultiplied;
+}
+
+//code from QmlGraphicsRectangle for drawing rounded rects
+void tst_QPainter::drawScaledBorderPixmapRoundedRect()
+{
+ QFETCH(float, scale);
+ QFETCH(int, imageType);
+
+ //setup image
+ const int pw = 1;
+ const int radius = 10;
+ QImage rectImage(radius*2 + 3 + pw*2, radius*2 + 3 + pw*2, (QImage::Format)imageType);
+ rectImage.fill(0);
+ QPainter rp(&rectImage);
+ rp.setRenderHint(QPainter::Antialiasing);
+ rp.setPen(Qt::black);
+ rp.setBrush(Qt::red);
+ if (pw%2)
+ rp.drawRoundedRect(QRectF(qreal(pw)/2+1, qreal(pw)/2+1, rectImage.width()-(pw+1), rectImage.height()-(pw+1)), radius, radius);
+ else
+ rp.drawRoundedRect(QRectF(qreal(pw)/2, qreal(pw)/2, rectImage.width()-pw, rectImage.height()-pw), radius, radius);
+
+ QPixmap rectPixmap = QPixmap::fromImage(rectImage);
+
+ //setup surface
+ QImage surface(400, 400, QImage::Format_RGB16);
+ surface.fill(QColor(255,255,255).rgb());
+ QPainter p(&surface);
+ p.scale(scale, scale);
+
+ QBENCHMARK {
+ const int pw = 2;
+ int width = 80;
+ int height = 80;
+
+ int xOffset = (rectPixmap.width()-1)/2;
+ int yOffset = (rectPixmap.height()-1)/2;
+ Q_ASSERT(rectPixmap.width() == 2*xOffset + 1);
+ Q_ASSERT(rectPixmap.height() == 2*yOffset + 1);
+
+ QMargins margins(xOffset, yOffset, xOffset, yOffset);
+ QTileRules rules(Qt::StretchTile, Qt::StretchTile);
+ qDrawBorderPixmap(&p, QRect(-pw/2, -pw/2, width+pw, height+pw), margins, rectPixmap, rectPixmap.rect(), margins, rules);
+ }
+}
+
+void tst_QPainter::drawTransformedBorderPixmapRoundedRect_data()
+{
+ QTest::addColumn<QTransform>("transform");
+ QTest::addColumn<int>("imageType");
+
+ for (float angle = 0; angle < 360; angle += 10)
+ QTest::newRow(QString(QLatin1String("angle=%1; imagetype=ARGB32_Pre")).arg(angle).toLatin1()) << transformForAngle(angle) << (int)QImage::Format_ARGB32_Premultiplied;
+ //for (float angle = 0; angle < 360; angle += 10)
+ // QTest::newRow(QString(QLatin1String("angle=%1; imagetype=ARGB8565_Pre")).arg(angle).toLatin1()) << transformForAngle(angle) << (int)QImage::Format_ARGB8565_Premultiplied;
+
+}
+
+//code from QmlGraphicsRectangle for drawing rounded rects
+void tst_QPainter::drawTransformedBorderPixmapRoundedRect()
+{
+ QFETCH(QTransform, transform);
+ QFETCH(int, imageType);
+
+ //setup image
+ const int pw = 1;
+ const int radius = 10;
+ QImage rectImage(radius*2 + 3 + pw*2, radius*2 + 3 + pw*2, (QImage::Format)imageType);
+ rectImage.fill(0);
+ QPainter rp(&rectImage);
+ rp.setRenderHint(QPainter::Antialiasing);
+ rp.setPen(Qt::black);
+ rp.setBrush(Qt::red);
+ if (pw%2)
+ rp.drawRoundedRect(QRectF(qreal(pw)/2+1, qreal(pw)/2+1, rectImage.width()-(pw+1), rectImage.height()-(pw+1)), radius, radius);
+ else
+ rp.drawRoundedRect(QRectF(qreal(pw)/2, qreal(pw)/2, rectImage.width()-pw, rectImage.height()-pw), radius, radius);
+
+ QPixmap rectPixmap = QPixmap::fromImage(rectImage);
+
+ //setup surface
+ QImage surface(400, 400, QImage::Format_RGB16);
+ surface.fill(QColor(255,255,255).rgb());
+ QPainter p(&surface);
+
+ QBENCHMARK {
+ p.setWorldTransform(transform);
+ const int pw = 2;
+ int width = 80;
+ int height = 80;
+
+ int xOffset = (rectPixmap.width()-1)/2;
+ int yOffset = (rectPixmap.height()-1)/2;
+ Q_ASSERT(rectPixmap.width() == 2*xOffset + 1);
+ Q_ASSERT(rectPixmap.height() == 2*yOffset + 1);
+
+ QMargins margins(xOffset, yOffset, xOffset, yOffset);
+ QTileRules rules(Qt::StretchTile, Qt::StretchTile);
+ qDrawBorderPixmap(&p, QRect(-pw/2, -pw/2, width+pw, height+pw), margins, rectPixmap, rectPixmap.rect(), margins, rules);
+ }
+}
+
+void tst_QPainter::drawTransformedTransparentImage_data()
+{
+ QTest::addColumn<int>("imageType");
+
+ QTest::newRow("imagetype=ARGB32_Pre") << (int)QImage::Format_ARGB32_Premultiplied;
+ QTest::newRow("imagetype=ARGB8565_Pre") << (int)QImage::Format_ARGB8565_Premultiplied;
+}
+
+void tst_QPainter::drawTransformedTransparentImage()
+{
+ QFETCH(int, imageType);
+
+ //setup image
+ QImage transImage(200, 200, (QImage::Format)imageType);
+ transImage.fill(0);
+
+ //setup surface
+ QImage surface(200, 200, QImage::Format_RGB16);
+ surface.fill(QColor(255,255,255).rgb());
+ QPainter p(&surface);
+
+ QBENCHMARK {
+ p.setWorldTransform(QTransform(0.956957, 0, 0.000704124, 0, 1, 0, 16.141, 0, 0.735953));
+ p.drawImage(0,0, transImage);
+ }
+}
+
+void tst_QPainter::drawTransformedSemiTransparentImage_data()
+{
+ QTest::addColumn<int>("imageType");
+
+ QTest::newRow("imagetype=ARGB32_Pre") << (int)QImage::Format_ARGB32_Premultiplied;
+ QTest::newRow("imagetype=ARGB8565_Pre") << (int)QImage::Format_ARGB8565_Premultiplied;
+}
+
+void tst_QPainter::drawTransformedSemiTransparentImage()
+{
+ QFETCH(int, imageType);
+
+ //setup image
+ QImage transImage(200, 200, (QImage::Format)imageType);
+ transImage.fill(QColor(0,0,0, 128).rgba());
+
+ //setup surface
+ QImage surface(200, 200, QImage::Format_RGB16);
+ surface.fill(QColor(255,255,255).rgb());
+ QPainter p(&surface);
+
+ QBENCHMARK {
+ p.setWorldTransform(QTransform(0.956957, 0, 0.000704124, 0, 1, 0, 16.141, 0, 0.735953));
+ p.drawImage(0,0, transImage);
+ }
+}
+
+void tst_QPainter::drawTransformedFilledImage_data()
+{
+ QTest::addColumn<int>("imageType");
+
+ QTest::newRow("imagetype=ARGB32_Pre") << (int)QImage::Format_ARGB32_Premultiplied;
+ QTest::newRow("imagetype=ARGB8565_Pre") << (int)QImage::Format_ARGB8565_Premultiplied;
+}
+
+void tst_QPainter::drawTransformedFilledImage()
+{
+ QFETCH(int, imageType);
+
+ //setup image
+ QImage filledImage(200, 200, (QImage::Format)imageType);
+ filledImage.fill(QColor(0,0,0).rgb());
+
+ //setup surface
+ QImage surface(200, 200, QImage::Format_RGB16);
+ surface.fill(QColor(255,255,255).rgb());
+ QPainter p(&surface);
+
+ QBENCHMARK {
+ p.setWorldTransform(QTransform(0.956957, 0, 0.000704124, 0, 1, 0, 16.141, 0, 0.735953));
+ p.drawImage(0,0, filledImage);
+ }
+}
QTEST_MAIN(tst_QPainter)
diff --git a/tests/benchmarks/qscriptengine/qscriptengine.pro b/tests/benchmarks/qscriptengine/qscriptengine.pro
index 22bbccd..df6dbb3 100644
--- a/tests/benchmarks/qscriptengine/qscriptengine.pro
+++ b/tests/benchmarks/qscriptengine/qscriptengine.pro
@@ -5,3 +5,8 @@ TARGET = tst_qscriptengine
SOURCES += tst_qscriptengine.cpp
QT += script
+
+symbian* {
+ TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 // Min 128kB, Max 32MB
+ TARGET.EPOCSTACKSIZE = 0x14000
+}
diff --git a/tests/benchmarks/qscriptengine/tst_qscriptengine.cpp b/tests/benchmarks/qscriptengine/tst_qscriptengine.cpp
index b42a355..6c6f0b1 100644
--- a/tests/benchmarks/qscriptengine/tst_qscriptengine.cpp
+++ b/tests/benchmarks/qscriptengine/tst_qscriptengine.cpp
@@ -256,8 +256,13 @@ void tst_QScriptEngine::nativeCall()
QScriptEngine eng;
eng.globalObject().setProperty("fun", eng.newFunction(native_function));
QBENCHMARK{
+#if !defined(Q_OS_SYMBIAN)
eng.evaluate("var w = 0; for (i = 0; i < 100000; ++i) {\n"
" w += fun() + fun(); w -= fun(); fun(); w -= fun(); }");
+#else
+ eng.evaluate("var w = 0; for (i = 0; i < 25000; ++i) {\n"
+ " w += fun() + fun(); w -= fun(); fun(); w -= fun(); }");
+#endif
}
}
diff --git a/tests/benchmarks/qstring/main.cpp b/tests/benchmarks/qstring/main.cpp
index 298c784..12826eb 100644
--- a/tests/benchmarks/qstring/main.cpp
+++ b/tests/benchmarks/qstring/main.cpp
@@ -42,6 +42,12 @@
#include <QFile>
#include <qtest.h>
+#ifdef Q_OS_SYMBIAN
+// In Symbian OS test data is located in applications private dir
+// Application private dir is default serach path for files, so SRCDIR can be set to empty
+#define SRCDIR ""
+#endif
+
class tst_QString: public QObject
{
Q_OBJECT
diff --git a/tests/benchmarks/qstring/qstring.pro b/tests/benchmarks/qstring/qstring.pro
index 6aad1c0..2e7c86a 100644
--- a/tests/benchmarks/qstring/qstring.pro
+++ b/tests/benchmarks/qstring/qstring.pro
@@ -5,8 +5,12 @@ SOURCES += main.cpp
wince*:{
DEFINES += SRCDIR=\\\"\\\"
+} else:symbian* {
+ addFiles.sources = utf-8.txt
+ addFiles.path = .
+ DEPLOYMENT += addFiles
+ TARGET.EPOCHEAPSIZE="0x100 0x1000000"
} else {
DEFINES += SRCDIR=\\\"$$PWD/\\\"
}
-
diff --git a/tests/benchmarks/qtext/main.cpp b/tests/benchmarks/qtext/main.cpp
index 4bd2bee..d4f3165 100644
--- a/tests/benchmarks/qtext/main.cpp
+++ b/tests/benchmarks/qtext/main.cpp
@@ -44,10 +44,19 @@
#include <QTextDocumentWriter>
#include <QTextLayout>
#include <QTextCursor>
+#include <private/qtextcontrol_p.h>
+#include <qmath.h>
#include <QFile>
+#include <QPainter>
#include <QBuffer>
#include <qtest.h>
+#ifdef Q_OS_SYMBIAN
+// In Symbian OS test data is located in applications private dir
+// Application private dir is default serach path for files, so SRCDIR can be set to empty
+#define SRCDIR ""
+#endif
+
Q_DECLARE_METATYPE(QTextDocument*)
class tst_QText: public QObject
@@ -56,6 +65,7 @@ class tst_QText: public QObject
public:
tst_QText() {
m_lorem = QString::fromLatin1("Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.");
+ m_shortLorem = QString::fromLatin1("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.");
}
private slots:
@@ -69,8 +79,26 @@ private slots:
void odfWriting_text();
void odfWriting_images();
+ void constructControl();
+ void constructDocument();
+
+ void layout();
+ void paintLayoutToPixmap();
+ void paintLayoutToPixmap_painterFill();
+
+ void document();
+ void paintDocToPixmap();
+ void paintDocToPixmap_painterFill();
+
+ void control();
+ void paintControlToPixmap();
+ void paintControlToPixmap_painterFill();
+
private:
+ QSize setupTextLayout(QTextLayout *layout);
+
QString m_lorem;
+ QString m_shortLorem;
};
void tst_QText::loadHtml_data()
@@ -107,7 +135,11 @@ void tst_QText::shaping_data()
QTest::newRow("lorem") << m_lorem;
QTest::newRow("short") << QString::fromLatin1("Lorem ipsum dolor sit amet");
+#if !defined(Q_OS_SYMBIAN)
QFile file(QString::fromLatin1(SRCDIR) + QLatin1String("/bidi.txt"));
+#else
+ QFile file( SRCDIR "bidi.txt" );
+#endif
QVERIFY(file.open(QFile::ReadOnly));
QByteArray data = file.readAll();
QVERIFY(data.count() > 1000);
@@ -195,6 +227,189 @@ void tst_QText::odfWriting_images()
delete doc;
}
+QSize tst_QText::setupTextLayout(QTextLayout *layout)
+{
+ bool wrap = true;
+ int wrapWidth = 300;
+ layout->setCacheEnabled(true);
+
+ int height = 0;
+ qreal widthUsed = 0;
+ qreal lineWidth = 0;
+
+ //set manual width
+ if (wrap)
+ lineWidth = wrapWidth;
+
+ layout->beginLayout();
+
+ while (1) {
+ QTextLine line = layout->createLine();
+ if (!line.isValid())
+ break;
+
+ if (wrap)
+ line.setLineWidth(lineWidth);
+ }
+ layout->endLayout();
+
+ for (int i = 0; i < layout->lineCount(); ++i) {
+ QTextLine line = layout->lineAt(i);
+ widthUsed = qMax(widthUsed, line.naturalTextWidth());
+ line.setPosition(QPointF(0, height));
+ height += int(line.height());
+ }
+ return QSize(qCeil(widthUsed), height);
+}
+
+void tst_QText::constructControl()
+{
+ QTextControl *control = new QTextControl;
+ delete control;
+
+ QBENCHMARK {
+ QTextControl *control = new QTextControl;
+ delete control;
+ }
+}
+
+void tst_QText::constructDocument()
+{
+ QTextDocument *doc = new QTextDocument;
+ delete doc;
+
+ QBENCHMARK {
+ QTextDocument *doc = new QTextDocument;
+ delete doc;
+ }
+}
+
+void tst_QText::layout()
+{
+ QTextLayout layout(m_shortLorem);
+ setupTextLayout(&layout);
+
+ QBENCHMARK {
+ QTextLayout layout(m_shortLorem);
+ setupTextLayout(&layout);
+ }
+}
+
+void tst_QText::paintLayoutToPixmap()
+{
+ QTextLayout layout(m_shortLorem);
+ QSize size = setupTextLayout(&layout);
+
+ QBENCHMARK {
+ QPixmap img(size);
+ img.fill(Qt::transparent);
+ QPainter p(&img);
+ layout.draw(&p, QPointF(0, 0));
+ }
+}
+
+void tst_QText::paintLayoutToPixmap_painterFill()
+{
+ QTextLayout layout(m_shortLorem);
+ QSize size = setupTextLayout(&layout);
+
+ QBENCHMARK {
+ QPixmap img(size);
+ QPainter p(&img);
+ p.setCompositionMode(QPainter::CompositionMode_Source);
+ p.fillRect(0, 0, img.width(), img.height(), Qt::transparent);
+ p.setCompositionMode(QPainter::CompositionMode_SourceOver);
+ layout.draw(&p, QPointF(0, 0));
+ }
+}
+
+void tst_QText::document()
+{
+ QTextDocument *doc = new QTextDocument;
+
+ QBENCHMARK {
+ QTextDocument *doc = new QTextDocument;
+ doc->setHtml(m_shortLorem);
+ }
+}
+
+void tst_QText::paintDocToPixmap()
+{
+ QTextDocument *doc = new QTextDocument;
+ doc->setHtml(m_shortLorem);
+ doc->setTextWidth(300);
+ QSize size = doc->size().toSize();
+
+ QBENCHMARK {
+ QPixmap img(size);
+ img.fill(Qt::transparent);
+ QPainter p(&img);
+ doc->drawContents(&p);
+ }
+}
+
+void tst_QText::paintDocToPixmap_painterFill()
+{
+ QTextDocument *doc = new QTextDocument;
+ doc->setHtml(m_shortLorem);
+ doc->setTextWidth(300);
+ QSize size = doc->size().toSize();
+
+ QBENCHMARK {
+ QPixmap img(size);
+ QPainter p(&img);
+ p.setCompositionMode(QPainter::CompositionMode_Source);
+ p.fillRect(0, 0, img.width(), img.height(), Qt::transparent);
+ p.setCompositionMode(QPainter::CompositionMode_SourceOver);
+ doc->drawContents(&p);
+ }
+}
+
+void tst_QText::control()
+{
+ QTextControl *control = new QTextControl(m_shortLorem);
+
+ QBENCHMARK {
+ QTextControl *control = new QTextControl;
+ QTextDocument *doc = control->document();
+ doc->setHtml(m_shortLorem);
+ }
+}
+
+void tst_QText::paintControlToPixmap()
+{
+ QTextControl *control = new QTextControl;
+ QTextDocument *doc = control->document();
+ doc->setHtml(m_shortLorem);
+ doc->setTextWidth(300);
+ QSize size = doc->size().toSize();
+
+ QBENCHMARK {
+ QPixmap img(size);
+ img.fill(Qt::transparent);
+ QPainter p(&img);
+ control->drawContents(&p, QRectF(QPointF(0, 0), QSizeF(size)));
+ }
+}
+
+void tst_QText::paintControlToPixmap_painterFill()
+{
+ QTextControl *control = new QTextControl;
+ QTextDocument *doc = control->document();
+ doc->setHtml(m_shortLorem);
+ doc->setTextWidth(300);
+ QSize size = doc->size().toSize();
+
+ QBENCHMARK {
+ QPixmap img(size);
+ QPainter p(&img);
+ p.setCompositionMode(QPainter::CompositionMode_Source);
+ p.fillRect(0, 0, img.width(), img.height(), Qt::transparent);
+ p.setCompositionMode(QPainter::CompositionMode_SourceOver);
+ control->drawContents(&p, QRectF(QPointF(0, 0), QSizeF(size)));
+ }
+}
+
QTEST_MAIN(tst_QText)
#include "main.moc"
diff --git a/tests/benchmarks/qtext/qtext.pro b/tests/benchmarks/qtext/qtext.pro
index ce4f604..9e8860f 100644
--- a/tests/benchmarks/qtext/qtext.pro
+++ b/tests/benchmarks/qtext/qtext.pro
@@ -4,4 +4,11 @@ TARGET = tst_QText
SOURCES += main.cpp
-DEFINES += SRCDIR=\\\"$$PWD/\\\"
+symbian* {
+ TARGET.CAPABILITY = ALL -TCB
+ addFiles.sources = bidi.txt
+ addFiles.path = .
+ DEPLOYMENT += addFiles
+} else {
+ DEFINES += SRCDIR=\\\"$$PWD/\\\"
+} \ No newline at end of file
diff --git a/tests/shared/filesystem.h b/tests/shared/filesystem.h
new file mode 100644
index 0000000..2d46c0d
--- /dev/null
+++ b/tests/shared/filesystem.h
@@ -0,0 +1,97 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+// Helper functions for creating file-system hierarchies and cleaning up.
+
+#ifndef QT_TESTS_SHARED_FILESYSTEM_H_INCLUDED
+#define QT_TESTS_SHARED_FILESYSTEM_H_INCLUDED
+
+#include <QString>
+#include <QStringList>
+#include <QDir>
+#include <QFile>
+
+struct FileSystem
+{
+ ~FileSystem()
+ {
+ Q_FOREACH(QString fileName, createdFiles)
+ QFile::remove(fileName);
+
+ Q_FOREACH(QString dirName, createdDirectories)
+ currentDir.rmdir(dirName);
+ }
+
+ bool createDirectory(const QString &dirName)
+ {
+ if (currentDir.mkdir(dirName)) {
+ createdDirectories.prepend(dirName);
+ return true;
+ }
+ return false;
+ }
+
+ bool createFile(const QString &fileName)
+ {
+ QFile file(fileName);
+ if (file.open(QIODevice::WriteOnly)) {
+ createdFiles << fileName;
+ return true;
+ }
+ return false;
+ }
+
+ bool createLink(const QString &destination, const QString &linkName)
+ {
+ if (QFile::link(destination, linkName)) {
+ createdFiles << linkName;
+ return true;
+ }
+ return false;
+ }
+
+private:
+ QDir currentDir;
+
+ QStringList createdDirectories;
+ QStringList createdFiles;
+};
+
+#endif // include guard
diff --git a/tools/assistant/lib/fulltextsearch/qclucene-config_p.h b/tools/assistant/lib/fulltextsearch/qclucene-config_p.h
index 729ae72..0c70718 100644
--- a/tools/assistant/lib/fulltextsearch/qclucene-config_p.h
+++ b/tools/assistant/lib/fulltextsearch/qclucene-config_p.h
@@ -529,7 +529,7 @@ configure.
/* Conditional Debugging */
/* #undef _CL__CND_DEBUG */
-/* debuging option */
+/* debugging option */
/* #undef _DEBUG */
/* Number of bits in a file offset, on hosts where this is settable. */
diff --git a/tools/assistant/lib/qhelpcollectionhandler.cpp b/tools/assistant/lib/qhelpcollectionhandler.cpp
index 9fdbd8e..235f737 100644
--- a/tools/assistant/lib/qhelpcollectionhandler.cpp
+++ b/tools/assistant/lib/qhelpcollectionhandler.cpp
@@ -252,7 +252,7 @@ bool QHelpCollectionHandler::createTables(QSqlQuery *query)
"Key TEXT PRIMARY KEY, "
"Value BLOB )");
- foreach (QString q, tables) {
+ foreach (const QString &q, tables) {
if (!query->exec(q))
return false;
}
@@ -321,7 +321,7 @@ bool QHelpCollectionHandler::addCustomFilter(const QString &filterName,
idsToInsert.removeAll(m_query.value(1).toString());
}
- foreach (QString id, idsToInsert) {
+ foreach (const QString &id, idsToInsert) {
m_query.prepare(QLatin1String("INSERT INTO FilterAttributeTable VALUES(NULL, ?)"));
m_query.bindValue(0, id);
m_query.exec();
@@ -344,7 +344,7 @@ bool QHelpCollectionHandler::addCustomFilter(const QString &filterName,
m_query.bindValue(0, nameId);
m_query.exec();
- foreach (QString att, attributes) {
+ foreach (const QString &att, attributes) {
m_query.prepare(QLatin1String("INSERT INTO FilterTable VALUES(?, ?)"));
m_query.bindValue(0, nameId);
m_query.bindValue(1, attributeMap[att]);
@@ -398,7 +398,7 @@ bool QHelpCollectionHandler::registerDocumentation(const QString &fileName)
return false;
addFilterAttributes(reader.filterAttributes());
- foreach (QString filterName, reader.customFilters())
+ foreach (const QString &filterName, reader.customFilters())
addCustomFilter(filterName, reader.filterAttributes(filterName));
optimizeDatabase(fileName);
@@ -497,7 +497,7 @@ bool QHelpCollectionHandler::addFilterAttributes(const QStringList &attributes)
while (m_query.next())
atts.insert(m_query.value(0).toString());
- foreach (QString s, attributes) {
+ foreach (const QString &s, attributes) {
if (!atts.contains(s)) {
m_query.prepare(QLatin1String("INSERT INTO FilterAttributeTable VALUES(NULL, ?)"));
m_query.bindValue(0, s);
diff --git a/tools/assistant/lib/qhelpcontentwidget.cpp b/tools/assistant/lib/qhelpcontentwidget.cpp
index 3986afb..a80dc39 100644
--- a/tools/assistant/lib/qhelpcontentwidget.cpp
+++ b/tools/assistant/lib/qhelpcontentwidget.cpp
@@ -253,7 +253,7 @@ void QHelpContentProvider::run()
const QStringList fileNames = m_helpEngine->orderedFileNameList;
m_mutex.unlock();
- foreach (QString dbFileName, fileNames) {
+ foreach (const QString &dbFileName, fileNames) {
m_mutex.lock();
if (m_abort) {
m_abort = false;
diff --git a/tools/assistant/lib/qhelpdbreader.cpp b/tools/assistant/lib/qhelpdbreader.cpp
index 904124b..6dd949a 100644
--- a/tools/assistant/lib/qhelpdbreader.cpp
+++ b/tools/assistant/lib/qhelpdbreader.cpp
@@ -515,7 +515,7 @@ QVariant QHelpDBReader::metaData(const QString &name) const
QString QHelpDBReader::mergeList(const QStringList &list) const
{
QString str;
- foreach (QString s, list)
+ foreach (const QString &s, list)
str.append(QLatin1Char('\'') + quote(s) + QLatin1String("\', "));
if (str.endsWith(QLatin1String(", ")))
str = str.left(str.length()-2);
@@ -567,14 +567,14 @@ bool QHelpDBReader::createAttributesCache(const QStringList &attributes,
bool needUpdate = !m_viewAttributes.count();
- foreach (QString s, attributes)
+ foreach (const QString &s, attributes)
m_viewAttributes.remove(s);
if (m_viewAttributes.count() || needUpdate) {
m_viewAttributes.clear();
m_indicesCache = indexIds;
}
- foreach (QString s, attributes)
+ foreach (const QString &s, attributes)
m_viewAttributes.insert(s);
m_useAttributesCache = true;
return true;
diff --git a/tools/assistant/lib/qhelpenginecore.cpp b/tools/assistant/lib/qhelpenginecore.cpp
index 0fceaaa..a76fe69 100644
--- a/tools/assistant/lib/qhelpenginecore.cpp
+++ b/tools/assistant/lib/qhelpenginecore.cpp
@@ -168,7 +168,7 @@ void QHelpEngineCorePrivate::errorReceived(const QString &msg)
it is removed by calling removeCustomFilter(). customFilters() returns
all defined filters.
- The help engine also offers the possiblity to set and read values
+ The help engine also offers the possibility to set and read values
in a persistant way comparable to ini files or Windows registry
entries. For more information see setValue() or value().
@@ -362,7 +362,7 @@ QString QHelpEngineCore::documentationFileName(const QString &namespaceName)
if (d->setup()) {
const QHelpCollectionHandler::DocInfoList docList =
d->collectionHandler->registeredDocumentations();
- foreach(const QHelpCollectionHandler::DocInfo info, docList) {
+ foreach(const QHelpCollectionHandler::DocInfo &info, docList) {
if (info.namespaceName == namespaceName) {
if (QDir::isAbsolutePath(info.fileName))
return QDir::cleanPath(info.fileName);
@@ -386,7 +386,7 @@ QStringList QHelpEngineCore::registeredDocumentations() const
if (!d->setup())
return list;
const QHelpCollectionHandler::DocInfoList docList = d->collectionHandler->registeredDocumentations();
- foreach(const QHelpCollectionHandler::DocInfo info, docList) {
+ foreach(const QHelpCollectionHandler::DocInfo &info, docList) {
list.append(info.namespaceName);
}
return list;
@@ -532,7 +532,7 @@ QList<QUrl> QHelpEngineCore::files(const QString namespaceName,
url.setAuthority(namespaceName);
const QStringList files = reader->files(filterAttributes, extensionFilter);
- foreach (const QString file, files) {
+ foreach (const QString &file, files) {
url.setPath(QLatin1String("/") + file);
res.append(url);
}
diff --git a/tools/assistant/lib/qhelpgenerator.cpp b/tools/assistant/lib/qhelpgenerator.cpp
index 63164cd..783f016 100644
--- a/tools/assistant/lib/qhelpgenerator.cpp
+++ b/tools/assistant/lib/qhelpgenerator.cpp
@@ -204,7 +204,7 @@ bool QHelpGenerator::generate(QHelpDataInterface *helpData,
addProgress(1.0);
emit statusChanged(tr("Insert custom filters..."));
- foreach (QHelpDataCustomFilter f, helpData->customFilters()) {
+ foreach (const QHelpDataCustomFilter &f, helpData->customFilters()) {
if (!registerCustomFilter(f.name, f.filterAttributes, true)) {
cleanupDB();
return false;
@@ -368,7 +368,7 @@ bool QHelpGenerator::createTables()
"Name Text, "
"Value BLOB )");
- foreach (QString q, tables) {
+ foreach (const QString &q, tables) {
if (!d->query->exec(q)) {
d->error = tr("Cannot create tables!");
return false;
@@ -632,7 +632,7 @@ bool QHelpGenerator::registerCustomFilter(const QString &filterName,
idsToInsert.removeAll(d->query->value(1).toString());
}
- foreach (QString id, idsToInsert) {
+ foreach (const QString &id, idsToInsert) {
d->query->prepare(QLatin1String("INSERT INTO FilterAttributeTable VALUES(NULL, ?)"));
d->query->bindValue(0, id);
d->query->exec();
@@ -667,7 +667,7 @@ bool QHelpGenerator::registerCustomFilter(const QString &filterName,
d->query->bindValue(0, nameId);
d->query->exec();
- foreach (QString att, filterAttribs) {
+ foreach (const QString &att, filterAttribs) {
d->query->prepare(QLatin1String("INSERT INTO FilterTable VALUES(?, ?)"));
d->query->bindValue(0, nameId);
d->query->bindValue(1, attributeMap[att]);
@@ -690,7 +690,7 @@ bool QHelpGenerator::insertKeywords(const QList<QHelpDataIndexItem> &keywords,
indexId = d->query->value(0).toInt() + 1;
QList<int> filterAtts;
- foreach (QString filterAtt, filterAttributes) {
+ foreach (const QString &filterAtt, filterAttributes) {
d->query->prepare(QLatin1String("SELECT Id FROM FilterAttributeTable WHERE Name=?"));
d->query->bindValue(0, filterAtt);
d->query->exec();
@@ -787,7 +787,7 @@ bool QHelpGenerator::insertContents(const QByteArray &ba,
}
// associate the filter attributes
- foreach (QString filterAtt, filterAttributes) {
+ foreach (const QString &filterAtt, filterAttributes) {
d->query->prepare(QLatin1String("INSERT INTO ContentsFilterTable (FilterAttributeId, ContentsId) "
"SELECT Id, ? FROM FilterAttributeTable WHERE Name=?"));
d->query->bindValue(0, contentId);
@@ -812,7 +812,7 @@ bool QHelpGenerator::insertFilterAttributes(const QStringList &attributes)
while (d->query->next())
atts.insert(d->query->value(0).toString());
- foreach (QString s, attributes) {
+ foreach (const QString &s, attributes) {
if (!atts.contains(s)) {
d->query->prepare(QLatin1String("INSERT INTO FilterAttributeTable VALUES(NULL, ?)"));
d->query->bindValue(0, s);
diff --git a/tools/assistant/lib/qhelpindexwidget.cpp b/tools/assistant/lib/qhelpindexwidget.cpp
index 6757805..270bcdd 100644
--- a/tools/assistant/lib/qhelpindexwidget.cpp
+++ b/tools/assistant/lib/qhelpindexwidget.cpp
@@ -162,7 +162,7 @@ void QHelpIndexProvider::run()
QSet<QString> indicesSet;
m_mutex.unlock();
- foreach (QString dbFileName, m_helpEngine->fileNameReaderMap.keys()) {
+ foreach (const QString &dbFileName, m_helpEngine->fileNameReaderMap.keys()) {
m_mutex.lock();
if (m_abort) {
m_mutex.unlock();
@@ -178,7 +178,7 @@ void QHelpIndexProvider::run()
QStringList lst = reader.indicesForFilter(atts);
if (!lst.isEmpty()) {
m_mutex.lock();
- foreach (QString s, lst)
+ foreach (const QString &s, lst)
indicesSet.insert(s);
if (m_abort) {
m_mutex.unlock();
@@ -317,7 +317,7 @@ QModelIndex QHelpIndexModel::filter(const QString &filter, const QString &wildca
if (!wildcard.isEmpty()) {
QRegExp regExp(wildcard, Qt::CaseInsensitive);
regExp.setPatternSyntax(QRegExp::Wildcard);
- foreach (QString index, d->indices) {
+ foreach (const QString &index, d->indices) {
if (index.contains(regExp)) {
lst.append(index);
if (perfectMatch == -1 && index.startsWith(filter, Qt::CaseInsensitive)) {
@@ -332,7 +332,7 @@ QModelIndex QHelpIndexModel::filter(const QString &filter, const QString &wildca
}
}
} else {
- foreach (QString index, d->indices) {
+ foreach (const QString &index, d->indices) {
if (index.contains(filter, Qt::CaseInsensitive)) {
lst.append(index);
if (perfectMatch == -1 && index.startsWith(filter, Qt::CaseInsensitive)) {
diff --git a/tools/assistant/lib/qhelpsearchengine.cpp b/tools/assistant/lib/qhelpsearchengine.cpp
index c28947b..7c2635d 100644
--- a/tools/assistant/lib/qhelpsearchengine.cpp
+++ b/tools/assistant/lib/qhelpsearchengine.cpp
@@ -214,7 +214,7 @@ private:
search term
The QHelpSearchQuery class contains the field name and the associated search
- term. Depending on the field the search term might get split up into seperate
+ term. Depending on the field the search term might get split up into separate
terms to be parsed differently by the search engine.
\sa QHelpSearchQueryWidget
@@ -238,15 +238,15 @@ private:
\value DEFAULT the default field provided by the search widget, several terms should be
split and stored in the word list except search terms enclosed in quotes.
- \value FUZZY a field only provided in use with clucene. Terms should be split in seperate
+ \value FUZZY a field only provided in use with clucene. Terms should be split in separate
words and passed to the search engine.
- \value WITHOUT a field only provided in use with clucene. Terms should be split in seperate
+ \value WITHOUT a field only provided in use with clucene. Terms should be split in separate
words and passed to the search engine.
- \value PHRASE a field only provided in use with clucene. Terms should not be split in seperate
+ \value PHRASE a field only provided in use with clucene. Terms should not be split in separate
words.
- \value ALL a field only provided in use with clucene. Terms should be split in seperate
+ \value ALL a field only provided in use with clucene. Terms should be split in separate
words and passed to the search engine
- \value ATLEAST a field only provided in use with clucene. Terms should be split in seperate
+ \value ATLEAST a field only provided in use with clucene. Terms should be split in separate
words and passed to the search engine
*/
diff --git a/tools/assistant/lib/qhelpsearchindexreader_default.cpp b/tools/assistant/lib/qhelpsearchindexreader_default.cpp
index 1bc5feb..d2241a5 100644
--- a/tools/assistant/lib/qhelpsearchindexreader_default.cpp
+++ b/tools/assistant/lib/qhelpsearchindexreader_default.cpp
@@ -166,7 +166,7 @@ void Reader::filterFilesForAttributes(const QStringList &attributes)
const QString fileName = it.key();
bool containsAll = true;
QStringList split = fileName.split(QLatin1String("@"));
- foreach (const QString attribute, attributes) {
+ foreach (const QString &attribute, attributes) {
if (!split.contains(attribute, Qt::CaseInsensitive)) {
containsAll = false;
break;
@@ -180,9 +180,9 @@ void Reader::filterFilesForAttributes(const QStringList &attributes)
void Reader::setIndexFile(const QString &namespaceName, const QString &attributes)
{
- QString extention = namespaceName + QLatin1String("@") + attributes;
- indexFile = indexPath + QLatin1String("/indexdb40.") + extention;
- documentFile = indexPath + QLatin1String("/indexdoc40.") + extention;
+ QString extension = namespaceName + QLatin1String("@") + attributes;
+ indexFile = indexPath + QLatin1String("/indexdb40.") + extension;
+ documentFile = indexPath + QLatin1String("/indexdoc40.") + extension;
}
bool Reader::splitSearchTerm(const QString &searchTerm, QStringList *terms,
@@ -235,7 +235,7 @@ bool Reader::splitSearchTerm(const QString &searchTerm, QStringList *terms,
void Reader::searchInIndex(const QStringList &terms)
{
- foreach (const QString term, terms) {
+ foreach (const QString &term, terms) {
QVector<Document> documents;
for(IndexTable::ConstIterator it = searchIndexTable.begin();
@@ -254,7 +254,7 @@ void Reader::searchInIndex(const QStringList &terms)
DocumentInfo info;
QString title, url;
QVector<DocumentInfo> documentsInfo;
- foreach(const Document doc, documents) {
+ foreach(const Document &doc, documents) {
info.docNumber = doc.docNumber;
info.frequency = doc.frequency;
info.documentUrl = documentList.at(doc.docNumber).at(1);
@@ -519,7 +519,7 @@ void QHelpSearchIndexReaderDefault::run()
mutex.unlock();
QString queryTerm;
- foreach (const QHelpSearchQuery query, queryList) {
+ foreach (const QHelpSearchQuery &query, queryList) {
if (query.fieldName == QHelpSearchQuery::DEFAULT) {
queryTerm = query.wordList.at(0);
break;
@@ -541,7 +541,7 @@ void QHelpSearchIndexReaderDefault::run()
// setup the reader
m_reader.setIndexPath(indexPath);
- foreach(const QString namespaceName, registeredDocs) {
+ foreach(const QString &namespaceName, registeredDocs) {
mutex.lock();
if (m_cancel) {
mutex.unlock();
@@ -553,7 +553,7 @@ void QHelpSearchIndexReaderDefault::run()
const QList<QStringList> attributeSets =
engine.filterAttributeSets(namespaceName);
- foreach (QStringList attributes, attributeSets) {
+ foreach (const QStringList &attributes, attributeSets) {
// read all index files
m_reader.setIndexFile(namespaceName, attributes.join(QLatin1String("@")));
if (!m_reader.readIndex()) {
@@ -577,7 +577,7 @@ void QHelpSearchIndexReaderDefault::run()
QVector<DocumentInfo> hits = m_reader.hits();
if (!hits.isEmpty()) {
if (termSeq.isEmpty()) {
- foreach (const DocumentInfo docInfo, hits) {
+ foreach (const DocumentInfo &docInfo, hits) {
mutex.lock();
if (m_cancel) {
mutex.unlock();
@@ -588,7 +588,7 @@ void QHelpSearchIndexReaderDefault::run()
hitList.append(qMakePair(docInfo.documentTitle, docInfo.documentUrl));
}
} else {
- foreach (const DocumentInfo docInfo, hits) {
+ foreach (const DocumentInfo &docInfo, hits) {
mutex.lock();
if (m_cancel) {
mutex.unlock();
diff --git a/tools/assistant/lib/qhelpsearchindexwriter_default.cpp b/tools/assistant/lib/qhelpsearchindexwriter_default.cpp
index 108be97..6d09fb8 100644
--- a/tools/assistant/lib/qhelpsearchindexwriter_default.cpp
+++ b/tools/assistant/lib/qhelpsearchindexwriter_default.cpp
@@ -104,7 +104,7 @@ bool Writer::writeIndex() const
return status;
QDataStream docStream(&docFile);
- foreach(const QStringList list, documentList) {
+ foreach(const QStringList &list, documentList) {
docStream << list.at(0);
docStream << list.at(1);
}
@@ -126,9 +126,9 @@ void Writer::removeIndex() const
void Writer::setIndexFile(const QString &namespaceName, const QString &attributes)
{
- QString extention = namespaceName + QLatin1String("@") + attributes;
- indexFile = indexPath + QLatin1String("/indexdb40.") + extention;
- documentFile = indexPath + QLatin1String("/indexdoc40.") + extention;
+ QString extension = namespaceName + QLatin1String("@") + attributes;
+ indexFile = indexPath + QLatin1String("/indexdb40.") + extension;
+ documentFile = indexPath + QLatin1String("/indexdoc40.") + extension;
}
void Writer::insertInIndex(const QString &string, int docNum)
@@ -226,7 +226,7 @@ void QHelpSearchIndexWriter::run()
QStringList namespaces;
Writer writer(indexPath);
- foreach(const QString namespaceName, registeredDocs) {
+ foreach(const QString &namespaceName, registeredDocs) {
mutex.lock();
if (m_cancel) {
mutex.unlock();
@@ -242,7 +242,7 @@ void QHelpSearchIndexWriter::run()
const QList<QStringList> attributeSets =
engine.filterAttributeSets(namespaceName);
- foreach (QStringList attributes, attributeSets) {
+ foreach (const QStringList &attributes, attributeSets) {
// cleanup maybe old or unfinished files
writer.setIndexFile(namespaceName, attributes.join(QLatin1String("@")));
writer.removeIndex();
@@ -266,7 +266,7 @@ void QHelpSearchIndexWriter::run()
int docNum = 0;
const QStringList documentsList(documentsSet.toList());
- foreach(const QString url, documentsList) {
+ foreach(const QString &url, documentsList) {
if (m_cancel)
return;
@@ -347,7 +347,7 @@ void QHelpSearchIndexWriter::run()
const QList<QStringList> attributeSets =
engine.filterAttributeSets(namespaceName);
- foreach (QStringList attributes, attributeSets) {
+ foreach (const QStringList &attributes, attributeSets) {
writer.setIndexFile(namespaceName, attributes.join(QLatin1String("@")));
writer.removeIndex();
}
diff --git a/tools/assistant/lib/qhelpsearchquerywidget.cpp b/tools/assistant/lib/qhelpsearchquerywidget.cpp
index ab48dac..1634a0d 100644
--- a/tools/assistant/lib/qhelpsearchquerywidget.cpp
+++ b/tools/assistant/lib/qhelpsearchquerywidget.cpp
@@ -121,17 +121,17 @@ private:
void retranslate()
{
- simpleSearchLabel->setText(tr("Search for:"));
- prevQueryButton->setToolTip(tr("Previous search"));
- nextQueryButton->setToolTip(tr("Next search"));
- searchButton->setText(tr("Search"));
+ simpleSearchLabel->setText(QHelpSearchQueryWidget::tr("Search for:"));
+ prevQueryButton->setToolTip(QHelpSearchQueryWidget::tr("Previous search"));
+ nextQueryButton->setToolTip(QHelpSearchQueryWidget::tr("Next search"));
+ searchButton->setText(QHelpSearchQueryWidget::tr("Search"));
#ifdef QT_CLUCENE_SUPPORT
- advancedSearchLabel->setText(tr("Advanced search"));
- similarLabel->setText(tr("words <B>similar</B> to:"));
- withoutLabel->setText(tr("<B>without</B> the words:"));
- exactLabel->setText(tr("with <B>exact phrase</B>:"));
- allLabel->setText(tr("with <B>all</B> of the words:"));
- atLeastLabel->setText(tr("with <B>at least one</B> of the words:"));
+ advancedSearchLabel->setText(QHelpSearchQueryWidget::tr("Advanced search"));
+ similarLabel->setText(QHelpSearchQueryWidget::tr("words <B>similar</B> to:"));
+ withoutLabel->setText(QHelpSearchQueryWidget::tr("<B>without</B> the words:"));
+ exactLabel->setText(QHelpSearchQueryWidget::tr("with <B>exact phrase</B>:"));
+ allLabel->setText(QHelpSearchQueryWidget::tr("with <B>all</B> of the words:"));
+ atLeastLabel->setText(QHelpSearchQueryWidget::tr("with <B>at least one</B> of the words:"));
#endif
}
@@ -290,7 +290,7 @@ private slots:
QString::SkipEmptyParts);
if (!lst.isEmpty()) {
QStringList fuzzy;
- foreach (const QString term, lst)
+ foreach (const QString &term, lst)
fuzzy += buildTermList(term);
queryList.append(QHelpSearchQuery(QHelpSearchQuery::FUZZY,
fuzzy));
@@ -299,7 +299,7 @@ private slots:
lst = withoutQuery->text().split(exp, QString::SkipEmptyParts);
if (!lst.isEmpty()) {
QStringList without;
- foreach (const QString term, lst)
+ foreach (const QString &term, lst)
without.append(term);
queryList.append(QHelpSearchQuery(QHelpSearchQuery::WITHOUT,
without));
@@ -315,7 +315,7 @@ private slots:
lst = allQuery->text().split(exp, QString::SkipEmptyParts);
if (!lst.isEmpty()) {
QStringList all;
- foreach (const QString term, lst)
+ foreach (const QString &term, lst)
all.append(term);
queryList.append(QHelpSearchQuery(QHelpSearchQuery::ALL, all));
}
@@ -323,7 +323,7 @@ private slots:
lst = atLeastQuery->text().split(exp, QString::SkipEmptyParts);
if (!lst.isEmpty()) {
QStringList atLeast;
- foreach (const QString term, lst)
+ foreach (const QString &term, lst)
atLeast += buildTermList(term);
queryList.append(QHelpSearchQuery(QHelpSearchQuery::ATLEAST,
atLeast));
@@ -512,7 +512,7 @@ QHelpSearchQueryWidget::~QHelpSearchQueryWidget()
}
/*!
- Returns a list of querys to use in combination with the search engines
+ Returns a list of queries to use in combination with the search engines
search(QList<QHelpSearchQuery> &query) function.
*/
QList<QHelpSearchQuery> QHelpSearchQueryWidget::query() const
diff --git a/tools/assistant/lib/qhelpsearchresultwidget.cpp b/tools/assistant/lib/qhelpsearchresultwidget.cpp
index a3f5aed..ad540c6 100644
--- a/tools/assistant/lib/qhelpsearchresultwidget.cpp
+++ b/tools/assistant/lib/qhelpsearchresultwidget.cpp
@@ -73,7 +73,7 @@ public:
void showResultPage(const QList<QHelpSearchEngine::SearchHit> hits)
{
- foreach (const QHelpSearchEngine::SearchHit hit, hits)
+ foreach (const QHelpSearchEngine::SearchHit &hit, hits)
new QTreeWidgetItem(this, QStringList(hit.first) << hit.second);
}
@@ -118,7 +118,7 @@ public:
.arg(tr("The search results may not be complete since the "
"documentation is still being indexed!"));
- foreach (const QHelpSearchEngine::SearchHit hit, hits) {
+ foreach (const QHelpSearchEngine::SearchHit &hit, hits) {
htmlFile += QString(QLatin1String("<div style=\"text-align:left; font-weight:bold\""
"><a href=\"%1\">%2</a><div style=\"color:green; font-weight:normal;"
" margin:5px\">%1</div></div><p></p>"))
diff --git a/tools/assistant/tools/assistant/centralwidget.cpp b/tools/assistant/tools/assistant/centralwidget.cpp
index 076498e..715f1fa 100644
--- a/tools/assistant/tools/assistant/centralwidget.cpp
+++ b/tools/assistant/tools/assistant/centralwidget.cpp
@@ -1157,7 +1157,7 @@ CentralWidget::highlightSearchTerms()
QList<QHelpSearchQuery> queryList = searchEngine->query();
QStringList terms;
- foreach (QHelpSearchQuery query, queryList) {
+ foreach (const QHelpSearchQuery &query, queryList) {
switch (query.fieldName) {
default: break;
case QHelpSearchQuery::ALL: {
diff --git a/tools/assistant/tools/assistant/helpviewer.cpp b/tools/assistant/tools/assistant/helpviewer.cpp
index bd75f3a..efdee92 100644
--- a/tools/assistant/tools/assistant/helpviewer.cpp
+++ b/tools/assistant/tools/assistant/helpviewer.cpp
@@ -150,12 +150,12 @@ QNetworkReply *HelpNetworkAccessManager::createRequest(Operation /*op*/,
if (mimeType.endsWith(QLatin1String(".svg"))
|| mimeType.endsWith(QLatin1String(".svgz"))) {
mimeType = QLatin1String("image/svg+xml");
- }
- else if (mimeType.endsWith(QLatin1String(".css"))) {
+ } else if (mimeType.endsWith(QLatin1String(".css"))) {
mimeType = QLatin1String("text/css");
- }
- else if (mimeType.endsWith(QLatin1String(".js"))) {
+ } else if (mimeType.endsWith(QLatin1String(".js"))) {
mimeType = QLatin1String("text/javascript");
+ } else if (mimeType.endsWith(QLatin1String(".txt"))) {
+ mimeType = QLatin1String("text/plain");
} else {
mimeType = QLatin1String("text/html");
}
diff --git a/tools/assistant/translations/qt_help.pro b/tools/assistant/translations/qt_help.pro
index db54ae6..6f66876 100644
--- a/tools/assistant/translations/qt_help.pro
+++ b/tools/assistant/translations/qt_help.pro
@@ -41,8 +41,10 @@ HEADERS += ../lib/qhelpcollectionhandler_p.h \
TR_DIR = $$PWD/../../../translations
TRANSLATIONS = \
+ $$TR_DIR/qt_help_cs.ts \
$$TR_DIR/qt_help_da.ts \
$$TR_DIR/qt_help_de.ts \
+ $$TR_DIR/qt_help_hu.ts \
$$TR_DIR/qt_help_ja.ts \
$$TR_DIR/qt_help_pl.ts \
$$TR_DIR/qt_help_ru.ts \
diff --git a/tools/assistant/translations/translations.pro b/tools/assistant/translations/translations.pro
index 95501ab..c692262 100644
--- a/tools/assistant/translations/translations.pro
+++ b/tools/assistant/translations/translations.pro
@@ -42,9 +42,11 @@ HEADERS += ../tools/assistant/aboutdialog.h \
TR_DIR = $$PWD/../../../translations
TRANSLATIONS = \
+ $$TR_DIR/assistant_cs.ts \
$$TR_DIR/assistant_da.ts \
$$TR_DIR/assistant_de.ts \
$$TR_DIR/assistant_fr.ts \
+ $$TR_DIR/assistant_hu.ts \
$$TR_DIR/assistant_ja.ts \
$$TR_DIR/assistant_pl.ts \
$$TR_DIR/assistant_ru.ts \
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 3defeab..a906b9a 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -482,6 +482,7 @@ void Configure::parseCmdLine()
dictionary[ "BUILDNOKIA" ] = "yes";
dictionary[ "BUILDDEV" ] = "yes";
dictionary["LICENSE_CONFIRMED"] = "yes";
+ dictionary[ "SYMBIAN_DEFFILES" ] = "no";
}
else if( configCmdLine.at(i) == "-opensource" ) {
dictionary[ "BUILDTYPE" ] = "opensource";
@@ -698,9 +699,6 @@ void Configure::parseCmdLine()
} else if ( configCmdLine.at(i) == "-opengl-es-cm" ) {
dictionary[ "OPENGL" ] = "yes";
dictionary[ "OPENGL_ES_CM" ] = "yes";
- } else if ( configCmdLine.at(i) == "-opengl-es-cl" ) {
- dictionary[ "OPENGL" ] = "yes";
- dictionary[ "OPENGL_ES_CL" ] = "yes";
} else if ( configCmdLine.at(i) == "-opengl-es-2" ) {
dictionary[ "OPENGL" ] = "yes";
dictionary[ "OPENGL_ES_2" ] = "yes";
@@ -803,7 +801,7 @@ void Configure::parseCmdLine()
else if( configCmdLine.at(i) == "-no-native-gestures" )
dictionary[ "NATIVE_GESTURES" ] = "no";
#if !defined(EVAL)
- // Others ---------------------------------------------------
+ // Symbian Support -------------------------------------------
else if (configCmdLine.at(i) == "-fpu" )
{
++i;
@@ -812,12 +810,17 @@ void Configure::parseCmdLine()
dictionary[ "ARM_FPU_TYPE" ] = configCmdLine.at(i);
}
- // S60 Support -------------------------------------------
else if( configCmdLine.at(i) == "-s60" )
dictionary[ "S60" ] = "yes";
else if( configCmdLine.at(i) == "-no-s60" )
dictionary[ "S60" ] = "no";
+ else if( configCmdLine.at(i) == "-usedeffiles" )
+ dictionary[ "SYMBIAN_DEFFILES" ] = "yes";
+ else if( configCmdLine.at(i) == "-no-usedeffiles" )
+ dictionary[ "SYMBIAN_DEFFILES" ] = "no";
+
+ // Others ---------------------------------------------------
else if (configCmdLine.at(i) == "-fast" )
dictionary[ "FAST" ] = "yes";
else if (configCmdLine.at(i) == "-no-fast" )
@@ -1468,6 +1471,7 @@ void Configure::applySpecSpecifics()
dictionary[ "XMLPATTERNS" ] = "yes";
dictionary[ "QT_GLIB" ] = "no";
dictionary[ "S60" ] = "yes";
+ dictionary[ "SYMBIAN_DEFFILES" ] = "yes";
// iconv makes makes apps start and run ridiculously slowly in symbian emulator (HW not tested)
// iconv_open seems to return -1 always, so something is probably missing from the platform.
dictionary[ "QT_ICONV" ] = "no";
@@ -1812,7 +1816,6 @@ bool Configure::displayHelp()
desc("CETEST", "yes", "-cetest", "Compile Windows CE remote test application");
desc( "-signature <file>", "Use file for signing the target project");
desc("OPENGL_ES_CM", "no", "-opengl-es-cm", "Enable support for OpenGL ES Common");
- desc("OPENGL_ES_CL", "no", "-opengl-es-cl", "Enable support for OpenGL ES Common Lite");
desc("OPENGL_ES_2", "no", "-opengl-es-2", "Enable support for OpenGL ES 2.0");
desc("DIRECTSHOW", "no", "-phonon-wince-ds9", "Enable Phonon Direct Show 9 backend for Windows CE");
@@ -1822,7 +1825,9 @@ bool Configure::displayHelp()
desc("FREETYPE", "yes", "-qt-freetype", "Use the libfreetype bundled with Qt.");
desc( "-fpu <flags>", "VFP type on ARM, supported options: softvfp(default) | vfpv2 | softvfp+vfpv2");
desc("S60", "no", "-no-s60", "Do not compile in S60 support.");
- desc("S60", "yes", "-s60", "Compile with support for the S60 UI Framework\n");
+ desc("S60", "yes", "-s60", "Compile with support for the S60 UI Framework");
+ desc("SYMBIAN_DEFFILES", "no", "-no-usedeffiles", "Disable the usage of DEF files.");
+ desc("SYMBIAN_DEFFILES", "yes", "-usedeffiles", "Enable the usage of DEF files.\n");
return true;
}
return false;
@@ -1999,8 +2004,6 @@ bool Configure::checkAvailability(const QString &part)
available = (dictionary[ "ARCHITECTURE" ] == "windowsce");
else if (part == "OPENGL_ES_CM")
available = (dictionary[ "ARCHITECTURE" ] == "windowsce");
- else if (part == "OPENGL_ES_CL")
- available = (dictionary[ "ARCHITECTURE" ] == "windowsce");
else if (part == "OPENGL_ES_2")
available = (dictionary[ "ARCHITECTURE" ] == "windowsce");
else if (part == "DIRECTSHOW")
@@ -2478,11 +2481,6 @@ void Configure::generateOutputVars()
qtConfig += "egl";
}
- if ( dictionary["OPENGL_ES_CL"] == "yes" ) {
- qtConfig += "opengles1cl";
- qtConfig += "egl";
- }
-
if ( dictionary["OPENVG"] == "yes" ) {
qtConfig += "openvg";
qtConfig += "egl";
@@ -2534,8 +2532,11 @@ void Configure::generateOutputVars()
qtConfig += "phonon-backend";
}
- if (dictionary["MULTIMEDIA"] == "yes")
+ if (dictionary["MULTIMEDIA"] == "yes") {
qtConfig += "multimedia";
+ if (dictionary["AUDIO_BACKEND"] == "yes")
+ qtConfig += "audio-backend";
+ }
if (dictionary["WEBKIT"] == "yes")
qtConfig += "webkit";
@@ -2752,6 +2753,13 @@ void Configure::generateCachefile()
if ( dictionary["PLUGIN_MANIFESTS"] == "no" )
configStream << " no_plugin_manifest";
+ if ( dictionary.contains("SYMBIAN_DEFFILES") ) {
+ if(dictionary["SYMBIAN_DEFFILES"] == "yes" ) {
+ configStream << " def_files";
+ } else if ( dictionary["SYMBIAN_DEFFILES"] == "no" ) {
+ configStream << " def_files_disabled";
+ }
+ }
configStream << endl;
configStream << "QT_ARCH = " << dictionary[ "ARCHITECTURE" ] << endl;
if (dictionary["QT_EDITION"].contains("OPENSOURCE"))
@@ -2926,13 +2934,10 @@ void Configure::generateConfigfiles()
if(dictionary["NATIVE_GESTURES"] == "no") qconfigList += "QT_NO_NATIVE_GESTURES";
if(dictionary["OPENGL_ES_CM"] == "yes" ||
- dictionary["OPENGL_ES_CL"] == "yes" ||
dictionary["OPENGL_ES_2"] == "yes") qconfigList += "QT_OPENGL_ES";
if(dictionary["OPENGL_ES_CM"] == "yes") qconfigList += "QT_OPENGL_ES_1";
if(dictionary["OPENGL_ES_2"] == "yes") qconfigList += "QT_OPENGL_ES_2";
- if(dictionary["OPENGL_ES_CL"] == "yes") qconfigList += "QT_OPENGL_ES_1_CL";
-
if(dictionary["SQL_MYSQL"] == "yes") qconfigList += "QT_SQL_MYSQL";
if(dictionary["SQL_ODBC"] == "yes") qconfigList += "QT_SQL_ODBC";
if(dictionary["SQL_OCI"] == "yes") qconfigList += "QT_SQL_OCI";
@@ -3276,6 +3281,14 @@ void Configure::displayConfig()
cout << "Support for S60............." << dictionary[ "S60" ] << endl;
}
+ if (dictionary.contains("SYMBIAN_DEFFILES")) {
+ cout << "Symbian DEF files enabled..." << dictionary[ "SYMBIAN_DEFFILES" ] << endl;
+ if(dictionary["SYMBIAN_DEFFILES"] == "no") {
+ cout << "WARNING: Disabling DEF files will mean that Qt is NOT binary compatible with previous versions." << endl;
+ cout << " This feature is only intended for use during development, NEVER for release builds." << endl;
+ }
+ }
+
if(dictionary["ASSISTANT_WEBKIT"] == "yes")
cout << "Using WebKit as html rendering engine in Qt Assistant." << endl;
diff --git a/tools/designer/src/components/formeditor/formwindow.cpp b/tools/designer/src/components/formeditor/formwindow.cpp
index 2d013c9..9fd084d 100644
--- a/tools/designer/src/components/formeditor/formwindow.cpp
+++ b/tools/designer/src/components/formeditor/formwindow.cpp
@@ -2219,6 +2219,11 @@ QMenu *FormWindow::createPopupMenu(QWidget *w)
QToolBoxHelper::addToolBoxContextMenuActions(toolBox, popup);
}
+ if (manager->actionLower()->isEnabled()) {
+ popup->addAction(manager->actionLower());
+ popup->addAction(manager->actionRaise());
+ popup->addSeparator();
+ }
popup->addAction(manager->actionCut());
popup->addAction(manager->actionCopy());
}
diff --git a/tools/designer/src/components/formeditor/formwindow.h b/tools/designer/src/components/formeditor/formwindow.h
index eed7417..3eee476 100644
--- a/tools/designer/src/components/formeditor/formwindow.h
+++ b/tools/designer/src/components/formeditor/formwindow.h
@@ -278,8 +278,6 @@ private:
void checkPreviewGeometry(QRect &r);
- void finishContextMenu(QWidget *w, QWidget *menuParent, QContextMenuEvent *e);
-
bool handleContextMenu(QWidget *widget, QWidget *managedWidget, QContextMenuEvent *e);
bool handleMouseButtonDblClickEvent(QWidget *widget, QWidget *managedWidget, QMouseEvent *e);
bool handleMousePressEvent(QWidget *widget, QWidget *managedWidget, QMouseEvent *e);
diff --git a/tools/designer/src/components/formeditor/qdesigner_resource.cpp b/tools/designer/src/components/formeditor/qdesigner_resource.cpp
index b005e42..b659179 100644
--- a/tools/designer/src/components/formeditor/qdesigner_resource.cpp
+++ b/tools/designer/src/components/formeditor/qdesigner_resource.cpp
@@ -1446,7 +1446,7 @@ void QDesignerResource::applyTabStops(QWidget *widget, DomTabStops *tabStops)
return;
QList<QWidget*> tabOrder;
- foreach (QString widgetName, tabStops->elementTabStop()) {
+ foreach (const QString &widgetName, tabStops->elementTabStop()) {
if (QWidget *w = qFindChild<QWidget*>(widget, widgetName)) {
tabOrder.append(w);
}
@@ -2418,7 +2418,7 @@ DomResources *QDesignerResource::saveResources(const QStringList &qrcPaths)
QList<DomResource*> dom_include;
if (resourceSet) {
const QStringList activePaths = resourceSet->activeQrcPaths();
- foreach (QString path, activePaths) {
+ foreach (const QString &path, activePaths) {
if (qrcPaths.contains(path)) {
DomResource *dom_res = new DomResource;
QString conv_path = path;
diff --git a/tools/designer/src/components/propertyeditor/designerpropertymanager.h b/tools/designer/src/components/propertyeditor/designerpropertymanager.h
index 0ec5241..11f900b 100644
--- a/tools/designer/src/components/propertyeditor/designerpropertymanager.h
+++ b/tools/designer/src/components/propertyeditor/designerpropertymanager.h
@@ -102,7 +102,7 @@ class DesignerPropertyManager : public QtVariantPropertyManager
{
Q_OBJECT
public:
- DesignerPropertyManager(QDesignerFormEditorInterface *core, QObject *parent = 0);
+ explicit DesignerPropertyManager(QDesignerFormEditorInterface *core, QObject *parent = 0);
~DesignerPropertyManager();
virtual QStringList attributes(int propertyType) const;
diff --git a/tools/designer/src/designer/qdesigner_actions.cpp b/tools/designer/src/designer/qdesigner_actions.cpp
index fbaf461..887ba98 100644
--- a/tools/designer/src/designer/qdesigner_actions.cpp
+++ b/tools/designer/src/designer/qdesigner_actions.cpp
@@ -580,7 +580,7 @@ bool QDesignerActions::openForm(QWidget *parent)
return false;
bool atLeastOne = false;
- foreach (QString fileName, fileNames) {
+ foreach (const QString &fileName, fileNames) {
if (readInForm(fileName) && !atLeastOne)
atLeastOne = true;
}
@@ -869,7 +869,7 @@ bool QDesignerActions::writeOutForm(QDesignerFormWindowInterface *fw, const QStr
if (f.fileName() != fileName) {
removeBackup(backupFile);
fi.setFile(fileName);
- backupFile = QString();
+ backupFile.clear();
if (fi.exists())
backupFile = createBackup(fileName);
}
diff --git a/tools/designer/src/designer/qdesigner_server.cpp b/tools/designer/src/designer/qdesigner_server.cpp
index 8016dff..de1532c 100644
--- a/tools/designer/src/designer/qdesigner_server.cpp
+++ b/tools/designer/src/designer/qdesigner_server.cpp
@@ -83,7 +83,7 @@ void QDesignerServer::sendOpenRequest(int port, const QStringList &files)
sSocket->connectToHost(QHostAddress::LocalHost, port);
if(sSocket->waitForConnected(3000))
{
- foreach(QString file, files)
+ foreach(const QString &file, files)
{
QFileInfo fi(file);
sSocket->write(fi.absoluteFilePath().toUtf8() + '\n');
@@ -96,9 +96,8 @@ void QDesignerServer::sendOpenRequest(int port, const QStringList &files)
void QDesignerServer::readFromClient()
{
- QString file = QString();
while (m_socket->canReadLine()) {
- file = QString::fromUtf8(m_socket->readLine());
+ QString file = QString::fromUtf8(m_socket->readLine());
if (!file.isNull()) {
file.remove(QLatin1Char('\n'));
file.remove(QLatin1Char('\r'));
@@ -143,7 +142,6 @@ QDesignerClient::~QDesignerClient()
void QDesignerClient::readFromSocket()
{
- QString file = QString();
while (m_socket->canReadLine()) {
QString file = QString::fromUtf8(m_socket->readLine());
if (!file.isNull()) {
diff --git a/tools/designer/src/designer/qdesigner_server.h b/tools/designer/src/designer/qdesigner_server.h
index 08bce68..90cc624 100644
--- a/tools/designer/src/designer/qdesigner_server.h
+++ b/tools/designer/src/designer/qdesigner_server.h
@@ -53,7 +53,7 @@ class QDesignerServer: public QObject
{
Q_OBJECT
public:
- QDesignerServer(QObject *parent = 0);
+ explicit QDesignerServer(QObject *parent = 0);
virtual ~QDesignerServer();
quint16 serverPort() const;
@@ -74,7 +74,7 @@ class QDesignerClient: public QObject
{
Q_OBJECT
public:
- QDesignerClient(quint16 port, QObject *parent = 0);
+ explicit QDesignerClient(quint16 port, QObject *parent = 0);
virtual ~QDesignerClient();
private slots:
diff --git a/tools/designer/src/designer/versiondialog.cpp b/tools/designer/src/designer/versiondialog.cpp
index 51f546d..d9b03aa 100644
--- a/tools/designer/src/designer/versiondialog.cpp
+++ b/tools/designer/src/designer/versiondialog.cpp
@@ -113,15 +113,14 @@ void VersionLabel::mouseReleaseEvent(QMouseEvent *me)
if (!secondStage) {
m_path.lineTo(me->pos());
bool gotIt = true;
- QPoint pt;
- foreach(pt, hitPoints) {
+ foreach(const QPoint &pt, hitPoints) {
if (!m_path.contains(pt)) {
gotIt = false;
break;
}
}
if (gotIt) {
- foreach(pt, missPoints) {
+ foreach(const QPoint &pt, missPoints) {
if (m_path.contains(pt)) {
gotIt = false;
break;
diff --git a/tools/designer/src/lib/shared/actioneditor.cpp b/tools/designer/src/lib/shared/actioneditor.cpp
index 624b8bb..26ac8a8 100644
--- a/tools/designer/src/lib/shared/actioneditor.cpp
+++ b/tools/designer/src/lib/shared/actioneditor.cpp
@@ -428,7 +428,7 @@ void ActionEditor::unmanageAction(QAction *action)
m_actionView->model()->remove(row);
}
-// Set an intial property and mark it as changed in the sheet
+// Set an initial property and mark it as changed in the sheet
static void setInitialProperty(QDesignerPropertySheetExtension *sheet, const QString &name, const QVariant &value)
{
const int index = sheet->indexOf(name);
diff --git a/tools/designer/src/lib/shared/actionrepository.cpp b/tools/designer/src/lib/shared/actionrepository.cpp
index 64cf9c4..e3ff2c1 100644
--- a/tools/designer/src/lib/shared/actionrepository.cpp
+++ b/tools/designer/src/lib/shared/actionrepository.cpp
@@ -244,7 +244,7 @@ QMimeData *ActionModel::mimeData(const QModelIndexList &indexes ) const
ActionRepositoryMimeData::ActionList actionList;
QSet<QAction*> actions;
- foreach (const QModelIndex &index, indexes)
+ foreach (const QModelIndex &index, indexes)
if (QStandardItem *item = itemFromIndex(index))
if (QAction *action = actionOfItem(item))
actions.insert(action);
diff --git a/tools/designer/src/lib/shared/connectionedit_p.h b/tools/designer/src/lib/shared/connectionedit_p.h
index 4f0148d..37dfe75 100644
--- a/tools/designer/src/lib/shared/connectionedit_p.h
+++ b/tools/designer/src/lib/shared/connectionedit_p.h
@@ -87,7 +87,7 @@ public:
class EndPoint {
public:
enum Type { Source, Target };
- EndPoint(Connection *_con = 0, Type _type = Source) : con(_con), type(_type) {}
+ explicit EndPoint(Connection *_con = 0, Type _type = Source) : con(_con), type(_type) {}
bool isNull() const { return con == 0; }
bool operator == (const EndPoint &other) const { return con == other.con && type == other.type; }
bool operator != (const EndPoint &other) const { return !operator == (other); }
diff --git a/tools/designer/src/lib/shared/filterwidget_p.h b/tools/designer/src/lib/shared/filterwidget_p.h
index fdb199d..025d708 100644
--- a/tools/designer/src/lib/shared/filterwidget_p.h
+++ b/tools/designer/src/lib/shared/filterwidget_p.h
@@ -66,7 +66,7 @@ class QPushButton;
namespace qdesigner_internal {
/* A line edit that displays a grayed hintText (like "Type Here to Filter")
- * when not focussed and empty. When connecting to the changed signals and
+ * when not focused and empty. When connecting to the changed signals and
* querying text, one has to be aware that the text is set to that hint
* text if isShowingHintText() returns true (that is, does not contain
* valid user input). This widget should never have initial focus
diff --git a/tools/designer/src/lib/shared/iconloader.cpp b/tools/designer/src/lib/shared/iconloader.cpp
index 2c97f62..df0bb7e 100644
--- a/tools/designer/src/lib/shared/iconloader.cpp
+++ b/tools/designer/src/lib/shared/iconloader.cpp
@@ -60,7 +60,7 @@ QDESIGNER_SHARED_EXPORT QIcon createIconSet(const QString &name)
#endif
<< (QString::fromUtf8(":/trolltech/formeditor/images/designer_") + name);
- foreach (QString f, candidates) {
+ foreach (const QString &f, candidates) {
if (QFile::exists(f))
return QIcon(f);
}
diff --git a/tools/designer/src/lib/shared/iconselector_p.h b/tools/designer/src/lib/shared/iconselector_p.h
index 63d4ad7..3373f80 100644
--- a/tools/designer/src/lib/shared/iconselector_p.h
+++ b/tools/designer/src/lib/shared/iconselector_p.h
@@ -76,7 +76,7 @@ class QDESIGNER_SHARED_EXPORT LanguageResourceDialog : public QDialog
{
Q_OBJECT
- LanguageResourceDialog(QDesignerResourceBrowserInterface *rb, QWidget *parent = 0);
+ explicit LanguageResourceDialog(QDesignerResourceBrowserInterface *rb, QWidget *parent = 0);
public:
virtual ~LanguageResourceDialog();
diff --git a/tools/designer/src/lib/shared/plugindialog.cpp b/tools/designer/src/lib/shared/plugindialog.cpp
index c79dcf2..3e88043 100644
--- a/tools/designer/src/lib/shared/plugindialog.cpp
+++ b/tools/designer/src/lib/shared/plugindialog.cpp
@@ -105,7 +105,7 @@ void PluginDialog::populateTreeWidget()
QTreeWidgetItem *topLevelItem = setTopLevelItem(QLatin1String("Loaded Plugins"));
QFont boldFont = topLevelItem->font(0);
- foreach (QString fileName, fileNames) {
+ foreach (const QString &fileName, fileNames) {
QPluginLoader loader(fileName);
const QFileInfo fileInfo(fileName);
@@ -127,7 +127,7 @@ void PluginDialog::populateTreeWidget()
if (!notLoadedPlugins.isEmpty()) {
QTreeWidgetItem *topLevelItem = setTopLevelItem(QLatin1String("Failed Plugins"));
const QFont boldFont = topLevelItem->font(0);
- foreach (const QString plugin, notLoadedPlugins) {
+ foreach (const QString &plugin, notLoadedPlugins) {
const QString failureReason = pluginManager->failureReason(plugin);
QTreeWidgetItem *pluginItem = setPluginItem(topLevelItem, plugin, boldFont);
setItem(pluginItem, failureReason, failureReason, QString(), QIcon());
diff --git a/tools/designer/src/lib/shared/qdesigner_introspection.cpp b/tools/designer/src/lib/shared/qdesigner_introspection.cpp
index 170a111..7bc60d4 100644
--- a/tools/designer/src/lib/shared/qdesigner_introspection.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_introspection.cpp
@@ -63,7 +63,7 @@ static QStringList byteArrayListToStringList(const QList<QByteArray> &l)
static inline QString charToQString(const char *c)
{
if (!c)
- return QString::null;
+ return QString();
return QString::fromUtf8(c);
}
diff --git a/tools/designer/src/lib/shared/qdesigner_objectinspector_p.h b/tools/designer/src/lib/shared/qdesigner_objectinspector_p.h
index 354ef2a..f4b6672 100644
--- a/tools/designer/src/lib/shared/qdesigner_objectinspector_p.h
+++ b/tools/designer/src/lib/shared/qdesigner_objectinspector_p.h
@@ -85,7 +85,7 @@ class QDESIGNER_SHARED_EXPORT QDesignerObjectInspector: public QDesignerObjectIn
{
Q_OBJECT
public:
- QDesignerObjectInspector(QWidget *parent = 0, Qt::WindowFlags flags = 0);
+ explicit QDesignerObjectInspector(QWidget *parent = 0, Qt::WindowFlags flags = 0);
// Select a qobject unmanaged by form window
virtual bool selectObject(QObject *o) = 0;
diff --git a/tools/designer/src/lib/shared/qdesigner_promotiondialog_p.h b/tools/designer/src/lib/shared/qdesigner_promotiondialog_p.h
index d1e407d..1e63d81 100644
--- a/tools/designer/src/lib/shared/qdesigner_promotiondialog_p.h
+++ b/tools/designer/src/lib/shared/qdesigner_promotiondialog_p.h
@@ -80,9 +80,9 @@ namespace qdesigner_internal {
class NewPromotedClassPanel : public QGroupBox {
Q_OBJECT
public:
- NewPromotedClassPanel(const QStringList &baseClasses,
- int selectedBaseClass = -1,
- QWidget *parent = 0);
+ explicit NewPromotedClassPanel(const QStringList &baseClasses,
+ int selectedBaseClass = -1,
+ QWidget *parent = 0);
signals:
void newPromotedClass(const PromotionParameters &, bool *ok);
@@ -114,10 +114,10 @@ namespace qdesigner_internal {
public:
enum Mode { ModeEdit, ModeEditChooseClass };
- QDesignerPromotionDialog(QDesignerFormEditorInterface *core,
- QWidget *parent = 0,
- const QString &promotableWidgetClassName = QString(),
- QString *promoteTo = 0);
+ explicit QDesignerPromotionDialog(QDesignerFormEditorInterface *core,
+ QWidget *parent = 0,
+ const QString &promotableWidgetClassName = QString(),
+ QString *promoteTo = 0);
// Return an alphabetically ordered list of base class names for adding new classes.
static const QStringList &baseClassNames(const QDesignerPromotionInterface *promotion);
diff --git a/tools/designer/src/lib/shared/qdesigner_propertyeditor_p.h b/tools/designer/src/lib/shared/qdesigner_propertyeditor_p.h
index c618bd7..cdd53f0 100644
--- a/tools/designer/src/lib/shared/qdesigner_propertyeditor_p.h
+++ b/tools/designer/src/lib/shared/qdesigner_propertyeditor_p.h
@@ -69,7 +69,7 @@ class QDESIGNER_SHARED_EXPORT QDesignerPropertyEditor: public QDesignerPropertyE
{
Q_OBJECT
public:
- QDesignerPropertyEditor(QWidget *parent = 0, Qt::WindowFlags flags = 0);
+ explicit QDesignerPropertyEditor(QWidget *parent = 0, Qt::WindowFlags flags = 0);
// A pair <ValidationMode, bool isTranslatable>.
typedef QPair<TextPropertyValidationMode, bool> StringPropertyParameters;
diff --git a/tools/designer/src/lib/shared/qdesigner_taskmenu.cpp b/tools/designer/src/lib/shared/qdesigner_taskmenu.cpp
index 608ecd7..cd95f5b 100644
--- a/tools/designer/src/lib/shared/qdesigner_taskmenu.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_taskmenu.cpp
@@ -675,7 +675,7 @@ void QDesignerTaskMenu::navigateToSlot(QDesignerFormEditorInterface *core,
const QString signalSignature = selectedItem->text(0);
const QStringList parameterNames = qVariantValue<QStringList>(selectedItem->data(0, Qt::UserRole));
- // TODO: Check wether signal is connected to slot
+ // TODO: Check whether signal is connected to slot
integr->emitNavigateToSlot(objectName, signalSignature, parameterNames);
}
}
diff --git a/tools/designer/src/lib/shared/qdesigner_toolbar.cpp b/tools/designer/src/lib/shared/qdesigner_toolbar.cpp
index 1cee074..02a2f6d 100644
--- a/tools/designer/src/lib/shared/qdesigner_toolbar.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_toolbar.cpp
@@ -440,7 +440,7 @@ QAction *ToolBarEventFilter::actionAt(const QToolBar *tb, const QPoint &pos)
return tb->actions().at(index);
}
-//that's a trick to get acces to the initStyleOption which is a protected member
+//that's a trick to get access to the initStyleOption which is a protected member
class FriendlyToolBar : public QToolBar {
public:
friend class ToolBarEventFilter;
diff --git a/tools/designer/src/lib/shared/qdesigner_utils_p.h b/tools/designer/src/lib/shared/qdesigner_utils_p.h
index 502703d..fac0697 100644
--- a/tools/designer/src/lib/shared/qdesigner_utils_p.h
+++ b/tools/designer/src/lib/shared/qdesigner_utils_p.h
@@ -298,7 +298,7 @@ class QDESIGNER_SHARED_EXPORT DesignerIconCache : public QObject
{
Q_OBJECT
public:
- DesignerIconCache(DesignerPixmapCache *pixmapCache, QObject *parent = 0);
+ explicit DesignerIconCache(DesignerPixmapCache *pixmapCache, QObject *parent = 0);
QIcon icon(const PropertySheetIconValue &value) const;
void clear();
signals:
@@ -313,7 +313,7 @@ private:
class QDESIGNER_SHARED_EXPORT PropertySheetStringValue
{
public:
- PropertySheetStringValue(const QString &value = QString(),
+ explicit PropertySheetStringValue(const QString &value = QString(),
bool translatable = true,
const QString &disambiguation = QString(),
const QString &comment = QString());
@@ -345,11 +345,11 @@ private:
class QDESIGNER_SHARED_EXPORT PropertySheetKeySequenceValue
{
public:
- PropertySheetKeySequenceValue(const QKeySequence &value = QKeySequence(),
+ explicit PropertySheetKeySequenceValue(const QKeySequence &value = QKeySequence(),
bool translatable = true,
const QString &disambiguation = QString(),
const QString &comment = QString());
- PropertySheetKeySequenceValue(const QKeySequence::StandardKey &standardKey,
+ explicit PropertySheetKeySequenceValue(const QKeySequence::StandardKey &standardKey,
bool translatable = true,
const QString &disambiguation = QString(),
const QString &comment = QString());
diff --git a/tools/designer/src/lib/shared/qdesigner_widgetbox_p.h b/tools/designer/src/lib/shared/qdesigner_widgetbox_p.h
index cf944b9..13b7f74 100644
--- a/tools/designer/src/lib/shared/qdesigner_widgetbox_p.h
+++ b/tools/designer/src/lib/shared/qdesigner_widgetbox_p.h
@@ -70,7 +70,7 @@ class QDESIGNER_SHARED_EXPORT QDesignerWidgetBox : public QDesignerWidgetBoxInte
public:
enum LoadMode { LoadMerge, LoadReplace, LoadCustomWidgetsOnly };
- QDesignerWidgetBox(QWidget *parent = 0, Qt::WindowFlags flags = 0);
+ explicit QDesignerWidgetBox(QWidget *parent = 0, Qt::WindowFlags flags = 0);
LoadMode loadMode() const;
void setLoadMode(LoadMode lm);
diff --git a/tools/designer/src/lib/shared/qtresourceview_p.h b/tools/designer/src/lib/shared/qtresourceview_p.h
index 26c4754..8da2975 100644
--- a/tools/designer/src/lib/shared/qtresourceview_p.h
+++ b/tools/designer/src/lib/shared/qtresourceview_p.h
@@ -68,7 +68,7 @@ class QDESIGNER_SHARED_EXPORT QtResourceView : public QWidget
{
Q_OBJECT
public:
- QtResourceView(QDesignerFormEditorInterface *core, QWidget *parent = 0);
+ explicit QtResourceView(QDesignerFormEditorInterface *core, QWidget *parent = 0);
~QtResourceView();
void setDragEnabled(bool dragEnabled);
@@ -120,7 +120,7 @@ class QDESIGNER_SHARED_EXPORT QtResourceViewDialog : public QDialog
{
Q_OBJECT
public:
- QtResourceViewDialog(QDesignerFormEditorInterface *core, QWidget *parent = 0);
+ explicit QtResourceViewDialog(QDesignerFormEditorInterface *core, QWidget *parent = 0);
virtual ~QtResourceViewDialog();
QString selectedResource() const;
diff --git a/tools/designer/src/lib/shared/richtexteditor_p.h b/tools/designer/src/lib/shared/richtexteditor_p.h
index 4157d2c..44023ef 100644
--- a/tools/designer/src/lib/shared/richtexteditor_p.h
+++ b/tools/designer/src/lib/shared/richtexteditor_p.h
@@ -72,7 +72,7 @@ class QDESIGNER_SHARED_EXPORT RichTextEditorDialog : public QDialog
{
Q_OBJECT
public:
- RichTextEditorDialog(QDesignerFormEditorInterface *core, QWidget *parent = 0);
+ explicit RichTextEditorDialog(QDesignerFormEditorInterface *core, QWidget *parent = 0);
~RichTextEditorDialog();
int showDialog();
diff --git a/tools/designer/src/lib/shared/shared_settings.cpp b/tools/designer/src/lib/shared/shared_settings.cpp
index d6fd4bc..281b5c6 100644
--- a/tools/designer/src/lib/shared/shared_settings.cpp
+++ b/tools/designer/src/lib/shared/shared_settings.cpp
@@ -161,7 +161,7 @@ QStringList QDesignerSharedSettings::additionalFormTemplatePaths() const
{
// get template paths excluding internal ones
QStringList rc = formTemplatePaths();
- foreach (QString internalTemplatePath, defaultFormTemplatePaths()) {
+ foreach (const QString &internalTemplatePath, defaultFormTemplatePaths()) {
const int index = rc.indexOf(internalTemplatePath);
if (index != -1)
rc.removeAt(index);
diff --git a/tools/designer/src/lib/shared/textpropertyeditor_p.h b/tools/designer/src/lib/shared/textpropertyeditor_p.h
index 5b913ac..48f7898 100644
--- a/tools/designer/src/lib/shared/textpropertyeditor_p.h
+++ b/tools/designer/src/lib/shared/textpropertyeditor_p.h
@@ -90,7 +90,7 @@ namespace qdesigner_internal {
UpdateOnFinished
};
- TextPropertyEditor(QWidget *parent = 0, EmbeddingMode embeddingMode = EmbeddingNone, TextPropertyValidationMode validationMode = ValidationMultiLine);
+ explicit TextPropertyEditor(QWidget *parent = 0, EmbeddingMode embeddingMode = EmbeddingNone, TextPropertyValidationMode validationMode = ValidationMultiLine);
TextPropertyValidationMode textPropertyValidationMode() const { return m_validationMode; }
void setTextPropertyValidationMode(TextPropertyValidationMode vm);
diff --git a/tools/designer/src/lib/shared/widgetdatabase_p.h b/tools/designer/src/lib/shared/widgetdatabase_p.h
index 0e99999..873e79b 100644
--- a/tools/designer/src/lib/shared/widgetdatabase_p.h
+++ b/tools/designer/src/lib/shared/widgetdatabase_p.h
@@ -74,8 +74,8 @@ namespace qdesigner_internal {
class QDESIGNER_SHARED_EXPORT WidgetDataBaseItem: public QDesignerWidgetDataBaseItemInterface
{
public:
- WidgetDataBaseItem(const QString &name = QString(),
- const QString &group = QString());
+ explicit WidgetDataBaseItem(const QString &name = QString(),
+ const QString &group = QString());
QString name() const;
void setName(const QString &name);
@@ -159,7 +159,7 @@ class QDESIGNER_SHARED_EXPORT WidgetDataBase: public QDesignerWidgetDataBaseInte
{
Q_OBJECT
public:
- WidgetDataBase(QDesignerFormEditorInterface *core, QObject *parent = 0);
+ explicit WidgetDataBase(QDesignerFormEditorInterface *core, QObject *parent = 0);
virtual ~WidgetDataBase();
virtual QDesignerFormEditorInterface *core() const;
diff --git a/tools/designer/src/lib/uilib/abstractformbuilder.cpp b/tools/designer/src/lib/uilib/abstractformbuilder.cpp
index 1d2d6f8..a0c9e83 100644
--- a/tools/designer/src/lib/uilib/abstractformbuilder.cpp
+++ b/tools/designer/src/lib/uilib/abstractformbuilder.cpp
@@ -364,7 +364,7 @@ QWidget *QAbstractFormBuilder::create(DomWidget *ui_widget, QWidget *parentWidge
const QStringList zOrderNames = ui_widget->elementZOrder();
if (!zOrderNames.isEmpty()) {
QList<QWidget *> zOrder = qVariantValue<QWidgetList>(w->property("_q_zOrder"));
- foreach (QString widgetName, zOrderNames) {
+ foreach (const QString &widgetName, zOrderNames) {
if (QWidget *child = qFindChild<QWidget*>(w, widgetName)) {
if (child->parentWidget() == w) {
zOrder.removeAll(child);
diff --git a/tools/designer/src/lib/uilib/formbuilder.cpp b/tools/designer/src/lib/uilib/formbuilder.cpp
index cc8483f..c97daac 100644
--- a/tools/designer/src/lib/uilib/formbuilder.cpp
+++ b/tools/designer/src/lib/uilib/formbuilder.cpp
@@ -494,7 +494,7 @@ void QFormBuilder::updateCustomWidgets()
{
m_customWidgets.clear();
- foreach (QString path, m_pluginPaths) {
+ foreach (const QString &path, m_pluginPaths) {
const QDir dir(path);
const QStringList candidates = dir.entryList(QDir::Files);
diff --git a/tools/designer/src/plugins/activeqt/qaxwidgetextrainfo.h b/tools/designer/src/plugins/activeqt/qaxwidgetextrainfo.h
index c48449c..9f3c252 100644
--- a/tools/designer/src/plugins/activeqt/qaxwidgetextrainfo.h
+++ b/tools/designer/src/plugins/activeqt/qaxwidgetextrainfo.h
@@ -77,7 +77,7 @@ class QAxWidgetExtraInfoFactory: public QExtensionFactory
{
Q_OBJECT
public:
- QAxWidgetExtraInfoFactory(QDesignerFormEditorInterface *core, QExtensionManager *parent = 0);
+ explicit QAxWidgetExtraInfoFactory(QDesignerFormEditorInterface *core, QExtensionManager *parent = 0);
protected:
virtual QObject *createExtension(QObject *object, const QString &iid, QObject *parent) const;
diff --git a/tools/designer/src/plugins/activeqt/qdesigneraxwidget.h b/tools/designer/src/plugins/activeqt/qdesigneraxwidget.h
index 1308fe2..50132a6 100644
--- a/tools/designer/src/plugins/activeqt/qdesigneraxwidget.h
+++ b/tools/designer/src/plugins/activeqt/qdesigneraxwidget.h
@@ -105,7 +105,7 @@ private:
class QDesignerAxPluginWidget : public QDesignerAxWidget
{
- // No Q_OBJECT here! - meta functionality is overriden
+ // No Q_OBJECT here! - meta functionality is overridden
public:
explicit QDesignerAxPluginWidget(QWidget *parent);
virtual ~QDesignerAxPluginWidget();
diff --git a/tools/designer/src/plugins/widgets/q3iconview/q3iconview_extrainfo.h b/tools/designer/src/plugins/widgets/q3iconview/q3iconview_extrainfo.h
index 49a8a40..4f2b3b2 100644
--- a/tools/designer/src/plugins/widgets/q3iconview/q3iconview_extrainfo.h
+++ b/tools/designer/src/plugins/widgets/q3iconview/q3iconview_extrainfo.h
@@ -81,7 +81,7 @@ class Q3IconViewExtraInfoFactory: public QExtensionFactory
{
Q_OBJECT
public:
- Q3IconViewExtraInfoFactory(QDesignerFormEditorInterface *core, QExtensionManager *parent = 0);
+ explicit Q3IconViewExtraInfoFactory(QDesignerFormEditorInterface *core, QExtensionManager *parent = 0);
protected:
virtual QObject *createExtension(QObject *object, const QString &iid, QObject *parent) const;
diff --git a/tools/designer/src/plugins/widgets/q3iconview/q3iconview_plugin.h b/tools/designer/src/plugins/widgets/q3iconview/q3iconview_plugin.h
index 19213d8..e20e344 100644
--- a/tools/designer/src/plugins/widgets/q3iconview/q3iconview_plugin.h
+++ b/tools/designer/src/plugins/widgets/q3iconview/q3iconview_plugin.h
@@ -51,7 +51,7 @@ class Q3IconViewPlugin: public QObject, public QDesignerCustomWidgetInterface
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3IconViewPlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3IconViewPlugin(const QIcon &icon, QObject *parent = 0);
virtual QString name() const;
virtual QString group() const;
diff --git a/tools/designer/src/plugins/widgets/q3listbox/q3listbox_extrainfo.h b/tools/designer/src/plugins/widgets/q3listbox/q3listbox_extrainfo.h
index 7e291b6..bfb6738 100644
--- a/tools/designer/src/plugins/widgets/q3listbox/q3listbox_extrainfo.h
+++ b/tools/designer/src/plugins/widgets/q3listbox/q3listbox_extrainfo.h
@@ -79,7 +79,7 @@ class Q3ListBoxExtraInfoFactory: public QExtensionFactory
{
Q_OBJECT
public:
- Q3ListBoxExtraInfoFactory(QDesignerFormEditorInterface *core, QExtensionManager *parent = 0);
+ explicit Q3ListBoxExtraInfoFactory(QDesignerFormEditorInterface *core, QExtensionManager *parent = 0);
protected:
virtual QObject *createExtension(QObject *object, const QString &iid, QObject *parent) const;
diff --git a/tools/designer/src/plugins/widgets/q3listbox/q3listbox_plugin.h b/tools/designer/src/plugins/widgets/q3listbox/q3listbox_plugin.h
index 66002f5..68d6913 100644
--- a/tools/designer/src/plugins/widgets/q3listbox/q3listbox_plugin.h
+++ b/tools/designer/src/plugins/widgets/q3listbox/q3listbox_plugin.h
@@ -51,7 +51,7 @@ class Q3ListBoxPlugin: public QObject, public QDesignerCustomWidgetInterface
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3ListBoxPlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3ListBoxPlugin(const QIcon &icon, QObject *parent = 0);
virtual QString name() const;
virtual QString group() const;
diff --git a/tools/designer/src/plugins/widgets/q3listview/q3listview_extrainfo.h b/tools/designer/src/plugins/widgets/q3listview/q3listview_extrainfo.h
index f14f256..e5222ed 100644
--- a/tools/designer/src/plugins/widgets/q3listview/q3listview_extrainfo.h
+++ b/tools/designer/src/plugins/widgets/q3listview/q3listview_extrainfo.h
@@ -82,7 +82,7 @@ class Q3ListViewExtraInfoFactory: public QExtensionFactory
{
Q_OBJECT
public:
- Q3ListViewExtraInfoFactory(QDesignerFormEditorInterface *core, QExtensionManager *parent = 0);
+ explicit Q3ListViewExtraInfoFactory(QDesignerFormEditorInterface *core, QExtensionManager *parent = 0);
protected:
virtual QObject *createExtension(QObject *object, const QString &iid, QObject *parent) const;
diff --git a/tools/designer/src/plugins/widgets/q3listview/q3listview_plugin.h b/tools/designer/src/plugins/widgets/q3listview/q3listview_plugin.h
index 7127a57..f9c82a2 100644
--- a/tools/designer/src/plugins/widgets/q3listview/q3listview_plugin.h
+++ b/tools/designer/src/plugins/widgets/q3listview/q3listview_plugin.h
@@ -51,7 +51,7 @@ class Q3ListViewPlugin: public QObject, public QDesignerCustomWidgetInterface
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3ListViewPlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3ListViewPlugin(const QIcon &icon, QObject *parent = 0);
virtual QString name() const;
virtual QString group() const;
diff --git a/tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_plugin.h b/tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_plugin.h
index de2a75e..4ac7daa 100644
--- a/tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_plugin.h
+++ b/tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_plugin.h
@@ -51,7 +51,7 @@ class Q3MainWindowPlugin: public QObject, public QDesignerCustomWidgetInterface
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3MainWindowPlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3MainWindowPlugin(const QIcon &icon, QObject *parent = 0);
virtual QString name() const;
virtual QString group() const;
diff --git a/tools/designer/src/plugins/widgets/q3table/q3table_extrainfo.h b/tools/designer/src/plugins/widgets/q3table/q3table_extrainfo.h
index 40222bd..4de8b71 100644
--- a/tools/designer/src/plugins/widgets/q3table/q3table_extrainfo.h
+++ b/tools/designer/src/plugins/widgets/q3table/q3table_extrainfo.h
@@ -79,7 +79,7 @@ class Q3TableExtraInfoFactory: public QExtensionFactory
{
Q_OBJECT
public:
- Q3TableExtraInfoFactory(QDesignerFormEditorInterface *core, QExtensionManager *parent = 0);
+ explicit Q3TableExtraInfoFactory(QDesignerFormEditorInterface *core, QExtensionManager *parent = 0);
protected:
virtual QObject *createExtension(QObject *object, const QString &iid, QObject *parent) const;
diff --git a/tools/designer/src/plugins/widgets/q3table/q3table_plugin.h b/tools/designer/src/plugins/widgets/q3table/q3table_plugin.h
index 9c02467..0df5e0a 100644
--- a/tools/designer/src/plugins/widgets/q3table/q3table_plugin.h
+++ b/tools/designer/src/plugins/widgets/q3table/q3table_plugin.h
@@ -51,7 +51,7 @@ class Q3TablePlugin: public QObject, public QDesignerCustomWidgetInterface
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3TablePlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3TablePlugin(const QIcon &icon, QObject *parent = 0);
virtual QString name() const;
virtual QString group() const;
diff --git a/tools/designer/src/plugins/widgets/q3textedit/q3textedit_extrainfo.h b/tools/designer/src/plugins/widgets/q3textedit/q3textedit_extrainfo.h
index 94f663a..beeaf3b 100644
--- a/tools/designer/src/plugins/widgets/q3textedit/q3textedit_extrainfo.h
+++ b/tools/designer/src/plugins/widgets/q3textedit/q3textedit_extrainfo.h
@@ -79,7 +79,7 @@ class Q3TextEditExtraInfoFactory: public QExtensionFactory
{
Q_OBJECT
public:
- Q3TextEditExtraInfoFactory(QDesignerFormEditorInterface *core, QExtensionManager *parent = 0);
+ explicit Q3TextEditExtraInfoFactory(QDesignerFormEditorInterface *core, QExtensionManager *parent = 0);
protected:
virtual QObject *createExtension(QObject *object, const QString &iid, QObject *parent) const;
diff --git a/tools/designer/src/plugins/widgets/q3textedit/q3textedit_plugin.h b/tools/designer/src/plugins/widgets/q3textedit/q3textedit_plugin.h
index 28e0386..77bfb58 100644
--- a/tools/designer/src/plugins/widgets/q3textedit/q3textedit_plugin.h
+++ b/tools/designer/src/plugins/widgets/q3textedit/q3textedit_plugin.h
@@ -51,7 +51,7 @@ class Q3TextEditPlugin: public QObject, public QDesignerCustomWidgetInterface
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3TextEditPlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3TextEditPlugin(const QIcon &icon, QObject *parent = 0);
virtual QString name() const;
virtual QString group() const;
diff --git a/tools/designer/src/plugins/widgets/q3toolbar/q3toolbar_extrainfo.h b/tools/designer/src/plugins/widgets/q3toolbar/q3toolbar_extrainfo.h
index f3ed995..22562b1 100644
--- a/tools/designer/src/plugins/widgets/q3toolbar/q3toolbar_extrainfo.h
+++ b/tools/designer/src/plugins/widgets/q3toolbar/q3toolbar_extrainfo.h
@@ -78,7 +78,7 @@ class Q3ToolBarExtraInfoFactory: public QExtensionFactory
{
Q_OBJECT
public:
- Q3ToolBarExtraInfoFactory(QDesignerFormEditorInterface *core, QExtensionManager *parent = 0);
+ explicit Q3ToolBarExtraInfoFactory(QDesignerFormEditorInterface *core, QExtensionManager *parent = 0);
protected:
virtual QObject *createExtension(QObject *object, const QString &iid, QObject *parent) const;
diff --git a/tools/designer/src/plugins/widgets/q3toolbar/q3toolbar_plugin.h b/tools/designer/src/plugins/widgets/q3toolbar/q3toolbar_plugin.h
index 3b47f74..3a2ffe0 100644
--- a/tools/designer/src/plugins/widgets/q3toolbar/q3toolbar_plugin.h
+++ b/tools/designer/src/plugins/widgets/q3toolbar/q3toolbar_plugin.h
@@ -51,7 +51,7 @@ class Q3ToolBarPlugin: public QObject, public QDesignerCustomWidgetInterface
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3ToolBarPlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3ToolBarPlugin(const QIcon &icon, QObject *parent = 0);
virtual QString name() const;
virtual QString group() const;
diff --git a/tools/designer/src/plugins/widgets/q3widgets/q3widget_plugins.h b/tools/designer/src/plugins/widgets/q3widgets/q3widget_plugins.h
index c79390c..f4695de 100644
--- a/tools/designer/src/plugins/widgets/q3widgets/q3widget_plugins.h
+++ b/tools/designer/src/plugins/widgets/q3widgets/q3widget_plugins.h
@@ -51,7 +51,7 @@ class Q3ButtonGroupPlugin: public QObject, public QDesignerCustomWidgetInterface
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3ButtonGroupPlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3ButtonGroupPlugin(const QIcon &icon, QObject *parent = 0);
virtual ~Q3ButtonGroupPlugin();
virtual QString name() const;
@@ -80,7 +80,7 @@ class Q3ComboBoxPlugin: public QObject, public QDesignerCustomWidgetInterface
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3ComboBoxPlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3ComboBoxPlugin(const QIcon &icon, QObject *parent = 0);
virtual ~Q3ComboBoxPlugin();
virtual QString name() const;
@@ -109,7 +109,7 @@ class Q3DateEditPlugin: public QObject, public QDesignerCustomWidgetInterface
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3DateEditPlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3DateEditPlugin(const QIcon &icon, QObject *parent = 0);
virtual QString name() const;
virtual QString group() const;
@@ -133,7 +133,7 @@ class Q3DateTimeEditPlugin: public QObject, public QDesignerCustomWidgetInterfac
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3DateTimeEditPlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3DateTimeEditPlugin(const QIcon &icon, QObject *parent = 0);
virtual QString name() const;
virtual QString group() const;
@@ -157,7 +157,7 @@ class Q3FramePlugin: public QObject, public QDesignerCustomWidgetInterface
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3FramePlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3FramePlugin(const QIcon &icon, QObject *parent = 0);
virtual ~Q3FramePlugin();
virtual QString name() const;
@@ -186,7 +186,7 @@ class Q3GroupBoxPlugin: public QObject, public QDesignerCustomWidgetInterface
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3GroupBoxPlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3GroupBoxPlugin(const QIcon &icon, QObject *parent = 0);
virtual ~Q3GroupBoxPlugin();
virtual QString name() const;
@@ -215,7 +215,7 @@ class Q3ProgressBarPlugin: public QObject, public QDesignerCustomWidgetInterface
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3ProgressBarPlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3ProgressBarPlugin(const QIcon &icon, QObject *parent = 0);
virtual QString name() const;
virtual QString group() const;
@@ -239,7 +239,7 @@ class Q3TextBrowserPlugin: public QObject, public QDesignerCustomWidgetInterface
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3TextBrowserPlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3TextBrowserPlugin(const QIcon &icon, QObject *parent = 0);
virtual QString name() const;
virtual QString group() const;
@@ -263,7 +263,7 @@ class Q3TimeEditPlugin: public QObject, public QDesignerCustomWidgetInterface
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3TimeEditPlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3TimeEditPlugin(const QIcon &icon, QObject *parent = 0);
virtual QString name() const;
virtual QString group() const;
diff --git a/tools/designer/src/plugins/widgets/q3widgetstack/q3widgetstack_plugin.h b/tools/designer/src/plugins/widgets/q3widgetstack/q3widgetstack_plugin.h
index 56dd7fb..d61b4a1 100644
--- a/tools/designer/src/plugins/widgets/q3widgetstack/q3widgetstack_plugin.h
+++ b/tools/designer/src/plugins/widgets/q3widgetstack/q3widgetstack_plugin.h
@@ -51,7 +51,7 @@ class Q3WidgetStackPlugin: public QObject, public QDesignerCustomWidgetInterface
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3WidgetStackPlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3WidgetStackPlugin(const QIcon &icon, QObject *parent = 0);
virtual QString name() const;
virtual QString group() const;
diff --git a/tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.h b/tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.h
index 524f3fd..f96ba74 100644
--- a/tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.h
+++ b/tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.h
@@ -59,7 +59,7 @@ class Q3WizardHelper : public QObject
{
Q_OBJECT
public:
- Q3WizardHelper(Q3Wizard *wizard);
+ explicit Q3WizardHelper(Q3Wizard *wizard);
private slots:
void slotCurrentChanged();
private:
@@ -71,7 +71,7 @@ class Q3WizardExtraInfo: public QObject, public QDesignerExtraInfoExtension
Q_OBJECT
Q_INTERFACES(QDesignerExtraInfoExtension)
public:
- Q3WizardExtraInfo(Q3Wizard *wizard, QDesignerFormEditorInterface *core, QObject *parent);
+ explicit Q3WizardExtraInfo(Q3Wizard *wizard, QDesignerFormEditorInterface *core, QObject *parent);
virtual QWidget *widget() const;
virtual Q3Wizard *wizard() const;
diff --git a/tools/designer/src/plugins/widgets/q3wizard/q3wizard_plugin.h b/tools/designer/src/plugins/widgets/q3wizard/q3wizard_plugin.h
index 1837769..c9fff40 100644
--- a/tools/designer/src/plugins/widgets/q3wizard/q3wizard_plugin.h
+++ b/tools/designer/src/plugins/widgets/q3wizard/q3wizard_plugin.h
@@ -51,7 +51,7 @@ class Q3WizardPlugin: public QObject, public QDesignerCustomWidgetInterface
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
- Q3WizardPlugin(const QIcon &icon, QObject *parent = 0);
+ explicit Q3WizardPlugin(const QIcon &icon, QObject *parent = 0);
virtual QString name() const;
virtual QString group() const;
diff --git a/tools/designer/src/src.pro b/tools/designer/src/src.pro
index e1710b8..78665b7 100644
--- a/tools/designer/src/src.pro
+++ b/tools/designer/src/src.pro
@@ -9,6 +9,4 @@ SUBDIRS = \
CONFIG(shared,shared|static):SUBDIRS += plugins
-wince*: SUBDIRS -= designer plugins
-symbian: SUBDIRS = uitools
-contains(DEFINES, QT_NO_CURSOR): SUBDIRS -= lib components \ No newline at end of file
+symbian|wince*: SUBDIRS = uitools
diff --git a/tools/designer/translations/translations.pro b/tools/designer/translations/translations.pro
index 03c1415..103c1fe 100644
--- a/tools/designer/translations/translations.pro
+++ b/tools/designer/translations/translations.pro
@@ -129,8 +129,10 @@ HEADERS += ../../shared/findwidget/abstractfindwidget.h \
TR_DIR = $$PWD/../../../translations
TRANSLATIONS = \
+ $$TR_DIR/designer_cs.ts \
$$TR_DIR/designer_de.ts \
$$TR_DIR/designer_fr.ts \
+ $$TR_DIR/designer_hu.ts \
$$TR_DIR/designer_ja.ts \
$$TR_DIR/designer_pl.ts \
$$TR_DIR/designer_ru.ts \
diff --git a/tools/linguist/linguist/linguist.pro b/tools/linguist/linguist/linguist.pro
index c902aeb..4f7ed8a 100644
--- a/tools/linguist/linguist/linguist.pro
+++ b/tools/linguist/linguist/linguist.pro
@@ -9,7 +9,7 @@ CONFIG += qt \
uitools
DEFINES += QT_NO_CAST_FROM_ASCII QT_NO_CAST_TO_ASCII
-build_all:!build_pass {
+build_all:!build_pass {
CONFIG -= build_all
CONFIG += release
}
@@ -42,7 +42,7 @@ SOURCES += \
statistics.cpp \
translatedialog.cpp \
translationsettingsdialog.cpp \
- ../shared/simtexth.cpp
+ ../shared/simtexth.cpp
HEADERS += \
batchtranslationdialog.h \
@@ -71,7 +71,7 @@ contains(QT_PRODUCT, OpenSource.*):DEFINES *= QT_OPENSOURCE
DEFINES += QT_KEYWORDS
TARGET = linguist
win32:RC_FILE = linguist.rc
-mac {
+mac {
static:CONFIG -= global_init_link_order
ICON = linguist.icns
TARGET = Linguist
@@ -97,8 +97,10 @@ RESOURCES += linguist.qrc
TR_DIR = $$PWD/../../../translations
TRANSLATIONS = \
+ $$TR_DIR/linguist_cs.ts \
$$TR_DIR/linguist_de.ts \
$$TR_DIR/linguist_fr.ts \
+ $$TR_DIR/linguist_hu.ts \
$$TR_DIR/linguist_ja.ts \
$$TR_DIR/linguist_pl.ts \
$$TR_DIR/linguist_ru.ts \
diff --git a/tools/linguist/lrelease/main.cpp b/tools/linguist/lrelease/main.cpp
index 7834b06..266474e 100644
--- a/tools/linguist/lrelease/main.cpp
+++ b/tools/linguist/lrelease/main.cpp
@@ -40,7 +40,7 @@
****************************************************************************/
#include "translator.h"
-#include "proreader.h"
+#include "profileevaluator.h"
#ifndef QT_BOOTSTRAPPED
#include <QtCore/QCoreApplication>
@@ -246,24 +246,31 @@ int main(int argc, char **argv)
foreach (const QString &inputFile, inputFiles) {
if (inputFile.endsWith(QLatin1String(".pro"), Qt::CaseInsensitive)
|| inputFile.endsWith(QLatin1String(".pri"), Qt::CaseInsensitive)) {
- QHash<QByteArray, QStringList> varMap;
- bool ok = evaluateProFile(inputFile, cd.isVerbose(), &varMap);
- if (ok) {
- QStringList translations = varMap.value("TRANSLATIONS");
- if (translations.isEmpty()) {
- qWarning("lrelease warning: Met no 'TRANSLATIONS' entry in"
- " project file '%s'\n",
- qPrintable(inputFile));
- } else {
- foreach (const QString &trans, translations)
- if (!releaseTsFile(trans, cd, removeIdentical))
- return 1;
- }
+ QFileInfo fi(inputFile);
+ ProFile pro(fi.absoluteFilePath());
+
+ ProFileEvaluator visitor;
+ visitor.setVerbose(cd.isVerbose());
+
+ if (!visitor.queryProFile(&pro)) {
+ qWarning("lrelease error: cannot read project file '%s'.", qPrintable(inputFile));
+ continue;
+ }
+ if (!visitor.accept(&pro)) {
+ qWarning("lrelease error: cannot process project file '%s'.", qPrintable(inputFile));
+ continue;
+ }
+
+ QStringList translations = visitor.values(QLatin1String("TRANSLATIONS"));
+ if (translations.isEmpty()) {
+ qWarning("lrelease warning: Met no 'TRANSLATIONS' entry in"
+ " project file '%s'\n",
+ qPrintable(inputFile));
} else {
- qWarning("error: lrelease encountered project file functionality that is currently not supported.\n"
- "You might want to consider using TS files as input instead of a project file.\n"
- "Try the following syntax:\n"
- " lrelease [options] ts-files [-qm qm-file]\n");
+ QDir proDir(fi.absolutePath());
+ foreach (const QString &trans, translations)
+ if (!releaseTsFile(QFileInfo(proDir, trans).filePath(), cd, removeIdentical))
+ return 1;
}
} else {
if (outputFile.isEmpty()) {
diff --git a/tools/linguist/lupdate/main.cpp b/tools/linguist/lupdate/main.cpp
index 5b4edf1..c9f4a05 100644
--- a/tools/linguist/lupdate/main.cpp
+++ b/tools/linguist/lupdate/main.cpp
@@ -43,7 +43,6 @@
#include <translator.h>
#include <profileevaluator.h>
-#include <proreader.h>
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
@@ -118,14 +117,19 @@ static void printUsage()
" -disable-heuristic {sametext|similartext|number}\n"
" Disable the named merge heuristic. Can be specified multiple times.\n"
" -pro <filename>\n"
- " Name of a .pro file. Useful for files with .pro\n"
- " file syntax but different file suffix\n"
+ " Name of a .pro file. Useful for files with .pro file syntax but\n"
+ " different file suffix. Projects are recursed into and merged.\n"
" -source-language <language>[_<region>]\n"
" Specify the language of the source strings for new files.\n"
" Defaults to POSIX if not specified.\n"
" -target-language <language>[_<region>]\n"
" Specify the language of the translations for new files.\n"
" Guessed from the file name if not specified.\n"
+ " -ts <ts-file>...\n"
+ " Specify the output file(s). This will override the TRANSLATIONS\n"
+ " and nullify the CODECFORTR from possibly specified project files.\n"
+ " -codecfortr <codec>\n"
+ " Specify the codec assumed for tr() calls. Effective only with -ts.\n"
" -version\n"
" Display the version of lupdate and exit.\n"
" @lst-file\n"
@@ -134,7 +138,7 @@ static void printUsage()
}
static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFileNames,
- const QByteArray &codecForTr, const QString &sourceLanguage, const QString &targetLanguage,
+ bool setCodec, const QString &sourceLanguage, const QString &targetLanguage,
UpdateOptions options, bool *fail)
{
QDir dir;
@@ -152,10 +156,10 @@ static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFil
}
tor.resolveDuplicates();
cd.clearErrors();
- if (!codecForTr.isEmpty() && codecForTr != tor.codecName())
+ if (setCodec && fetchedTor.codec() != tor.codec())
qWarning("lupdate warning: Codec for tr() '%s' disagrees with "
"existing file's codec '%s'. Expect trouble.",
- codecForTr.constData(), tor.codecName().constData());
+ fetchedTor.codecName().constData(), tor.codecName().constData());
if (!targetLanguage.isEmpty() && targetLanguage != tor.languageCode())
qWarning("lupdate warning: Specified target language '%s' disagrees with "
"existing file's language '%s'. Ignoring.",
@@ -165,8 +169,8 @@ static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFil
"existing file's language '%s'. Ignoring.",
qPrintable(sourceLanguage), qPrintable(tor.sourceLanguageCode()));
} else {
- if (!codecForTr.isEmpty())
- tor.setCodecName(codecForTr);
+ if (setCodec)
+ tor.setCodec(fetchedTor.codec());
if (!targetLanguage.isEmpty())
tor.setLanguageCode(targetLanguage);
else
@@ -188,8 +192,8 @@ static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFil
if (tor.locationsType() == Translator::NoLocations) // Could be set from file
theseOptions |= NoLocations;
Translator out = merge(tor, fetchedTor, theseOptions, err);
- if (!codecForTr.isEmpty())
- out.setCodecName(codecForTr);
+ if (setCodec)
+ out.setCodec(fetchedTor.codec());
if ((options & Verbose) && !err.isEmpty()) {
printOut(err);
@@ -216,16 +220,196 @@ static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFil
}
}
+static QStringList getSources(const char *var, const char *vvar, const QStringList &baseVPaths,
+ const QString &projectDir, const ProFileEvaluator &visitor)
+{
+ QStringList vPaths = visitor.absolutePathValues(QLatin1String(vvar), projectDir);
+ vPaths += baseVPaths;
+ vPaths.removeDuplicates();
+ return visitor.absoluteFileValues(QLatin1String(var), projectDir, vPaths, 0);
+}
+
+static QStringList getSources(const ProFileEvaluator &visitor, const QString &projectDir)
+{
+ QStringList baseVPaths;
+ baseVPaths += visitor.absolutePathValues(QLatin1String("VPATH"), projectDir);
+ baseVPaths << projectDir; // QMAKE_ABSOLUTE_SOURCE_PATH
+ baseVPaths += visitor.absolutePathValues(QLatin1String("DEPENDPATH"), projectDir);
+ baseVPaths.removeDuplicates();
+
+ QStringList sourceFiles;
+
+ // app/lib template
+ sourceFiles += getSources("SOURCES", "VPATH_SOURCES", baseVPaths, projectDir, visitor);
+
+ sourceFiles += getSources("FORMS", "VPATH_FORMS", baseVPaths, projectDir, visitor);
+ sourceFiles += getSources("FORMS3", "VPATH_FORMS3", baseVPaths, projectDir, visitor);
+
+ QStringList vPathsInc = baseVPaths;
+ vPathsInc += visitor.absolutePathValues(QLatin1String("INCLUDEPATH"), projectDir);
+ vPathsInc.removeDuplicates();
+ sourceFiles += visitor.absoluteFileValues(QLatin1String("HEADERS"), projectDir, vPathsInc, 0);
+
+ sourceFiles.removeDuplicates();
+ sourceFiles.sort();
+
+ return sourceFiles;
+}
+
+static void processSources(Translator &fetchedTor,
+ const QStringList &sourceFiles, ConversionData &cd)
+{
+ QStringList sourceFilesCpp;
+ for (QStringList::const_iterator it = sourceFiles.begin(); it != sourceFiles.end(); ++it) {
+ if (it->endsWith(QLatin1String(".java"), Qt::CaseInsensitive))
+ loadJava(fetchedTor, *it, cd);
+ else if (it->endsWith(QLatin1String(".ui"), Qt::CaseInsensitive)
+ || it->endsWith(QLatin1String(".jui"), Qt::CaseInsensitive))
+ loadUI(fetchedTor, *it, cd);
+ else if (it->endsWith(QLatin1String(".js"), Qt::CaseInsensitive)
+ || it->endsWith(QLatin1String(".qs"), Qt::CaseInsensitive))
+ loadQScript(fetchedTor, *it, cd);
+ else
+ sourceFilesCpp << *it;
+ }
+ loadCPP(fetchedTor, sourceFilesCpp, cd);
+ if (!cd.error().isEmpty())
+ printOut(cd.error());
+}
+
+static void processProjects(
+ bool topLevel, bool nestComplain, const QStringList &proFiles,
+ UpdateOptions options, const QByteArray &codecForSource,
+ const QString &targetLanguage, const QString &sourceLanguage,
+ Translator *parentTor, bool *fail);
+
+static void processProject(
+ bool nestComplain, const QFileInfo &pfi, ProFileEvaluator &visitor,
+ UpdateOptions options, const QByteArray &_codecForSource,
+ const QString &targetLanguage, const QString &sourceLanguage,
+ Translator *fetchedTor, bool *fail)
+{
+ QByteArray codecForSource = _codecForSource;
+ QStringList tmp = visitor.values(QLatin1String("CODECFORSRC"));
+ if (!tmp.isEmpty()) {
+ codecForSource = tmp.last().toLatin1();
+ if (!QTextCodec::codecForName(codecForSource)) {
+ qWarning("lupdate warning: Codec for source '%s' is invalid. "
+ "Falling back to codec for tr().", codecForSource.constData());
+ codecForSource.clear();
+ }
+ }
+ if (visitor.templateType() == ProFileEvaluator::TT_Subdirs) {
+ QStringList subProFiles;
+ QDir proDir(pfi.absoluteDir());
+ foreach (const QString &subdir, visitor.values(QLatin1String("SUBDIRS"))) {
+ QString subPro = QDir::cleanPath(proDir.absoluteFilePath(subdir));
+ QFileInfo subInfo(subPro);
+ if (subInfo.isDir())
+ subProFiles << (subPro + QLatin1Char('/')
+ + subInfo.fileName() + QLatin1String(".pro"));
+ else
+ subProFiles << subPro;
+ }
+ processProjects(false, nestComplain, subProFiles, options, codecForSource,
+ targetLanguage, sourceLanguage, fetchedTor, fail);
+ } else {
+ ConversionData cd;
+ cd.m_noUiLines = options & NoUiLines;
+ cd.m_codecForSource = codecForSource;
+ cd.m_includePath = visitor.values(QLatin1String("INCLUDEPATH"));
+ QStringList sourceFiles = getSources(visitor, pfi.absolutePath());
+ QSet<QString> sourceDirs;
+ sourceDirs.insert(QDir::cleanPath(pfi.absolutePath()) + QLatin1Char('/'));
+ foreach (const QString &sf, sourceFiles)
+ sourceDirs.insert(sf.left(sf.lastIndexOf(QLatin1Char('/')) + 1));
+ QStringList rootList = sourceDirs.toList();
+ rootList.sort();
+ for (int prev = 0, curr = 1; curr < rootList.length(); )
+ if (rootList.at(curr).startsWith(rootList.at(prev)))
+ rootList.removeAt(curr);
+ else
+ prev = curr++;
+ cd.m_projectRoots = QSet<QString>::fromList(rootList);
+ processSources(*fetchedTor, sourceFiles, cd);
+ }
+}
+
+static void processProjects(
+ bool topLevel, bool nestComplain, const QStringList &proFiles,
+ UpdateOptions options, const QByteArray &codecForSource,
+ const QString &targetLanguage, const QString &sourceLanguage,
+ Translator *parentTor, bool *fail)
+{
+ foreach (const QString &proFile, proFiles) {
+ ProFileEvaluator visitor;
+ visitor.setVerbose(options & Verbose);
+
+ QFileInfo pfi(proFile);
+ ProFile pro(pfi.absoluteFilePath());
+ if (!visitor.queryProFile(&pro) || !visitor.accept(&pro)) {
+ if (topLevel)
+ *fail = true;
+ continue;
+ }
+
+ if (visitor.contains(QLatin1String("TRANSLATIONS"))) {
+ if (parentTor) {
+ if (topLevel) {
+ std::cerr << "lupdate warning: TS files from command line "
+ "will override TRANSLATIONS in " << qPrintable(proFile) << ".\n";
+ goto noTrans;
+ } else if (nestComplain) {
+ std::cerr << "lupdate warning: TS files from command line "
+ "prevent recursing into " << qPrintable(proFile) << ".\n";
+ continue;
+ }
+ }
+ QStringList tsFiles;
+ QDir proDir(pfi.absolutePath());
+ foreach (const QString &tsFile, visitor.values(QLatin1String("TRANSLATIONS")))
+ tsFiles << QFileInfo(proDir, tsFile).filePath();
+ if (tsFiles.isEmpty()) {
+ // This might mean either a buggy PRO file or an intentional detach -
+ // we can't know without seeing the actual RHS of the assignment ...
+ // Just assume correctness and be silent.
+ continue;
+ }
+ Translator tor;
+ bool setCodec = false;
+ QStringList tmp = visitor.values(QLatin1String("CODEC"))
+ + visitor.values(QLatin1String("DEFAULTCODEC"))
+ + visitor.values(QLatin1String("CODECFORTR"));
+ if (!tmp.isEmpty()) {
+ tor.setCodecName(tmp.last().toLatin1());
+ setCodec = true;
+ }
+ processProject(false, pfi, visitor, options, codecForSource,
+ targetLanguage, sourceLanguage, &tor, fail);
+ updateTsFiles(tor, tsFiles, setCodec, sourceLanguage, targetLanguage, options, fail);
+ continue;
+ }
+ noTrans:
+ if (!parentTor) {
+ if (topLevel)
+ std::cerr << "lupdate warning: no TS files specified. Only diagnostics "
+ "will be produced for '" << qPrintable(proFile) << "'.\n";
+ Translator tor;
+ processProject(nestComplain, pfi, visitor, options, codecForSource,
+ targetLanguage, sourceLanguage, &tor, fail);
+ } else {
+ processProject(nestComplain, pfi, visitor, options, codecForSource,
+ targetLanguage, sourceLanguage, parentTor, fail);
+ }
+ }
+}
+
int main(int argc, char **argv)
{
QCoreApplication app(argc, argv);
m_defaultExtensions = QLatin1String("ui,c,c++,cc,cpp,cxx,ch,h,h++,hh,hpp,hxx");
QStringList args = app.arguments();
- QString defaultContext; // This was QLatin1String("@default") before.
- Translator fetchedTor;
- QByteArray codecForTr;
- QByteArray codecForSource;
QStringList tsFileNames;
QStringList proFiles;
QMultiHash<QString, QString> allCSources;
@@ -234,6 +418,7 @@ int main(int argc, char **argv)
QStringList includePath;
QString targetLanguage;
QString sourceLanguage;
+ QByteArray codecForTr;
UpdateOptions options =
Verbose | // verbose is on by default starting with Qt 4.2
@@ -332,6 +517,14 @@ int main(int argc, char **argv)
} else if (arg == QLatin1String("-version")) {
printOut(QObject::tr("lupdate version %1\n").arg(QLatin1String(QT_VERSION_STR)));
return 0;
+ } else if (arg == QLatin1String("-codecfortr")) {
+ ++i;
+ if (i == argc) {
+ qWarning("The -codecfortr option should be followed by a codec name.");
+ return 1;
+ }
+ codecForTr = args[i].toLatin1();
+ continue;
} else if (arg == QLatin1String("-ts")) {
metTsFlag = true;
continue;
@@ -369,7 +562,6 @@ int main(int argc, char **argv)
return 1;
}
- numFiles++;
QStringList files;
if (arg.startsWith(QLatin1String("@"))) {
QFile lstFile(arg.mid(1));
@@ -383,10 +575,6 @@ int main(int argc, char **argv)
} else {
files << arg;
}
-
- codecForTr.clear();
- codecForSource.clear();
-
if (metTsFlag) {
foreach (const QString &file, files) {
bool found = false;
@@ -409,6 +597,7 @@ int main(int argc, char **argv)
return 1;
}
}
+ numFiles++;
} else {
foreach (const QString &file, files) {
QFileInfo fi(file);
@@ -459,105 +648,53 @@ int main(int argc, char **argv)
sourceFiles << QDir::cleanPath(fi.absoluteFilePath());;
}
}
+ numFiles++;
}
} // for args
- foreach (const QString &proFile, proFiles)
- projectRoots.insert(QDir::cleanPath(QFileInfo(proFile).absolutePath()) + QLatin1Char('/'));
+ if (numFiles == 0) {
+ printUsage();
+ return 1;
+ }
+
+ if (!targetLanguage.isEmpty() && tsFileNames.count() != 1)
+ std::cerr << "lupdate warning: -target-language usually only "
+ "makes sense with exactly one TS file.\n";
+ if (!codecForTr.isEmpty() && tsFileNames.isEmpty())
+ std::cerr << "lupdate warning: -codecfortr has no effect without -ts.\n";
- bool firstPass = true;
bool fail = false;
- while (firstPass || !proFiles.isEmpty()) {
+ if (proFiles.isEmpty()) {
+ if (tsFileNames.isEmpty())
+ std::cerr << "lupdate warning: no TS files specified. "
+ "Only diagnostics will be produced.\n";
+
+ Translator fetchedTor;
ConversionData cd;
- cd.m_defaultContext = defaultContext;
cd.m_noUiLines = options & NoUiLines;
cd.m_projectRoots = projectRoots;
cd.m_includePath = includePath;
cd.m_allCSources = allCSources;
-
- QStringList tsFiles = tsFileNames;
- if (proFiles.count() > 0) {
- QFileInfo pfi(proFiles.takeFirst());
- QHash<QByteArray, QStringList> variables;
-
- ProFileEvaluator visitor;
- visitor.setVerbose(options & Verbose);
-
- ProFile pro(pfi.absoluteFilePath());
- if (!visitor.queryProFile(&pro))
- return 2;
- if (!visitor.accept(&pro))
- return 2;
-
- if (visitor.templateType() == ProFileEvaluator::TT_Subdirs) {
- QDir proDir(pfi.absoluteDir());
- foreach (const QString &subdir, visitor.values(QLatin1String("SUBDIRS"))) {
- QString subPro = QDir::cleanPath(proDir.absoluteFilePath(subdir));
- QFileInfo subInfo(subPro);
- if (subInfo.isDir())
- proFiles << (subPro + QLatin1Char('/')
- + subInfo.fileName() + QLatin1String(".pro"));
- else
- proFiles << subPro;
- }
- continue;
- }
-
- cd.m_includePath += visitor.values(QLatin1String("INCLUDEPATH"));
-
- evaluateProFile(visitor, &variables, pfi.absolutePath());
-
- sourceFiles = variables.value("SOURCES");
-
- QStringList tmp = variables.value("CODECFORTR");
- if (!tmp.isEmpty() && !tmp.first().isEmpty()) {
- codecForTr = tmp.first().toLatin1();
- fetchedTor.setCodecName(codecForTr);
- cd.m_outputCodec = codecForTr;
- }
- tmp = variables.value("CODECFORSRC");
- if (!tmp.isEmpty() && !tmp.first().isEmpty()) {
- codecForSource = tmp.first().toLatin1();
- if (!QTextCodec::codecForName(codecForSource))
- qWarning("lupdate warning: Codec for source '%s' is invalid. Falling back to codec for tr().",
- codecForSource.constData());
- else
- cd.m_codecForSource = codecForSource;
- }
-
- tsFiles += variables.value("TRANSLATIONS");
+ fetchedTor.setCodecName(codecForTr);
+ processSources(fetchedTor, sourceFiles, cd);
+ updateTsFiles(fetchedTor, tsFileNames, !codecForTr.isEmpty(),
+ sourceLanguage, targetLanguage, options, &fail);
+ } else {
+ if (!sourceFiles.isEmpty() || !includePath.isEmpty()) {
+ qWarning("lupdate error: Both project and source files / include paths specified.\n");
+ return 1;
}
-
- QStringList sourceFilesCpp;
- for (QStringList::iterator it = sourceFiles.begin(); it != sourceFiles.end(); ++it) {
- if (it->endsWith(QLatin1String(".java"), Qt::CaseInsensitive))
- loadJava(fetchedTor, *it, cd);
- else if (it->endsWith(QLatin1String(".ui"), Qt::CaseInsensitive)
- || it->endsWith(QLatin1String(".jui"), Qt::CaseInsensitive))
- loadUI(fetchedTor, *it, cd);
- else if (it->endsWith(QLatin1String(".js"), Qt::CaseInsensitive)
- || it->endsWith(QLatin1String(".qs"), Qt::CaseInsensitive))
- loadQScript(fetchedTor, *it, cd);
- else
- sourceFilesCpp << *it;
+ if (!tsFileNames.isEmpty()) {
+ Translator fetchedTor;
+ fetchedTor.setCodecName(codecForTr);
+ processProjects(true, true, proFiles, options, QByteArray(),
+ targetLanguage, sourceLanguage, &fetchedTor, &fail);
+ updateTsFiles(fetchedTor, tsFileNames, !codecForTr.isEmpty(),
+ sourceLanguage, targetLanguage, options, &fail);
+ } else {
+ processProjects(true, false, proFiles, options, QByteArray(),
+ targetLanguage, sourceLanguage, 0, &fail);
}
- loadCPP(fetchedTor, sourceFilesCpp, cd);
- if (!cd.error().isEmpty())
- printOut(cd.error());
-
- tsFiles.sort();
- tsFiles.removeDuplicates();
-
- if (!tsFiles.isEmpty())
- updateTsFiles(fetchedTor, tsFiles, codecForTr, sourceLanguage, targetLanguage, options, &fail);
-
- firstPass = false;
- }
-
- if (numFiles == 0) {
- printUsage();
- return 1;
}
-
return fail ? 1 : 0;
}
diff --git a/tools/linguist/shared/proparser.pri b/tools/linguist/shared/proparser.pri
index 99d32e7..372247e 100644
--- a/tools/linguist/shared/proparser.pri
+++ b/tools/linguist/shared/proparser.pri
@@ -2,13 +2,11 @@
INCLUDEPATH *= $$PWD
HEADERS += \
- $$PWD/proreader.h \
$$PWD/abstractproitemvisitor.h \
$$PWD/proitems.h \
$$PWD/profileevaluator.h \
$$PWD/proparserutils.h
SOURCES += \
- $$PWD/proreader.cpp \
$$PWD/proitems.cpp \
$$PWD/profileevaluator.cpp
diff --git a/tools/linguist/shared/proreader.cpp b/tools/linguist/shared/proreader.cpp
deleted file mode 100644
index 4a621a8..0000000
--- a/tools/linguist/shared/proreader.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the Qt Linguist of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "profileevaluator.h"
-
-#include <QtCore/QDir>
-#include <QtCore/QFileInfo>
-
-QT_BEGIN_NAMESPACE
-
-static QStringList getSources(const char *var, const char *vvar, const QStringList &baseVPaths,
- const QString &projectDir, const ProFileEvaluator &visitor)
-{
- QStringList vPaths =
- visitor.absolutePathValues(QLatin1String(vvar), projectDir);
- vPaths += baseVPaths;
- vPaths.removeDuplicates();
- return visitor.absoluteFileValues(QLatin1String(var), projectDir, vPaths, 0);
-}
-
-void evaluateProFile(const ProFileEvaluator &visitor, QHash<QByteArray, QStringList> *varMap,
- const QString &projectDir)
-{
- QStringList baseVPaths;
- baseVPaths += visitor.absolutePathValues(QLatin1String("VPATH"), projectDir);
- baseVPaths << projectDir; // QMAKE_ABSOLUTE_SOURCE_PATH
- baseVPaths += visitor.absolutePathValues(QLatin1String("DEPENDPATH"), projectDir);
- baseVPaths.removeDuplicates();
-
- QStringList sourceFiles;
- QString codecForTr;
- QString codecForSource;
- QStringList tsFileNames;
-
- // app/lib template
- sourceFiles += getSources("SOURCES", "VPATH_SOURCES", baseVPaths, projectDir, visitor);
-
- sourceFiles += getSources("FORMS", "VPATH_FORMS", baseVPaths, projectDir, visitor);
- sourceFiles += getSources("FORMS3", "VPATH_FORMS3", baseVPaths, projectDir, visitor);
-
- QStringList vPathsInc = baseVPaths;
- vPathsInc += visitor.absolutePathValues(QLatin1String("INCLUDEPATH"), projectDir);
- vPathsInc.removeDuplicates();
- sourceFiles += visitor.absoluteFileValues(QLatin1String("HEADERS"), projectDir, vPathsInc, 0);
-
- QDir proDir(projectDir);
- foreach (const QString &tsFile, visitor.values(QLatin1String("TRANSLATIONS")))
- tsFileNames << QFileInfo(proDir, tsFile).filePath();
-
- QStringList trcodec = visitor.values(QLatin1String("CODEC"))
- + visitor.values(QLatin1String("DEFAULTCODEC"))
- + visitor.values(QLatin1String("CODECFORTR"));
- if (!trcodec.isEmpty())
- codecForTr = trcodec.last();
-
- QStringList srccodec = visitor.values(QLatin1String("CODECFORSRC"));
- if (!srccodec.isEmpty())
- codecForSource = srccodec.last();
-
- sourceFiles.sort();
- sourceFiles.removeDuplicates();
- tsFileNames.sort();
- tsFileNames.removeDuplicates();
-
- varMap->insert("SOURCES", sourceFiles);
- varMap->insert("CODECFORTR", QStringList() << codecForTr);
- varMap->insert("CODECFORSRC", QStringList() << codecForSource);
- varMap->insert("TRANSLATIONS", tsFileNames);
-}
-
-bool evaluateProFile(const QString &fileName, bool verbose, QHash<QByteArray, QStringList> *varMap)
-{
- QFileInfo fi(fileName);
- if (!fi.exists())
- return false;
-
- ProFile pro(fi.absoluteFilePath());
-
- ProFileEvaluator visitor;
- visitor.setVerbose(verbose);
-
- if (!visitor.queryProFile(&pro))
- return false;
-
- if (!visitor.accept(&pro))
- return false;
-
- evaluateProFile(visitor, varMap, fi.absolutePath());
-
- return true;
-}
-
-QT_END_NAMESPACE
diff --git a/tools/linguist/shared/qm.cpp b/tools/linguist/shared/qm.cpp
index 8118576..de1284f 100644
--- a/tools/linguist/shared/qm.cpp
+++ b/tools/linguist/shared/qm.cpp
@@ -594,7 +594,7 @@ bool loadQM(Translator &translator, QIODevice &dev, ConversionData &cd)
return false;
}
m += 4;
- QString str = QString::fromUtf16((const ushort *)m, len/2);
+ QString str = QString((const QChar *)m, len/2);
if (QSysInfo::ByteOrder == QSysInfo::LittleEndian) {
for (int i = 0; i < str.length(); ++i)
str[i] = QChar((str.at(i).unicode() >> 8) +
diff --git a/tools/linguist/shared/translator.h b/tools/linguist/shared/translator.h
index 0fcd598..0b88c07 100644
--- a/tools/linguist/shared/translator.h
+++ b/tools/linguist/shared/translator.h
@@ -153,6 +153,7 @@ public:
void reportDuplicates(const Duplicates &dupes, const QString &fileName, bool verbose);
void setCodecName(const QByteArray &name);
+ void setCodec(QTextCodec *codec) { m_codec = codec; }
QByteArray codecName() const;
QTextCodec *codec() const { return m_codec; }
diff --git a/tools/qdoc3/cppcodeparser.cpp b/tools/qdoc3/cppcodeparser.cpp
index 9b6a516..7d08c77 100644
--- a/tools/qdoc3/cppcodeparser.cpp
+++ b/tools/qdoc3/cppcodeparser.cpp
@@ -95,6 +95,7 @@ QT_BEGIN_NAMESPACE
#define COMMAND_QMLMETHOD Doc::alias("qmlmethod")
#define COMMAND_QMLATTACHEDMETHOD Doc::alias("qmlattachedmethod")
#define COMMAND_QMLDEFAULT Doc::alias("default")
+#define COMMAND_QMLBASICTYPE Doc::alias("qmlbasictype")
#endif
QStringList CppCodeParser::exampleFiles;
@@ -536,7 +537,8 @@ QSet<QString> CppCodeParser::topicCommands()
<< COMMAND_QMLSIGNAL
<< COMMAND_QMLATTACHEDSIGNAL
<< COMMAND_QMLMETHOD
- << COMMAND_QMLATTACHEDMETHOD;
+ << COMMAND_QMLATTACHEDMETHOD
+ << COMMAND_QMLBASICTYPE;
#else
<< COMMAND_VARIABLE;
#endif
@@ -728,6 +730,20 @@ Node *CppCodeParser::processTopicCommand(const Doc& doc,
}
return new QmlClassNode(tre->root(), names[0], classNode);
}
+ else if (command == COMMAND_QMLBASICTYPE) {
+#if 0
+ QStringList parts = arg.split(" ");
+ qDebug() << command << parts;
+ if (parts.size() > 1) {
+ FakeNode* pageNode = static_cast<FakeNode*>(tre->root()->findNode(parts[1], Node::Fake));
+ if (pageNode) {
+ qDebug() << "FOUND";
+ return new QmlBasicTypeNode(pageNode, parts[0]);
+ }
+ }
+#endif
+ return new QmlBasicTypeNode(tre->root(), arg);
+ }
else if ((command == COMMAND_QMLSIGNAL) ||
(command == COMMAND_QMLMETHOD) ||
(command == COMMAND_QMLATTACHEDSIGNAL) ||
diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp
index a3cdae6..15386f1 100644
--- a/tools/qdoc3/htmlgenerator.cpp
+++ b/tools/qdoc3/htmlgenerator.cpp
@@ -1428,14 +1428,19 @@ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker)
QList<Section> sections;
QList<Section>::const_iterator s;
- QString htmlTitle = fake->fullTitle();
+ QString fullTitle = fake->fullTitle();
+ QString htmlTitle = fullTitle;
if (fake->subType() == Node::File && !fake->subTitle().isEmpty()) {
subTitleSize = SmallSubTitle;
htmlTitle += " (" + fake->subTitle() + ")";
}
+ else if (fake->subType() == Node::QmlBasicType) {
+ fullTitle = "QML Basic Type: " + fullTitle;
+ htmlTitle = fullTitle;
+ }
generateHeader(htmlTitle, fake, marker, true);
- generateTitle(fake->fullTitle(),
+ generateTitle(fullTitle,
Text() << fake->subTitle(),
subTitleSize,
fake,
diff --git a/tools/qdoc3/node.cpp b/tools/qdoc3/node.cpp
index 5796ea4..9357671 100644
--- a/tools/qdoc3/node.cpp
+++ b/tools/qdoc3/node.cpp
@@ -85,6 +85,9 @@ void Node::setDoc(const Doc& doc, bool replace)
}
/*!
+ Construct a node with the given \a type and having the
+ given \a parent and \a name. The new node is added to the
+ parent's child list.
*/
Node::Node(Type type, InnerNode *parent, const QString& name)
: typ(type),
@@ -490,6 +493,8 @@ NodeList InnerNode::overloads(const QString &funcName) const
}
/*!
+ Construct an inner node (i.e., not a leaf node) of the
+ given \a type and having the given \a parent and \a name.
*/
InnerNode::InnerNode(Type type, InnerNode *parent, const QString& name)
: Node(type, parent, name)
@@ -547,6 +552,7 @@ bool InnerNode::isSameSignature(const FunctionNode *f1, const FunctionNode *f2)
}
/*!
+ Adds the \a child to this node's child list.
*/
void InnerNode::addChild(Node *child)
{
@@ -564,7 +570,7 @@ void InnerNode::addChild(Node *child)
else {
if (child->type() == Enum)
enumChildren.append(child);
- childMap.insert(child->name(), child);
+ childMap.insert(child->name(), child);
}
}
@@ -1207,7 +1213,11 @@ bool TargetNode::isInnerNode() const
bool QmlClassNode::qmlOnly = false;
/*!
- Constructor for the Qml class node.
+ Constructs a Qml class node (i.e. a Fake node with the
+ subtype QmlClass. The new node has the given \a parent
+ and \a name and is associated with the C++ class node
+ specified by \a cn which may be null if the the Qml
+ class node is not associated with a C++ class node.
*/
QmlClassNode::QmlClassNode(InnerNode *parent,
const QString& name,
@@ -1234,6 +1244,18 @@ QString QmlClassNode::fileBase() const
}
/*!
+ Constructs a Qml basic type node (i.e. a Fake node with
+ the subtype QmlBasicType. The new node has the given
+ \a parent and \a name.
+ */
+QmlBasicTypeNode::QmlBasicTypeNode(InnerNode *parent,
+ const QString& name)
+ : FakeNode(parent, name, QmlBasicType)
+{
+ setTitle(name);
+}
+
+/*!
Constructor for the Qml property group node. \a parent is
always a QmlClassNode.
*/
diff --git a/tools/qdoc3/node.h b/tools/qdoc3/node.h
index c77fbeb..077aeb8 100644
--- a/tools/qdoc3/node.h
+++ b/tools/qdoc3/node.h
@@ -96,7 +96,8 @@ class Node
#ifdef QDOC_QML
ExternalPage,
QmlClass,
- QmlPropertyGroup
+ QmlPropertyGroup,
+ QmlBasicType
#else
ExternalPage
#endif
@@ -373,6 +374,14 @@ class QmlClassNode : public FakeNode
const ClassNode* cnode;
};
+class QmlBasicTypeNode : public FakeNode
+{
+ public:
+ QmlBasicTypeNode(InnerNode *parent,
+ const QString& name);
+ virtual ~QmlBasicTypeNode() { }
+};
+
class QmlPropGroupNode : public FakeNode
{
public:
diff --git a/tools/qdoc3/pagegenerator.cpp b/tools/qdoc3/pagegenerator.cpp
index a001c10..07edcc4 100644
--- a/tools/qdoc3/pagegenerator.cpp
+++ b/tools/qdoc3/pagegenerator.cpp
@@ -104,7 +104,8 @@ QString PageGenerator::fileBase(const Node *node)
we prepend "qml-" to the file name of QML element doc
files.
*/
- if (p->subType() == Node::QmlClass) {
+ if ((p->subType() == Node::QmlClass) ||
+ (p->subType() == Node::QmlBasicType)) {
base.prepend("qml-");
}
#endif
@@ -209,6 +210,10 @@ void PageGenerator::generateInnerNode(const InnerNode *node,
if (fakeNode->subType() == Node::QmlPropertyGroup)
return;
#endif
+ if (fakeNode->subType() == Node::Page) {
+ if (node->count() > 0)
+ qDebug() << "PAGE" << fakeNode->title() << "HAS CHILDREN";
+ }
}
if (node->parent() != 0) {
diff --git a/tools/qdoc3/tree.cpp b/tools/qdoc3/tree.cpp
index d46da95..6c2502d 100644
--- a/tools/qdoc3/tree.cpp
+++ b/tools/qdoc3/tree.cpp
@@ -1914,7 +1914,8 @@ QString Tree::fullDocumentLocation(const Node *node) const
}
else if (node->type() == Node::Fake) {
#ifdef QDOC_QML
- if (node->subType() == Node::QmlClass)
+ if ((node->subType() == Node::QmlClass) ||
+ (node->subType() == Node::QmlBasicType))
return "qml-" + node->fileBase() + ".html";
else
#endif
diff --git a/tools/qtconfig/translations/translations.pro b/tools/qtconfig/translations/translations.pro
index bf8a1da..5d35b6a 100644
--- a/tools/qtconfig/translations/translations.pro
+++ b/tools/qtconfig/translations/translations.pro
@@ -9,6 +9,7 @@ FORMS = ../mainwindowbase.ui ../paletteeditoradvancedbase.ui ../previewwi
TR_DIR = $$PWD/../../../translations
TRANSLATIONS = \
+ $$TR_DIR/qtconfig_hu.ts \
$$TR_DIR/qtconfig_pl.ts \
$$TR_DIR/qtconfig_ru.ts \
$$TR_DIR/qtconfig_zh_CN.ts \
diff --git a/tools/qttracereplay/main.cpp b/tools/qttracereplay/main.cpp
index 85e9b12..a932d72 100644
--- a/tools/qttracereplay/main.cpp
+++ b/tools/qttracereplay/main.cpp
@@ -52,6 +52,7 @@ public:
ReplayWidget(const QString &filename);
void paintEvent(QPaintEvent *event);
+ void resizeEvent(QResizeEvent *event);
public slots:
void updateRect();
@@ -64,14 +65,15 @@ public:
int currentIteration;
QTime timer;
+ QList<uint> visibleUpdates;
QList<uint> iterationTimes;
QString filename;
};
void ReplayWidget::updateRect()
{
- if (!updates.isEmpty())
- update(updates.at(currentFrame));
+ if (!visibleUpdates.isEmpty())
+ update(updates.at(visibleUpdates.at(currentFrame)));
}
void ReplayWidget::paintEvent(QPaintEvent *)
@@ -80,10 +82,10 @@ void ReplayWidget::paintEvent(QPaintEvent *)
// p.setClipRegion(frames.at(currentFrame).updateRegion);
- buffer.draw(&p, currentFrame);
+ buffer.draw(&p, visibleUpdates.at(currentFrame));
++currentFrame;
- if (currentFrame >= buffer.numFrames()) {
+ if (currentFrame >= visibleUpdates.size()) {
currentFrame = 0;
++currentIteration;
@@ -119,7 +121,7 @@ void ReplayWidget::paintEvent(QPaintEvent *)
if (iterationTimes.size() >= 10 || stddev < 4) {
printf("%s, iterations: %d, frames: %d, min(ms): %d, median(ms): %d, stddev: %f %%, max(fps): %f\n", qPrintable(filename),
- iterationTimes.size(), updates.size(), min, median, stddev, 1000. * updates.size() / min);
+ iterationTimes.size(), visibleUpdates.size(), min, median, stddev, 1000. * visibleUpdates.size() / min);
deleteLater();
return;
}
@@ -130,6 +132,21 @@ void ReplayWidget::paintEvent(QPaintEvent *)
QTimer::singleShot(0, this, SLOT(updateRect()));
}
+void ReplayWidget::resizeEvent(QResizeEvent *event)
+{
+ visibleUpdates.clear();
+
+ QRect bounds = rect();
+ for (int i = 0; i < updates.size(); ++i) {
+ if (updates.at(i).intersects(bounds))
+ visibleUpdates << i;
+ }
+
+ if (visibleUpdates.size() != updates.size())
+ printf("Warning: skipped %d frames due to limited resolution\n", updates.size() - visibleUpdates.size());
+
+}
+
ReplayWidget::ReplayWidget(const QString &filename_)
: currentFrame(0)
, currentIteration(0)
@@ -138,7 +155,6 @@ ReplayWidget::ReplayWidget(const QString &filename_)
setWindowTitle(filename);
QFile file(filename);
- QRect bounds;
if (!file.open(QIODevice::ReadOnly)) {
printf("Failed to load input file '%s'\n", qPrintable(filename_));
return;
diff --git a/tools/qvfb/translations/translations.pro b/tools/qvfb/translations/translations.pro
index ef42063..b0b1af4 100644
--- a/tools/qvfb/translations/translations.pro
+++ b/tools/qvfb/translations/translations.pro
@@ -28,6 +28,7 @@ SOURCES = ../qvfb.cpp \
TR_DIR = $$PWD/../../../translations
TRANSLATIONS = \
+ $$TR_DIR/qvfb_hu.ts \
$$TR_DIR/qvfb_pl.ts \
$$TR_DIR/qvfb_ru.ts \
$$TR_DIR/qvfb_zh_CN.ts \
diff --git a/tools/runonphone/main.cpp b/tools/runonphone/main.cpp
index c7fc43f..a77e713 100644
--- a/tools/runonphone/main.cpp
+++ b/tools/runonphone/main.cpp
@@ -72,7 +72,7 @@ int main(int argc, char *argv[])
QString serialPortFriendlyName;
QString sisFile;
QString exeFile;
- QString cmdLine;
+ QStringList cmdLine;
QStringList args = QCoreApplication::arguments();
QTextStream outstream(stdout);
QTextStream errstream(stderr);
@@ -124,7 +124,6 @@ int main(int argc, char *argv[])
i++;
for(;i<args.size();i++) {
cmdLine.append(args.at(i));
- if(i + 1 < args.size()) cmdLine.append(' ');
}
}
}
@@ -204,8 +203,8 @@ int main(int argc, char *argv[])
QObject::connect(launcher.data(), SIGNAL(applicationOutputReceived(const QString &)), &handler, SLOT(applicationOutputReceived(const QString &)));
QObject::connect(launcher.data(), SIGNAL(copyProgress(int)), &handler, SLOT(copyProgress(int)));
QObject::connect(launcher.data(), SIGNAL(stateChanged(int)), &handler, SLOT(stateChanged(int)));
- QObject::connect(launcher.data(), SIGNAL(stopped(uint,uint,uint,QString)), &handler, SLOT(stopped(uint,uint,uint,QString)));
- QObject::connect(&handler, SIGNAL(resume(uint,uint)), launcher.data(), SLOT(resume(uint,uint)));
+ QObject::connect(launcher.data(), SIGNAL(processStopped(uint,uint,uint,QString)), &handler, SLOT(stopped(uint,uint,uint,QString)));
+ QObject::connect(&handler, SIGNAL(resume(uint,uint)), launcher.data(), SLOT(resumeProcess(uint,uint)));
QObject::connect(&handler, SIGNAL(terminate()), launcher.data(), SLOT(terminate()));
QObject::connect(launcher.data(), SIGNAL(finished()), &handler, SLOT(finished()));
diff --git a/tools/runonphone/runonphone.pro b/tools/runonphone/runonphone.pro
index cb27d1b..2c1be98 100644
--- a/tools/runonphone/runonphone.pro
+++ b/tools/runonphone/runonphone.pro
@@ -18,7 +18,7 @@ windows {
-luuid \
-ladvapi32
}
-unix:!symbian {
+else:unix:!symbian {
SOURCES += serenum_unix.cpp
}
else {
diff --git a/tools/runonphone/trk/launcher.cpp b/tools/runonphone/trk/launcher.cpp
index 8f150c6..1796fc5 100644
--- a/tools/runonphone/trk/launcher.cpp
+++ b/tools/runonphone/trk/launcher.cpp
@@ -76,7 +76,7 @@ struct LauncherPrivate {
CopyState m_copyState;
QString m_fileName;
- QString m_commandLineArgs;
+ QStringList m_commandLineArgs;
QString m_installFileName;
int m_verbose;
Launcher::Actions m_startupActions;
@@ -159,7 +159,7 @@ void Launcher::setInstallFileName(const QString &name)
d->m_installFileName = name;
}
-void Launcher::setCommandLineArgs(const QString &args)
+void Launcher::setCommandLineArgs(const QStringList &args)
{
d->m_commandLineArgs = args;
}
@@ -189,8 +189,10 @@ bool Launcher::startServer(QString *errorMessage)
{
errorMessage->clear();
if (d->m_verbose) {
- const QString msg = QString::fromLatin1("Port=%1 Executable=%2 Package=%3 Remote Package=%4 Install file=%5")
- .arg(d->m_trkServerName, d->m_fileName, d->m_copyState.sourceFileName, d->m_copyState.destinationFileName, d->m_installFileName);
+ const QString msg = QString::fromLatin1("Port=%1 Executable=%2 Arguments=%3 Package=%4 Remote Package=%5 Install file=%6")
+ .arg(d->m_trkServerName, d->m_fileName,
+ d->m_commandLineArgs.join(QString(QLatin1Char(' '))),
+ d->m_copyState.sourceFileName, d->m_copyState.destinationFileName, d->m_installFileName);
logMessage(msg);
}
if (d->m_startupActions & ActionCopy) {
@@ -296,6 +298,34 @@ void Launcher::handleRemoteProcessKilled(const TrkResult &result)
disconnectTrk();
}
+QString Launcher::msgStopped(uint pid, uint tid, uint address, const QString &why)
+{
+ return QString::fromLatin1("Process %1, thread %2 stopped at 0x%3: %4").
+ arg(pid).arg(tid).arg(address, 0, 16).
+ arg(why.isEmpty() ? QString::fromLatin1("<Unknown reason>") : why);
+}
+
+bool Launcher::parseNotifyStopped(const QByteArray &dataBA,
+ uint *pid, uint *tid, uint *address,
+ QString *why /* = 0 */)
+{
+ if (why)
+ why->clear();
+ *address = *pid = *tid = 0;
+ if (dataBA.size() < 12)
+ return false;
+ const char *data = dataBA.data();
+ *address = extractInt(data);
+ *pid = extractInt(data + 4);
+ *tid = extractInt(data + 8);
+ if (why && dataBA.size() >= 14) {
+ const unsigned short len = extractShort(data + 12);
+ if (len > 0)
+ *why = QString::fromLatin1(data + 14, len);
+ }
+ return true;
+}
+
void Launcher::handleResult(const TrkResult &result)
{
QByteArray prefix = "READ BUF: ";
@@ -315,25 +345,13 @@ void Launcher::handleResult(const TrkResult &result)
break;
}
case TrkNotifyStopped: { // Notified Stopped
- logMessage(prefix + "NOTE: STOPPED " + str);
- // 90 01 78 6a 40 40 00 00 07 23 00 00 07 24 00 00
QString reason;
- if (result.data.size() >= 14) {
- uint pc = extractInt(result.data.mid(0,4).constData());
- uint pid = extractInt(result.data.mid(4,4).constData());
- uint tid = extractInt(result.data.mid(8,4).constData());
- ushort len = extractShort(result.data.mid(12,2).constData());
- if(len > 0)
- reason = result.data.mid(14, len);
- emit(stopped(pc, pid, tid, reason));
- } else {
- emit(stopped(0, 0, 0, reason));
- }
- //const char *data = result.data.data();
-// uint addr = extractInt(data); //code address: 4 bytes; code base address for the library
-// uint pid = extractInt(data + 4); // ProcessID: 4 bytes;
-// uint tid = extractInt(data + 8); // ThreadID: 4 bytes
- //logMessage(prefix << " ADDR: " << addr << " PID: " << pid << " TID: " << tid);
+ uint pc;
+ uint pid;
+ uint tid;
+ parseNotifyStopped(result.data, &pid, &tid, &pc, &reason);
+ logMessage(prefix + msgStopped(pid, tid, pc, reason));
+ emit(processStopped(pc, pid, tid, reason));
d->m_device->sendTrkAck(result.token);
break;
}
@@ -681,31 +699,38 @@ void Launcher::handleInstallPackageFinished(const TrkResult &result)
}
}
-void Launcher::startInferiorIfNeeded()
+QByteArray Launcher::startProcessMessage(const QString &executable,
+ const QStringList &arguments)
{
- emit startingApplication();
- if (d->m_session.pid != 0) {
- logMessage("Process already 'started'");
- return;
- }
// It's not started yet
QByteArray ba;
appendShort(&ba, 0, TargetByteOrder); // create new process
appendByte(&ba, 0); // options - currently unused
+ if(arguments.isEmpty()) {
+ appendString(&ba, executable.toLocal8Bit(), TargetByteOrder);
+ return ba;
+ }
+ // Append full command line as one string (leading length information).
+ QByteArray commandLineBa;
+ commandLineBa.append(executable.toLocal8Bit());
+ commandLineBa.append('\0');
+ commandLineBa.append(arguments.join(QString(QLatin1Char(' '))).toLocal8Bit());
+ appendString(&ba, commandLineBa, TargetByteOrder);
+ return ba;
+}
- if(d->m_commandLineArgs.isEmpty()) {
- appendString(&ba, d->m_fileName.toLocal8Bit(), TargetByteOrder);
- } else {
- QByteArray ba2;
- ba2.append(d->m_fileName.toLocal8Bit());
- ba2.append('\0');
- ba2.append(d->m_commandLineArgs.toLocal8Bit());
- appendString(&ba, ba2, TargetByteOrder);
+void Launcher::startInferiorIfNeeded()
+{
+ emit startingApplication();
+ if (d->m_session.pid != 0) {
+ logMessage("Process already 'started'");
+ return;
}
- d->m_device->sendTrkMessage(TrkCreateItem, TrkCallback(this, &Launcher::handleCreateProcess), ba); // Create Item
+ d->m_device->sendTrkMessage(TrkCreateItem, TrkCallback(this, &Launcher::handleCreateProcess),
+ startProcessMessage(d->m_fileName, d->m_commandLineArgs)); // Create Item
}
-void Launcher::resume(uint pid, uint tid)
+void Launcher::resumeProcess(uint pid, uint tid)
{
QByteArray ba;
appendInt(&ba, pid, BigEndian);
diff --git a/tools/runonphone/trk/launcher.h b/tools/runonphone/trk/launcher.h
index 5dded53..8dc6ebe 100644
--- a/tools/runonphone/trk/launcher.h
+++ b/tools/runonphone/trk/launcher.h
@@ -95,7 +95,7 @@ public:
void setFileName(const QString &name);
void setCopyFileName(const QString &srcName, const QString &dstName);
void setInstallFileName(const QString &name);
- void setCommandLineArgs(const QString &args);
+ void setCommandLineArgs(const QStringList &args);
bool startServer(QString *errorMessage);
void setVerbose(int v);
void setSerialFrame(bool b);
@@ -109,6 +109,15 @@ public:
// becomes valid after successful execution of ActionPingOnly
QString deviceDescription(unsigned verbose = 0u) const;
+ static QByteArray startProcessMessage(const QString &executable,
+ const QStringList &arguments);
+ // Parse a TrkNotifyStopped message
+ static bool parseNotifyStopped(const QByteArray &a,
+ uint *pid, uint *tid, uint *address,
+ QString *why = 0);
+ // Helper message
+ static QString msgStopped(uint pid, uint tid, uint address, const QString &why);
+
signals:
void copyingStarted();
void canNotConnect(const QString &errorMessage);
@@ -125,11 +134,11 @@ signals:
void applicationOutputReceived(const QString &output);
void copyProgress(int percent);
void stateChanged(int);
- void stopped(uint pc, uint pid, uint tid, const QString& reason);
+ void processStopped(uint pc, uint pid, uint tid, const QString& reason);
public slots:
void terminate();
- void resume(uint pid, uint tid);
+ void resumeProcess(uint pid, uint tid);
private slots:
void handleResult(const trk::TrkResult &data);
diff --git a/tools/runonphone/trk/trkdevice.cpp b/tools/runonphone/trk/trkdevice.cpp
index 53f4490..fe3261b 100644
--- a/tools/runonphone/trk/trkdevice.cpp
+++ b/tools/runonphone/trk/trkdevice.cpp
@@ -99,6 +99,8 @@ QString winErrorMessage(unsigned long error)
#endif
+enum { verboseTrk = 0 };
+
namespace trk {
///////////////////////////////////////////////////////////////////////
@@ -128,6 +130,12 @@ TrkMessage::TrkMessage(byte c, byte t, TrkCallback cb) :
{
}
+QDebug operator<<(QDebug d, const TrkMessage &msg)
+{
+ return d << "Message: Code: " << msg.code
+ << " Token: " << msg.token << " " << msg.data.toHex();
+}
+
} // namespace trk
Q_DECLARE_METATYPE(trk::TrkMessage)
@@ -204,6 +212,8 @@ byte TrkWriteQueue::nextTrkWriteToken()
++m_trkWriteToken;
if (m_trkWriteToken == 0)
++m_trkWriteToken;
+ if (verboseTrk)
+ qDebug() << "Write token: " << m_trkWriteToken;
return m_trkWriteToken;
}
@@ -334,7 +344,8 @@ DeviceContext::DeviceContext() :
///////////////////////////////////////////////////////////////////////
-class WriterThread : public QThread {
+class WriterThread : public QThread
+{
Q_OBJECT
Q_DISABLE_COPY(WriterThread)
public:
@@ -400,15 +411,18 @@ int WriterThread::writePendingMessage()
m_waitMutex.unlock();
if (m_terminate)
return 1;
+
// Send off message
m_dataMutex.lock();
TrkMessage message;
const TrkWriteQueue::PendingMessageResult pr = m_queue.pendingMessage(&message);
m_dataMutex.unlock();
+
switch (pr) {
case TrkWriteQueue::NoMessage:
break;
case TrkWriteQueue::PendingMessage: {
+ //qDebug() << "Write pending message " << message;
// Untested: try to re-send a few times
bool success = false;
for (int r = 0; !success && (r < MaxAttempts); r++) {
@@ -428,6 +442,8 @@ int WriterThread::writePendingMessage()
break;
case TrkWriteQueue::NoopMessageDequeued:
// Sync with thread that owns us via a blocking signal
+ if (verboseTrk)
+ qDebug() << "Noop message dequeued" << message;
emit internalNoopMessageDequeued(message);
break;
} // switch
@@ -499,6 +515,8 @@ static inline bool overlappedSyncWrite(HANDLE file,
bool WriterThread::write(const QByteArray &data, QString *errorMessage)
{
+ if (verboseTrk)
+ qDebug() << "Write raw data: " << data.toHex();
QMutexLocker locker(&m_context->mutex);
#ifdef Q_OS_WIN
DWORD charsWritten;
@@ -557,6 +575,7 @@ void WriterThread::slotHandleResult(const TrkResult &result)
tryWrite(); // Have messages been enqueued in-between?
}
+
///////////////////////////////////////////////////////////////////////
//
// ReaderThreadBase: Base class for a thread that reads data from
@@ -566,7 +585,8 @@ void WriterThread::slotHandleResult(const TrkResult &result)
//
///////////////////////////////////////////////////////////////////////
-class ReaderThreadBase : public QThread {
+class ReaderThreadBase : public QThread
+{
Q_OBJECT
Q_DISABLE_COPY(ReaderThreadBase)
public:
@@ -625,7 +645,8 @@ void ReaderThreadBase::readMessages()
//
///////////////////////////////////////////////////////////////////////
-class WinReaderThread : public ReaderThreadBase {
+class WinReaderThread : public ReaderThreadBase
+{
Q_OBJECT
Q_DISABLE_COPY(WinReaderThread)
public:
@@ -835,7 +856,8 @@ void UnixReaderThread::terminate()
{
// Trigger select() by writing to the pipe
char c = 0;
- write(m_terminatePipeFileDescriptors[1], &c, 1);
+ int written = write(m_terminatePipeFileDescriptors[1], &c, 1);
+ // FIXME: Use result.
wait();
}
@@ -1021,6 +1043,8 @@ void TrkDevice::setVerbose(int b)
void TrkDevice::slotMessageReceived(const trk::TrkResult &result, const QByteArray &rawData)
{
d->writerThread->slotHandleResult(result);
+ if (d->verbose > 1)
+ qDebug() << "Received: " << result.toString();
emit messageReceived(result);
if (!rawData.isEmpty())
emit rawDataReceived(rawData);
@@ -1057,6 +1081,8 @@ bool TrkDevice::sendTrkAck(byte token)
TrkMessage msg(0x80, token);
msg.token = token;
msg.data.append('\0');
+ if (verboseTrk)
+ qDebug() << "Write synchroneous message: " << msg;
return d->writerThread->trkWriteRawMessage(msg);
// 01 90 00 07 7e 80 01 00 7d 5e 7e
}
diff --git a/tools/runonphone/trk/trkutils.h b/tools/runonphone/trk/trkutils.h
index c636ac0..328dd2b 100644
--- a/tools/runonphone/trk/trkutils.h
+++ b/tools/runonphone/trk/trkutils.h
@@ -119,7 +119,8 @@ struct Library
uint dataseg;
};
-struct TrkAppVersion {
+struct TrkAppVersion
+{
TrkAppVersion();
void reset();
@@ -153,6 +154,10 @@ struct Session
typedef QList<Library> Libraries;
Libraries libraries;
+ typedef uint Thread;
+ typedef QList<Thread> Threads;
+ Threads threads;
+
// Gdb request
uint currentThread;
QStringList modules;
diff --git a/tools/shared/findwidget/abstractfindwidget.h b/tools/shared/findwidget/abstractfindwidget.h
index 6cc7c94..089947d 100644
--- a/tools/shared/findwidget/abstractfindwidget.h
+++ b/tools/shared/findwidget/abstractfindwidget.h
@@ -70,7 +70,7 @@ public:
};
Q_DECLARE_FLAGS(FindFlags, FindFlag)
- AbstractFindWidget(FindFlags flags = FindFlags(), QWidget *parent = 0);
+ explicit AbstractFindWidget(FindFlags flags = FindFlags(), QWidget *parent = 0);
virtual ~AbstractFindWidget();
bool eventFilter(QObject *object, QEvent *e);
diff --git a/tools/shared/findwidget/itemviewfindwidget.h b/tools/shared/findwidget/itemviewfindwidget.h
index 9d63d62..2d06df8 100644
--- a/tools/shared/findwidget/itemviewfindwidget.h
+++ b/tools/shared/findwidget/itemviewfindwidget.h
@@ -55,7 +55,7 @@ class ItemViewFindWidget : public AbstractFindWidget
Q_OBJECT
public:
- ItemViewFindWidget(FindFlags flags = FindFlags(), QWidget *parent = 0);
+ explicit ItemViewFindWidget(FindFlags flags = FindFlags(), QWidget *parent = 0);
QAbstractItemView *itemView() const
{ return m_itemView; }
diff --git a/tools/shared/findwidget/texteditfindwidget.h b/tools/shared/findwidget/texteditfindwidget.h
index 3034a42..a051f0e 100644
--- a/tools/shared/findwidget/texteditfindwidget.h
+++ b/tools/shared/findwidget/texteditfindwidget.h
@@ -53,7 +53,7 @@ class TextEditFindWidget : public AbstractFindWidget
Q_OBJECT
public:
- TextEditFindWidget(FindFlags flags = FindFlags(), QWidget *parent = 0);
+ explicit TextEditFindWidget(FindFlags flags = FindFlags(), QWidget *parent = 0);
QTextEdit *textEdit() const
{ return m_textEdit; }
diff --git a/tools/shared/fontpanel/fontpanel.cpp b/tools/shared/fontpanel/fontpanel.cpp
index 063c98a..fe221fd 100644
--- a/tools/shared/fontpanel/fontpanel.cpp
+++ b/tools/shared/fontpanel/fontpanel.cpp
@@ -221,7 +221,7 @@ void FontPanel::updateFamily(const QString &family)
const QString normalStyle = QLatin1String("Normal");
if (hasStyles) {
- foreach (QString style, styles) {
+ foreach (const QString &style, styles) {
// try to maintain selection or select 'normal' preferably
const int newIndex = m_styleComboBox->count();
m_styleComboBox->addItem(style);
diff --git a/tools/shared/qtgradienteditor/qtgradientutils.cpp b/tools/shared/qtgradienteditor/qtgradientutils.cpp
index 9fa0324..083ba89 100644
--- a/tools/shared/qtgradienteditor/qtgradientutils.cpp
+++ b/tools/shared/qtgradienteditor/qtgradientutils.cpp
@@ -395,7 +395,7 @@ static QStringList styleSheetParameters(const QGradient &gradient)
static QStringList styleSheetStops(const QGradient &gradient)
{
QStringList result;
- foreach (QGradientStop stop, gradient.stops()) {
+ foreach (const QGradientStop &stop, gradient.stops()) {
const QColor color = stop.second;
const QString stopDescription = QLatin1String("stop:") + QString::number(stop.first) + QLatin1String(" rgba(")
diff --git a/tools/shared/qttoolbardialog/qttoolbardialog.h b/tools/shared/qttoolbardialog/qttoolbardialog.h
index a1c099a..e182368 100644
--- a/tools/shared/qttoolbardialog/qttoolbardialog.h
+++ b/tools/shared/qttoolbardialog/qttoolbardialog.h
@@ -68,7 +68,7 @@ class QtToolBarManager : public QObject
Q_OBJECT
public:
- QtToolBarManager(QObject *parent = 0);
+ explicit QtToolBarManager(QObject *parent = 0);
~QtToolBarManager();
void setMainWindow(QMainWindow *mainWindow);
@@ -100,7 +100,7 @@ class QtToolBarDialog : public QDialog
Q_OBJECT
public:
- QtToolBarDialog(QWidget *parent = 0, Qt::WindowFlags flags = 0);
+ explicit QtToolBarDialog(QWidget *parent = 0, Qt::WindowFlags flags = 0);
~QtToolBarDialog();
void setToolBarManager(QtToolBarManager *toolBarManager);
diff --git a/translations/assistant_cs.ts b/translations/assistant_cs.ts
new file mode 100644
index 0000000..2156187
--- /dev/null
+++ b/translations/assistant_cs.ts
@@ -0,0 +1,1074 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="cs_CZ">
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+110"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Zavřít</translation>
+ </message>
+</context>
+<context>
+ <name>AboutLabel</name>
+ <message>
+ <location line="-14"/>
+ <source>Warning</source>
+ <translation>Varování</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Unable to launch external application.
+</source>
+ <translation>Chyba při spouštění vnější aplikace.
+</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+</context>
+<context>
+ <name>BookmarkDialog</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui"/>
+ <source>Add Bookmark</source>
+ <translation>Přidat záložku</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Bookmark:</source>
+ <translation>Záložka:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Add in Folder:</source>
+ <translation>Zřídit ve složce:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>New Folder</source>
+ <translation>Nová složka</translation>
+ </message>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+184"/>
+ <location line="+18"/>
+ <location line="+39"/>
+ <location line="+18"/>
+ <location line="+30"/>
+ <source>Bookmarks</source>
+ <translation>Záložky</translation>
+ </message>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui"/>
+ <source>+</source>
+ <translation>+</translation>
+ </message>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="-61"/>
+ <source>Delete Folder</source>
+ <translation>Smazat složku</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Rename Folder</source>
+ <translation>Přejmenovat složku</translation>
+ </message>
+</context>
+<context>
+ <name>BookmarkManager</name>
+ <message>
+ <location line="+434"/>
+ <source>Bookmarks</source>
+ <translation>Záložky</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>Remove</source>
+ <translation>Odstranit</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>You are going to delete a Folder, this will also&lt;br&gt;remove it&apos;s content. Are you sure to continue?</source>
+ <translation>Když smažete tuto složku, bude smazán i &lt;br&gt;celý její obsah. Opravdu chcete pokračovat?</translation>
+ </message>
+ <message>
+ <location line="+143"/>
+ <location line="+9"/>
+ <source>New Folder</source>
+ <translation>Nová složka</translation>
+ </message>
+</context>
+<context>
+ <name>BookmarkWidget</name>
+ <message>
+ <location line="-416"/>
+ <source>Filter:</source>
+ <translation>Filtr:</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>Remove</source>
+ <translation>Odstranit</translation>
+ </message>
+ <message>
+ <location line="-79"/>
+ <source>Delete Folder</source>
+ <translation>Smazat složku</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Rename Folder</source>
+ <translation>Přejmenovat složku</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Show Bookmark</source>
+ <translation>Ukázat záložku</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Show Bookmark in New Tab</source>
+ <translation>Ukázat záložku v nové kartě</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Delete Bookmark</source>
+ <translation>Smazat záložku</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Rename Bookmark</source>
+ <translation>Přejmenovat záložku</translation>
+ </message>
+ <message>
+ <location line="+62"/>
+ <source>Add</source>
+ <translation>Přidat</translation>
+ </message>
+</context>
+<context>
+ <name>CentralWidget</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+238"/>
+ <source>Add new page</source>
+ <translation>Přidat novou stranu</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Close current page</source>
+ <translation>Zavřít současnou stranu</translation>
+ </message>
+ <message>
+ <location line="+312"/>
+ <source>Print Document</source>
+ <translation>Vytisknout dokument</translation>
+ </message>
+ <message>
+ <location line="+148"/>
+ <location line="+2"/>
+ <source>unknown</source>
+ <translation>Neznámý</translation>
+ </message>
+ <message>
+ <location line="+93"/>
+ <source>Add New Page</source>
+ <translation>Přidat novou stranu</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Close This Page</source>
+ <translation>Zavřít tuto stranu</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Close Other Pages</source>
+ <translation>Zavřít jiné strany</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Add Bookmark for this Page...</source>
+ <translation>Přidat záložku pro tuto stranu...</translation>
+ </message>
+ <message>
+ <location line="+255"/>
+ <source>Search</source>
+ <translation>Hledat</translation>
+ </message>
+</context>
+<context>
+ <name>ContentWindow</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+158"/>
+ <source>Open Link</source>
+ <translation>Otevřít adresu odkazu</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Open Link in New Tab</source>
+ <translation>Otevřít odkaz v nové kartě</translation>
+ </message>
+</context>
+<context>
+ <name>FilterNameDialogClass</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/filternamedialog.ui"/>
+ <source>Add Filter Name</source>
+ <translation>Přidat název filtru</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Filter Name:</source>
+ <translation>Název filtru:</translation>
+ </message>
+</context>
+<context>
+ <name>FindWidget</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-955"/>
+ <source>Previous</source>
+ <translation>Předchozí</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Next</source>
+ <translation>Další</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Case Sensitive</source>
+ <translation>Rozlišující velká a malá písmena</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Whole words</source>
+ <translation>Celá slova</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>&lt;img src=&quot;:/trolltech/assistant/images/wrap.png&quot;&gt;&amp;nbsp;Search wrapped</source>
+ <translation>&lt;img src=&quot;:/trolltech/assistant/images/wrap.png&quot;&gt;&amp;nbsp;Konec strany</translation>
+ </message>
+</context>
+<context>
+ <name>FontPanel</name>
+ <message>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
+ <source>Font</source>
+ <translation>Písmo</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>&amp;Writing system</source>
+ <translation>Způsob &amp;psaní</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Family</source>
+ <translation>&amp;Písmová rodina</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&amp;Style</source>
+ <translation>&amp;Styl</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&amp;Point size</source>
+ <translation>&amp;Bodová velikost</translation>
+ </message>
+</context>
+<context>
+ <name>HelpViewer</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+492"/>
+ <source>Help</source>
+ <translation>Nápověda</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location line="-62"/>
+ <source>&lt;title&gt;Error 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;The page could not be found&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</source>
+ <translation>&lt;title&gt;Chyba 404 ...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;Stranu se nepodařilo najít.&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</translation>
+ </message>
+ <message>
+ <location line="+125"/>
+ <source>Copy &amp;Link Location</source>
+ <translation>&amp;Kopírovat adresu odkazu</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Open Link in New Tab Ctrl+LMB</source>
+ <translation>Otevřít odkaz v nové kartě Ctrl+LMB</translation>
+ </message>
+ <message>
+ <location line="-275"/>
+ <source>Open Link in New Tab</source>
+ <translation>Otevřít odkaz v nové kartě</translation>
+ </message>
+ <message>
+ <location line="+209"/>
+ <source>Unable to launch external application.
+</source>
+ <translation>Chyba při spouštění vnější aplikace.
+</translation>
+ </message>
+</context>
+<context>
+ <name>IndexWindow</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+66"/>
+ <source>&amp;Look for:</source>
+ <translation>&amp;Hledat:</translation>
+ </message>
+ <message>
+ <location line="+68"/>
+ <source>Open Link</source>
+ <translation>Otevřít adresu odkazu</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Open Link in New Tab</source>
+ <translation>Otevřít odkaz v nové kartě</translation>
+ </message>
+</context>
+<context>
+ <name>InstallDialog</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
+ <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+76"/>
+ <source>Install Documentation</source>
+ <translation>Nainstalovat dokumentaci</translation>
+ </message>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+30"/>
+ <source>Downloading documentation info...</source>
+ <translation>Stahuje se informace o dokumentaci...</translation>
+ </message>
+ <message>
+ <location line="+48"/>
+ <source>Download canceled.</source>
+ <translation>Stahování bylo zrušeno.</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <location line="+78"/>
+ <location line="+27"/>
+ <source>Done.</source>
+ <translation>Hotovo.</translation>
+ </message>
+ <message>
+ <location line="-90"/>
+ <source>The file %1 already exists. Do you want to overwrite it?</source>
+ <translation>Soubor %1 již existuje. Chcete jej přepsat?</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Unable to save the file %1: %2.</source>
+ <translation>Soubor %1 nelze uložit: %2.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Downloading %1...</source>
+ <translation>Stahuje se %1...</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <location line="+42"/>
+ <location line="+38"/>
+ <source>Download failed: %1.</source>
+ <translation>Stažení se nezdařilo: %1.</translation>
+ </message>
+ <message>
+ <location line="-70"/>
+ <source>Documentation info file is corrupt!</source>
+ <translation>Soubor s informací o dokumentaci je poškozen!</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>Download failed: Downloaded file is corrupted.</source>
+ <translation>Stažení se nezdařilo: Stažený soubor je pravděpodobně poškozen.</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Installing documentation %1...</source>
+ <translation>Instaluje dokumentace %1...</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Error while installing documentation:
+%1</source>
+ <translation>Chyba při instalaci dokumentace:
+%1</translation>
+ </message>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
+ <source>Available Documentation:</source>
+ <translation>Dostupná dokumentace:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Install</source>
+ <translation>Instalovat</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Cancel</source>
+ <translation>Zrušit</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Close</source>
+ <translation>Zavřít</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Installation Path:</source>
+ <translation>Cesta pro instalaci:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+110"/>
+ <location line="+391"/>
+ <source>Index</source>
+ <translation>Rejstřík</translation>
+ </message>
+ <message>
+ <location line="-385"/>
+ <location line="+383"/>
+ <source>Contents</source>
+ <translation>Obsah</translation>
+ </message>
+ <message>
+ <location line="-378"/>
+ <location line="+382"/>
+ <source>Bookmarks</source>
+ <translation>Záložky</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Search</source>
+ <translation>Hledat</translation>
+ </message>
+ <message>
+ <location line="-372"/>
+ <location line="+215"/>
+ <location line="+512"/>
+ <source>Qt Assistant</source>
+ <translation>Qt Assistant</translation>
+ </message>
+ <message>
+ <location line="-544"/>
+ <location line="+5"/>
+ <source>Unfiltered</source>
+ <translation>Bez filtru</translation>
+ </message>
+ <message>
+ <location line="+107"/>
+ <source>Page Set&amp;up...</source>
+ <translation>&amp;Nastavení strany...</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Print Preview...</source>
+ <translation>Náhled tisku...</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Print...</source>
+ <translation>&amp;Tisk...</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>New &amp;Tab</source>
+ <translation>Nová &amp;karta</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Close Tab</source>
+ <translation>&amp;Zavřít kartu</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&amp;Quit</source>
+ <translation>&amp;Ukončit</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Copy selected Text</source>
+ <translation>&amp;Kopírovat vybraný text</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>&amp;Find in Text...</source>
+ <translation>&amp;Najít v textu...</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Find &amp;Next</source>
+ <translation>Hledat &amp;dál</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Find &amp;Previous</source>
+ <translation>Najít &amp;předchozí</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Preferences...</source>
+ <translation>Nastavení...</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Zoom &amp;in</source>
+ <translation>&amp;Zvětšit</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Zoom &amp;out</source>
+ <translation>&amp;Zmenšit</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Normal &amp;Size</source>
+ <translation>Obvyklá &amp;velikost</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Ctrl+0</source>
+ <translation>Ctrl+0</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>ALT+C</source>
+ <translation>ALT+C</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>ALT+I</source>
+ <translation>ALT+I</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>ALT+S</source>
+ <translation>ALT+S</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Home</source>
+ <translation>&amp;Začáteční strana</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&amp;Back</source>
+ <translation>&amp;Zpět</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Forward</source>
+ <translation>&amp;Dopředu</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Sync with Table of Contents</source>
+ <translation>Seřídit stranu s kartou obsahu</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Next Page</source>
+ <translation>Další strana</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Ctrl+Alt+Right</source>
+ <translation>Ctrl+Alt+Right</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Previous Page</source>
+ <translation>Předchozí strana</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Ctrl+Alt+Left</source>
+ <translation>Ctrl+Alt+Left</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Add Bookmark...</source>
+ <translation>Přidat záložku...</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>About...</source>
+ <translation>O...</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Navigation Toolbar</source>
+ <translation>Navigační pruh</translation>
+ </message>
+ <message>
+ <location line="+76"/>
+ <source>Toolbars</source>
+ <translation>Nástrojové pruhy</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Filter Toolbar</source>
+ <translation>Filtrovací pruh</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Filtered by:</source>
+ <translation>Filtr:</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Address Toolbar</source>
+ <translation>Adresní pruh</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Address:</source>
+ <translation>Adresa:</translation>
+ </message>
+ <message>
+ <location line="+114"/>
+ <source>Could not find the associated content item.</source>
+ <translation>Nepodařilo se najít příslušnou položku obsahu.</translation>
+ </message>
+ <message>
+ <location line="+71"/>
+ <source>About %1</source>
+ <translation>O %1</translation>
+ </message>
+ <message>
+ <location line="+114"/>
+ <source>Updating search index</source>
+ <translation>Sestavuje se rejstřík hledání</translation>
+ </message>
+ <message>
+ <location line="-638"/>
+ <source>Looking for Qt Documentation...</source>
+ <translation>Hledá se dokumentace ke Qt...</translation>
+ </message>
+ <message>
+ <location line="+241"/>
+ <source>&amp;Window</source>
+ <translation>&amp;Okno</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Minimize</source>
+ <translation>Zmenšit</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Ctrl+M</source>
+ <translation>Ctrl+M</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>Zoom</source>
+ <translation>Zvětšení</translation>
+ </message>
+ <message>
+ <location line="-159"/>
+ <source>&amp;File</source>
+ <translation>&amp;Soubor</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>&amp;Edit</source>
+ <translation>&amp;Úpravy</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>&amp;View</source>
+ <translation>&amp;Pohled</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>&amp;Go</source>
+ <translation>&amp;Jít na</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>ALT+Home</source>
+ <translation>ALT+Home</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>&amp;Bookmarks</source>
+ <translation>&amp;Záložky</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Nápověda</translation>
+ </message>
+ <message>
+ <location line="-40"/>
+ <source>ALT+O</source>
+ <translation>ALT+O</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>CTRL+D</source>
+ <translation>CTRL+D</translation>
+ </message>
+</context>
+<context>
+ <name>PreferencesDialog</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+259"/>
+ <location line="+43"/>
+ <source>Add Documentation</source>
+ <translation>Přidat dokumentaci</translation>
+ </message>
+ <message>
+ <location line="-43"/>
+ <source>Qt Compressed Help Files (*.qch)</source>
+ <translation>Stlačené soubory s nápovědoun (*.qch)</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>The specified file is not a valid Qt Help File!</source>
+ <translation>Zadaný soubor není platným souborem nápovědy ke Qt.</translation>
+ </message>
+ <message>
+ <location line="-8"/>
+ <source>The namespace %1 is already registered!</source>
+ <translation>Jmenný prostor %1 je již zaznamenám!</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Remove Documentation</source>
+ <translation>Odstranit dokumentaci</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents.</source>
+ <translation>Některé v současnosti otevřené dokumenty pocházejí z dokumentace, kterou se právě pokoušíte odstranit. Při odstraňování budou zavřeny.</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Cancel</source>
+ <translation>Zrušit</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location line="+88"/>
+ <source>Use custom settings</source>
+ <translation>Použít nastavení stanovená uživatelem</translation>
+ </message>
+</context>
+<context>
+ <name>PreferencesDialogClass</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui"/>
+ <source>Preferences</source>
+ <translation>Nastavení</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Fonts</source>
+ <translation>Písma</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Font settings:</source>
+ <translation>Nastavení písem:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Browser</source>
+ <translation>Prohlížeč</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Application</source>
+ <translation>Program</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Filters</source>
+ <translation>Filtr</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Filter:</source>
+ <translation>Filtr:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Attributes:</source>
+ <translation>Vlastnosti:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Add</source>
+ <translation>Přidat</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Remove</source>
+ <translation>Odstranit</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Documentation</source>
+ <translation>Dokumentace</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Registered Documentation:</source>
+ <translation>Zaznamenaná dokumentace:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Add...</source>
+ <translation>Přidat...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Options</source>
+ <translation>Volby</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Current Page</source>
+ <translation>Nynější strana</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Restore to default</source>
+ <translation>Obnovit výchozí nastavení</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Homepage</source>
+ <translation>Začáteční stránka</translation>
+ </message>
+ <message>
+ <location/>
+ <source>On help start:</source>
+ <translation>Na začátek nápovědy:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Show my home page</source>
+ <translation>Ukázat moji domovskou stránku</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Show a blank page</source>
+ <translation>Ukázat prázdnou stránku</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Show my tabs from last session</source>
+ <translation>Ukázat mé karty z posledního sezení</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Blank Page</source>
+ <translation>Prázdná strana</translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+112"/>
+ <source>The specified collection file does not exist!</source>
+ <translation>Zadaný sbírkový soubor nelze najít!</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Missing collection file!</source>
+ <translation>Chybějící sbírkový soubor!</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Invalid URL!</source>
+ <translation>Neplatné URL!</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Missing URL!</source>
+ <translation>Chybějící URL!</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <location line="+19"/>
+ <location line="+19"/>
+ <source>Unknown widget: %1</source>
+ <translation>Neznámý prvek: %1</translation>
+ </message>
+ <message>
+ <location line="-34"/>
+ <location line="+19"/>
+ <location line="+19"/>
+ <source>Missing widget!</source>
+ <translation>Chybějící prvek!</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <location line="+12"/>
+ <source>The specified Qt help file does not exist!</source>
+ <translation>Zadaný soubor s nápovědou ke Qt nelze najít!</translation>
+ </message>
+ <message>
+ <location line="-7"/>
+ <location line="+12"/>
+ <source>Missing help file!</source>
+ <translation>Chybějící soubor s nápovědou!</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Missing filter argument!</source>
+ <translation>Chybějící argument pro filtr!</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Unknown option: %1</source>
+ <translation>Neznámá volba: %1</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <location line="+2"/>
+ <source>Qt Assistant</source>
+ <translation>Qt Assistant</translation>
+ </message>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/main.cpp" line="+217"/>
+ <source>Could not register documentation file
+%1
+
+Reason:
+%2</source>
+ <translation>Soubor s dokumentací %1 nelze zaznamenat
+
+Důvod:
+%2</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Documentation successfully registered.</source>
+ <translation>Dokumentace byla úspěšně zaznamenána.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Could not unregister documentation file
+%1
+
+Reason:
+%2</source>
+ <translation>Zaznamenání souboru s dokumentací %1 nelze zrušit
+
+Grund:
+%2</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>Documentation successfully unregistered.</source>
+ <translation>Dokumentace byla úspěšně odstraněna.</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>Cannot load sqlite database driver!</source>
+ <translation>Databázový ovladač pro SQLite nelze nahrát!</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>The specified collection file could not be read!</source>
+ <translation>Zadaný sbírkový soubor nelze přečíst!</translation>
+ </message>
+</context>
+<context>
+ <name>RemoteControl</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+163"/>
+ <source>Debugging Remote Control</source>
+ <translation>Ladí se dálkové ovládání</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Received Command: %1 %2</source>
+ <translation>Přijatý příkaz: %1 : %2</translation>
+ </message>
+</context>
+<context>
+ <name>SearchWidget</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+195"/>
+ <source>&amp;Copy</source>
+ <translation>&amp;Kopírovat</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Copy &amp;Link Location</source>
+ <translation>&amp;Kopírovat adresu odkazu</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Open Link in New Tab</source>
+ <translation>Otevřít odkaz v nové kartě</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Select All</source>
+ <translation>Vybrat vše</translation>
+ </message>
+</context>
+<context>
+ <name>TopicChooser</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+54"/>
+ <source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;:</source>
+ <translation>Vyberte námět pro &lt;b&gt;%1&lt;/b&gt;:</translation>
+ </message>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/topicchooser.ui"/>
+ <source>Choose Topic</source>
+ <translation>Vybrat námět</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Topics</source>
+ <translation>&amp;Náměty</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Display</source>
+ <translation>&amp;Zobrazit</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Close</source>
+ <translation>&amp;Zavřít</translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/assistant_hu.ts b/translations/assistant_hu.ts
new file mode 100644
index 0000000..e43070c
--- /dev/null
+++ b/translations/assistant_hu.ts
@@ -0,0 +1,1083 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="hu">
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+110"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Bezárás</translation>
+ </message>
+</context>
+<context>
+ <name>AboutLabel</name>
+ <message>
+ <location line="-14"/>
+ <source>Warning</source>
+ <translation>Figyelmeztetés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Unable to launch external application.
+</source>
+ <translation>Nem lehet külső alkalmazást elindítani.</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+</context>
+<context>
+ <name>BookmarkDialog</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui"/>
+ <source>Add Bookmark</source>
+ <translation>Könyvjelző hozzáadása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Bookmark:</source>
+ <translation>Könyvjelző:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Add in Folder:</source>
+ <translation>Hozzáadás dossziéban:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>New Folder</source>
+ <translation>Új dosszié</translation>
+ </message>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+184"/>
+ <location line="+18"/>
+ <location line="+39"/>
+ <location line="+18"/>
+ <location line="+30"/>
+ <source>Bookmarks</source>
+ <translation>Könyvjelzők</translation>
+ </message>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui"/>
+ <source>+</source>
+ <translation>+</translation>
+ </message>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="-61"/>
+ <source>Delete Folder</source>
+ <translation>Dosszié törlése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Rename Folder</source>
+ <translation>Dosszié átnevezése</translation>
+ </message>
+</context>
+<context>
+ <name>BookmarkManager</name>
+ <message>
+ <location line="+435"/>
+ <source>Bookmarks</source>
+ <translation>Könyvjelzők</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>Remove</source>
+ <translation>Áthelyezés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>You are going to delete a Folder, this will also&lt;br&gt;remove it&apos;s content. Are you sure to continue?</source>
+ <translation>Egy olyan dossziét fog törölni, ami &lt;br&gt; törli annak tartalmát is. Biztos benne, hogy folytatja?</translation>
+ </message>
+ <message>
+ <location line="+143"/>
+ <location line="+9"/>
+ <source>New Folder</source>
+ <translation>Új Dosszié</translation>
+ </message>
+</context>
+<context>
+ <name>BookmarkWidget</name>
+ <message>
+ <location line="-417"/>
+ <source>Filter:</source>
+ <translation>Szűrő:</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>Remove</source>
+ <translation>Eltávolítás</translation>
+ </message>
+ <message>
+ <location line="-79"/>
+ <source>Delete Folder</source>
+ <translation>Dosszié törlése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Rename Folder</source>
+ <translation>Dosszié átnevezése</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Show Bookmark</source>
+ <translation>Könyvjelző megjelenítése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Show Bookmark in New Tab</source>
+ <translation>Könyvjelző megjelenítése új lapon</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Delete Bookmark</source>
+ <translation>Könyvjelző törlése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Rename Bookmark</source>
+ <translation>Könyvjelző átnevezése</translation>
+ </message>
+ <message>
+ <location line="+62"/>
+ <source>Add</source>
+ <translation>Hozzáadás</translation>
+ </message>
+</context>
+<context>
+ <name>CentralWidget</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+239"/>
+ <source>Add new page</source>
+ <translation>Új lap hozzáadása</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Close current page</source>
+ <translation>Aktuális lap bezárása</translation>
+ </message>
+ <message>
+ <location line="+312"/>
+ <source>Print Document</source>
+ <translation>Dokumentum nyomtatása</translation>
+ </message>
+ <message>
+ <location line="+130"/>
+ <location line="+2"/>
+ <source>unknown</source>
+ <translation>ismeretlen</translation>
+ </message>
+ <message>
+ <location line="+93"/>
+ <source>Add New Page</source>
+ <translation>Új lap hozzáadása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Close This Page</source>
+ <translation>Lap bezárása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Close Other Pages</source>
+ <translation>Többi lap bezárása</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Add Bookmark for this Page...</source>
+ <translation>Könyvjelző hozzáadása ehhez a laphoz...</translation>
+ </message>
+ <message>
+ <location line="+235"/>
+ <source>Search</source>
+ <translation>Keresés</translation>
+ </message>
+</context>
+<context>
+ <name>ContentWindow</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+158"/>
+ <source>Open Link</source>
+ <translation>Link megnyitása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Open Link in New Tab</source>
+ <translation>Link megnyitása új lapon</translation>
+ </message>
+</context>
+<context>
+ <name>FilterNameDialogClass</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/filternamedialog.ui"/>
+ <source>Add Filter Name</source>
+ <translation>Szűrő név hozzáadása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Filter Name:</source>
+ <translation>Szűrő név:</translation>
+ </message>
+</context>
+<context>
+ <name>FindWidget</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-918"/>
+ <source>Previous</source>
+ <translation>Előző</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Next</source>
+ <translation>Következő</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Case Sensitive</source>
+ <translation>Kis és nagybetű érzékeny</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Whole words</source>
+ <translation>Egész szavakat</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>&lt;img src=&quot;:/trolltech/assistant/images/wrap.png&quot;&gt;&amp;nbsp;Search wrapped</source>
+ <translation>&lt;img src=&quot;:/trolltech/assistant/images/wrap.png&quot;&gt;&amp;nbsp;Keresés tördelése</translation>
+ </message>
+</context>
+<context>
+ <name>FontPanel</name>
+ <message>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
+ <source>Font</source>
+ <translation>Betű</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>&amp;Writing system</source>
+ <translation>Rendszer &amp;írása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Family</source>
+ <translation>&amp;Család</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&amp;Style</source>
+ <translation>&amp;Stílus</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&amp;Point size</source>
+ <translation>&amp;Pont méret</translation>
+ </message>
+</context>
+<context>
+ <name>HelpViewer</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+489"/>
+ <source>Help</source>
+ <translation>Segítség</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location line="-62"/>
+ <source>&lt;title&gt;Error 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;The page could not be found&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</source>
+ <translation>&lt;title&gt;404-es hiba...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;A lap nem található &lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</translation>
+ </message>
+ <message>
+ <location line="+125"/>
+ <source>Copy &amp;Link Location</source>
+ <translation>&amp;Link címének másolása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Open Link in New Tab Ctrl+LMB</source>
+ <translation>Link megnyitása új lapon Ctrl+LMB</translation>
+ </message>
+ <message>
+ <location line="-275"/>
+ <source>Open Link in New Tab</source>
+ <translation>Link megnyitása új lapon</translation>
+ </message>
+ <message>
+ <location line="+209"/>
+ <source>Unable to launch external application.
+</source>
+ <translation>Nem lehet külső alkalmazást indítani.</translation>
+ </message>
+</context>
+<context>
+ <name>IndexWindow</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+66"/>
+ <source>&amp;Look for:</source>
+ <translation>&amp;Keresés:</translation>
+ </message>
+ <message>
+ <location line="+68"/>
+ <source>Open Link</source>
+ <translation>Link megnyitása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Open Link in New Tab</source>
+ <translation>Link megnyitása új lapon</translation>
+ </message>
+</context>
+<context>
+ <name>InstallDialog</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
+ <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+76"/>
+ <source>Install Documentation</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+30"/>
+ <source>Downloading documentation info...</source>
+ <translation>Dokumentum információ letöltése...</translation>
+ </message>
+ <message>
+ <location line="+48"/>
+ <source>Download canceled.</source>
+ <translation>Letöltés vmegszakítva.</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <location line="+78"/>
+ <location line="+27"/>
+ <source>Done.</source>
+ <translation>Kész.</translation>
+ </message>
+ <message>
+ <location line="-90"/>
+ <source>The file %1 already exists. Do you want to overwrite it?</source>
+ <translation>A(z) %1 fájl már létezik. Felül szeretné írni?</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Unable to save the file %1: %2.</source>
+ <translation>Nem lehet elmenteni a(z) %1 fájlt: %2.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Downloading %1...</source>
+ <translation>%1 letöltése...</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <location line="+42"/>
+ <location line="+38"/>
+ <source>Download failed: %1.</source>
+ <translation>Nem sikerült a letöltés: %1.</translation>
+ </message>
+ <message>
+ <location line="-70"/>
+ <source>Documentation info file is corrupt!</source>
+ <translation>Dokumentum információ sérült!</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>Download failed: Downloaded file is corrupted.</source>
+ <translation>Nem sikerült letölteni: A letöltött fájl sérült.</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Installing documentation %1...</source>
+ <translation>%1 dokumentáció telepítése...</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Error while installing documentation:
+%1</source>
+ <translation>Hiba történt a dokumentáció telepítése közben: %1</translation>
+ </message>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
+ <source>Available Documentation:</source>
+ <translation>Elérhető dokumentáció:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Install</source>
+ <translation>Telepítés</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Cancel</source>
+ <translation>Mégse</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Close</source>
+ <translation>Bezárás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Installation Path:</source>
+ <translation>Telepítési útvonal:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+110"/>
+ <location line="+383"/>
+ <source>Index</source>
+ <translation>Index</translation>
+ </message>
+ <message>
+ <location line="-377"/>
+ <location line="+375"/>
+ <source>Contents</source>
+ <translation>Tartalom</translation>
+ </message>
+ <message>
+ <location line="-370"/>
+ <location line="+374"/>
+ <source>Bookmarks</source>
+ <translation>Könyvjelzők</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Search</source>
+ <translation>Keresés</translation>
+ </message>
+ <message>
+ <location line="-364"/>
+ <location line="+207"/>
+ <location line="+514"/>
+ <source>Qt Assistant</source>
+ <translation>Qt Assistant</translation>
+ </message>
+ <message>
+ <location line="-546"/>
+ <location line="+5"/>
+ <source>Unfiltered</source>
+ <translation>Szűrés nélküli</translation>
+ </message>
+ <message>
+ <location line="+107"/>
+ <source>Page Set&amp;up...</source>
+ <translation>Lap Beállí&amp;tás...</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Print Preview...</source>
+ <translation>Nyomtatási előnézet...</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Print...</source>
+ <translation>&amp;Nyomtatás...</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>New &amp;Tab</source>
+ <translation>Új &amp;Lap</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Close Tab</source>
+ <translation>Lap &amp;bezárása</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&amp;Quit</source>
+ <translation>&amp;Kilépés</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Copy selected Text</source>
+ <translation>Kiválasztott szöveg &amp;másolása</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>&amp;Find in Text...</source>
+ <translation>&amp;Keresés szövegben...</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&amp;Find</source>
+ <translation>&amp;Keresés</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Find &amp;Next</source>
+ <translation>&amp;Következő keresés</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Find &amp;Previous</source>
+ <translation>&amp;Előző keresés</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Preferences...</source>
+ <translation>Beállítások...</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Zoom &amp;in</source>
+ <translation>&amp;Nagyítás</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Zoom &amp;out</source>
+ <translation>&amp;Kicsinyítés</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Normal &amp;Size</source>
+ <translation>Normál &amp;méret</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Ctrl+0</source>
+ <translation>Ctrl + 0</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>ALT+C</source>
+ <translation>ALT + C</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>ALT+I</source>
+ <translation>ALT + l</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>ALT+S</source>
+ <translation>ALT + S</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Home</source>
+ <translation>&amp;Otthon</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&amp;Back</source>
+ <translation>&amp;Vissza</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Forward</source>
+ <translation>&amp;Előre</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Sync with Table of Contents</source>
+ <translation>Tartalomjegyzékkel való szinkronizálás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Sync</source>
+ <translation>Szinkronizálás</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Next Page</source>
+ <translation>Következő lap</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Ctrl+Alt+Right</source>
+ <translation>Ctrl+Alt+Right</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Previous Page</source>
+ <translation>Előző lap</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Ctrl+Alt+Left</source>
+ <translation>Ctrl+Alt+Left</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Add Bookmark...</source>
+ <translation>Könyvjelző hozzáadása...</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>About...</source>
+ <translation>Névjegy...</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Navigation Toolbar</source>
+ <translation>Navigációs eszköztár</translation>
+ </message>
+ <message>
+ <location line="+76"/>
+ <source>Toolbars</source>
+ <translation>Eszköztár</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Filter Toolbar</source>
+ <translation>Eszköztár szűrő</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Filtered by:</source>
+ <translation>Szűrési feltétel:</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Address Toolbar</source>
+ <translation>Eszköztár cím</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Address:</source>
+ <translation>Cím:</translation>
+ </message>
+ <message>
+ <location line="+114"/>
+ <source>Could not find the associated content item.</source>
+ <translation>Nem sikerült az összekapcsolt tartalom elemet megtalálni.</translation>
+ </message>
+ <message>
+ <location line="+71"/>
+ <source>About %1</source>
+ <translation>%1-ről</translation>
+ </message>
+ <message>
+ <location line="+114"/>
+ <source>Updating search index</source>
+ <translation>Keresési index frissítése</translation>
+ </message>
+ <message>
+ <location line="-640"/>
+ <source>Looking for Qt Documentation...</source>
+ <translation>Qt dokumentáció keresése...</translation>
+ </message>
+ <message>
+ <location line="+241"/>
+ <source>&amp;Window</source>
+ <translation>&amp;Ablak</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Minimize</source>
+ <translation>Minimalizálás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Ctrl+M</source>
+ <translation>Ctrl + M</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>Zoom</source>
+ <translation>Zoomolás</translation>
+ </message>
+ <message>
+ <location line="-159"/>
+ <source>&amp;File</source>
+ <translation>&amp;Fájl</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>&amp;Edit</source>
+ <translation>&amp;Szerkesztés</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>&amp;View</source>
+ <translation>&amp;Nézet</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>&amp;Go</source>
+ <translation>&amp;Gyerünk</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>ALT+Home</source>
+ <translation>ALT+Home</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>&amp;Bookmarks</source>
+ <translation>&amp;Könyvjelzők</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Segítség</translation>
+ </message>
+ <message>
+ <location line="-40"/>
+ <source>ALT+O</source>
+ <translation>ALT + 0</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>CTRL+D</source>
+ <translation>CTRL+D</translation>
+ </message>
+</context>
+<context>
+ <name>PreferencesDialog</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+259"/>
+ <location line="+43"/>
+ <source>Add Documentation</source>
+ <translation>Dokumentáció hozzáadása</translation>
+ </message>
+ <message>
+ <location line="-43"/>
+ <source>Qt Compressed Help Files (*.qch)</source>
+ <translation>Qt tömörített súgó fájlok (*.qch)</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>The specified file is not a valid Qt Help File!</source>
+ <translation>A meghatározott fájl egy érvénytelen Qt Súgó fájl!</translation>
+ </message>
+ <message>
+ <location line="-8"/>
+ <source>The namespace %1 is already registered!</source>
+ <translation>A(z) %1 névtér már regisztrálva van!</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Remove Documentation</source>
+ <translation>Dokumentáció eltávolítása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents.</source>
+ <translation>Néhány dokumentum jelenleg az Assistant hivatkozásban lett megnyitva, amely az a dokumentum, amit megpróbál eltávolítani. A dokumentum eltávolítása be fogja zárni azokat a dokumentumokat.</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Cancel</source>
+ <translation>Mégse</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location line="+88"/>
+ <source>Use custom settings</source>
+ <translation>Szokásos beállítások használata</translation>
+ </message>
+</context>
+<context>
+ <name>PreferencesDialogClass</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui"/>
+ <source>Preferences</source>
+ <translation>Beállítások</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Fonts</source>
+ <translation>Betűk</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Font settings:</source>
+ <translation>Betű beállítások:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Browser</source>
+ <translation>Böngésző</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Application</source>
+ <translation>Alkalmazás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Filters</source>
+ <translation>Szűrők</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Filter:</source>
+ <translation>Szűrők:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Attributes:</source>
+ <translation>Attrubútumok:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Add</source>
+ <translation>Hozzáadás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Remove</source>
+ <translation>Eltávolítás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Documentation</source>
+ <translation>Dokumentáció</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Registered Documentation:</source>
+ <translation>Regisztrált dokumentáció:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Add...</source>
+ <translation>Hozzáadás...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Options</source>
+ <translation>Opciók</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Current Page</source>
+ <translation>Aktuális lap</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Restore to default</source>
+ <translation>Alapértelmezett beállítások visszaállítása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Homepage</source>
+ <translation>Honlap</translation>
+ </message>
+ <message>
+ <location/>
+ <source>On help start:</source>
+ <translation>Súgó indításra:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Show my home page</source>
+ <translation>Honlapom megjelenítése</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Show a blank page</source>
+ <translation>Egy üres lap megjelenítése</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Show my tabs from last session</source>
+ <translation>A lapjaim megjelenításe a legutolsó szakaszból</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Blank Page</source>
+ <translation>Üres lap</translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+112"/>
+ <source>The specified collection file does not exist!</source>
+ <translation>A meghatározott gyűjtemény fájl nem létezik!</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Missing collection file!</source>
+ <translation>Hiányzó gyűjtemény fájl!</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Invalid URL!</source>
+ <translation>Érvénytelen URL!</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Missing URL!</source>
+ <translation>Hiányzó URL!</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <location line="+19"/>
+ <location line="+19"/>
+ <source>Unknown widget: %1</source>
+ <translation>Ismeretlen widget: %1</translation>
+ </message>
+ <message>
+ <location line="-34"/>
+ <location line="+19"/>
+ <location line="+19"/>
+ <source>Missing widget!</source>
+ <translation>Hiányzó widget!</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <location line="+12"/>
+ <source>The specified Qt help file does not exist!</source>
+ <translation>A meghatározott Qt súgó fájl nem létezik!</translation>
+ </message>
+ <message>
+ <location line="-7"/>
+ <location line="+12"/>
+ <source>Missing help file!</source>
+ <translation>Hiányzó súgó fájl!</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Missing filter argument!</source>
+ <translation>Hiányzó szűrő argumentum!</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Unknown option: %1</source>
+ <translation>Ismeretlen opció: %1</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <location line="+2"/>
+ <source>Qt Assistant</source>
+ <translation>Qt Assistant</translation>
+ </message>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/main.cpp" line="+225"/>
+ <source>Could not register documentation file
+%1
+
+Reason:
+%2</source>
+ <translation>Nem sikerült a dokumentációs fájl regisztrálása
+%1
+
+Ok:
+%2</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Documentation successfully registered.</source>
+ <translation>A dokumentáció regisztrálása sikeresen megtörtént.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Could not unregister documentation file
+%1
+
+Reason:
+%2</source>
+ <translation>Nem sikerült regisztrálni a dokumentációs fájlt
+%1
+
+Ok:
+%2</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>Documentation successfully unregistered.</source>
+ <translation>Dokumentáció regisztrációjának megszűntetése sikeresen megtörtént.</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>Cannot load sqlite database driver!</source>
+ <translation>Nem lehet betölteni az sqlite adatbázis vezérlőt!</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>The specified collection file could not be read!</source>
+ <translation>A meghatározott gyűjtemény fájlt nem lehet olvasni!</translation>
+ </message>
+</context>
+<context>
+ <name>RemoteControl</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+163"/>
+ <source>Debugging Remote Control</source>
+ <translation>Debuggolás Távoli Vezérlő</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Received Command: %1 %2</source>
+ <translation>Elfogadott parancs: %1 %2</translation>
+ </message>
+</context>
+<context>
+ <name>SearchWidget</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+196"/>
+ <source>&amp;Copy</source>
+ <translation>&amp;Másolás</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Copy &amp;Link Location</source>
+ <translation>&amp;Link címének másolása</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Open Link in New Tab</source>
+ <translation>Link megnyitása új lapon</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Select All</source>
+ <translation>Az összes kiválasztása</translation>
+ </message>
+</context>
+<context>
+ <name>TopicChooser</name>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+54"/>
+ <source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;:</source>
+ <translation>Topik választása a következőhöz: &lt;b&gt;%1&lt;/b&gt;:</translation>
+ </message>
+ <message>
+ <location filename="../tools/assistant/tools/assistant/topicchooser.ui"/>
+ <source>Choose Topic</source>
+ <translation>Topik választása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Topics</source>
+ <translation>&amp;Topikok</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Display</source>
+ <translation>&amp;Kijelzés</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Close</source>
+ <translation>&amp;Bezárás</translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/designer_cs.ts b/translations/designer_cs.ts
new file mode 100644
index 0000000..ea33a57
--- /dev/null
+++ b/translations/designer_cs.ts
@@ -0,0 +1,7051 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="cs_CZ">
+<context>
+ <name>AbstractFindWidget</name>
+ <message>
+ <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+127"/>
+ <source>&amp;Previous</source>
+ <translation>&amp;Předchozí</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>&amp;Next</source>
+ <translation>&amp;Další</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>&amp;Case sensitive</source>
+ <translation>&amp;Rozlišující velká a malá písmena</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Whole &amp;words</source>
+ <translation>Celá &amp;slova</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>&lt;img src=&quot;:/trolltech/shared/images/wrap.png&quot;&gt;&amp;nbsp;Search wrapped</source>
+ <translation>&lt;img src=&quot;:/trolltech/shared/images/wrap.png&quot;&gt;&amp;nbsp;Hledání dosáhlo konce</translation>
+ </message>
+</context>
+<context>
+ <name>AddLinkDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/addlinkdialog.ui"/>
+ <source>Insert Link</source>
+ <translation>Vložit odkaz</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Title:</source>
+ <translation>Název:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>URL:</source>
+ <translation>URL:</translation>
+ </message>
+</context>
+<context>
+ <name>AppFontDialog</name>
+ <message>
+ <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+418"/>
+ <source>Additional Fonts</source>
+ <translation>Dodatečná písma</translation>
+ </message>
+</context>
+<context>
+ <name>AppFontManager</name>
+ <message>
+ <location line="-267"/>
+ <source>&apos;%1&apos; is not a file.</source>
+ <translation>&apos;%1&apos; není soubor.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>The font file &apos;%1&apos; does not have read permissions.</source>
+ <translation>Soubor s písmem &apos;%1&apos; nemá oprávnění ke čtení.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>The font file &apos;%1&apos; is already loaded.</source>
+ <translation>Soubor s písmem &apos;%1&apos; je již nahrán.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>The font file &apos;%1&apos; could not be loaded.</source>
+ <translation>Soubor s písmem &apos;%1&apos; se nepodařilo nahrát.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>&apos;%1&apos; is not a valid font id.</source>
+ <translation>&apos;%1&apos; není platným písmovým ID.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>There is no loaded font matching the id &apos;%1&apos;.</source>
+ <translation>Není nahráno žádné písmo s ID &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>The font &apos;%1&apos; (%2) could not be unloaded.</source>
+ <translation>Písmo &apos;%1&apos; (%2) se nepodařilo uvolnit z paměti.</translation>
+ </message>
+</context>
+<context>
+ <name>AppFontWidget</name>
+ <message>
+ <location line="+26"/>
+ <source>Fonts</source>
+ <translation>Písma</translation>
+ </message>
+ <message>
+ <location line="+58"/>
+ <source>Add font files</source>
+ <translation>Přidat soubory s písmy</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Remove current font file</source>
+ <translation>Odstranit současný soubor s písmem</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Remove all font files</source>
+ <translation>Odstranit všechny soubory s písmy</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Add Font Files</source>
+ <translation>Přidat soubory s písmy</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Font files (*.ttf)</source>
+ <translation>Soubory s písmy (*.ttf)</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Error Adding Fonts</source>
+ <translation>Chyba při přidávání písem</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>Error Removing Fonts</source>
+ <translation>Chyba při odstraňování písem</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Remove Fonts</source>
+ <translation>Odstranit písma</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Would you like to remove all fonts?</source>
+ <translation>Chcete odstranit všechna písma?</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceOptionsWidget</name>
+ <message>
+ <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.ui"/>
+ <source>Form</source>
+ <translation>Formulář</translation>
+ </message>
+ <message>
+ <location/>
+ <source>User Interface Mode</source>
+ <translation>Okenní režim</translation>
+ </message>
+</context>
+<context>
+ <name>AssistantClient</name>
+ <message>
+ <location filename="../tools/designer/src/designer/assistantclient.cpp" line="+100"/>
+ <source>Unable to send request: Assistant is not responding.</source>
+ <translation>Chyba při posílání požadavku: Program Assistant neodpovídá.</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>The binary &apos;%1&apos; does not exist.</source>
+ <translation>Proveditelný soubor &apos;%1&apos; neexistuje.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Unable to launch assistant (%1).</source>
+ <translation>Program Assistant nelze spustit (%1).</translation>
+ </message>
+</context>
+<context>
+ <name>BrushPropertyManager</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+149"/>
+ <source>Style</source>
+ <translation>Styl</translation>
+ </message>
+ <message>
+ <location line="-97"/>
+ <source>No brush</source>
+ <translation>Žádný vzor</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Solid</source>
+ <translation>Plný</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Dense 1</source>
+ <translation>Hustota 1</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Dense 2</source>
+ <translation>Hustota 2</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Dense 3</source>
+ <translation>Hustota 3</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Dense 4</source>
+ <translation>Hustota 4</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Dense 5</source>
+ <translation>Hustota 5</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Dense 6</source>
+ <translation>Hustota 6</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Dense 7</source>
+ <translation>Hustota 7</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Horizontal</source>
+ <translation>Vodorovný</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Vertical</source>
+ <translation>Svislý</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Cross</source>
+ <translation>Křížící se čáry</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Backward diagonal</source>
+ <translation>Zpětné úhlopříčky</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Forward diagonal</source>
+ <translation>Vpřed směřující úhlopříčky</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Crossing diagonal</source>
+ <translation>Křížící se úhlopříčky</translation>
+ </message>
+ <message>
+ <location line="+94"/>
+ <source>Color</source>
+ <translation>Barva</translation>
+ </message>
+ <message>
+ <location line="+105"/>
+ <source>[%1, %2]</source>
+ <translation>[%1, %2]</translation>
+ </message>
+</context>
+<context>
+ <name>Command</name>
+ <message>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+208"/>
+ <location line="+258"/>
+ <source>Change signal</source>
+ <translation>Změnit signál</translation>
+ </message>
+ <message>
+ <location line="-256"/>
+ <location line="+268"/>
+ <source>Change slot</source>
+ <translation>Změnit zdířku</translation>
+ </message>
+ <message>
+ <location line="-220"/>
+ <source>Change signal-slot connection</source>
+ <translation>Změnit spojení signál-zdířka</translation>
+ </message>
+ <message>
+ <location line="+234"/>
+ <source>Change sender</source>
+ <translation>Změnit vysílač</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Change receiver</source>
+ <translation>Změnit přijímač</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+143"/>
+ <source>Add connection</source>
+ <translation>Přidat spojení</translation>
+ </message>
+ <message>
+ <location line="+54"/>
+ <source>Adjust connection</source>
+ <translation>Nastavit spojení</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Delete connections</source>
+ <translation>Smazat spojení</translation>
+ </message>
+ <message>
+ <location line="+58"/>
+ <source>Change source</source>
+ <translation>Změnit zdroj</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Change target</source>
+ <translation>Změnit koncový bod</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="+149"/>
+ <source>Insert &apos;%1&apos;</source>
+ <translation>Vložit &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+167"/>
+ <source>Raise &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; dopředu</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>Lower &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; dozadu</translation>
+ </message>
+ <message>
+ <location line="+113"/>
+ <source>Delete &apos;%1&apos;</source>
+ <translation>Smazat &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+119"/>
+ <source>Reparent &apos;%1&apos;</source>
+ <translation>Přiřadit jiný prvek &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>Promote to custom widget</source>
+ <translation>Vytvořit zástupný symbol pro uživatelsky stanovený prvek</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>Demote from custom widget</source>
+ <translation>Odstranit zástupný symbol pro uživatelsky stanovenou třídu</translation>
+ </message>
+ <message>
+ <location line="+79"/>
+ <source>Lay out using grid</source>
+ <translation>Rozmístit předměty tabulkově</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Lay out vertically</source>
+ <translation>Rozmístit předměty svisle</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Lay out horizontally</source>
+ <translation>Rozmístit předměty vodorovně</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Break layout</source>
+ <translation>Zrušit rozvržení</translation>
+ </message>
+ <message>
+ <location line="+240"/>
+ <location line="+235"/>
+ <location line="+78"/>
+ <source>Move Page</source>
+ <translation>Posunout stranu</translation>
+ </message>
+ <message>
+ <location line="-279"/>
+ <location line="+123"/>
+ <location line="+188"/>
+ <location line="+666"/>
+ <source>Delete Page</source>
+ <translation>Smazat stranu</translation>
+ </message>
+ <message>
+ <location line="-939"/>
+ <location line="+123"/>
+ <source>Page</source>
+ <translation>Strana</translation>
+ </message>
+ <message>
+ <location line="+860"/>
+ <source>page</source>
+ <translation>Strana</translation>
+ </message>
+ <message>
+ <location line="-978"/>
+ <location line="+123"/>
+ <location line="+186"/>
+ <location line="+667"/>
+ <source>Insert Page</source>
+ <translation>Vložit stranu</translation>
+ </message>
+ <message>
+ <location line="-647"/>
+ <source>Change Tab order</source>
+ <translation>Změnit pořadí karet</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Create Menu Bar</source>
+ <translation>Vytvořit nabídkový pruh</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Delete Menu Bar</source>
+ <translation>Smazat nabídkový pruh</translation>
+ </message>
+ <message>
+ <location line="+47"/>
+ <source>Create Status Bar</source>
+ <translation>Vytvořit stavový pruh</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>Delete Status Bar</source>
+ <translation>Smazat stavový pruh</translation>
+ </message>
+ <message>
+ <location line="+45"/>
+ <source>Add Tool Bar</source>
+ <translation>Přidat nástrojový pruh</translation>
+ </message>
+ <message>
+ <location line="+59"/>
+ <source>Add Dock Window</source>
+ <translation>Přidat ukotvené okno</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>Adjust Size of &apos;%1&apos;</source>
+ <translation>Upravit velikost &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+57"/>
+ <source>Change Form Layout Item Geometry</source>
+ <translation>Změnit uspořádání prvku rozvržení formuláře</translation>
+ </message>
+ <message>
+ <location line="+95"/>
+ <source>Change Layout Item Geometry</source>
+ <translation>Změnit uspořádání prvku rozvržení</translation>
+ </message>
+ <message>
+ <location line="+576"/>
+ <source>Change Table Contents</source>
+ <translation>Změnit obsah tabulky</translation>
+ </message>
+ <message>
+ <location line="+107"/>
+ <source>Change Tree Contents</source>
+ <translation>Změnit obsah stromu</translation>
+ </message>
+ <message>
+ <location line="+74"/>
+ <location line="+146"/>
+ <source>Add action</source>
+ <translation>Přidat činnost</translation>
+ </message>
+ <message>
+ <location line="-120"/>
+ <location line="+126"/>
+ <source>Remove action</source>
+ <translation>Odstranit činnost</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>Add menu</source>
+ <translation>Přidat nabídku</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Remove menu</source>
+ <translation>Odstranit nabídku</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Create submenu</source>
+ <translation>Vytvořit vedlejší nabídku</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Delete Tool Bar</source>
+ <translation>Smazat nástrojový pruh</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1195"/>
+ <source>Set action text</source>
+ <translation>Nastavit text k činnosti</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert action</source>
+ <translation>Vložit činnost</translation>
+ </message>
+ <message>
+ <location line="+89"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+907"/>
+ <source>Move action</source>
+ <translation>Posunout činnost</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-424"/>
+ <source>Change Title</source>
+ <translation>Změnit název</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Insert Menu</source>
+ <translation>Vložit nabídku</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+202"/>
+ <source>Change signals/slots</source>
+ <translation>Změnit signály/zdířky</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="-867"/>
+ <source>Delete Subwindow</source>
+ <translation>Smazat podokno</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Insert Subwindow</source>
+ <translation>Vložit podokno</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>subwindow</source>
+ <translation>Podokno</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Subwindow</source>
+ <translation>Podokno</translation>
+ </message>
+ <message>
+ <location line="-1821"/>
+ <source>Change Z-order of &apos;%1&apos;</source>
+ <translation>Změnit Z-pořadí &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+625"/>
+ <source>Simplify Grid Layout</source>
+ <translation>Zjednodušit tabulkové rozvržení</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+221"/>
+ <source>Create button group</source>
+ <translation>Seskupit tlačítka</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Break button group</source>
+ <translation>Zrušit seskupení tlačítek</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Break button group &apos;%1&apos;</source>
+ <translation>Zrušit seskupení &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Add buttons to group</source>
+ <translation>Přidat tlačítka do seskupení</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Remove buttons from group</source>
+ <translation>Odstranit tlačítka ze seskupení</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+349"/>
+ <source>Morph %1/&apos;%2&apos; into %3</source>
+ <extracomment>MorphWidgetCommand description</extracomment>
+ <translation>Přeměnit %1/&apos;%2&apos; na %3</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_command2.cpp" line="+154"/>
+ <source>Change layout of &apos;%1&apos; from %2 to %3</source>
+ <translation>Změnit rozvržení &apos;%1&apos; z %2 na %3</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="-14"/>
+ <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+458"/>
+ <source>Add &apos;%1&apos; to &apos;%2&apos;</source>
+ <extracomment>Command description for adding buttons to a QButtonGroup</extracomment>
+ <translation>Přidat &apos;%1&apos; k &apos;%2&apos;</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Remove &apos;%1&apos; from &apos;%2&apos;</source>
+ <extracomment>Command description for removing buttons from a QButtonGroup</extracomment>
+ <translation>Odstranit &apos;%1&apos; z &apos;%2&apos;</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+55"/>
+ <source>Change script</source>
+ <translation>Změnit skript</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1213"/>
+ <source>Changed &apos;%1&apos; of &apos;%2&apos;</source>
+ <translation>Změněno &apos;%1&apos; z &apos;%2&apos;</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+3"/>
+ <source>Changed &apos;%1&apos; of %n objects</source>
+ <translatorcomment>Singular will never be shown</translatorcomment>
+ <translation>
+ <numerusform>Změněna vlastnost &apos;%1&apos; jednoho předmětu</numerusform>
+ <numerusform>Změněna vlastnost &apos;%1&apos; %n předmětů</numerusform>
+ <numerusform>Změněna vlastnost &apos;%1&apos; %n předmětů</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+76"/>
+ <source>Reset &apos;%1&apos; of &apos;%2&apos;</source>
+ <translation>Znovu nastavit &apos;%1&apos; &apos;%2&apos;</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+3"/>
+ <source>Reset &apos;%1&apos; of %n objects</source>
+ <translatorcomment>Singular will never be shown</translatorcomment>
+ <translation>
+ <numerusform>Znovu nastavit &apos;%1&apos; jednoho předmětu</numerusform>
+ <numerusform>Znovu nastavit &apos;%1&apos; %n předmětů</numerusform>
+ <numerusform>Znovu nastavit &apos;%1&apos; %n předmětů</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+89"/>
+ <source>Add dynamic property &apos;%1&apos; to &apos;%2&apos;</source>
+ <translation>Přidat dynamickou vlastnost &apos;%1&apos; do &apos;%2&apos;</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+3"/>
+ <source>Add dynamic property &apos;%1&apos; to %n objects</source>
+ <translatorcomment>Singular will never be shown</translatorcomment>
+ <translation>
+ <numerusform>Přidat dynamickou vlastnost &apos;%1&apos; do jednoho předmětu</numerusform>
+ <numerusform>Přidat dynamickou vlastnost &apos;%1&apos; do %n předmětů</numerusform>
+ <numerusform>Přidat dynamickou vlastnost &apos;%1&apos; do %n předmětů</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+86"/>
+ <source>Remove dynamic property &apos;%1&apos; from &apos;%2&apos;</source>
+ <translation>Odstranit dynamickou vlastnost &apos;%1&apos; z &apos;%2&apos;</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+3"/>
+ <source>Remove dynamic property &apos;%1&apos; from %n objects</source>
+ <translation>
+ <numerusform>Odstranit dynamickou vlastnost &apos;%1&apos; z jednoho předmětu</numerusform>
+ <numerusform>Odstranit dynamickou vlastnost &apos;%1&apos; z %n předmětů</numerusform>
+ <numerusform>Odstranit dynamickou vlastnost &apos;%1&apos; z %n předmětů</numerusform>
+ </translation>
+ </message>
+</context>
+<context>
+ <name>ConnectDialog</name>
+ <message>
+ <location filename="../tools/designer/src/components/signalsloteditor/connectdialog.ui"/>
+ <source>Configure Connection</source>
+ <translation>Upravit spojení</translation>
+ </message>
+ <message>
+ <location/>
+ <source>GroupBox</source>
+ <translation>GroupBox</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Edit...</source>
+ <translation>Upravit...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Show signals and slots inherited from QWidget</source>
+ <translation>Ukázat signály a zdířky zděděné z QWidget</translation>
+ </message>
+</context>
+<context>
+ <name>ConnectionDelegate</name>
+ <message>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+643"/>
+ <source>&lt;object&gt;</source>
+ <translation>&lt;Předmět&gt;</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>&lt;signal&gt;</source>
+ <translation>&lt;Signál&gt;</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>&lt;slot&gt;</source>
+ <translation>&lt;Zdířka&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>DPI_Chooser</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="+69"/>
+ <source>Standard (96 x 96)</source>
+ <extracomment>Embedded device standard screen resolution</extracomment>
+ <translation>Obvyklé rozlišení (96 x 96)</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Greenphone (179 x 185)</source>
+ <extracomment>Embedded device screen resolution</extracomment>
+ <translation>Greenphone (179 x 185)</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>High (192 x 192)</source>
+ <extracomment>Embedded device high definition screen resolution</extracomment>
+ <translation>Vysoké rozlišení (192 x 192)</translation>
+ </message>
+</context>
+<context>
+ <name>Designer</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+449"/>
+ <source>Qt Designer</source>
+ <translation>Qt Designer</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+682"/>
+ <source>Unable to launch %1.</source>
+ <translation>%1 se nepodařilo spustit.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>%1 timed out.</source>
+ <translation>Překročení času při provedení %1.</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+10"/>
+ <source>This file contains top level spacers.&lt;br&gt;They have &lt;b&gt;NOT&lt;/b&gt; been saved into the form.</source>
+ <translation>Formulář obsahuje volně stojící prvky rozložení, které &lt;b&gt;NEBYLY&lt;/b&gt; uloženy do formuláře.</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Perhaps you forgot to create a layout?</source>
+ <translation>Přidal jste rozvržení?</translation>
+ </message>
+ <message>
+ <location line="+205"/>
+ <source>This file cannot be read because it was created using %1.</source>
+ <translation>Soubor nelze přečíst, protože byl vytvořen %1.</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>This file was created using Designer from Qt-%1 and cannot be read.</source>
+ <translation>Soubor nelze přečíst, protože byl vytvořen programem Designer ve verzi %1.</translation>
+ </message>
+ <message>
+ <location line="+82"/>
+ <source>This file cannot be read because the extra info extension failed to load.</source>
+ <translation>Soubor nelze přečíst (Chyba při nahrávání dat ExtraInfoExtension).</translation>
+ </message>
+ <message>
+ <location line="-52"/>
+ <source>The converted file could not be read.</source>
+ <translation>Převedený soubor se nepodařilo přečíst.</translation>
+ </message>
+ <message>
+ <location line="-76"/>
+ <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
+ <translation>Chyba při čtení souboru s rozhraním: Kořenový prvek &lt;ui&gt; chybí.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>An error has occurred while reading the UI file at line %1, column %2: %3</source>
+ <translation>Chyba při čtení souboru s rozhraním, řádek %1, sloupec %2: %3</translation>
+ </message>
+ <message>
+ <location line="+74"/>
+ <source>This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer.</source>
+ <translation>Soubor byl vytvořen programem Designer ve verzi %1 a bude převeden na nový formulář pomocí programu Qt Designer.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The old form has not been touched, but you will have to save the form under a new name.</source>
+ <translation>Starý formulář zůstává nezměněn. Nový formulář musí být uložen pod novým názvem.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>This file was created using Designer from Qt-%1 and could not be read:
+%2</source>
+ <translation>Čtení Designerem %1 vytvořeného souboru se nezdařilo:
+%2</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Please run it through &lt;b&gt;uic3&amp;nbsp;-convert&lt;/b&gt; to convert it to Qt-4&apos;s ui format.</source>
+ <translation>Přeměňte to, prosím, příkazem &lt;b&gt;uic3&amp;nbsp;-convert&lt;/b&gt; na formát rozhraní Qt 4.</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qsimpleresource.cpp" line="+339"/>
+ <source>Custom Widgets</source>
+ <translation>Uživatelsky stanovené prvky</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Promoted Widgets</source>
+ <translation>Zástupný symbol pro uživatelsky stanovené prvky</translation>
+ </message>
+</context>
+<context>
+ <name>DesignerMetaEnum</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="-513"/>
+ <source>%1 is not a valid enumeration value of &apos;%2&apos;.</source>
+ <translation>%1 není platnou výčtovou hodnotou &apos;%2&apos;.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&apos;%1&apos; could not be converted to an enumeration value of type &apos;%2&apos;.</source>
+ <translation>&apos;%1&apos; se nepodařilo převést na výčtovou hodnotu typu &apos;%2&apos;.</translation>
+ </message>
+</context>
+<context>
+ <name>DesignerMetaFlags</name>
+ <message>
+ <location line="+78"/>
+ <source>&apos;%1&apos; could not be converted to a flag value of type &apos;%2&apos;.</source>
+ <translation>&apos;%1&apos; se nepodařilo převést na příznakovou hodnotu typu &apos;%2&apos;.</translation>
+ </message>
+</context>
+<context>
+ <name>DeviceProfile</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/deviceprofile.cpp" line="+397"/>
+ <source>&apos;%1&apos; is not a number.</source>
+ <extracomment>Reading a number for an embedded device profile</extracomment>
+ <translation>&apos;%1&apos; není platným číslem.</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>An invalid tag &lt;%1&gt; was encountered.</source>
+ <translation> Byl zjištěn neplatný prvek&apos;%1&apos;.</translation>
+ </message>
+</context>
+<context>
+ <name>DeviceProfileDialog</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.ui"/>
+ <source>&amp;Family</source>
+ <translation>&amp;Písmová rodina</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Point Size</source>
+ <translation>&amp;Bodová velikost</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Style</source>
+ <translation>Styl</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Device DPI</source>
+ <translation>Rozlišení obrazovky</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Name</source>
+ <translation>Název</translation>
+ </message>
+</context>
+<context>
+ <name>DeviceSkin</name>
+ <message>
+ <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+79"/>
+ <source>The image file &apos;%1&apos; could not be loaded.</source>
+ <translation>Soubor s obrázkem &apos;%1&apos; se nepodařilo nahrát.</translation>
+ </message>
+ <message>
+ <location line="+64"/>
+ <source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
+ <translation>Adresář se vzhledem &apos;%1&apos; neobsahuje žádný soubor s nastavením.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>The skin configuration file &apos;%1&apos; could not be opened.</source>
+ <translation>Soubor s nastavením vzhledu &apos;%1&apos; se nepodařilo otevřít.</translation>
+ </message>
+ <message>
+ <location line="+76"/>
+ <source>Syntax error: %1</source>
+ <translation>Chyba ve skladbě: %1</translation>
+ </message>
+ <message>
+ <location line="+54"/>
+ <source>The skin cursor image file &apos;%1&apos; does not exist.</source>
+ <translation>Soubor s obrázkem pro vzhled ukazovátka &apos;%1&apos; neexistuje.</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Syntax error in area definition: %1</source>
+ <translation>Vymezení oblasti obsahuje chybu ve skladbě: %1</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Mismatch in number of areas, expected %1, got %2.</source>
+ <translation>Zadaný počet oblastí (%1) neodpovídá; byly nalezeny %2 oblasti.</translation>
+ </message>
+ <message>
+ <location line="-187"/>
+ <source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
+ <translation>Soubor s nastavením vzhledu &apos;%1&apos; se nepodařilo přečíst: %2</translation>
+ </message>
+ <message>
+ <location line="+91"/>
+ <source>The skin &quot;up&quot; image file &apos;%1&apos; does not exist.</source>
+ <translation>Soubor s nastavením vzhledu &apos;%1&apos; (nahoru) neexistuje.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
+ <translation>Soubor s nastavením vzhledu &apos;%1&apos; (dolů) neexistuje.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
+ <translation>Soubor s nastavením vzhledu &apos;%1&apos; (zavřeno) neexistuje.</translation>
+ </message>
+</context>
+<context>
+ <name>EmbeddedOptionsControl</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="+307"/>
+ <source>&lt;html&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Font&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%1, %2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Style&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Resolution&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%4 x %5&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/html&gt;</source>
+ <extracomment>Format embedded device profile description</extracomment>
+ <translation>&lt;html&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Font&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%1, %2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Stil&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Rozlišení&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%4 x %5&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/html&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>EmbeddedOptionsPage</name>
+ <message>
+ <location line="+103"/>
+ <source>Embedded Design</source>
+ <extracomment>Tab in preferences dialog</extracomment>
+ <translation>Vložený návrh</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Device Profiles</source>
+ <extracomment>EmbeddedOptionsControl group box&quot;</extracomment>
+ <translation>Profily zařízení</translation>
+ </message>
+</context>
+<context>
+ <name>FontPanel</name>
+ <message>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
+ <source>Font</source>
+ <translation>Písmo</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>&amp;Writing system</source>
+ <translation>Způsob &amp;psaní</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Family</source>
+ <translation>&amp;Písmová rodina</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&amp;Style</source>
+ <translation>&amp;Styl</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&amp;Point size</source>
+ <translation>&amp;Bodová velikost</translation>
+ </message>
+</context>
+<context>
+ <name>FontPropertyManager</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+62"/>
+ <source>PreferDefault</source>
+ <translation>Upřednostňovat výchozí</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>NoAntialias</source>
+ <translation>Žádné vyhlazování</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>PreferAntialias</source>
+ <translation>Upřednostňovat vyhlazování</translation>
+ </message>
+ <message>
+ <location line="+61"/>
+ <source>Antialiasing</source>
+ <translation>Vyhlazování</translation>
+ </message>
+</context>
+<context>
+ <name>FormBuilder</name>
+ <message>
+ <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+359"/>
+ <source>Invalid stretch value for &apos;%1&apos;: &apos;%2&apos;</source>
+ <extracomment>Parsing layout stretch values</extracomment>
+ <translation>Neplatná hodnota roztažení pro &apos;%1&apos;: &apos;%2&apos;</translation>
+ </message>
+ <message>
+ <location line="+62"/>
+ <source>Invalid minimum size for &apos;%1&apos;: &apos;%2&apos;</source>
+ <extracomment>Parsing grid layout minimum size values</extracomment>
+ <translation>Neplatná nejmenší velikost pro &apos;%1&apos;: &apos;%2&apos;</translation>
+ </message>
+</context>
+<context>
+ <name>FormEditorOptionsPage</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="+91"/>
+ <source>%1 %</source>
+ <translation>%1 %</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Preview Zoom</source>
+ <translation>Velikost zvětšení pro náhled</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Default Zoom</source>
+ <translation>Výchozí zvětšení</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Forms</source>
+ <extracomment>Tab in preferences dialog</extracomment>
+ <translation>Formuláře</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Default Grid</source>
+ <translation>Výchozí mřížka pro nové formuláře</translation>
+ </message>
+</context>
+<context>
+ <name>FormLayoutRowDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui"/>
+ <source>Add Form Layout Row</source>
+ <translation>Přidat řádek s rozvržením formuláře</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Label text:</source>
+ <translation>&amp;Text popisku:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Field &amp;type:</source>
+ <translation>&amp;Typ datového pole:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Field name:</source>
+ <translation>&amp;Název pole:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Buddy:</source>
+ <translation>&amp;Kamarád:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Row:</source>
+ <translation>&amp;Řádek:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Label &amp;name:</source>
+ <translation>&amp;Název popisku:</translation>
+ </message>
+</context>
+<context>
+ <name>FormWindow</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1701"/>
+ <source>Unexpected element &lt;%1&gt;</source>
+ <translation>Neplatný prvek &lt;%1&gt;</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Error while pasting clipboard contents at line %1, column %2: %3</source>
+ <translation>Chyba při vložení obsahu schránky, řádek %1, sloupec %2: %3</translation>
+ </message>
+</context>
+<context>
+ <name>FormWindowSettings</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui"/>
+ <source>Form Settings</source>
+ <translation>Nastavení formuláře</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Layout &amp;Default</source>
+ <translation>&amp;Výchozí rozvržení</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Spacing:</source>
+ <translation>&amp;Odstup:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Margin:</source>
+ <translation>&amp;Okraj:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Layout Function</source>
+ <translation>&amp;Funkce rozvržení</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ma&amp;rgin:</source>
+ <translation>Ok&amp;raj:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Spa&amp;cing:</source>
+ <translation>Odstu&amp;p:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Embedded Design</source>
+ <translation>Vložený návrh</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Author</source>
+ <translation>&amp;Autor</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Include Hints</source>
+ <translation>&amp;Zahrnout rady</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Pixmap Function</source>
+ <translation>&amp;Funkce pixmapy</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Grid</source>
+ <translation>Mřížka</translation>
+ </message>
+</context>
+<context>
+ <name>IconSelector</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+352"/>
+ <source>All Pixmaps (</source>
+ <translation>Všechny soubory s pixmapami (</translation>
+ </message>
+</context>
+<context>
+ <name>ItemPropertyBrowser</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+66"/>
+ <source>XX Icon Selected off</source>
+ <extracomment>Sample string to determinate the width for the first column of the list item property browser</extracomment>
+ <translation>Vybraná ikona, z</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+119"/>
+ <source>Main</source>
+ <extracomment>Not currently used (main tool bar)</extracomment>
+ <translation>Hlavní pruh s nástroji</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>File</source>
+ <translation>Soubor</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Edit</source>
+ <translation>Úpravy</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Tools</source>
+ <translation>Nástroje</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Form</source>
+ <translation>Formulář</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Qt Designer</source>
+ <translation>Qt Designer</translation>
+ </message>
+</context>
+<context>
+ <name>NewForm</name>
+ <message>
+ <location filename="../tools/designer/src/designer/newform.cpp" line="+79"/>
+ <source>C&amp;reate</source>
+ <translation>&amp;Vytvořit nový z předlohy</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Recent</source>
+ <translation>Naposledy otevřený</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Zavřít</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Open...</source>
+ <translation>&amp;Otevřít...</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&amp;Recent Forms</source>
+ <translation>&amp;Naposledy otevřené formuláře</translation>
+ </message>
+ <message>
+ <location line="+64"/>
+ <source>Read error</source>
+ <translation>Chyba při čtení</translation>
+ </message>
+ <message>
+ <location line="-100"/>
+ <source>New Form</source>
+ <translation>Nový formulář</translation>
+ </message>
+ <message>
+ <location line="-5"/>
+ <source>Show this Dialog on Startup</source>
+ <translation>Ukázat tento dialog při spuštění</translation>
+ </message>
+ <message>
+ <location line="+128"/>
+ <source>A temporary form file could not be created in %1.</source>
+ <translation>V adresáři %1 se nepodařilo vytvořit dočasný soubor s formulářem.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>The temporary form file %1 could not be written.</source>
+ <translation>Dočasný soubor s formulářem %1 se nepodařilo zapsat.</translation>
+ </message>
+</context>
+<context>
+ <name>ObjectInspectorModel</name>
+ <message>
+ <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+360"/>
+ <source>Object</source>
+ <translation>Předmět</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Class</source>
+ <translation>Třída</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>separator</source>
+ <translation>Oddělovač</translation>
+ </message>
+ <message>
+ <location line="+98"/>
+ <source>&lt;noname&gt;</source>
+ <translation>&lt;nepojmenovaný&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>ObjectNameDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+158"/>
+ <source>Change Object Name</source>
+ <translation>Změnit název předmětu</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Object Name</source>
+ <translation>Název předmětu</translation>
+ </message>
+</context>
+<context>
+ <name>PluginDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/plugindialog.ui"/>
+ <source>Plugin Information</source>
+ <translation>Přídavné moduly</translation>
+ </message>
+ <message>
+ <location/>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+</context>
+<context>
+ <name>PreferencesDialog</name>
+ <message>
+ <location filename="../tools/designer/src/designer/preferencesdialog.ui"/>
+ <source>Preferences</source>
+ <translation>Nastavení</translation>
+ </message>
+</context>
+<context>
+ <name>PreviewConfigurationWidget</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui"/>
+ <source>Form</source>
+ <translation>Formulář</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Print/Preview Configuration</source>
+ <translation>Nastavení tisku/náhledu</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Style</source>
+ <translation>Styl</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Style sheet</source>
+ <translation>Předlohový list</translation>
+ </message>
+ <message>
+ <location/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Device skin</source>
+ <translation>Vzhled pro zařízení</translation>
+ </message>
+</context>
+<context>
+ <name>PromotionModel</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+112"/>
+ <source>Not used</source>
+ <extracomment>Usage of promoted widgets</extracomment>
+ <translation>Nepoužívaný</translation>
+ </message>
+</context>
+<context>
+ <name>Q3WizardContainer</name>
+ <message>
+ <location filename="../tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp" line="+172"/>
+ <location line="+5"/>
+ <source>Page</source>
+ <translation>Strana</translation>
+ </message>
+</context>
+<context>
+ <name>QAbstractFormBuilder</name>
+ <message>
+ <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+206"/>
+ <source>Unexpected element &lt;%1&gt;</source>
+ <translation>Neplatný prvek &lt;%1&gt;</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>An error has occurred while reading the UI file at line %1, column %2: %3</source>
+ <translation>Chyba při čtení souboru s rozhraním, řádek %1, sloupec %2: %3</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
+ <translation>Chyba při čtení souboru s rozhraním: Kořenový prvek &lt;ui&gt; chybí.</translation>
+ </message>
+ <message>
+ <location line="+119"/>
+ <source>The creation of a widget of the class &apos;%1&apos; failed.</source>
+ <translation>Nepodařilo se vytvořit žádný prvek třídy &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location line="+296"/>
+ <source>Attempt to add child that is not of class QWizardPage to QWizard.</source>
+ <translation>Pokus o přidání strany předmětu třídy QWizard, která není typu QWizardPage.</translation>
+ </message>
+ <message>
+ <location line="+86"/>
+ <source>Attempt to add a layout to a widget &apos;%1&apos; (%2) which already has a layout of non-box type %3.
+This indicates an inconsistency in the ui-file.</source>
+ <translation>Pokus o přidání rozvržení na prvek &apos;%1&apos; (%2), který již má rozvržení typu %3 hat. Ukazuje to na nesrovnalost v souboru s rozhraním.</translation>
+ </message>
+ <message>
+ <location line="+144"/>
+ <source>Empty widget item in %1 &apos;%2&apos;.</source>
+ <translation>Prázdná položka prvku v %1 &apos;%2&apos;.</translation>
+ </message>
+ <message>
+ <location line="+680"/>
+ <source>Flags property are not supported yet.</source>
+ <translation>Vlastnosti typu &quot;příznak&quot; nejsou podporovány.</translation>
+ </message>
+ <message>
+ <location line="+81"/>
+ <source>While applying tab stops: The widget &apos;%1&apos; could not be found.</source>
+ <translation>Chyba při stanovení pořadí tabulátorů: Nepodařilo se nalézt žádný prvek s názvem &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location line="+908"/>
+ <source>Invalid QButtonGroup reference &apos;%1&apos; referenced by &apos;%2&apos;.</source>
+ <translation>Neplatný odkaz na skupinu tlačítek &apos;%1&apos;, odkazováno &apos;%2&apos;.</translation>
+ </message>
+ <message>
+ <location line="+511"/>
+ <source>This version of the uitools library is linked without script support.</source>
+ <translation>Tato verze knihovny uitools nepodporuje skripty.</translation>
+ </message>
+</context>
+<context>
+ <name>QAxWidgetPlugin</name>
+ <message>
+ <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+75"/>
+ <source>ActiveX control</source>
+ <translation>Ovládací prvek ActiveX</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>ActiveX control widget</source>
+ <translation>Ovládací prvek ActiveX</translation>
+ </message>
+</context>
+<context>
+ <name>QAxWidgetTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+119"/>
+ <source>Set Control</source>
+ <translation>Nastavit ovládací prvek</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Reset Control</source>
+ <translation>Nastavit znovu ovládací prvek</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Licensed Control</source>
+ <translation>Licencovaný ovládací prvek</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The control requires a design-time license</source>
+ <translation>Ovládací prvek vyžaduje licenci k času návrhu</translation>
+ </message>
+</context>
+<context>
+ <name>QCoreApplication</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="+83"/>
+ <source>%1 is not a promoted class.</source>
+ <translation>%1 není zástupným symbolem pro uživatelsky stanovenou třídu.</translation>
+ </message>
+ <message>
+ <location line="+65"/>
+ <source>The base class %1 is invalid.</source>
+ <translation>%1 není platnou základní třídou.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>The class %1 already exists.</source>
+ <translation>Již existuje třída s názvem %1.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Promoted Widgets</source>
+ <translation>Zástupný symbol pro uživatelsky stanovené prvky</translation>
+ </message>
+ <message>
+ <location line="+126"/>
+ <source>The class %1 cannot be removed</source>
+ <translation>Třída %1 nemůže být odstraněna</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>The class %1 cannot be removed because it is still referenced.</source>
+ <translation>Třída %1 nemůže být odstraněna, protože se stále používá.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>The class %1 cannot be renamed</source>
+ <translation>Třída %1 nemůže být přejmenována</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>The class %1 cannot be renamed to an empty name.</source>
+ <translation>Název pro třídu nemůže zůstat prázdný (%1).</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>There is already a class named %1.</source>
+ <translation>Již existuje třída s názvem %1.</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Cannot set an empty include file.</source>
+ <translation>Název pro hlavičkový soubor nemůže zůstat prázdný.</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+88"/>
+ <source>Exception at line %1: %2</source>
+ <translation>Chyba výjimky na řádku %1: %2</translation>
+ </message>
+ <message>
+ <location line="+36"/>
+ <source>Unknown error</source>
+ <translation>Neznámá chyba</translation>
+ </message>
+ <message>
+ <location line="+50"/>
+ <source>An error occurred while running the script for %1: %2
+Script: %3</source>
+ <translation>Při provádění skriptu pro %1 se vyskytla chyba: %2Skript: %3</translation>
+ </message>
+</context>
+<context>
+ <name>QDesigner</name>
+ <message>
+ <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+141"/>
+ <source>%1 - warning</source>
+ <translation>%1 - Upozornění</translation>
+ </message>
+ <message>
+ <location line="+96"/>
+ <source>Qt Designer</source>
+ <translation>Qt Designer</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>This application cannot be used for the Console edition of Qt</source>
+ <translation>Tato aplikace se nedá používat pro konzolové vydání Qt</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerActions</name>
+ <message>
+ <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+178"/>
+ <source>Edit Widgets</source>
+ <translation>Upravit prvky</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>&amp;Quit</source>
+ <translation>&amp;Ukončit</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Minimize</source>
+ <translation>&amp;Zmenšit</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Bring All to Front</source>
+ <translation>Ukázat všechny formuláře</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Preferences...</source>
+ <translation>Nastavení...</translation>
+ </message>
+ <message>
+ <location line="+298"/>
+ <source>Clear &amp;Menu</source>
+ <translation>Smazat &amp;nabídku</translation>
+ </message>
+ <message>
+ <location line="-233"/>
+ <source>CTRL+SHIFT+S</source>
+ <translation>CTRL+SHIFT+S</translation>
+ </message>
+ <message>
+ <location line="+113"/>
+ <source>CTRL+R</source>
+ <translation>CTRL+R</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>CTRL+M</source>
+ <translation>CTRL+M</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Qt Designer &amp;Help</source>
+ <translation>&amp;Nápověda k programu Qt Designer</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Current Widget Help</source>
+ <translation>Nápověda k vybranému prvku</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>What&apos;s New in Qt Designer?</source>
+ <translation>Co je nového v programu Qt Designer?</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>About Plugins</source>
+ <translation>Přídavné moduly</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+601"/>
+ <source>About Qt Designer</source>
+ <translation>O programu Qt Designer</translation>
+ </message>
+ <message>
+ <location line="-595"/>
+ <source>About Qt</source>
+ <translation>O Qt</translation>
+ </message>
+ <message>
+ <location line="+121"/>
+ <location line="+197"/>
+ <source>Open Form</source>
+ <translation>Otevřít formulář</translation>
+ </message>
+ <message>
+ <location line="-196"/>
+ <location line="+37"/>
+ <location line="+160"/>
+ <source>Designer UI files (*.%1);;All Files (*)</source>
+ <translation>Soubory rozhraní programu Designer (*.%1);;Všechny soubory (*)</translation>
+ </message>
+ <message>
+ <location line="-620"/>
+ <source>%1 already exists.
+Do you want to replace it?</source>
+ <translation>Soubor %1 již existuje.
+Chcete jej nahradit?</translation>
+ </message>
+ <message>
+ <location line="-26"/>
+ <source>Saved %1.</source>
+ <translation>Formulář %1 byl uložen.</translation>
+ </message>
+ <message>
+ <location line="+371"/>
+ <source>&amp;Recent Forms</source>
+ <translation>&amp;Naposledy otevřené formuláře</translation>
+ </message>
+ <message>
+ <location line="+202"/>
+ <source>Designer</source>
+ <translation>Designer</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Feature not implemented yet!</source>
+ <translation>Tato funkce ještě není provedena!</translation>
+ </message>
+ <message>
+ <location line="+59"/>
+ <source>Read error</source>
+ <translation>Chyba při čtení</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>%1
+Do you want to update the file location or generate a new form?</source>
+ <translation>%1
+Chcete zadat jiný název pro soubor, nebo vytvořit nový formulář?</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Update</source>
+ <translation>&amp;Jiný název</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;New Form</source>
+ <translation>&amp;Nový formulář</translation>
+ </message>
+ <message>
+ <location line="+77"/>
+ <location line="+40"/>
+ <source>Save Form?</source>
+ <translation>Uložit formulář?</translation>
+ </message>
+ <message>
+ <location line="-39"/>
+ <source>Could not open file</source>
+ <translation>Soubor se nepodařilo otevřít</translation>
+ </message>
+ <message>
+ <location line="+282"/>
+ <location line="+23"/>
+ <source>The backup file %1 could not be written.</source>
+ <translation>Ukládání na pozadí: Soubor se zálohou %1 se nepodařilo zapsat.</translation>
+ </message>
+ <message>
+ <location line="+107"/>
+ <source>The backup directory %1 could not be created.</source>
+ <translation>Ukládání na pozadí: Adresář se zálohou %1 se nepodařilo.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>The temporary backup directory %1 could not be created.</source>
+ <translation>Ukládání na pozadí: Dočasný adresář se zálohou %1 se nepodařilo.</translation>
+ </message>
+ <message>
+ <location line="+94"/>
+ <source>Please close all forms to enable the loading of additional fonts.</source>
+ <translation>Zavřete, prosím, všechny formuláře kvůli umožnění nahrání dodatečných písem.</translation>
+ </message>
+ <message>
+ <location line="-502"/>
+ <source>Select New File</source>
+ <translation>Vybrat nový soubor</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Could not write file</source>
+ <translation>Soubor se nepodařilo zapsat</translation>
+ </message>
+ <message>
+ <location line="+201"/>
+ <source>&amp;Close Preview</source>
+ <translation>&amp;Zavřít náhled</translation>
+ </message>
+ <message>
+ <location line="-898"/>
+ <source>Save &amp;Image...</source>
+ <translation>&amp;Uložit obraz...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Print...</source>
+ <translation>&amp;Tisk...</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Additional Fonts...</source>
+ <translation>Dodatečná písma...</translation>
+ </message>
+ <message>
+ <location line="+651"/>
+ <source>The file %1 could not be opened.
+Reason: %2
+Would you like to retry or select a different file?</source>
+ <translation>Soubor %1 se nepodařilo otevřít:
+%2
+Chcete to zkusit ještě jednou, nebo vybrat jiný soubor?</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>It was not possible to write the entire file %1 to disk.
+Reason:%2
+Would you like to retry?</source>
+ <translation>Soubor %1 se nepodařilo úplně zapsat na disk:
+Důvod: %2
+Chcete to zkusit ještě jednou?</translation>
+ </message>
+ <message>
+ <location line="+429"/>
+ <source>Image files (*.%1)</source>
+ <translation>Soubory s obrazem (*.%1)</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <location line="+17"/>
+ <source>Save Image</source>
+ <translation>Uložit obraz</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The file %1 could not be written.</source>
+ <translation>Soubor %1 se nepodařilo zapsat.</translation>
+ </message>
+ <message>
+ <location line="-1163"/>
+ <source>&amp;New...</source>
+ <translation>&amp;Nový...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Open...</source>
+ <translation>&amp;Otevřít...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Uložit</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Save &amp;As...</source>
+ <translation>Uložit &amp;jako...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Save A&amp;ll</source>
+ <translation>&amp;Uložit vše</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Save As &amp;Template...</source>
+ <translation>Uložit jako &amp;předlohu...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <location line="+901"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Zavřít</translation>
+ </message>
+ <message>
+ <location line="-896"/>
+ <source>View &amp;Code...</source>
+ <translation>Ukázat &amp;kód...</translation>
+ </message>
+ <message>
+ <location line="+424"/>
+ <location line="+248"/>
+ <source>Save Form As</source>
+ <translation>Uložit formulář jako</translation>
+ </message>
+ <message>
+ <location line="+429"/>
+ <source>Preview failed</source>
+ <translation>Nepodařilo se vytvořit žádný náhled</translation>
+ </message>
+ <message>
+ <location line="-575"/>
+ <source>Code generation failed</source>
+ <translation>Nepodařilo se vytvořit žádný kód</translation>
+ </message>
+ <message>
+ <location line="+328"/>
+ <location line="+34"/>
+ <source>Assistant</source>
+ <translation>Assistant</translation>
+ </message>
+ <message>
+ <location line="+259"/>
+ <source>Saved image %1.</source>
+ <translation>Obraz byl uložen pod %1.</translation>
+ </message>
+ <message>
+ <location line="+70"/>
+ <source>Printed %1.</source>
+ <translation>%1 byl vytištěn.</translation>
+ </message>
+ <message>
+ <location line="-1149"/>
+ <source>ALT+CTRL+S</source>
+ <translation>ALT+CTRL+S</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerAppearanceOptionsPage</name>
+ <message>
+ <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="+138"/>
+ <source>Appearance</source>
+ <extracomment>Tab in preferences dialog</extracomment>
+ <translation>Vzhled</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerAppearanceOptionsWidget</name>
+ <message>
+ <location line="-53"/>
+ <source>Docked Window</source>
+ <translation>Režim ukotveného okna</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Multiple Top-Level Windows</source>
+ <translation>Režim více oken</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Toolwindow Font</source>
+ <translation>Písmo pro okno s nástroji</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerAxWidget</name>
+ <message>
+ <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="-71"/>
+ <source>Reset control</source>
+ <translation>Nastavit znovu ovládací prvek</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Set control</source>
+ <translation>Nastavit ovládací prvek</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+179"/>
+ <source>Control loaded</source>
+ <translation>Ovládací prvek nahrán</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>A COM exception occurred when executing a meta call of type %1, index %2 of &quot;%3&quot;.</source>
+ <translation>Při vyvolání postupu typu %1 se vyskytla výjimka COM, rejstřík %2 &quot;%3&quot;.</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerFormBuilder</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+89"/>
+ <source>Script errors occurred:</source>
+ <translation>Vyskytly se chyby ve skriptech:</translation>
+ </message>
+ <message>
+ <location line="+307"/>
+ <source>The preview failed to build.</source>
+ <translation>Nepodařilo se vytvořit žádný náhled.</translation>
+ </message>
+ <message>
+ <location line="+65"/>
+ <source>Designer</source>
+ <translation>Designer</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerFormWindow</name>
+ <message>
+ <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="+217"/>
+ <source>%1 - %2[*]</source>
+ <translation>%1 - %2[*]</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Save Form?</source>
+ <translation>Uložit formulář?</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Do you want to save the changes to this document before closing?</source>
+ <translation>Chcete v tomto formuláři uložit před zavřením změny?</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>If you don&apos;t save, your changes will be lost.</source>
+ <translation>Pokud neprovedete uložení, budou vaše změny ztraceny. </translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerMenu</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1181"/>
+ <source>Type Here</source>
+ <translation>Zadejte text</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Add Separator</source>
+ <translation>Přidat oddělovač</translation>
+ </message>
+ <message>
+ <location line="+371"/>
+ <source>Insert separator</source>
+ <translation>Vložit oddělovač</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Remove action &apos;%1&apos;</source>
+ <translation>Odstranit činnost &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>Remove separator</source>
+ <translation>Odstranit oddělovač</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <location line="+650"/>
+ <source>Add separator</source>
+ <translation>Přidat oddělovač</translation>
+ </message>
+ <message>
+ <location line="-348"/>
+ <source>Insert action</source>
+ <translation>Vložit činnost</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerMenuBar</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-375"/>
+ <source>Type Here</source>
+ <translation>Zadejte text</translation>
+ </message>
+ <message>
+ <location line="+298"/>
+ <source>Remove Menu &apos;%1&apos;</source>
+ <translation>Odstranit nabídku &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Remove Menu Bar</source>
+ <translation>Odstranit pruh s nabídkou</translation>
+ </message>
+ <message>
+ <location line="+70"/>
+ <source>Menu</source>
+ <translation>Nabídka</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerPluginManager</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="+271"/>
+ <source>An XML error was encountered when parsing the XML of the custom widget %1: %2</source>
+ <translation>Chyba při vyhodnocování XML uživatelsky stanoveného prvku %1: %2</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>A required attribute (&apos;%1&apos;) is missing.</source>
+ <translation>U prvku chybí vyžadovaná vlastnost (&apos;%1&apos;).</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>An invalid property specification (&apos;%1&apos;) was encountered. Supported types: %2</source>
+ <translation>&apos;%1&apos; není platným vymezením vlastnosti. Jsou podporovány následující typy: %2</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>&apos;%1&apos; is not a valid string property specification.</source>
+ <translation>&apos;%1&apos; není platným vymezením vlastnosti řetězce znaků.</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>The XML of the custom widget %1 does not contain any of the elements &lt;widget&gt; or &lt;ui&gt;.</source>
+ <translation>Kód XML pro prvek %1 neobsahuje platný kořenový prvek (&lt;widget&gt;, nebo &lt;ui&gt;).</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>The class attribute for the class %1 is missing.</source>
+ <translation>Chybí vlastnost třídy pro třídu %1.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>The class attribute for the class %1 does not match the class name %2.</source>
+ <translation>Vlastnost třídy pro třídu %1 neodpovídá názvu třídy (%2).</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerPropertySheet</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+754"/>
+ <source>Dynamic Properties</source>
+ <translation>Dynamické vlastnosti</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerResource</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+492"/>
+ <source>The layout type &apos;%1&apos; is not supported, defaulting to grid.</source>
+ <translation>Typ rozvržení &apos;%1&apos; není podporován; bylo vytvořeno mřížkové rozvržení.</translation>
+ </message>
+ <message>
+ <location line="+243"/>
+ <source>The container extension of the widget &apos;%1&apos; (%2) returned a widget not managed by Designer &apos;%3&apos; (%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.</source>
+ <translation>Kontejnerové rozšíření prvku &apos;%1&apos; (%2) vrátilo pro stranu %5 prvek &apos;%3&apos; (%4), který není spravován programem Designer.
+Kontejnerové stránky by měly být zadány výhradně v XML vráceném postupu domXML() uživatelsky stanoveného prvku.</translation>
+ </message>
+ <message>
+ <location line="+599"/>
+ <source>Unexpected element &lt;%1&gt;</source>
+ <extracomment>Parsing clipboard contents</extracomment>
+ <translation>Neplatný prvek &lt;%1&gt;</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Error while pasting clipboard contents at line %1, column %2: %3</source>
+ <extracomment>Parsing clipboard contents</extracomment>
+ <translation>Chyba při vložení obsahu schránky, řádek %1, sloupec %2: %3</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Error while pasting clipboard contents: The root element &lt;ui&gt; is missing.</source>
+ <extracomment>Parsing clipboard contents</extracomment>
+ <translation>Chyba při vložení obsahu schránky: Kořenový prvek &lt;ui&gt; chybí.</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerSharedSettings</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/shared_settings.cpp" line="+83"/>
+ <source>The template path %1 could not be created.</source>
+ <translation>Adresář s předlohami %1 se nepodařilo zřídit.</translation>
+ </message>
+ <message>
+ <location line="+184"/>
+ <source>An error has been encountered while parsing device profile XML: %1</source>
+ <translation>Při čtení XML profilu zařízení se vyskytla chyba: %1</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerToolWindow</name>
+ <message>
+ <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="+190"/>
+ <source>Property Editor</source>
+ <translation>Editor vlastností</translation>
+ </message>
+ <message>
+ <location line="+54"/>
+ <source>Action Editor</source>
+ <translation>Editor činností</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>Object Inspector</source>
+ <translation>Ukazatel předmětů</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Resource Browser</source>
+ <translation>Prohlížeč zdrojů</translation>
+ </message>
+ <message>
+ <location line="+34"/>
+ <source>Signal/Slot Editor</source>
+ <translation>Editor signálů a zdířek</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Widget Box</source>
+ <translation>Krabice s prvky</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerWorkbench</name>
+ <message>
+ <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="+199"/>
+ <source>&amp;File</source>
+ <translation>&amp;Soubor</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>F&amp;orm</source>
+ <translation>F&amp;ormulář</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Preview in</source>
+ <translation>Náhled v</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>&amp;Window</source>
+ <translation>&amp;Okno</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Nápověda</translation>
+ </message>
+ <message>
+ <location line="-15"/>
+ <source>Edit</source>
+ <translation>Úpravy</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Toolbars</source>
+ <translation>Nástrojové pruhy</translation>
+ </message>
+ <message>
+ <location line="+465"/>
+ <source>Save Forms?</source>
+ <translation>Uložit formuláře?</translation>
+ </message>
+ <message>
+ <location line="-494"/>
+ <source>&amp;View</source>
+ <translation>&amp;Pohled</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Nastavení</translation>
+ </message>
+ <message>
+ <location line="+204"/>
+ <source>Widget Box</source>
+ <translation>Krabice s prvky</translation>
+ </message>
+ <message>
+ <location line="+292"/>
+ <source>If you do not review your documents, all your changes will be lost.</source>
+ <translation>Změny budou ztraceny, pokud se na formuláře ještě jednou nepodíváte.</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Discard Changes</source>
+ <translation>Zahodit změny</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Review Changes</source>
+ <translation>Podívat se na změny</translation>
+ </message>
+ <message>
+ <location line="+95"/>
+ <source>Backup Information</source>
+ <translation>Informace o ukládání na pozadí</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The last session of Designer was not terminated correctly. Backup files were left behind. Do you want to load them?</source>
+ <translation>Designer zřejmě nebyl řádně ukončen; existují soubory z ukládání na pozadí. Chcete je nahrát?</translation>
+ </message>
+ <message>
+ <location line="+111"/>
+ <source>The file &lt;b&gt;%1&lt;/b&gt; could not be opened.</source>
+ <translation>Soubor &lt;b&gt;%1&lt;/b&gt; se nepodařilo otevřít.</translation>
+ </message>
+ <message>
+ <location line="+46"/>
+ <source>The file &lt;b&gt;%1&lt;/b&gt; is not a valid Designer UI file.</source>
+ <translation>Soubor &lt;b&gt;%1&lt;/b&gt; není platným souborem rozhraní programu Designer.</translation>
+ </message>
+ <message numerus="yes">
+ <location line="-259"/>
+ <source>There are %n forms with unsaved changes. Do you want to review these changes before quitting?</source>
+ <translation>
+ <numerusform>Formulář byl změněn, ale změny nebyl uloženy. Chcete se na tyto změny podívat předtím, než program ukončíte?</numerusform>
+ <numerusform>%n formuláře byly změněny, ale změny nebyl uloženy. Chcete se na tyto změny podívat předtím, než program ukončíte?</numerusform>
+ <numerusform>%n formuláře byly změněny, ale změny nebyl uloženy. Chcete se na tyto změny podívat předtím, než program ukončíte?</numerusform>
+ </translation>
+ </message>
+</context>
+<context>
+ <name>QFormBuilder</name>
+ <message>
+ <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="+163"/>
+ <source>An empty class name was passed on to %1 (object name: &apos;%2&apos;).</source>
+ <extracomment>Empty class name passed to widget factory method</extracomment>
+ <translation>Postupu %1 byl předán prázdný název třídy (název předmětu &apos;%2&apos;).</translation>
+ </message>
+ <message>
+ <location line="+56"/>
+ <source>QFormBuilder was unable to create a custom widget of the class &apos;%1&apos;; defaulting to base class &apos;%2&apos;.</source>
+ <translation>QFormBuilderu se nepodařilo vytvořit uživatelsky stanovený prvek třídy &apos;%1&apos;; byl vytvořen prvek základní třídy &apos;%2&apos;.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>QFormBuilder was unable to create a widget of the class &apos;%1&apos;.</source>
+ <translation>QFormBuilderu se nepodařilo vytvořit předmět třídy &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location line="+61"/>
+ <source>The layout type `%1&apos; is not supported.</source>
+ <translation>Rozvržení typu `%1&apos; nejsou podporována.</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="+106"/>
+ <source>The set-type property %1 could not be read.</source>
+ <translation>Vlastnost %1 se nepodařilo přečíst (typ: množství).</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>The enumeration-type property %1 could not be read.</source>
+ <translation>Vlastnost %1 se nepodařilo přečíst (typ: výčet).</translation>
+ </message>
+ <message>
+ <location line="+190"/>
+ <source>Reading properties of the type %1 is not supported yet.</source>
+ <translation>Čtení vlastností typu %1 není podporováno.</translation>
+ </message>
+ <message>
+ <location line="+266"/>
+ <source>The property %1 could not be written. The type %2 is not supported yet.</source>
+ <translation>Vlastnost %1 se nepodařilo zapsat, protože typ %2 není podporován.</translation>
+ </message>
+</context>
+<context>
+ <name>QStackedWidgetEventFilter</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="+194"/>
+ <source>Previous Page</source>
+ <translation>Předchozí strana</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Next Page</source>
+ <translation>Další strana</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Delete</source>
+ <translation>Smazat</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Before Current Page</source>
+ <translation>Před nynější stranu</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>After Current Page</source>
+ <translation>Po nynější straně</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change Page Order...</source>
+ <translation>Změnit pořadí stran...</translation>
+ </message>
+ <message>
+ <location line="+72"/>
+ <source>Change Page Order</source>
+ <translation>Změnit pořadí stran</translation>
+ </message>
+ <message>
+ <location line="+49"/>
+ <source>Page %1 of %2</source>
+ <translation>Strana %1 z %2</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <location line="+4"/>
+ <source>Insert Page</source>
+ <translation>Vložit stranu</translation>
+ </message>
+</context>
+<context>
+ <name>QStackedWidgetPreviewEventFilter</name>
+ <message>
+ <location line="-153"/>
+ <source>Go to previous page of %1 &apos;%2&apos; (%3/%4).</source>
+ <translation>Jít na předchozí stranu %1 &apos;%2&apos; (%3/%4).</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Go to next page of %1 &apos;%2&apos; (%3/%4).</source>
+ <translation>Jít na další stranu %1 &apos;%2&apos; (%3/%4).</translation>
+ </message>
+</context>
+<context>
+ <name>QTabWidgetEventFilter</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="+89"/>
+ <source>Delete</source>
+ <translation>Smazat</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Before Current Page</source>
+ <translation>Před nynější stranu</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>After Current Page</source>
+ <translation>Po nynější straně</translation>
+ </message>
+ <message>
+ <location line="+283"/>
+ <source>Page %1 of %2</source>
+ <translation>Strana %1 z %2</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <location line="+4"/>
+ <source>Insert Page</source>
+ <translation>Vložit stranu</translation>
+ </message>
+</context>
+<context>
+ <name>QToolBoxHelper</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="+64"/>
+ <source>Delete Page</source>
+ <translation>Smazat stranu</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Before Current Page</source>
+ <translation>Před nynější stranu</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>After Current Page</source>
+ <translation>Po nynější straně</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change Page Order...</source>
+ <translation>Změnit pořadí stran...</translation>
+ </message>
+ <message>
+ <location line="+116"/>
+ <source>Change Page Order</source>
+ <translation>Změnit pořadí stran</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Page %1 of %2</source>
+ <translation>Strana %1 z %2</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Insert Page</source>
+ <translation>Vložit stranu</translation>
+ </message>
+</context>
+<context>
+ <name>QtBoolEdit</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+226"/>
+ <location line="+10"/>
+ <location line="+25"/>
+ <source>True</source>
+ <translation>Pravdivý</translation>
+ </message>
+ <message>
+ <location line="-25"/>
+ <location line="+25"/>
+ <source>False</source>
+ <translation>Nepravdivý</translation>
+ </message>
+</context>
+<context>
+ <name>QtBoolPropertyManager</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1469"/>
+ <source>True</source>
+ <translation>Pravdivý</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>False</source>
+ <translation>Nepravdivý</translation>
+ </message>
+</context>
+<context>
+ <name>QtCharEdit</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1581"/>
+ <source>Clear Char</source>
+ <translation>Smazat znak</translation>
+ </message>
+</context>
+<context>
+ <name>QtColorEditWidget</name>
+ <message>
+ <location line="+605"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+</context>
+<context>
+ <name>QtColorPropertyManager</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4743"/>
+ <source>Red</source>
+ <translation>Červená</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Green</source>
+ <translation>Zelená</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Blue</source>
+ <translation>Modrá</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Alpha</source>
+ <translation>Alfa</translation>
+ </message>
+</context>
+<context>
+ <name>QtCursorDatabase</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-206"/>
+ <source>Arrow</source>
+ <translation>Šipka</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Up Arrow</source>
+ <translation>Šipka nahoru</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Cross</source>
+ <translation>Křížící se čáry</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Wait</source>
+ <translation>Přesýpací hodiny</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>IBeam</source>
+ <translation>I trámec</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Size Vertical</source>
+ <translation>Zvětšit svisle</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Size Horizontal</source>
+ <translation>Zvětšit vodorovně</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Size Backslash</source>
+ <translation>Zvětšit zpětné/obrácené lomítko</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Size Slash</source>
+ <translation>Zvětšit lomítko</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Size All</source>
+ <translation>Zvětšit vše</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Blank</source>
+ <translation>Prázdný</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Split Vertical</source>
+ <translation>Rozdělit svisle</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Split Horizontal</source>
+ <translation>Rozdělit vodorovně</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Pointing Hand</source>
+ <translation>Ukazující ruka</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Forbidden</source>
+ <translation>Zakázáno</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Open Hand</source>
+ <translation>Otevřená ruka</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Closed Hand</source>
+ <translation>Zavřená ruka</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>What&apos;s This</source>
+ <translation>A co je toto</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Busy</source>
+ <translation>Zaneprázdněn</translation>
+ </message>
+</context>
+<context>
+ <name>QtFontEditWidget</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+198"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Select Font</source>
+ <translation>Vybrat písmo</translation>
+ </message>
+</context>
+<context>
+ <name>QtFontPropertyManager</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-351"/>
+ <source>Family</source>
+ <translation>Písmová rodina</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Point Size</source>
+ <translation>Bodová velikost</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Bold</source>
+ <translation>Tučné</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Italic</source>
+ <translation>Kurzíva</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Underline</source>
+ <translation>Podtržení</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Strikeout</source>
+ <translation>Přeškrtnuté</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Kerning</source>
+ <translation>Podřezávání</translation>
+ </message>
+</context>
+<context>
+ <name>QtGradientDialog</name>
+ <message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientdialog.ui"/>
+ <source>Edit Gradient</source>
+ <translation>Upravit přechod</translation>
+ </message>
+</context>
+<context>
+ <name>QtGradientEditor</name>
+ <message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+431"/>
+ <source>Start X</source>
+ <translation>Začáteční hodnota x</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Start Y</source>
+ <translation>Začáteční hodnota y</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Final X</source>
+ <translation>Koncová hodnota x</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Final Y</source>
+ <translation>Koncová hodnota y</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <location line="+24"/>
+ <source>Central X</source>
+ <translation>Střed x</translation>
+ </message>
+ <message>
+ <location line="-20"/>
+ <location line="+24"/>
+ <source>Central Y</source>
+ <translation>Střed y</translation>
+ </message>
+ <message>
+ <location line="-20"/>
+ <source>Focal X</source>
+ <translation>Ohnisko x</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Focal Y</source>
+ <translation>Ohnisko y</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Radius</source>
+ <translation>Poloměr</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Angle</source>
+ <translation>Úhel</translation>
+ </message>
+ <message>
+ <location line="+288"/>
+ <source>Linear</source>
+ <translation>Přímočarý</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Radial</source>
+ <translation>Paprskovitý</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Conical</source>
+ <translation>Kuželovitý</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Pad</source>
+ <translation>Doplnit</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Repeat</source>
+ <translation>Opakovat</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Reflect</source>
+ <translation>Zrcadlit</translation>
+ </message>
+ <message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui"/>
+ <source>Form</source>
+ <translation>Formulář</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Gradient Editor</source>
+ <translation>Úpravy přechodů</translation>
+ </message>
+ <message>
+ <location/>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+ <message>
+ <location/>
+ <source>2</source>
+ <translation>2</translation>
+ </message>
+ <message>
+ <location/>
+ <source>3</source>
+ <translation>3</translation>
+ </message>
+ <message>
+ <location/>
+ <source>4</source>
+ <translation>4</translation>
+ </message>
+ <message>
+ <location/>
+ <source>5</source>
+ <translation>5</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Gradient Stops Editor</source>
+ <translation>Editor bodů zastavení přechodu</translation>
+ </message>
+ <message>
+ <location/>
+ <source>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 &amp; drop the handle to reposition it. Use right mouse button to popup context menu with extra actions.</source>
+ <translation>Tato oblast slouží pro úpravy bodů zastavení přechodu. Dvakrát klepněte na orientační bod kvůli jeho zdvojení. Dvakrát klepněte na plochu kvůli vytvoření nového orientačního bodu. Použijte tažení &amp; upuštění pro posunutí bodu. Pravým tlačítkem myši se vyvolává nabídka s dalšími souvisejícími volbami.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Zoom</source>
+ <translation>Zvětšení</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Position</source>
+ <translation>Poloha</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Hue</source>
+ <translation>Barevný odstín</translation>
+ </message>
+ <message>
+ <location/>
+ <source>H</source>
+ <translation>H</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Saturation</source>
+ <translation>Sytost</translation>
+ </message>
+ <message>
+ <location/>
+ <source>S</source>
+ <translation>S</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Sat</source>
+ <translation>Sytost</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Value</source>
+ <translation>Hodnota</translation>
+ </message>
+ <message>
+ <location/>
+ <source>V</source>
+ <translation>V</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Val</source>
+ <translation>Hodnota</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Alpha</source>
+ <translation>Alfa</translation>
+ </message>
+ <message>
+ <location/>
+ <source>A</source>
+ <translation>A</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Type</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Spread</source>
+ <translation>Rozšiřování</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Color</source>
+ <translation>Barva</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Current stop&apos;s color</source>
+ <translation>Barva nynějšího zastavení</translation>
+ </message>
+ <message>
+ <location/>
+ <source>HSV</source>
+ <translation>HSV</translation>
+ </message>
+ <message>
+ <location/>
+ <source>RGB</source>
+ <translation>RGB</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Current stop&apos;s position</source>
+ <translation>Poloha nynějšího zastavení</translation>
+ </message>
+ <message>
+ <location/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Zoom In</source>
+ <translation>Přiblížit</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Zoom Out</source>
+ <translation>Oddálit</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toggle details extension</source>
+ <translation>Zařadit další volby</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&gt;</source>
+ <translation>&gt;</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Linear Type</source>
+ <translation>Přímočarý typ</translation>
+ </message>
+ <message>
+ <location/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Radial Type</source>
+ <translation>Paprskovitý typ</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Conical Type</source>
+ <translation>Kuželovitý typ</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Pad Spread</source>
+ <translation>Doplnit rozšiřování</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Repeat Spread</source>
+ <translation>Opakovat rozšiřování</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Reflect Spread</source>
+ <translation>Zrcadlit rozšiřování</translation>
+ </message>
+ <message>
+ <location/>
+ <source>This area shows a preview of the gradient being edited. It also allows you to edit parameters specific to the gradient&apos;s type such as start and final point, radius, etc. by drag &amp; drop.</source>
+ <translation>tato oblast ukazuje náhled právě upravovaného přechodu. Zde můžete upravovat proměnné příznačné pro přechod, jako začáteční a koncový bod, poloměr etd. pomocí tažení a pouštění.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Show HSV specification</source>
+ <translation>Ukázat přesné vymezení HSV</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Show RGB specification</source>
+ <translation>Ukázat přesné vymezení RGB</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Reset Zoom</source>
+ <translation>Nastavit znovu zvětšení</translation>
+ </message>
+</context>
+<context>
+ <name>QtGradientStopsWidget</name>
+ <message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+947"/>
+ <source>New Stop</source>
+ <translation>Nové zastavení</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Delete</source>
+ <translation>Smazat</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Flip All</source>
+ <translation>Obrátit vše</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Select All</source>
+ <translation>Vybrat vše</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Zoom In</source>
+ <translation>Zvětšit</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Zoom Out</source>
+ <translation>Zmenšit</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Reset Zoom</source>
+ <translation>Nastavit znovu zvětšení</translation>
+ </message>
+</context>
+<context>
+ <name>QtGradientView</name>
+ <message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+107"/>
+ <source>Grad</source>
+ <translation>Přechod</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Remove Gradient</source>
+ <translation>Odstranit přechod</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Are you sure you want to remove the selected gradient?</source>
+ <translation>Opravdu chcete odstranit vybraný přechod?</translation>
+ </message>
+ <message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+74"/>
+ <source>New...</source>
+ <translation>Nový...</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
+ <source>Edit...</source>
+ <translation>Upravit...</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
+ <source>Rename</source>
+ <translation>Přejmenovat</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
+ <source>Remove</source>
+ <translation>Odstranit</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Gradient View</source>
+ <translation>Pohled na přechod</translation>
+ </message>
+</context>
+<context>
+ <name>QtGradientViewDialog</name>
+ <message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui"/>
+ <source>Select Gradient</source>
+ <translation>Vybrat přechod</translation>
+ </message>
+</context>
+<context>
+ <name>QtKeySequenceEdit</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+221"/>
+ <source>Clear Shortcut</source>
+ <translation>Smazat klávesové zkratky</translation>
+ </message>
+</context>
+<context>
+ <name>QtLocalePropertyManager</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-3541"/>
+ <source>%1, %2</source>
+ <translation>%1, %2</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>Language</source>
+ <translation>Jazyk</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Country</source>
+ <translation>Země</translation>
+ </message>
+</context>
+<context>
+ <name>QtPointFPropertyManager</name>
+ <message>
+ <location line="+411"/>
+ <source>(%1, %2)</source>
+ <translation>(%1, %2)</translation>
+ </message>
+ <message>
+ <location line="+71"/>
+ <source>X</source>
+ <translation>X</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Y</source>
+ <translation>Y</translation>
+ </message>
+</context>
+<context>
+ <name>QtPointPropertyManager</name>
+ <message>
+ <location line="-320"/>
+ <source>(%1, %2)</source>
+ <translation>(%1, %2)</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>X</source>
+ <translation>X</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Y</source>
+ <translation>Y</translation>
+ </message>
+</context>
+<context>
+ <name>QtPropertyBrowserUtils</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-136"/>
+ <source>[%1, %2, %3] (%4)</source>
+ <translation>[%1, %2, %3] (%4)</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>[%1, %2]</source>
+ <translation>[%1, %2]</translation>
+ </message>
+</context>
+<context>
+ <name>QtRectFPropertyManager</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1706"/>
+ <source>[(%1, %2), %3 x %4]</source>
+ <translation>[(%1, %2), %3 x %4]</translation>
+ </message>
+ <message>
+ <location line="+156"/>
+ <source>X</source>
+ <translation>X</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Y</source>
+ <translation>Y</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Width</source>
+ <translation>Šířka</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Height</source>
+ <translation>Výška</translation>
+ </message>
+</context>
+<context>
+ <name>QtRectPropertyManager</name>
+ <message>
+ <location line="-612"/>
+ <source>[(%1, %2), %3 x %4]</source>
+ <translation>[(%1, %2), %3 x %4]</translation>
+ </message>
+ <message>
+ <location line="+120"/>
+ <source>X</source>
+ <translation>X</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Y</source>
+ <translation>Y</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Width</source>
+ <translation>Šířka</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Height</source>
+ <translation>Výška</translation>
+ </message>
+</context>
+<context>
+ <name>QtResourceEditorDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="+1961"/>
+ <source>Edit Resources</source>
+ <translation>Upravit zdroje</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>New...</source>
+ <translation>Nový...</translation>
+ </message>
+ <message>
+ <location line="-565"/>
+ <location line="+566"/>
+ <source>New Resource File</source>
+ <translation>Nový zdrojový soubor</translation>
+ </message>
+ <message>
+ <location line="-413"/>
+ <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; The file&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;is outside of the current resource file&apos;s parent directory.&lt;/p&gt;</source>
+ <translation>&lt;p&gt;&lt;b&gt;Upozornění:&lt;/b&gt;&lt;p&gt;Zvolený soubor: &lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;se nachází mimo adresář se nynějším zdrojovým souborem:&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>&lt;p&gt;To resolve the issue, press:&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Copy&lt;/th&gt;&lt;td&gt;to copy the file to the resource file&apos;s parent directory.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Copy As...&lt;/th&gt;&lt;td&gt;to copy the file into a subdirectory of the resource file&apos;s parent directory.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Keep&lt;/th&gt;&lt;td&gt;to use its current location.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+ <translation>&lt;p&gt;Zvolte, prosím:&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Kopírovat&lt;/th&gt;&lt;td&gt;pro zkopírování souboru do adresáře se zdrojovým souborem.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Kopírovat jako...&lt;/th&gt;&lt;td&gt;pro zkopírování souboru do podadresáře se zdrojovým souborem.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Zachovat&lt;/th&gt;&lt;td&gt;, aby se soubor používal ve svém nynějším adresáři.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+ </message>
+ <message>
+ <location line="+288"/>
+ <source>Could not copy
+%1
+to
+%2</source>
+ <translation>Kopírování se nezdařilo:
+%1
+zu:
+%2</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>A parse error occurred at line %1, column %2 of %3:
+%4</source>
+ <translation>V souboru %3 se na řádku %1, v sloupci %2 vyskytla chyba:
+ %4</translation>
+ </message>
+ <message>
+ <location line="+83"/>
+ <source>Open...</source>
+ <translation>Otevřít...</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <location line="+11"/>
+ <source>Remove</source>
+ <translation>Odstranit</translation>
+ </message>
+ <message>
+ <location line="-10"/>
+ <location line="+11"/>
+ <source>Move Up</source>
+ <translation>Posunout nahoru</translation>
+ </message>
+ <message>
+ <location line="-10"/>
+ <location line="+11"/>
+ <source>Move Down</source>
+ <translation>Posunout dolů</translation>
+ </message>
+ <message>
+ <location line="-9"/>
+ <location line="+1"/>
+ <source>Add Prefix</source>
+ <translation>Přidat předponu</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Add Files...</source>
+ <translation>Přidat soubory...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change Prefix</source>
+ <translation>Změnit předponu</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change Language</source>
+ <translation>Změnit jazyk</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change Alias</source>
+ <translation>Změnit přezdívku</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Clone Prefix...</source>
+ <translation>Zdvojit předponu...</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>Prefix / Path</source>
+ <translation>Předpona/Cesta</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Language / Alias</source>
+ <translation>Jazyk/Přezdívka</translation>
+ </message>
+ <message>
+ <location line="+117"/>
+ <source>&lt;html&gt;&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; There have been problems while reloading the resources:&lt;/p&gt;&lt;pre&gt;%1&lt;/pre&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;p&gt;&lt;b&gt;Varování:&lt;/b&gt; Při opětovném nahrání souboru se vyskytly chyby:&lt;/p&gt;&lt;pre&gt;%1&lt;/pre&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Resource Warning</source>
+ <translation>Zdroje - Varování</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui"/>
+ <source>Dialog</source>
+ <translation>Dialog</translation>
+ </message>
+ <message>
+ <location/>
+ <source>New File</source>
+ <translation>Nový soubor</translation>
+ </message>
+ <message>
+ <location/>
+ <source>N</source>
+ <translation>N</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Remove File</source>
+ <translation>Odstranit soubor</translation>
+ </message>
+ <message>
+ <location/>
+ <source>R</source>
+ <translation>L</translation>
+ </message>
+ <message>
+ <location/>
+ <source>I</source>
+ <translation>I</translation>
+ </message>
+ <message>
+ <location/>
+ <source>New Resource</source>
+ <translation>Nový zdroj</translation>
+ </message>
+ <message>
+ <location/>
+ <source>A</source>
+ <translation>A</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Remove Resource or File</source>
+ <translation>Odstranit zdroj nebo soubor</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="-2091"/>
+ <source>%1 already exists.
+Do you want to replace it?</source>
+ <translation>Soubor %1 již existuje.
+Chcete jej nahradit?</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>The file does not appear to be a resource file; element &apos;%1&apos; was found where &apos;%2&apos; was expected.</source>
+ <translation>Soubor zřejmě není zdrojovým souborem; Na místě, kde byl očekáván prvek &apos;%2&apos; byl nalezen prvek &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location line="+902"/>
+ <source>%1 [read-only]</source>
+ <translation>%1 [pouze pro čtení]</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <location line="+198"/>
+ <source>%1 [missing]</source>
+ <translation>%1 [chybí]</translation>
+ </message>
+ <message>
+ <location line="-72"/>
+ <source>&lt;no prefix&gt;</source>
+ <translation>&lt;žádná předpona&gt;</translation>
+ </message>
+ <message>
+ <location line="+322"/>
+ <location line="+25"/>
+ <source>Resource files (*.qrc)</source>
+ <translation>Zdrojové soubory (*.qrc)</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>Import Resource File</source>
+ <translation>Zavést zdrojový soubor</translation>
+ </message>
+ <message>
+ <location line="+112"/>
+ <source>newPrefix</source>
+ <translation>nováPředpona</translation>
+ </message>
+ <message>
+ <location line="+49"/>
+ <source>Add Files</source>
+ <translation>Přidat soubory</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>Incorrect Path</source>
+ <translation>Nesprávný údaj o cestě</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+19"/>
+ <location line="+212"/>
+ <location line="+7"/>
+ <source>Copy</source>
+ <translation>Kopírovat</translation>
+ </message>
+ <message>
+ <location line="-236"/>
+ <source>Copy As...</source>
+ <translation>Kopírovat jako...</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Keep</source>
+ <translation>Zachovat</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Skip</source>
+ <translation>Přeskočit</translation>
+ </message>
+ <message>
+ <location line="+87"/>
+ <source>Clone Prefix</source>
+ <translation>Zdvojit předponu</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Enter the suffix which you want to add to the names of the cloned files.
+This could for example be a language extension like &quot;_de&quot;.</source>
+ <translation>Zadejte, prosím, příponu, kterou chcete přidat k názvům zdvojených souborů.
+Může to být například jazykové rozšíření &quot;_cs&quot;.</translation>
+ </message>
+ <message>
+ <location line="+113"/>
+ <location line="+4"/>
+ <source>Copy As</source>
+ <translation>Kopírovat jako</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&lt;p&gt;The selected file:&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;is outside of the current resource file&apos;s directory:&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;Please select another path within this directory.&lt;p&gt;</source>
+ <translation>&lt;p&gt;Vybraný soubor: &lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;se nachází mimo adresář se zdrojovým souborem:&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;Zvolte, prosím, jinou cestu, která je obsažena v tomto adresáři.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Could not overwrite %1.</source>
+ <translation>%1 se nepodařilo přepsat.</translation>
+ </message>
+ <message>
+ <location line="+54"/>
+ <source>Save Resource File</source>
+ <translation>Uložit zdrojový soubor</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Could not write %1: %2</source>
+ <translation>Soubor %1 se nepodařilo zapsat: %2</translation>
+ </message>
+ <message>
+ <location line="+71"/>
+ <source>Open Resource File</source>
+ <translation>Otevřít zdrojový soubor</translation>
+ </message>
+</context>
+<context>
+ <name>QtResourceView</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+566"/>
+ <source>Size: %1 x %2
+%3</source>
+ <translation>Velikost: %1 x %2
+%3</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Edit Resources...</source>
+ <translation>Upravit zdroje...</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Reload</source>
+ <translation>Nahrát znovu</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Copy Path</source>
+ <translation>Kopírovat cestu</translation>
+ </message>
+</context>
+<context>
+ <name>QtResourceViewDialog</name>
+ <message>
+ <location line="+250"/>
+ <source>Select Resource</source>
+ <translation>Vybrat zdroj</translation>
+ </message>
+</context>
+<context>
+ <name>QtSizeFPropertyManager</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-535"/>
+ <source>%1 x %2</source>
+ <translation>%1 x %2</translation>
+ </message>
+ <message>
+ <location line="+130"/>
+ <source>Width</source>
+ <translation>Šířka</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Height</source>
+ <translation>Výška</translation>
+ </message>
+</context>
+<context>
+ <name>QtSizePolicyPropertyManager</name>
+ <message>
+ <location line="+1709"/>
+ <location line="+1"/>
+ <source>&lt;Invalid&gt;</source>
+ <translation>&lt;Neplatný&gt;</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>[%1, %2, %3, %4]</source>
+ <translation>[%1, %2, %3, %4]</translation>
+ </message>
+ <message>
+ <location line="+45"/>
+ <source>Horizontal Policy</source>
+ <translation>Vodorovné nastavení</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Vertical Policy</source>
+ <translation>Svislé nastavení</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Horizontal Stretch</source>
+ <translation>Vodorovné protažení</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Vertical Stretch</source>
+ <translation>Svislé protažení</translation>
+ </message>
+</context>
+<context>
+ <name>QtSizePropertyManager</name>
+ <message>
+ <location line="-2286"/>
+ <source>%1 x %2</source>
+ <translation>%1 x %2</translation>
+ </message>
+ <message>
+ <location line="+96"/>
+ <source>Width</source>
+ <translation>Šířka</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Height</source>
+ <translation>Výška</translation>
+ </message>
+</context>
+<context>
+ <name>QtToolBarDialog</name>
+ <message>
+ <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1784"/>
+ <source>&lt; S E P A R A T O R &gt;</source>
+ <translation>&lt; O D D Ě L O V A Č &gt;</translation>
+ </message>
+ <message>
+ <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui"/>
+ <source>Customize Toolbars</source>
+ <translation>Přizpůsobit nástrojové pruhy</translation>
+ </message>
+ <message>
+ <location/>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Actions</source>
+ <translation>Činnosti</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toolbars</source>
+ <translation>Nástrojové pruhy</translation>
+ </message>
+ <message>
+ <location/>
+ <source>New</source>
+ <translation>Nový</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Remove</source>
+ <translation>Odstranit</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Rename</source>
+ <translation>Přejmenovat</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Up</source>
+ <translation>Nahoru</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&lt;-</source>
+ <translation>&lt;-</translation>
+ </message>
+ <message>
+ <location/>
+ <source>-&gt;</source>
+ <translation>-&gt;</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Down</source>
+ <translation>Dolů</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Current Toolbar Actions</source>
+ <translation>Činnosti současného nástrojového pruhu</translation>
+ </message>
+ <message>
+ <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="-544"/>
+ <source>Custom Toolbar</source>
+ <translation>Uživatelsky stanovené nástrojové pruhy</translation>
+ </message>
+ <message>
+ <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui"/>
+ <source>Add new toolbar</source>
+ <translation>Přidat nový nástrojový pruh</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Remove selected toolbar</source>
+ <translation>Odstranit vybraný nástrojový pruh</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Rename toolbar</source>
+ <translation>Přejmenovat nástrojový pruh</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move action up</source>
+ <translation>Posunout činnost nahoru</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Remove action from toolbar</source>
+ <translation>Odstranit činnost z nástrojového pruhu</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Add action to toolbar</source>
+ <translation>Přidat činnost do nástrojového pruhu</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move action down</source>
+ <translation>Posunout činnost dolů</translation>
+ </message>
+</context>
+<context>
+ <name>QtTreePropertyBrowser</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+442"/>
+ <source>Property</source>
+ <translation>Vlastnost</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Value</source>
+ <translation>Hodnota</translation>
+ </message>
+</context>
+<context>
+ <name>SaveFormAsTemplate</name>
+ <message>
+ <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+72"/>
+ <source>Add path...</source>
+ <translation>Přidat cestu...</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Template Exists</source>
+ <translation>Předloha již existuje</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A template with the name %1 already exists.
+Do you want overwrite the template?</source>
+ <translation>Již existuje předloha s názvem %1.
+Chcete tuto předlohu přepsat?</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Overwrite Template</source>
+ <translation>Přepsat předlohu</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Open Error</source>
+ <translation>Chyba při otevírání</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>There was an error opening template %1 for writing. Reason: %2</source>
+ <translation>Předlohu %1 se nepodařilo otevřít pro zápis. Důvod: %2</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Write Error</source>
+ <translation>Chyba při zápisu</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>There was an error writing the template %1 to disk. Reason: %2</source>
+ <translation>Předlohu %1 se nepodařilo zapsat do souboru na disku. Důvod: %2</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Pick a directory to save templates in</source>
+ <translation>Vyberte adresář pro ukládání předloh</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/designer/saveformastemplate.ui"/>
+ <source>Save Form As Template</source>
+ <translation>Uložit formulář jako předlohu</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Category:</source>
+ <translation>&amp;Skupina:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Name:</source>
+ <translation>&amp;Název:</translation>
+ </message>
+</context>
+<context>
+ <name>ScriptErrorDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+59"/>
+ <source>An error occurred while running the scripts for &quot;%1&quot;:
+</source>
+ <translation>Při provádění skriptu &quot;%1&quot; se vyskytly chyby:
+</translation>
+ </message>
+</context>
+<context>
+ <name>SelectSignalDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/selectsignaldialog.ui"/>
+ <source>Go to slot</source>
+ <translation>Jít na zdířku</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Select signal</source>
+ <translation>Vybrat signál</translation>
+ </message>
+ <message>
+ <location/>
+ <source>signal</source>
+ <translation>Signál</translation>
+ </message>
+ <message>
+ <location/>
+ <source>class</source>
+ <translation>Třída</translation>
+ </message>
+</context>
+<context>
+ <name>SignalSlotConnection</name>
+ <message>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="-358"/>
+ <source>SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4)</source>
+ <translation>VYSÍLAČ(%1), SIGNÁL(%2), PŘIJÍMAČ(%3), ZDÍŘKA(%4)</translation>
+ </message>
+</context>
+<context>
+ <name>SignalSlotDialogClass</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui"/>
+ <source>Signals and slots</source>
+ <translation>Signály a zdířky</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Slots</source>
+ <translation>Zdířky</translation>
+ </message>
+ <message>
+ <location/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Signals</source>
+ <translation>Signály</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Add</source>
+ <translation>Přidat</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Delete</source>
+ <translation>Smazat</translation>
+ </message>
+</context>
+<context>
+ <name>Spacer</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="+275"/>
+ <source>Horizontal Spacer &apos;%1&apos;, %2 x %3</source>
+ <translation>Vodorovný vymezovač &apos;%1&apos;, %2 x %3</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Vertical Spacer &apos;%1&apos;, %2 x %3</source>
+ <translation>Svislý vymezovač &apos;%1&apos;, %2 x %3</translation>
+ </message>
+</context>
+<context>
+ <name>TemplateOptionsPage</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="+156"/>
+ <source>Template Paths</source>
+ <extracomment>Tab in preferences dialog</extracomment>
+ <translation>Adresáře pro předlohy</translation>
+ </message>
+</context>
+<context>
+ <name>ToolBarManager</name>
+ <message>
+ <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+89"/>
+ <source>Configure Toolbars...</source>
+ <translation>Nastavit nástrojové pruhy...</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Window</source>
+ <translation>Okno</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Help</source>
+ <translation>Nápověda</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Style</source>
+ <translation>Styl</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Dock views</source>
+ <translation>Kotvící okno</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Toolbars</source>
+ <translation>Nástrojové pruhy</translation>
+ </message>
+</context>
+<context>
+ <name>VersionDialog</name>
+ <message>
+ <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+171"/>
+ <source>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;&lt;br/&gt;Version %2</source>
+ <translation>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;&lt;br/&gt;Verze %2</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Qt Designer</source>
+ <translation>Qt Designer</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&lt;br/&gt;Qt Designer is a graphical user interface designer for Qt applications.&lt;br/&gt;</source>
+ <translation>&lt;br/&gt;Qt Designer je obrazový návrhář uživatelského rozhraní pro programy Qt.&lt;br/&gt;</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>%1&lt;br/&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</source>
+ <translation>%1&lt;br/&gt;Autorské právo (C) 2009 Nokia Corporation a/nebo její dceřinná společnost(i).</translation>
+ </message>
+</context>
+<context>
+ <name>WidgetDataBase</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="+814"/>
+ <source>The file contains a custom widget &apos;%1&apos; whose base class (%2) differs from the current entry in the widget database (%3). The widget database is left unchanged.</source>
+ <translation>Soubor obsahuje uživatelsky stanovený prvek &apos;%1&apos;, jehož základní třída (%2) se neshoduje se současným záznamem v databázi prvků (%3). databáze prvků se nemění.</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ActionEditor</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+139"/>
+ <source>Actions</source>
+ <translation>Činnosti</translation>
+ </message>
+ <message>
+ <location line="-16"/>
+ <source>New...</source>
+ <translation>Nový...</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Delete</source>
+ <translation>Smazat</translation>
+ </message>
+ <message>
+ <location line="+313"/>
+ <source>New action</source>
+ <translation>Nová činnost</translation>
+ </message>
+ <message>
+ <location line="+98"/>
+ <source>Edit action</source>
+ <translation>Upravit činnost</translation>
+ </message>
+ <message>
+ <location line="-417"/>
+ <source>Edit...</source>
+ <translation>Upravit...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Go to slot...</source>
+ <translation>Jít na zdířku...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Copy</source>
+ <translation>Kopírovat</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Cut</source>
+ <translation>Vyjmout</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Paste</source>
+ <translation>Vložit</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Select all</source>
+ <translation>Vybrat vše</translation>
+ </message>
+ <message>
+ <location line="+62"/>
+ <source>Icon View</source>
+ <translation>Pohled s ikonami</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Detailed View</source>
+ <translation>Podrobný pohled</translation>
+ </message>
+ <message>
+ <location line="+413"/>
+ <source>Remove actions</source>
+ <translation>Odstranit činnosti</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Remove action &apos;%1&apos;</source>
+ <translation>Odstranit činnost &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+186"/>
+ <source>Used In</source>
+ <translation>Používaný v</translation>
+ </message>
+ <message>
+ <location line="-608"/>
+ <source>Configure Action Editor</source>
+ <translation>Nastavit editor činností</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ActionModel</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+95"/>
+ <source>Name</source>
+ <translation>Název</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Used</source>
+ <translation>Používaný</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Text</source>
+ <translation>Text</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Shortcut</source>
+ <translation>Klávesová zkratka</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Checkable</source>
+ <translation>Zaškrtnutelná</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>ToolTip</source>
+ <translation>Rada k nástroji</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::BrushManagerProxy</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+219"/>
+ <source>The element &apos;%1&apos; is missing the required attribute &apos;%2&apos;.</source>
+ <translation>U prvku &apos;%1&apos; chybí vyžadovaná vlastnost &apos;%2&apos;..</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Empty brush name encountered.</source>
+ <translation>Chybějící název u vymezení štětce.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>An unexpected element &apos;%1&apos; was encountered.</source>
+ <translation>Byl zjištěn neplatný prvek &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>An error occurred when reading the brush definition file &apos;%1&apos; at line line %2, column %3: %4</source>
+ <translation>Chyba při čtení souboru s vymezením štětce &apos;%1&apos; na řádku %2, sloupec %3: %4</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>An error occurred when reading the resource file &apos;%1&apos; at line %2, column %3: %4</source>
+ <translation>Chyba při čtení zdrojového souboru &apos;%1&apos; na řádku %2, sloupec %3: %4</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::BuddyEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+261"/>
+ <source>Add buddy</source>
+ <translation>Přidat kamaráda</translation>
+ </message>
+ <message>
+ <location line="+52"/>
+ <source>Remove buddies</source>
+ <translation>Odstranit kamarády</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+24"/>
+ <source>Remove %n buddies</source>
+ <translation>
+ <numerusform>Odstranit jednoho kamaráda</numerusform>
+ <numerusform>Odstranit %n kamarády</numerusform>
+ <numerusform>Odstranit %n kamarády</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location line="+51"/>
+ <source>Add %n buddies</source>
+ <translation>
+ <numerusform>Přidat jednoho kamaráda</numerusform>
+ <numerusform>Přidat %n kamarády</numerusform>
+ <numerusform>Přidat %n kamarády</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+47"/>
+ <source>Set automatically</source>
+ <translation>Nastavit automaticky</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::BuddyEditorPlugin</name>
+ <message>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+73"/>
+ <source>Edit Buddies</source>
+ <translation>Upravit kamarády</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::BuddyEditorTool</name>
+ <message>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+56"/>
+ <source>Edit Buddies</source>
+ <translation>Upravit kamarády</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ButtonGroupMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+7"/>
+ <source>Select members</source>
+ <translation>Vybrat členy</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Break</source>
+ <translation>Zrušit</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ButtonTaskMenu</name>
+ <message>
+ <location line="+121"/>
+ <source>Assign to button group</source>
+ <translation>Přiřadit ke skupině tlačítek</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Button group</source>
+ <translation>Skupina tlačítek</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>New button group</source>
+ <translation>Nová skupina tlačítek</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change text...</source>
+ <translation>Změnit text...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>None</source>
+ <translation>Žádný</translation>
+ </message>
+ <message>
+ <location line="+101"/>
+ <source>Button group &apos;%1&apos;</source>
+ <translation>Skupina tlačítek &apos;%1&apos;</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::CodeDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+95"/>
+ <source>Save...</source>
+ <translation>Uložit...</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Copy All</source>
+ <translation>Kopírovat vše</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Find in Text...</source>
+ <translation>&amp;Najít v textu...</translation>
+ </message>
+ <message>
+ <location line="+75"/>
+ <source>A temporary form file could not be created in %1.</source>
+ <translation>V adresáři %1 se nepodařilo vytvořit dočasný soubor s formulářem.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>The temporary form file %1 could not be written.</source>
+ <translation>Dočasný soubor s formulářem %1 se nepodařilo zapsat.</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>%1 - [Code]</source>
+ <translation>%1 - [Kód]</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Save Code</source>
+ <translation>Uložit kód</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Header Files (*.%1)</source>
+ <translation>Hlavičkové soubory (*.%1)</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>The file %1 could not be opened: %2</source>
+ <translation>Soubor %1 se nepodařilo otevřít: %2</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>The file %1 could not be written: %2</source>
+ <translation>Soubor %1 se nepodařilo zapsat: %2</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>%1 - Error</source>
+ <translation>%1 - Chyba</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ColorAction</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+246"/>
+ <source>Text Color</source>
+ <translation>Barva textu</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ComboBoxTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+68"/>
+ <source>Edit Items...</source>
+ <translation>Upravit záznamy...</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Change Combobox Contents</source>
+ <translation>Změnit obsah skupinové krabice</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::CommandLinkButtonTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+156"/>
+ <source>Change description...</source>
+ <translation>Změnit popis...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ConnectionEdit</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+1313"/>
+ <source>Select All</source>
+ <translation>Vybrat vše</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Delete</source>
+ <translation>Smazat</translation>
+ </message>
+ <message>
+ <location line="-5"/>
+ <source>Deselect All</source>
+ <translation>Zrušit výběr všeho</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ConnectionModel</name>
+ <message>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="-465"/>
+ <source>Sender</source>
+ <translation>Vysílač</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Signal</source>
+ <translation>Signál</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Receiver</source>
+ <translation>Přijímač</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Slot</source>
+ <translation>Zdířka</translation>
+ </message>
+ <message>
+ <location line="+90"/>
+ <source>&lt;sender&gt;</source>
+ <translation>&lt;Vysílač&gt;</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&lt;signal&gt;</source>
+ <translation>&lt;Signál&gt;</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&lt;receiver&gt;</source>
+ <translation>&lt;Přijímač&gt;</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&lt;slot&gt;</source>
+ <translation>&lt;Zdířka&gt;</translation>
+ </message>
+ <message>
+ <location line="+110"/>
+ <source>Signal and Slot Editor</source>
+ <translation>Editor signálů a zdířek</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>The connection already exists!&lt;br&gt;%1</source>
+ <translation>Toto spojení již existuje!&lt;br&gt;%1&lt;/br&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ContainerWidgetTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+107"/>
+ <source>Insert Page Before Current Page</source>
+ <translation>Vložit stranu před nynější stranu</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Insert Page After Current Page</source>
+ <translation>Vložit stranu po nynější straně</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Add Subwindow</source>
+ <translation>Přidat podokno</translation>
+ </message>
+ <message>
+ <location line="-40"/>
+ <source>Delete</source>
+ <translation>Smazat</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Insert</source>
+ <translation>Vložit</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>Subwindow</source>
+ <translation>Podokno</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Page</source>
+ <translation>Strana</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Page %1 of %2</source>
+ <translation>Strana %1 z %2</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::DPI_Chooser</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="+52"/>
+ <source> x </source>
+ <extracomment>DPI X/Y separator</extracomment>
+ <translation> x </translation>
+ </message>
+ <message>
+ <location line="-25"/>
+ <source>System (%1 x %2)</source>
+ <extracomment>System resolution</extracomment>
+ <translation>Systémové rozlišení (%1 x %2)</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>User defined</source>
+ <translation>Stanoveno uživatelem</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::DesignerPropertyManager</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+647"/>
+ <location line="+6"/>
+ <source>AlignLeft</source>
+ <translation>Zarovnat k levému okraji</translation>
+ </message>
+ <message>
+ <location line="-5"/>
+ <source>AlignHCenter</source>
+ <translation>Zarovnat vodorovně na střed</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>AlignRight</source>
+ <translation>Zarovnat k pravému okraji</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>AlignJustify</source>
+ <translation>Zarovnat do bloku</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>AlignTop</source>
+ <translation>Zarovnat k hornímu okraji</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <location line="+4"/>
+ <source>AlignVCenter</source>
+ <translation>Zarovnat svisle na střed</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>AlignBottom</source>
+ <translation>Zarovnat k dolnímu okraji</translation>
+ </message>
+ <message>
+ <location line="+565"/>
+ <source>%1, %2</source>
+ <translation>%1, %2</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+6"/>
+ <source>Customized (%n roles)</source>
+ <translation>
+ <numerusform>Přizpůsobeno (role)</numerusform>
+ <numerusform>Přizpůsobeno (%n role)</numerusform>
+ <numerusform>Přizpůsobeno (%n role)</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Inherited</source>
+ <translation>Zděděno</translation>
+ </message>
+ <message>
+ <location line="+566"/>
+ <source>Horizontal</source>
+ <translation>Vodorovný</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Vertical</source>
+ <translation>Svislý</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Normal Off</source>
+ <translation>Obvyklé, vypnuto</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Normal On</source>
+ <translation>Obvyklé, zapnuto</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Disabled Off</source>
+ <translation>Zakázáno, vypnuto</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Disabled On</source>
+ <translation>Zakázáno, zapnuto</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Active Off</source>
+ <translation>V činnosti, vypnuto</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Active On</source>
+ <translation>V činnosti, zapnuto</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Selected Off</source>
+ <translation>Vybráno, vypnuto</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Selected On</source>
+ <translation>Vybráno, zapnuto</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <location line="+21"/>
+ <source>translatable</source>
+ <translation>Překlad</translation>
+ </message>
+ <message>
+ <location line="-15"/>
+ <location line="+21"/>
+ <source>disambiguation</source>
+ <translation>Zabránění dvojznačnosti</translation>
+ </message>
+ <message>
+ <location line="-15"/>
+ <location line="+21"/>
+ <source>comment</source>
+ <translation>Poznámka</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::DeviceProfileDialog</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+63"/>
+ <source>Device Profiles (*.%1)</source>
+ <translation>Profily zařízení (*.%1)</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Default</source>
+ <translation>Výchozí</translation>
+ </message>
+ <message>
+ <location line="+67"/>
+ <source>Save Profile</source>
+ <translation>Uložit profil</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Save Profile - Error</source>
+ <translation>Chyba při ukládání profilu</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Unable to open the file &apos;%1&apos; for writing: %2</source>
+ <translation>Soubor &apos;%1&apos; se nepodařilo otevřít pro zápis: %2</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Unable to open the file &apos;%1&apos; for reading: %2</source>
+ <translation>Soubor &apos;%1&apos; se nepodařilo otevřít pro čtení: %2</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>&apos;%1&apos; is not a valid profile: %2</source>
+ <translation>&apos;%1&apos; není platným profilem: %2</translation>
+ </message>
+ <message>
+ <location line="-12"/>
+ <source>Open profile</source>
+ <translation>Otevřít profil</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+6"/>
+ <source>Open Profile - Error</source>
+ <translation>Chyba při otevírání profilu</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::Dialog</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui"/>
+ <source>Dialog</source>
+ <translation>Dialog</translation>
+ </message>
+ <message>
+ <location/>
+ <source>StringList</source>
+ <translation>Seznam řetězců znaků</translation>
+ </message>
+ <message>
+ <location/>
+ <source>New String</source>
+ <translation>Nový řetězec znaků</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;New</source>
+ <translation>&amp;Nový</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Delete String</source>
+ <translation>Smazat řetězec znaků</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Smazat</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Value:</source>
+ <translation>&amp;Hodnota:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move String Up</source>
+ <translation>Posunout řetězec znaků nahoru</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Up</source>
+ <translation>Nahoru</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move String Down</source>
+ <translation>Posunout řetězec znaků dolů</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Down</source>
+ <translation>Dolů</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::EmbeddedOptionsControl</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="-260"/>
+ <source>None</source>
+ <translation>Žádný</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Add a profile</source>
+ <translation>Přidat profil</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Edit the selected profile</source>
+ <translation>Upravit vybraný profil</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Delete the selected profile</source>
+ <translation>Smazat vybraný profil</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Add Profile</source>
+ <translation>Přidat profil</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>New profile</source>
+ <translation>Nový profil</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Edit Profile</source>
+ <translation>Upravit profil</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Delete Profile</source>
+ <translation>Smazat profil</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Would you like to delete the profile &apos;%1&apos;?</source>
+ <translation>Chcete smazat profil &apos;%1&apos;?</translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>Default</source>
+ <translation>Výchozí</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::FilterWidget</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+185"/>
+ <source>&lt;Filter&gt;</source>
+ <translation>&lt;FIltr&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::FormEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+190"/>
+ <source>Resource File Changed</source>
+ <translation>Zdrojový soubor byl změněn</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The file &quot;%1&quot; has changed outside Designer. Do you want to reload it?</source>
+ <translation>Zdrojový soubor &quot;%1&quot; byl změněn mimo program Designer. Chcete jej znovu nahrát?</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::FormLayoutMenu</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+24"/>
+ <source>Add form layout row...</source>
+ <translation>Přidat řádek s rozvržením formuláře...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::FormWindow</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1267"/>
+ <source>Edit contents</source>
+ <translation>Upravit obsah</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>F2</source>
+ <translation>F2</translation>
+ </message>
+ <message>
+ <location line="+841"/>
+ <source>Resize</source>
+ <translation>Změnit velikost</translation>
+ </message>
+ <message>
+ <location line="+218"/>
+ <location line="+15"/>
+ <source>Key Move</source>
+ <translation>Posunout s pomocí klávesnice</translation>
+ </message>
+ <message>
+ <location line="+276"/>
+ <source>Paste error</source>
+ <translation>Chyba při vložení</translation>
+ </message>
+ <message>
+ <location line="+445"/>
+ <source>Lay out</source>
+ <translation>Rozvržení</translation>
+ </message>
+ <message>
+ <location line="+493"/>
+ <location line="+55"/>
+ <source>Drop widget</source>
+ <translation>Vložit prvek</translation>
+ </message>
+ <message numerus="yes">
+ <location line="-1058"/>
+ <source>Paste %n action(s)</source>
+ <translation>
+ <numerusform>Vložit jednu činnost</numerusform>
+ <numerusform>Vložit %n činnosti</numerusform>
+ <numerusform>Vložit %n činnosti</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="-511"/>
+ <source>Insert widget &apos;%1&apos;</source>
+ <translation>Vložit prvek &apos;%1&apos;</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+513"/>
+ <source>Paste %n widget(s)</source>
+ <translation>
+ <numerusform>Vložit jeden prvek</numerusform>
+ <numerusform>Vložit %n prvky</numerusform>
+ <numerusform>Vložit %n prvky</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Paste (%1 widgets, %2 actions)</source>
+ <translation>Vložit (%1 prvky, %2 činnosti)</translation>
+ </message>
+ <message>
+ <location line="+56"/>
+ <source>Cannot paste widgets. Designer could not find a container without a layout to paste into.</source>
+ <translation>Prvky nelze vložit, protože se nepodařilo nalézt kontejner, který již nemá rozvržení.</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Break the layout of the container you want to paste into, select this container and then paste again.</source>
+ <translation>Zrušte, prosím, rozvržení kontejneru, do kterého chcete vkládat. Vyberte jej znovu a proveďte vložení znovu.</translation>
+ </message>
+ <message>
+ <location line="+408"/>
+ <source>Select Ancestor</source>
+ <translation>Vybrat nadřazený prvek</translation>
+ </message>
+ <message>
+ <location line="+576"/>
+ <source>A QMainWindow-based form does not contain a central widget.</source>
+ <translation>Formulář založený na QMainWindow neobsahuje ústřední prvek.</translation>
+ </message>
+ <message>
+ <location line="-797"/>
+ <source>Raise widgets</source>
+ <translation>Přenést prvky do popředí</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Lower widgets</source>
+ <translation>Přenést prvky do pozadí</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::FormWindowBase</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+393"/>
+ <source>Delete</source>
+ <translation>Smazat</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Delete &apos;%1&apos;</source>
+ <translation>Smazat &apos;%1&apos;</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::FormWindowManager</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+364"/>
+ <source>Cu&amp;t</source>
+ <translation>Vyj&amp;mout</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Cuts the selected widgets and puts them on the clipboard</source>
+ <translation>Vyjme vybrané prvky a odloží je do schránky</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Copy</source>
+ <translation>&amp;Kopírovat</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Copies the selected widgets to the clipboard</source>
+ <translation>Zkopíruje vybrané prvky do schránky</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Paste</source>
+ <translation>&amp;Vložit</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Pastes the clipboard&apos;s contents</source>
+ <translation>Vloží obsah schránky</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Smazat</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Deletes the selected widgets</source>
+ <translation>Smaže vybrané prvky</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Select &amp;All</source>
+ <translation>Vybrat &amp;vše</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Selects all widgets</source>
+ <translation>Vybere všechny prvky</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Bring to &amp;Front</source>
+ <translation>Přenést do &amp;popředí</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+1"/>
+ <source>Raises the selected widgets</source>
+ <translation>Přenese vybrané prvky do popředí</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Send to &amp;Back</source>
+ <translation>Přenést do po&amp;zadí</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+1"/>
+ <source>Lowers the selected widgets</source>
+ <translation>Přenese vybrané prvky do pozadí</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Adjust &amp;Size</source>
+ <translation>Přizpůsobit &amp;velikost</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Adjusts the size of the selected widget</source>
+ <translation>Spočítá velikost vybraného prvku z rozvržení a přizpůsobí velikost prvku</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Lay Out &amp;Horizontally</source>
+ <translation>Uspořádat předměty &amp;vodorovně</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Lays out the selected widgets horizontally</source>
+ <translation>Uspořádá vybrané předměty vodorovně</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Lay Out &amp;Vertically</source>
+ <translation>Uspořádat předměty &amp;svisle</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Lays out the selected widgets vertically</source>
+ <translation>Uspořádá vybrané předměty svisle</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Lay Out in a &amp;Grid</source>
+ <translation>Uspořádat předměty &amp;tabulkově</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Lays out the selected widgets in a grid</source>
+ <translation>Uspořádá vybrané předměty tabulkově</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Lay Out Horizontally in S&amp;plitter</source>
+ <translation>Uspořádat předměty vodorovně okolo &amp;dělící příčky</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Lays out the selected widgets horizontally in a splitter</source>
+ <translation>Uspořádá vybrané předměty vodorovně okolo dělící příčky</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Lay Out Vertically in Sp&amp;litter</source>
+ <translation>Uspořádat předměty svisle okolo dě&amp;lící příčky</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Lays out the selected widgets vertically in a splitter</source>
+ <translation>Uspořádá vybrané předměty svisle okolo dělící příčky</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>&amp;Break Layout</source>
+ <translation>&amp;Zrušit rozvržení</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Breaks the selected layout</source>
+ <translation>Zruší vybrané rozvržení</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>&amp;Preview...</source>
+ <translation>&amp;Náhled...</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Preview current form</source>
+ <translation>Náhled nynějšího formuláře</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Form &amp;Settings...</source>
+ <translation>&amp;Nastavení formuláře...</translation>
+ </message>
+ <message>
+ <location line="+92"/>
+ <source>Break Layout</source>
+ <translation>Zrušit rozvržení</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Adjust Size</source>
+ <translation>Přizpůsobit velikost</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>Could not create form preview</source>
+ <comment>Title of warning message box</comment>
+ <translation>Nepodařilo se vytvořit náhled formuláře</translation>
+ </message>
+ <message>
+ <location line="+341"/>
+ <source>Form Settings - %1</source>
+ <translation>Nastavení formuláře - %1</translation>
+ </message>
+ <message>
+ <location line="-525"/>
+ <source>Removes empty columns and rows</source>
+ <translation>Odstraní prázdné řádky a sloupce</translation>
+ </message>
+ <message>
+ <location line="-50"/>
+ <source>Lay Out in a &amp;Form Layout</source>
+ <translation>Uspořádat předměty v &amp;rozvržení formuláře</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Lays out the selected widgets in a form layout</source>
+ <translation>Uspořádá vybrané předměty v dvousloupcovém rozvržení formuláře</translation>
+ </message>
+ <message>
+ <location line="+45"/>
+ <source>Si&amp;mplify Grid Layout</source>
+ <translation>Z&amp;jednodušit tabulkové rozvržení</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::FormWindowSettings</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+193"/>
+ <source>None</source>
+ <translation>Žádný</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Device Profile: %1</source>
+ <translation>Profil zařízení: %1</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::GridPanel</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/gridpanel.ui"/>
+ <source>Visible</source>
+ <translation>Viditelný</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Snap</source>
+ <translation>Zapadnout</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Reset</source>
+ <translation>Nastavit znovu</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Form</source>
+ <translation>Formulář</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Grid</source>
+ <translation>Mřížka</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Grid &amp;X</source>
+ <translation>Mřížka &amp;x</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Grid &amp;Y</source>
+ <translation>Mřížka &amp;y</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::GroupBoxTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+82"/>
+ <source>Change title...</source>
+ <translation>Změnit název...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::HtmlTextEdit</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="-58"/>
+ <source>Insert HTML entity</source>
+ <translation>Vložit HTML znak</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::IconSelector</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-24"/>
+ <source>The pixmap file &apos;%1&apos; cannot be read.</source>
+ <translation>Soubor s pixmapou &apos;%1&apos; nelze přečíst.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>The file &apos;%1&apos; does not appear to be a valid pixmap file: %2</source>
+ <translation>Soubor &apos;%1&apos; není platným souborem s pixmapou: %2</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>The file &apos;%1&apos; could not be read: %2</source>
+ <translation>Soubor %1 se nepodařilo přečít: %2</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>Pixmap Read Error</source>
+ <translation>Chyba při čtení pixmapy</translation>
+ </message>
+ <message>
+ <location line="+54"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Normal Off</source>
+ <translation>Obvyklé, vypnuto</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Normal On</source>
+ <translation>Obvyklé, zapnuto</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Disabled Off</source>
+ <translation>Zakázáno, vypnuto</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Disabled On</source>
+ <translation>Zakázáno, zapnuto</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Active Off</source>
+ <translation>V činnosti, vypnuto</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Active On</source>
+ <translation>V činnosti, zapnuto</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Selected Off</source>
+ <translation>Vybráno, vypnuto</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Selected On</source>
+ <translation>Vybráno, zapnuto</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Choose Resource...</source>
+ <translation>Vybrat zdroj...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Choose File...</source>
+ <translation>Vybrat soubor...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Reset</source>
+ <translation>Nastavit znovu</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Reset All</source>
+ <translation>Nastavit znovu vše</translation>
+ </message>
+ <message>
+ <location line="-85"/>
+ <source>Choose a Pixmap</source>
+ <translation>Vybrat pixmapu</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ItemListEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+358"/>
+ <source>Properties &amp;&lt;&lt;</source>
+ <translation>Vlastnosti &amp;&lt;&lt;</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui"/>
+ <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+2"/>
+ <source>Properties &amp;&gt;&gt;</source>
+ <translation>Vlastnosti &amp;&gt;&gt;</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Items List</source>
+ <translation>Seznam prvků</translation>
+ </message>
+ <message>
+ <location/>
+ <source>New Item</source>
+ <translation>Nový prvek</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;New</source>
+ <translation>&amp;Nový</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Delete Item</source>
+ <translation>Smazat prvek</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Smazat</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move Item Up</source>
+ <translation>Posunout prvek nahoru</translation>
+ </message>
+ <message>
+ <location/>
+ <source>U</source>
+ <translation>U</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move Item Down</source>
+ <translation>Posunout prvek dolů</translation>
+ </message>
+ <message>
+ <location/>
+ <source>D</source>
+ <translation>D</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::LabelTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="+85"/>
+ <source>Change rich text...</source>
+ <translation>Změnit upravovatelný text...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change plain text...</source>
+ <translation>Změnit prostý text...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::LanguageResourceDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-258"/>
+ <source>Choose Resource</source>
+ <translation>Vybrat zdroj</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::LineEditTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+80"/>
+ <source>Change text...</source>
+ <translation>Změnit text...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ListWidgetEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+101"/>
+ <source>Edit List Widget</source>
+ <translation>Upravit seznam prvků</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Edit Combobox</source>
+ <translation>Upravit skupinovou krabici</translation>
+ </message>
+ <message>
+ <location line="-51"/>
+ <source>New Item</source>
+ <translation>Nový prvek</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ListWidgetTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+67"/>
+ <source>Edit Items...</source>
+ <translation>Upravit prvky...</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Change List Contents</source>
+ <translation>Změnit obsah seznamu</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::MdiContainerWidgetTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+118"/>
+ <source>Next Subwindow</source>
+ <translation>Další podokno</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Previous Subwindow</source>
+ <translation>Předchozí podokno</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Tile</source>
+ <translation>Uspořádat jedno vedle druhého</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Cascade</source>
+ <translation>Překrývat</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::MenuTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+56"/>
+ <source>Remove</source>
+ <translation>Odstranit</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::MorphMenu</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+264"/>
+ <source>Morph into</source>
+ <translation>Přeměnit prvek na</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::NewActionDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/newactiondialog.ui"/>
+ <source>New Action...</source>
+ <translation>Nová činnost...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Text:</source>
+ <translation>&amp;Text:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Shortcut:</source>
+ <translation>Klávesová zkratka:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Checkable:</source>
+ <translation>Zaškrtnutelná:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>ToolTip:</source>
+ <translation>Rada k nástroji:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Icon:</source>
+ <translation>&amp;Ikona:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Object &amp;name:</source>
+ <translation>&amp;Název předmětu:</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::NewDynamicPropertyDialog</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+134"/>
+ <source>Set Property Name</source>
+ <translation>Nastavit název vlastnosti</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>The current object already has a property named &apos;%1&apos;.
+Please select another, unique one.</source>
+ <translation>nynější předmět již má vlastnost s názvem &apos;%1&apos;.
+Zvolte, prosím, jiný, jedinečný název.</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui"/>
+ <source>Create Dynamic Property</source>
+ <translation>Vytvořit dynamickou vlastnost</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Property Name</source>
+ <translation>Název vlastnosti</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Property Type</source>
+ <translation>typ vlastnosti</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+4"/>
+ <source>The &apos;_q_&apos; prefix is reserved for the Qt library.
+Please select another name.</source>
+ <translation>Předpona &apos;_q_&apos; je používána knihovnou Qt pro vnitřní účely.
+Zvolte, prosím, jiný název.</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui"/>
+ <source>horizontalSpacer</source>
+ <translation>Vodorovný vymezovač</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::NewFormWidget</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+104"/>
+ <source>Default size</source>
+ <translation>Výchozí velikost</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>QVGA portrait (240x320)</source>
+ <translation>QVGA formát na výšku (240x320)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>QVGA landscape (320x240)</source>
+ <translation>QVGA formát na šířku (320x240)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>VGA portrait (480x640)</source>
+ <translation>VGA formát na výšku (480x640)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>VGA landscape (640x480)</source>
+ <translation>VGA formát na šířku (640x480)</translation>
+ </message>
+ <message>
+ <location line="+66"/>
+ <source>Widgets</source>
+ <extracomment>New Form Dialog Categories</extracomment>
+ <translation>Prvky</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Custom Widgets</source>
+ <translation>Uživatelsky stanovené prvky</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>None</source>
+ <translation>Žádný</translation>
+ </message>
+ <message>
+ <location line="+57"/>
+ <source>Error loading form</source>
+ <translation>Formulář se nepodařilo nahrát</translation>
+ </message>
+ <message>
+ <location line="+244"/>
+ <source>Unable to open the form template file &apos;%1&apos;: %2</source>
+ <translation>Nepodařilo se otevřít předlohu s formulářem &apos;%1&apos;: %2</translation>
+ </message>
+ <message>
+ <location line="+67"/>
+ <source>Internal error: No template selected.</source>
+ <translation>Vnitřní chyba: Není vybrána žádná předloha.</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/newformwidget.ui"/>
+ <source>0</source>
+ <translation>0</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Choose a template for a preview</source>
+ <translation>Vyberte předlohu pro náhled</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Embedded Design</source>
+ <translation>Vložený návrh</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Device:</source>
+ <translation>Zařízení:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Screen Size:</source>
+ <translation>Velikost obrazovky:</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::NewPromotedClassPanel</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+92"/>
+ <source>Add</source>
+ <translation>Přidat</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>New Promoted Class</source>
+ <translation>Nová uživatelsky stanovená třída</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Base class name:</source>
+ <translation>Název základní třídy:</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Promoted class name:</source>
+ <translation>Název uživatelsky stanovené třídy:</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Header file:</source>
+ <translation>Hlavičkový soubor:</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Global include</source>
+ <translation>Celkový hlavičkový soubor</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Reset</source>
+ <translation>Nastavit znovu</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ObjectInspector</name>
+ <message>
+ <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+316"/>
+ <source>Change Current Page</source>
+ <translation>Změnit nynější stranu</translation>
+ </message>
+ <message>
+ <location line="+438"/>
+ <source>&amp;Find in Text...</source>
+ <translation>&amp;Najít v textu...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ObjectInspector::ObjectInspectorPrivate</name>
+ <message>
+ <source>Change Current Page</source>
+ <translation type="obsolete">Změnit nynější stranu</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::OrderDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+109"/>
+ <source>Index %1 (%2)</source>
+ <translation>Poloha %1 (%2)</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/orderdialog.ui"/>
+ <source>Change Page Order</source>
+ <translation>Změnit pořadí stran</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Page Order</source>
+ <translation>Pořadí stran</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move page up</source>
+ <translation>Posunout stranu nahoru</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move page down</source>
+ <translation>Posunout stranu dolů</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+3"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PaletteEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui"/>
+ <source>Edit Palette</source>
+ <translation>Upravit paletu</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Tune Palette</source>
+ <translation>Vyladit paletu</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Show Details</source>
+ <translation>Ukázat podrobnosti</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Compute Details</source>
+ <translation>Spočítat podrobnosti</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Quick</source>
+ <translation>Jednoduchý</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Preview</source>
+ <translation>Náhled</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Disabled</source>
+ <translation>Zakázáno</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Inactive</source>
+ <translation>Nečinný</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Active</source>
+ <translation>V činnosti</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PaletteEditorButton</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+57"/>
+ <source>Change Palette</source>
+ <translation>Změnit paletu</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PaletteModel</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+374"/>
+ <source>Color Role</source>
+ <translation>Barevné kolo</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Active</source>
+ <translation>V činnosti</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Inactive</source>
+ <translation>Nečinný</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Disabled</source>
+ <translation>Zakázáno</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PixmapEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-1539"/>
+ <source>Copy Path</source>
+ <translation>Kopírovat cestu</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Paste Path</source>
+ <translation>Vložit cestu</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>Choose Resource...</source>
+ <translation>Vybrat zdroj...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Choose File...</source>
+ <translation>Vybrat soubor...</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <location line="+16"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PlainTextEditorDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+65"/>
+ <source>Edit text</source>
+ <translation>Upravit text</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PluginDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="+72"/>
+ <source>Components</source>
+ <translation>Součásti</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Plugin Information</source>
+ <translation>Informace o přídavných modulech</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Refresh</source>
+ <translation>Obnovit</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Scan for newly installed custom widget plugins.</source>
+ <translation>Prohledat kvůli nově nainstalovaným přídavným modulům s uživatelsky stanovenými prvky.</translation>
+ </message>
+ <message>
+ <location line="+48"/>
+ <source>Qt Designer couldn&apos;t find any plugins</source>
+ <translation>Programu Qt Designer se nepodařilo najít jakékoli přídavné moduly</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Qt Designer found the following plugins</source>
+ <translation>Programu Qt Designer se podařilo najít následující přídavné moduly</translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>New custom widget plugins have been found.</source>
+ <translation>Byly nalezeny nové přídavné moduly s uživatelsky stanovenými prvky.</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PreviewActionGroup</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+95"/>
+ <source>%1 Style</source>
+ <translation>%1-Styl</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PreviewConfigurationWidget</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+139"/>
+ <source>Default</source>
+ <translation>Výchozí</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>None</source>
+ <translation>Žádný</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Browse...</source>
+ <translation>Procházet...</translation>
+ </message>
+ <message>
+ <location line="+118"/>
+ <source>Load Custom Device Skin</source>
+ <translation>Nahrát uživatelsky stanovený vzhled zařízení</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>All QVFB Skins (*.%1)</source>
+ <translation>Všechny vzhledy QVFB (*.%1)</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>%1 - Duplicate Skin</source>
+ <translation>%1 - Zdvojit vzhled</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The skin &apos;%1&apos; already exists.</source>
+ <translation>Vzhled &apos;%1&apos; již existuje.</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>%1 - Error</source>
+ <translation>%1 - Chyba</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>%1 is not a valid skin directory:
+%2</source>
+ <translation>%1 není platným adresářem pro vzhled:
+%2</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate</name>
+ <message>
+ <source>Load Custom Device Skin</source>
+ <translation type="obsolete">Nahrát uživatelsky stanovený vzhled zařízení</translation>
+ </message>
+ <message>
+ <source>All QVFB Skins (*.%1)</source>
+ <translation type="obsolete">Všechny vzhledy QVFB (*.%1)</translation>
+ </message>
+ <message>
+ <source>%1 - Duplicate Skin</source>
+ <translation type="obsolete">%1 - Vzhled již existuje</translation>
+ </message>
+ <message>
+ <source>The skin &apos;%1&apos; already exists.</source>
+ <translation type="obsolete">Vzhled &apos;%1&apos; již existuje.</translation>
+ </message>
+ <message>
+ <source>%1 - Error</source>
+ <translation type="obsolete">%1 - Chyba</translation>
+ </message>
+ <message>
+ <source>%1 is not a valid skin directory:
+%2</source>
+ <translation type="obsolete">%1 není platným adresářem vzhledu:
+%2</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PreviewDeviceSkin</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+259"/>
+ <source>&amp;Portrait</source>
+ <translation>Formát na &amp;výšku</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Landscape (&amp;CCW)</source>
+ <extracomment>Rotate form preview counter-clockwise</extracomment>
+ <translation>Formát na šířku (&amp;proti směru otáčení hodinových ručiček)</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&amp;Landscape (CW)</source>
+ <extracomment>Rotate form preview clockwise</extracomment>
+ <translation>Formát na šířku (po směru &amp;otáčení hodinových ručiček)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Zavřít</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PreviewManager</name>
+ <message>
+ <location line="+426"/>
+ <source>%1 - [Preview]</source>
+ <translation>%1 - [Náhled]</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PreviewMdiArea</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/previewframe.cpp" line="+72"/>
+ <source>The moose in the noose
+ate the goose who was loose.</source>
+ <extracomment>Palette editor background</extracomment>
+ <translation>Los v chomoutu snědl husu,
+která byla volně puštěná.</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PreviewWidget</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui"/>
+ <source>Preview Window</source>
+ <translation>Náhledové okno</translation>
+ </message>
+ <message>
+ <location/>
+ <source>LineEdit</source>
+ <translation>Úprava čáry</translation>
+ </message>
+ <message>
+ <location/>
+ <source>ComboBox</source>
+ <translation>Skupinová krabice</translation>
+ </message>
+ <message>
+ <location/>
+ <source>PushButton</source>
+ <translation>Tlačítko na postrčení</translation>
+ </message>
+ <message>
+ <location/>
+ <source>ButtonGroup2</source>
+ <translation>Skupina tlačítek 2</translation>
+ </message>
+ <message>
+ <location/>
+ <source>CheckBox1</source>
+ <translation>Zaškrtnutelné políčko 1</translation>
+ </message>
+ <message>
+ <location/>
+ <source>CheckBox2</source>
+ <translation>Zaškrtnutelné políčko 2</translation>
+ </message>
+ <message>
+ <location/>
+ <source>ButtonGroup</source>
+ <translation>Skupina tlačítek</translation>
+ </message>
+ <message>
+ <location/>
+ <source>RadioButton1</source>
+ <translation>Rozhlasové tlačítko 1</translation>
+ </message>
+ <message>
+ <location/>
+ <source>RadioButton2</source>
+ <translation>Rozhlasové tlačítko 2</translation>
+ </message>
+ <message>
+ <location/>
+ <source>RadioButton3</source>
+ <translation>Rozhlasové tlačítko 3</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PromotionModel</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+17"/>
+ <source>Name</source>
+ <translation>Název</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Header file</source>
+ <translation>Hlavičkový soubor</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Global include</source>
+ <translation>Celkový hlavičkový soubor</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Usage</source>
+ <translation>Použití</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PromotionTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+85"/>
+ <source>Promoted widgets...</source>
+ <translation>Uživatelsky stanovené prvky...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Promote to ...</source>
+ <translation>Stanovit jako zástupný symbol pro uživatelsky stanovenou třídu...</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Promote to</source>
+ <translation>Stanovit jako zástupný symbol pro uživatelsky stanovenou třídu</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Demote to %1</source>
+ <translation>Odstranit zástupný symbol pro uživatelsky stanovenou třídu a přeměnit na %1</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>Change signals/slots...</source>
+ <translation>Změnit signály/zdířky...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PropertyEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+183"/>
+ <source>Add Dynamic Property...</source>
+ <translation>Přidat dynamickou vlastnost...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Remove Dynamic Property</source>
+ <translation>Odstranit dynamickou vlastnost</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Tree View</source>
+ <translation>Stromový pohled</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Drop Down Button View</source>
+ <translation>Podrobný pohled</translation>
+ </message>
+ <message>
+ <location line="+597"/>
+ <source>Object: %1
+Class: %2</source>
+ <translation>Předmět: %1
+Třída: %2</translation>
+ </message>
+ <message>
+ <location line="-600"/>
+ <source>Sorting</source>
+ <translation>Třídění</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Color Groups</source>
+ <translation>Barevné zdůraznění</translation>
+ </message>
+ <message>
+ <location line="+66"/>
+ <source>Configure Property Editor</source>
+ <translation>Nastavit editor vlastností</translation>
+ </message>
+ <message>
+ <location line="-14"/>
+ <source>String...</source>
+ <translation>Řetězec znaků...</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Bool...</source>
+ <translation>Booleánská hodnota...</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Other...</source>
+ <translation>Jiný typ...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PropertyLineEdit</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+88"/>
+ <source>Insert line break</source>
+ <translation>Vložit zalomení řádku</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::QDesignerPromotionDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+85"/>
+ <source>Promoted Widgets</source>
+ <translation>Zástupný symbol pro uživatelsky stanovené prvky</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Promoted Classes</source>
+ <translation>Zástupný symbol pro uživatelsky stanovené třídy</translation>
+ </message>
+ <message>
+ <location line="+60"/>
+ <source>Promote</source>
+ <translation>Používat</translation>
+ </message>
+ <message>
+ <location line="+169"/>
+ <source>%1 - Error</source>
+ <translation>%1 - Chyba</translation>
+ </message>
+ <message>
+ <location line="-17"/>
+ <source>Change signals/slots...</source>
+ <translation>Změnit signály/zdířky...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::QDesignerResource</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+277"/>
+ <source>Loading qrc file</source>
+ <translation>Nahrává se zdrojový soubor</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The specified qrc file &lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;/p&gt;&lt;p&gt;could not be found. Do you want to update the file location?&lt;/p&gt;</source>
+ <translation>Zadaný zdrojový soubor &lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;/p&gt;&lt;p&gt; se nepodařilo najít. Chcete zadat novou cestu k umístění souboru?&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>New location for %1</source>
+ <translation>Nové umístění %1</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Resource files (*.qrc)</source>
+ <translation>Zdrojové soubory (*.qrc)</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::QDesignerTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+68"/>
+ <source>Change objectName...</source>
+ <translation>Změnit název předmětu...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change toolTip...</source>
+ <translation>Změnit radu k nástroji...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change whatsThis...</source>
+ <translation>Změnit &quot;A co je toto&quot;...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change styleSheet...</source>
+ <translation>Změnit předlohový list...</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Create Menu Bar</source>
+ <translation>Vytvořit nabídkový pruh</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Add Tool Bar</source>
+ <translation>Přidat nástrojový pruh</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Create Status Bar</source>
+ <translation>Vytvořit stavový pruh</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Remove Status Bar</source>
+ <translation>Odstranit stavový pruh</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change script...</source>
+ <translation>Změnit skript...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change signals/slots...</source>
+ <translation>Změnit signály/zdířky...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Go to slot...</source>
+ <translation>Jít na zdířku...</translation>
+ </message>
+ <message>
+ <location line="+413"/>
+ <source>no signals available</source>
+ <translation>Nejsou dostupné žádné signály</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+67"/>
+ <source>Set size constraint on %n widget(s)</source>
+ <translation>
+ <numerusform>Nastavit omezení velikosti u jednoho prvku</numerusform>
+ <numerusform>Nastavit omezení velikosti u %n prvků</numerusform>
+ <numerusform>Nastavit omezení velikosti u %n prvků</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="-477"/>
+ <source>Size Constraints</source>
+ <translation>Omezení velikosti</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Set Minimum Width</source>
+ <translation>Nastavit nejmenší šířku</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Set Minimum Height</source>
+ <translation>Nastavit nejmenší výšku</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Set Minimum Size</source>
+ <translation>Nastavit nejmenší velikost</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Set Maximum Width</source>
+ <translation>Nastavit největší šířku</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Set Maximum Height</source>
+ <translation>Nastavit největší výšku</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Set Maximum Size</source>
+ <translation>Nastavit největší velikost</translation>
+ </message>
+ <message>
+ <location line="+235"/>
+ <source>Edit ToolTip</source>
+ <translation>Upravit radu k nástroji</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Edit WhatsThis</source>
+ <translation>Upravit &quot;A co je toto&quot;</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::QDesignerWidgetBox</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="+123"/>
+ <location line="+13"/>
+ <source>Unexpected element &lt;%1&gt;</source>
+ <translation>Neplatný prvek &lt;%1&gt;</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>A parse error occurred at line %1, column %2 of the XML code specified for the widget %3: %4
+%5</source>
+ <translation>Kód XML pro prvek %3 obsahuje chybu na řádku %1, sloupec %2:%4:
+%5</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>The XML code specified for the widget %1 does not contain any widget elements.
+%2</source>
+ <translation>Kód XML pro prvek %1 neobsahuje prvky.
+%2</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="+349"/>
+ <source>An error has been encountered at line %1 of %2: %3</source>
+ <translation>Chyba na řádku %1 z %2: %3</translation>
+ </message>
+ <message>
+ <location line="+139"/>
+ <source>Unexpected element &lt;%1&gt; encountered when parsing for &lt;widget&gt; or &lt;ui&gt;</source>
+ <translation>Na místě očekávaného &lt;prvek&gt;- nebo prvku &lt;ui&gt; byl nalezen &lt;%1&gt;</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Unexpected end of file encountered when parsing widgets.</source>
+ <translation>Při čtení nastavení krabice s prvky se vyskytl předčasný konec souboru.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>A widget element could not be found.</source>
+ <translation>Nepodařilo se najít prvek.</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::QtGradientStopsController</name>
+ <message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="+173"/>
+ <source>H</source>
+ <translation>H</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>S</source>
+ <translation>S</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>V</source>
+ <translation>V</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+4"/>
+ <source>Hue</source>
+ <translation>Barevný odstín</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>Sat</source>
+ <translation>Sytost</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Val</source>
+ <translation>Hodnota</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Saturation</source>
+ <translation>Sytost</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Value</source>
+ <translation>Hodnota</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>R</source>
+ <translation>R</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>G</source>
+ <translation>G</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B</source>
+ <translation>B</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Red</source>
+ <translation>Červená</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Green</source>
+ <translation>Zelená</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Blue</source>
+ <translation>Modrá</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::RichTextEditorDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+436"/>
+ <source>Edit text</source>
+ <translation>Upravit text</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>&amp;OK</source>
+ <translation>&amp;OK</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Zrušit</translation>
+ </message>
+ <message>
+ <location line="-9"/>
+ <source>Rich Text</source>
+ <translation>Upravovatelný text</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Source</source>
+ <translation>Zdroj</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::RichTextEditorToolBar</name>
+ <message>
+ <location line="-294"/>
+ <source>Bold</source>
+ <translation>Tučné</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>CTRL+B</source>
+ <translation>CTRL+F</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Italic</source>
+ <translation>Kurzíva</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>CTRL+I</source>
+ <translation>CTRL+K</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Underline</source>
+ <translation>Podtržení</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>CTRL+U</source>
+ <translation>CTRL+U</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Left Align</source>
+ <translation>Zarovnat k levému okraji</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Center</source>
+ <translation>Zarovnat na střed</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Right Align</source>
+ <translation>Zarovnat k pravému okraji</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Justify</source>
+ <translation>Zarovnat do bloku</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Superscript</source>
+ <translation>Horní index</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Subscript</source>
+ <translation>Dolní index</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Insert &amp;Link</source>
+ <translation>Vložit &amp;odkaz</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Insert &amp;Image</source>
+ <translation>Vložit &amp;obrázek</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ScriptDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+66"/>
+ <source>Edit script</source>
+ <translation>Upravit skript</translation>
+ </message>
+ <message>
+ <location line="+56"/>
+ <source>Syntax error</source>
+ <translation>Chyba ve skladbě</translation>
+ </message>
+ <message>
+ <location line="-51"/>
+ <source>&lt;html&gt;Enter a Qt Script snippet to be executed while loading the form.&lt;br&gt;The widget and its children are accessible via the variables &lt;i&gt;widget&lt;/i&gt; and &lt;i&gt;childWidgets&lt;/i&gt;, respectively.</source>
+ <translation>&lt;html&gt;Zadejte kousek Qt skriptu k provedení v průběhu nahrávání formuláře.&lt;br&gt;Prvek a jemu podřízené prvky jsou přístupné prostřednictvím proměnných &lt;i&gt;widget&lt;/i&gt; und &lt;i&gt;childWidgets&lt;/i&gt;.</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ScriptErrorDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+27"/>
+ <source>Script errors</source>
+ <translation>Chyby ve skriptu</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::SignalSlotDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+199"/>
+ <source>There is already a slot with the signature &apos;%1&apos;.</source>
+ <translation>Již existuje zdířka s podpisem &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>There is already a signal with the signature &apos;%1&apos;.</source>
+ <translation>Již existuje signál s podpisem &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>%1 - Duplicate Signature</source>
+ <translation>%1 - Podpis již existuje</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <location line="+76"/>
+ <source>Signals/Slots of %1</source>
+ <translation>Signály/Zdířky od %1</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::SignalSlotEditorPlugin</name>
+ <message>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="+72"/>
+ <source>Edit Signals/Slots</source>
+ <translation>Upravit signály/zdířky</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>F4</source>
+ <translation>F4</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::SignalSlotEditorTool</name>
+ <message>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="+58"/>
+ <source>Edit Signals/Slots</source>
+ <translation>Upravit signály/zdířky</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::StatusBarTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+81"/>
+ <source>Remove</source>
+ <translation>Odstranit</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::StringListEditorButton</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+56"/>
+ <source>Change String List</source>
+ <translation>Změnit seznamy s řetězci znaků</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::StyleSheetEditorDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+97"/>
+ <source>Edit Style Sheet</source>
+ <translation>Upravit předlohový list</translation>
+ </message>
+ <message>
+ <location line="-7"/>
+ <location line="+280"/>
+ <source>Valid Style Sheet</source>
+ <translation>Platný předlohový list</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Invalid Style Sheet</source>
+ <translation>Neplatný předlohový list</translation>
+ </message>
+ <message>
+ <location line="-281"/>
+ <source>Add Resource...</source>
+ <translation>Přidat zdroj...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Add Gradient...</source>
+ <translation>Přidat přechod...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Add Color...</source>
+ <translation>Přidat barvu...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Add Font...</source>
+ <translation>Přidat písmo...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TabOrderEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="+363"/>
+ <source>Start from Here</source>
+ <translation>Začít znovu odtud</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Restart</source>
+ <translation>Začít znovu</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Tab Order List...</source>
+ <translation>Seznam s pořadím tabulátorů...</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Tab Order List</source>
+ <translation>Seznam s pořadím tabulátorů</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Tab Order</source>
+ <translation>Pořadí tabulátorů</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TabOrderEditorPlugin</name>
+ <message>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="+73"/>
+ <source>Edit Tab Order</source>
+ <translation>Upravit pořadí tabulátorů</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TabOrderEditorTool</name>
+ <message>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="+57"/>
+ <source>Edit Tab Order</source>
+ <translation>Upravit pořadí tabulátorů</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TableWidgetEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+67"/>
+ <source>New Column</source>
+ <translation>Nový sloupec</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>New Row</source>
+ <translation>Nový řádek</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>&amp;Columns</source>
+ <translation>&amp;Sloupce</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Rows</source>
+ <translation>&amp;Řádky</translation>
+ </message>
+ <message>
+ <location line="+137"/>
+ <source>Properties &amp;&lt;&lt;</source>
+ <translation>Vlastnosti &amp;&lt;&lt;</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.ui"/>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+2"/>
+ <source>Properties &amp;&gt;&gt;</source>
+ <translation>Vlastnosti &amp;&gt;&gt;</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Edit Table Widget</source>
+ <translation>Upravit prvek s tabulkou</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Items</source>
+ <translation>&amp;Prvky</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Table Items</source>
+ <translation>Prvky tabulek</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TableWidgetTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+64"/>
+ <source>Edit Items...</source>
+ <translation>Upravit prvky...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TemplateOptionsWidget</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="-18"/>
+ <source>Pick a directory to save templates in</source>
+ <translation>Vyberte adresář pro ukládání předloh</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/templateoptionspage.ui"/>
+ <source>Form</source>
+ <translation>Formulář</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Additional Template Paths</source>
+ <translation>Dodatečné adresáře pro předlohy</translation>
+ </message>
+ <message>
+ <location/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TextEditTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+59"/>
+ <source>Change HTML...</source>
+ <translation>Změnit HTML...</translation>
+ </message>
+ <message>
+ <location line="-1"/>
+ <source>Edit HTML</source>
+ <translation>Upravit HTML</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Edit Text</source>
+ <translation>Upravit text</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change Plain Text...</source>
+ <translation>Změnit prostý text...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TextEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-204"/>
+ <source>Choose Resource...</source>
+ <translation>Vybrat zdroj...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Choose File...</source>
+ <translation>Vybrat soubor...</translation>
+ </message>
+ <message>
+ <location line="+123"/>
+ <source>Choose a File</source>
+ <translation>Vybrat soubor</translation>
+ </message>
+ <message>
+ <location line="-118"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ToolBarEventFilter</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+234"/>
+ <source>Insert Separator</source>
+ <translation>Vložit oddělovač</translation>
+ </message>
+ <message>
+ <location line="-65"/>
+ <source>Remove action &apos;%1&apos;</source>
+ <translation>Odstranit činnost &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Remove Toolbar &apos;%1&apos;</source>
+ <translation>Odstranit nástrojový pruh &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="-28"/>
+ <source>Insert Separator before &apos;%1&apos;</source>
+ <translation>Vložit oddělovač před &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Append Separator</source>
+ <translation>Připojit oddělovač</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TreeWidgetEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+76"/>
+ <source>&amp;Columns</source>
+ <translation>&amp;Sloupce</translation>
+ </message>
+ <message>
+ <location line="+69"/>
+ <source>Per column properties</source>
+ <translation>Vlastnosti sloupců</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Common properties</source>
+ <translation>Společné vlastnosti</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+53"/>
+ <source>New Item</source>
+ <translation>Nový prvek</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+194"/>
+ <source>Properties &amp;&lt;&lt;</source>
+ <translation>Vlastnosti &amp;&lt;&lt;</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+2"/>
+ <source>Properties &amp;&gt;&gt;</source>
+ <translation>Vlastnosti &amp;&gt;&gt;</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="-327"/>
+ <source>New Column</source>
+ <translation>Nový sloupec</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
+ <source>Edit Tree Widget</source>
+ <translation>Upravit stromový prvek</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Items</source>
+ <translation>&amp;Prvky</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Tree Items</source>
+ <translation>Stromové prvky</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+150"/>
+ <source>New Subitem</source>
+ <translation>Nový podřízený prvek</translation>
+ </message>
+ <message>
+ <location/>
+ <source>New &amp;Subitem</source>
+ <translation>Nový po&amp;dřízený prvek</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Delete Item</source>
+ <translation>Smazat prvek</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move Item Left (before Parent Item)</source>
+ <translation>Posunout prvek doleva (před nadřízený prvek)</translation>
+ </message>
+ <message>
+ <location/>
+ <source>L</source>
+ <translation>L</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move Item Right (as a First Subitem of the Next Sibling Item)</source>
+ <translation>Posunout prvek doprava (jako první podřízený prvek dalšího rovnocenného prvku)</translation>
+ </message>
+ <message>
+ <location/>
+ <source>R</source>
+ <translation>R</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move Item Up</source>
+ <translation>Posunout prvek nahoru</translation>
+ </message>
+ <message>
+ <location/>
+ <source>U</source>
+ <translation>U</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move Item Down</source>
+ <translation>Posunout prvek dolů</translation>
+ </message>
+ <message>
+ <location/>
+ <source>D</source>
+ <translation>D</translation>
+ </message>
+ <message>
+ <location/>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;New</source>
+ <translation>&amp;Nový</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Smazat</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TreeWidgetTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+63"/>
+ <source>Edit Items...</source>
+ <translation>Upravit prvky...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::WidgetBox</name>
+ <message>
+ <location filename="../tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp" line="+115"/>
+ <source>Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML.</source>
+ <translation>Upozornění: Vytvoření prvku v krabici s prvky se nezdařilo. Mohlo by to být zapříčiněno chybným XML kódem uživatelsky stanoveného prvku.</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::WidgetBoxTreeWidget</name>
+ <message>
+ <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="-268"/>
+ <source>Scratchpad</source>
+ <translation>Skladování</translation>
+ </message>
+ <message>
+ <location line="+370"/>
+ <source>Custom Widgets</source>
+ <translation>Uživatelsky stanovené prvky</translation>
+ </message>
+ <message>
+ <location line="+263"/>
+ <source>Expand all</source>
+ <translation>Rozdělat vše</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Collapse all</source>
+ <translation>Složit vše</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>List View</source>
+ <translation>Pohled se seznamem</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Icon View</source>
+ <translation>Pohled s ikonami</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Remove</source>
+ <translation>Odstranit</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Edit name</source>
+ <translation>Upravit název</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::WidgetDataBase</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="-411"/>
+ <source>A custom widget plugin whose class name (%1) matches that of an existing class has been found.</source>
+ <translation>Byl nalezen přídavný modul, který obsahuje uživatelsky stanovený prvek, jehož název pro třídu (%1) odpovídá stávající třídě.</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::WidgetEditorTool</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+67"/>
+ <source>Edit Widgets</source>
+ <translation>Upravit prvky</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::WidgetFactory</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="+263"/>
+ <source>The custom widget factory registered for widgets of class %1 returned 0.</source>
+ <translation>Závod pro uživatelsky stanovené prvky třídy %1 vrátil zpět 0.</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>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.</source>
+ <translation>Při vytváření prvku byly zjištěny odporující si názvy tříd: Závod pro uživatelsky stanovené prvky třídy %1 vrátil zpět prvek třídy %2.</translation>
+ </message>
+ <message>
+ <location line="+189"/>
+ <source>The current page of the container &apos;%1&apos; (%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.</source>
+ <translation>Při vytváření rozvržení se nepodařilo určit nynější stránku kontejneru &apos;%1&apos; (%2). To naznačuje jistou nesrovnalost v souboru s rozhraním; pravděpodobně bylo rozvržení postaveno přímo na prvku kontejneru.</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>Attempt to add a layout to a widget &apos;%1&apos; (%2) which already has an unmanaged layout of type %3.
+This indicates an inconsistency in the ui-file.</source>
+ <translation>Pokus o přidání rozvržení na prvek &apos;%1&apos; (%2), který již má nespravované rozvržení typu %3. To naznačuje jistou nesrovnalost v souboru s rozhraním.</translation>
+ </message>
+ <message>
+ <location line="+211"/>
+ <source>Cannot create style &apos;%1&apos;.</source>
+ <translation>Nepodařilo se vytvořit styl &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location line="-354"/>
+ <source>%1 Widget</source>
+ <translation>%1 prvek</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::WizardContainerWidgetTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="-49"/>
+ <source>Next</source>
+ <translation>Další</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Back</source>
+ <translation>Zpět</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ZoomMenu</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/zoomwidget.cpp" line="+84"/>
+ <source>%1 %</source>
+ <extracomment>Zoom factor</extracomment>
+ <translation>%1 %</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ZoomablePreviewDeviceSkin</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="-270"/>
+ <source>&amp;Zoom</source>
+ <translation>&amp;Zvětšit</translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/designer_hu.ts b/translations/designer_hu.ts
new file mode 100644
index 0000000..c2960bc
--- /dev/null
+++ b/translations/designer_hu.ts
@@ -0,0 +1,7023 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="hu">
+<context>
+ <name>AbstractFindWidget</name>
+ <message>
+ <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+127"/>
+ <source>&amp;Previous</source>
+ <translation>&amp;Előző</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>&amp;Next</source>
+ <translation>&amp;Következő</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>&amp;Case sensitive</source>
+ <translation>&amp;Kis ér nagybetű érzékeny</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Whole &amp;words</source>
+ <translation>Egész &amp;szavakat</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>&lt;img src=&quot;:/trolltech/shared/images/wrap.png&quot;&gt;&amp;nbsp;Search wrapped</source>
+ <translation>&lt;img src=&quot;:/trolltech/shared/images/wrap.png&quot;&gt;&amp;nbsp;Keresés tördelve</translation>
+ </message>
+</context>
+<context>
+ <name>AddLinkDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/addlinkdialog.ui" line="+5"/>
+ <source>Insert Link</source>
+ <translation>Link beszúrása</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Title:</source>
+ <translation>Cím:</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>URL:</source>
+ <translation>URL:</translation>
+ </message>
+</context>
+<context>
+ <name>AppFontDialog</name>
+ <message>
+ <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+418"/>
+ <source>Additional Fonts</source>
+ <translation>További betűl</translation>
+ </message>
+</context>
+<context>
+ <name>AppFontManager</name>
+ <message>
+ <location line="-267"/>
+ <source>&apos;%1&apos; is not a file.</source>
+ <translation>%1 nem egy fájl.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>The font file &apos;%1&apos; does not have read permissions.</source>
+ <translation>&apos;%1&apos; betű fájlnak nincsen olvasási engedélye.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>The font file &apos;%1&apos; is already loaded.</source>
+ <translation>&apos;%1&apos; font fájl már be van töltve.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>The font file &apos;%1&apos; could not be loaded.</source>
+ <translation>&apos;%1&apos; font fájlt nem sikerült betölteni.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>&apos;%1&apos; is not a valid font id.</source>
+ <translation>&apos;%1&apos; nem egy érvényes betű azonosító.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>There is no loaded font matching the id &apos;%1&apos;.</source>
+ <translation>Nincsen &apos;%1&apos; azonosítóval megegyező betöltött betű.</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>The font &apos;%1&apos; (%2) could not be unloaded.</source>
+ <translation>&apos;%1&apos; betűt (%2) nem lehetett kirakni.</translation>
+ </message>
+</context>
+<context>
+ <name>AppFontWidget</name>
+ <message>
+ <location line="+26"/>
+ <source>Fonts</source>
+ <translation>Betűk</translation>
+ </message>
+ <message>
+ <location line="+58"/>
+ <source>Add font files</source>
+ <translation>Betű fájlok hozzáadása</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Remove current font file</source>
+ <translation>Aktuális betű fájl eltávolítása</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Remove all font files</source>
+ <translation>Az összes betű fájl eltávolítása</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Add Font Files</source>
+ <translation>Betű fájlok hozzáadása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Font files (*.ttf)</source>
+ <translation>Betű fájlok (*.ttf)</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Error Adding Fonts</source>
+ <translation>Hiba történt a betűk hozzáadásakor</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>Error Removing Fonts</source>
+ <translation>Hiba történt a betűk eltávolításakor</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Remove Fonts</source>
+ <translation>Betűk eltávolítása</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Would you like to remove all fonts?</source>
+ <translation>El szeretné távolítani az összes betűt?</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceOptionsWidget</name>
+ <message>
+ <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.ui" line="+14"/>
+ <source>Form</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>User Interface Mode</source>
+ <translation>Felhasználói interfész mód</translation>
+ </message>
+</context>
+<context>
+ <name>AssistantClient</name>
+ <message>
+ <location filename="../tools/designer/src/designer/assistantclient.cpp" line="+100"/>
+ <source>Unable to send request: Assistant is not responding.</source>
+ <translation>Nem lehet elküldeni a kérést, az Assistant nem válaszol.</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>The binary &apos;%1&apos; does not exist.</source>
+ <translation>&apos;%1&apos; bináris nem létezik.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Unable to launch assistant (%1).</source>
+ <translation>Nem lehet elindítani a(z) %1 assistant.</translation>
+ </message>
+</context>
+<context>
+ <name>BrushPropertyManager</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+52"/>
+ <source>No brush</source>
+ <translation>Nincs kefe</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Solid</source>
+ <translation>Szolid</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Dense 1</source>
+ <translation>Sűrű 1</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Dense 2</source>
+ <translation>Sűrű 2</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Dense 3</source>
+ <translation>Sűrű 3</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Dense 4</source>
+ <translation>Sűrű 4</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Dense 5</source>
+ <translation>Sűrű 5</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Dense 6</source>
+ <translation>Sűrű 6</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Dense 7</source>
+ <translation>Sűrű 7</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Horizontal</source>
+ <translation>Horizontális</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Vertical</source>
+ <translation>Vertikális</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Cross</source>
+ <translation>Kereszt</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Backward diagonal</source>
+ <translation>Visszafele átlós</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Forward diagonal</source>
+ <translation>Előre átlós</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Crossing diagonal</source>
+ <translation>Kereszt átlós</translation>
+ </message>
+ <message>
+ <location line="+83"/>
+ <source>Style</source>
+ <translation>Stílus</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Color</source>
+ <translation>Szín</translation>
+ </message>
+ <message>
+ <location line="+105"/>
+ <source>[%1, %2]</source>
+ <translation>[%1, %2]</translation>
+ </message>
+</context>
+<context>
+ <name>Command</name>
+ <message>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+208"/>
+ <location line="+258"/>
+ <source>Change signal</source>
+ <translation>Jel változtatás</translation>
+ </message>
+ <message>
+ <location line="-256"/>
+ <location line="+268"/>
+ <source>Change slot</source>
+ <translation>Szlot változtatás</translation>
+ </message>
+ <message>
+ <location line="-220"/>
+ <source>Change signal-slot connection</source>
+ <translation>Jel szlot kapcsolat változtatása</translation>
+ </message>
+ <message>
+ <location line="+234"/>
+ <source>Change sender</source>
+ <translation>Küldő változtatás</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Change receiver</source>
+ <translation>Fogadó változtatás</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+221"/>
+ <source>Create button group</source>
+ <translation>Gomb csoport létrehozása</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Break button group</source>
+ <translation>Gomb csoport törése</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Break button group &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; gomb csoport törése</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Add buttons to group</source>
+ <translation>Gomb hozzáadása a csoporthoz</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+458"/>
+ <source>Add &apos;%1&apos; to &apos;%2&apos;</source>
+ <extracomment>Command description for adding buttons to a QButtonGroup</extracomment>
+ <translation>&apos;%1&apos; hozzáadása &apos;%2&apos;-höz</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Remove buttons from group</source>
+ <translation>Gomb eltávolítása a csoportból</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Remove &apos;%1&apos; from &apos;%2&apos;</source>
+ <extracomment>Command description for removing buttons from a QButtonGroup</extracomment>
+ <translation>&apos;%1&apos; eltávolítása &apos;%2&apos;-ból</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+143"/>
+ <source>Add connection</source>
+ <translation>Kapcsolat hozzáadása</translation>
+ </message>
+ <message>
+ <location line="+54"/>
+ <source>Adjust connection</source>
+ <translation>Kapcsolat beállítása</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Delete connections</source>
+ <translation>Kapcsolatok törlése</translation>
+ </message>
+ <message>
+ <location line="+58"/>
+ <source>Change source</source>
+ <translation>Forrás változtatása</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Change target</source>
+ <translation>Cél változtatása</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+349"/>
+ <source>Morph %1/&apos;%2&apos; into %3</source>
+ <extracomment>MorphWidgetCommand description</extracomment>
+ <translation>%1/&apos;%2&apos; alakváltoztatása %3-re</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="+149"/>
+ <source>Insert &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; beszúrása</translation>
+ </message>
+ <message>
+ <location line="+133"/>
+ <source>Change Z-order of &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; Z sorrendjének megváltoztatása</translation>
+ </message>
+ <message>
+ <location line="+34"/>
+ <source>Raise &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; növelése</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>Lower &apos;%1&apos;</source>
+ <translation>Alsó &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+113"/>
+ <source>Delete &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; törlése</translation>
+ </message>
+ <message>
+ <location line="+119"/>
+ <source>Reparent &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; újra szülősítése</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>Promote to custom widget</source>
+ <translation>Egyéni widget elősegítése</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>Demote from custom widget</source>
+ <translation>Egyéni widget lefokozása</translation>
+ </message>
+ <message>
+ <location line="+79"/>
+ <source>Lay out using grid</source>
+ <translation>Tervraj rácsok használatával</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Lay out vertically</source>
+ <translation>Tervrajz vertikálisan</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Lay out horizontally</source>
+ <translation>Tervrajz horizontálisan</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Break layout</source>
+ <translation>Tervrajz törése</translation>
+ </message>
+ <message>
+ <location line="+105"/>
+ <source>Simplify Grid Layout</source>
+ <translation>Egyszerűsített rács tervrajz</translation>
+ </message>
+ <message>
+ <location line="+135"/>
+ <location line="+235"/>
+ <location line="+78"/>
+ <source>Move Page</source>
+ <translation>Lap mozgatása</translation>
+ </message>
+ <message>
+ <location line="-279"/>
+ <location line="+123"/>
+ <location line="+188"/>
+ <location line="+666"/>
+ <source>Delete Page</source>
+ <translation>Lap törlése</translation>
+ </message>
+ <message>
+ <location line="-939"/>
+ <location line="+123"/>
+ <source>Page</source>
+ <translation>Lap</translation>
+ </message>
+ <message>
+ <location line="+860"/>
+ <source>page</source>
+ <translation>lap</translation>
+ </message>
+ <message>
+ <location line="-978"/>
+ <location line="+123"/>
+ <location line="+186"/>
+ <location line="+667"/>
+ <source>Insert Page</source>
+ <translation>Lap beszúrása</translation>
+ </message>
+ <message>
+ <location line="-647"/>
+ <source>Change Tab order</source>
+ <translation>Tab sorrend változtatása</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Create Menu Bar</source>
+ <translation>Menü sáv</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Delete Menu Bar</source>
+ <translation>Menü sáv törlése</translation>
+ </message>
+ <message>
+ <location line="+47"/>
+ <source>Create Status Bar</source>
+ <translation>Státusz sáv létrehozása</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>Delete Status Bar</source>
+ <translation>Státusz sáv törlése</translation>
+ </message>
+ <message>
+ <location line="+45"/>
+ <source>Add Tool Bar</source>
+ <translation>Eszköz sáv hozzáadása</translation>
+ </message>
+ <message>
+ <location line="+59"/>
+ <source>Add Dock Window</source>
+ <translation>Dokk ablak hozzáadása</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>Adjust Size of &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; méretének igazítása</translation>
+ </message>
+ <message>
+ <location line="+57"/>
+ <source>Change Form Layout Item Geometry</source>
+ <translation>Űrlap tervrajz elem geometriájának megváltoztatása</translation>
+ </message>
+ <message>
+ <location line="+95"/>
+ <source>Change Layout Item Geometry</source>
+ <translation>Tervrajz elem geometriájának megváltoztatása</translation>
+ </message>
+ <message>
+ <location line="+138"/>
+ <source>Delete Subwindow</source>
+ <translation>Alablak törlése</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Insert Subwindow</source>
+ <translation>Alablak beszúrása</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>subwindow</source>
+ <translation>alablak</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Subwindow</source>
+ <translation>Alablak</translation>
+ </message>
+ <message>
+ <location line="+391"/>
+ <source>Change Table Contents</source>
+ <translation>Táblázat tartalom megváltoztatása</translation>
+ </message>
+ <message>
+ <location line="+107"/>
+ <source>Change Tree Contents</source>
+ <translation>Fa tartalom megváltoztatása</translation>
+ </message>
+ <message>
+ <location line="+74"/>
+ <location line="+146"/>
+ <source>Add action</source>
+ <translation>Tevékenység hozzáadása</translation>
+ </message>
+ <message>
+ <location line="-120"/>
+ <location line="+126"/>
+ <source>Remove action</source>
+ <translation>Tevékenység eltávolítása</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>Add menu</source>
+ <translation>Menü hozzáadása</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Remove menu</source>
+ <translation>Menü eltávolítása</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Create submenu</source>
+ <translation>Almenü létrehozása</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Delete Tool Bar</source>
+ <translation>Eszköz sáv törlése</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_command2.cpp" line="+154"/>
+ <source>Change layout of &apos;%1&apos; from %2 to %3</source>
+ <translation>&apos;%1&apos; tervrajz megváltoztatása %2-ről %3-ra</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1195"/>
+ <source>Set action text</source>
+ <translation>Tevékenység szöveg beállítása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert action</source>
+ <translation>Tevékenység beszúrása</translation>
+ </message>
+ <message>
+ <location line="+89"/>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+907"/>
+ <source>Move action</source>
+ <translation>Tevékenység mozgatása</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-424"/>
+ <source>Change Title</source>
+ <translation>Cím megváltoztatása</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Insert Menu</source>
+ <translation>Menü beszúrása</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1213"/>
+ <source>Changed &apos;%1&apos; of &apos;%2&apos;</source>
+ <translation>&apos;%2&apos; &apos;%1&apos;-ének megváltoztatása</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+3"/>
+ <source>Changed &apos;%1&apos; of %n objects</source>
+ <translation>
+ <numerusform>%n objektum %1-ének megváltoztatása</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+76"/>
+ <source>Reset &apos;%1&apos; of &apos;%2&apos;</source>
+ <translation>&apos;%2&apos; &apos;%1&apos;-ének megváltoztatása</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+3"/>
+ <source>Reset &apos;%1&apos; of %n objects</source>
+ <translation>
+ <numerusform>%n objektum &apos;%1&apos;-ének újraindítása</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+89"/>
+ <source>Add dynamic property &apos;%1&apos; to &apos;%2&apos;</source>
+ <translation>&apos;%2&apos; &apos;%1&apos; dinamikus tulajdonságának hozzáadása</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+3"/>
+ <source>Add dynamic property &apos;%1&apos; to %n objects</source>
+ <translation>
+ <numerusform>%n objektum&apos; &apos;%1&apos; dinamikus tulajdonságának hozzáadása</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+86"/>
+ <source>Remove dynamic property &apos;%1&apos; from &apos;%2&apos;</source>
+ <translation>&apos;%1&apos; dinamikus tulajdonság eltávolítáas &apos;%2&apos;-ből</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+3"/>
+ <source>Remove dynamic property &apos;%1&apos; from %n objects</source>
+ <translation>
+ <numerusform>&apos;%1&apos; dinamikus tulajdonság eltávolítása %n objektumból</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+55"/>
+ <source>Change script</source>
+ <translation>Szkript megváltoztatása</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+202"/>
+ <source>Change signals/slots</source>
+ <translation>Jelek/Szlotok megváltoztatása</translation>
+ </message>
+</context>
+<context>
+ <name>ConnectDialog</name>
+ <message>
+ <location filename="../tools/designer/src/components/signalsloteditor/connectdialog.ui" line="+13"/>
+ <source>Configure Connection</source>
+ <translation>Kapcsolat konfigurálása</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+40"/>
+ <source>GroupBox</source>
+ <translation>CsoportDoboz</translation>
+ </message>
+ <message>
+ <location line="-25"/>
+ <location line="+40"/>
+ <source>Edit...</source>
+ <translation>Szerkesztés...</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Show signals and slots inherited from QWidget</source>
+ <translation>QWidget-ből örökölt jelek és szlotok megjelenítése</translation>
+ </message>
+</context>
+<context>
+ <name>ConnectionDelegate</name>
+ <message>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+643"/>
+ <source>&lt;object&gt;</source>
+ <translation>&lt;objekttum&gt;</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>&lt;signal&gt;</source>
+ <translation>&lt;jel&gt;</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>&lt;slot&gt;</source>
+ <translation>&lt;szlot&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>DPI_Chooser</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="+69"/>
+ <source>Standard (96 x 96)</source>
+ <extracomment>Embedded device standard screen resolution</extracomment>
+ <translation>Szabványos (96 x 96)</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Greenphone (179 x 185)</source>
+ <extracomment>Embedded device screen resolution</extracomment>
+ <translation>Greenphone (179 x 185)</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>High (192 x 192)</source>
+ <extracomment>Embedded device high definition screen resolution</extracomment>
+ <translation>Magasság (192 x 192)</translation>
+ </message>
+</context>
+<context>
+ <name>Designer</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+449"/>
+ <source>Qt Designer</source>
+ <translation>Qt Designer</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>This file contains top level spacers.&lt;br&gt;They have &lt;b&gt;NOT&lt;/b&gt; been saved into the form.</source>
+ <translation>Ez a fájl felső szintű távtartókat tartalmaz.&lt;br&gt; Nem tartalmaznak &lt;b&gt;SEMMIT&lt;/b&gt;, ami el lenne mentve az űrlapba.</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Perhaps you forgot to create a layout?</source>
+ <translation>Talán elfelejtette létrehozni a tervrajzot?</translation>
+ </message>
+ <message>
+ <location line="+173"/>
+ <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
+ <translation>Érvénytelen UI fájl. A rendszergazda elem &lt;ui&gt; hiányzik.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>An error has occurred while reading the UI file at line %1, column %2: %3</source>
+ <translation>Hiba történt az UI fájl olvasás közben %1 sorban, %2 oszlopban: %3</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>This file cannot be read because it was created using %1.</source>
+ <translation>A fájl nem olvasható, mert %1 használatával hozták létre.</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>This file was created using Designer from Qt-%1 and cannot be read.</source>
+ <translation>A fájlt a(z) %1 Qt Designer-rel hozták létre és nem olvasható.</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>The converted file could not be read.</source>
+ <translation>A konvertált fájlt nem sikerült olvasni.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer.</source>
+ <translation>A fájlt a(z) %1 Qt Designer-rel hozták létre és a Qt Designer egy új űrlapra fogja konvertálni.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The old form has not been touched, but you will have to save the form under a new name.</source>
+ <translation>A régi űrlap nem lett érintve, de az űrlapot új néven kell majd elmentenie.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>This file was created using Designer from Qt-%1 and could not be read:
+%2</source>
+ <translation>A fájl a(z) %1 Qt Designer-rel lett létrehozva és nem olvasható:
+%2</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Please run it through &lt;b&gt;uic3&amp;nbsp;-convert&lt;/b&gt; to convert it to Qt-4&apos;s ui format.</source>
+ <translation>Kérem futtassa a &lt;br&gt;uic3&amp;nbsp;-convert&lt;/b&gt; Qt 4-s ui formára konvertáláshoz.</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>This file cannot be read because the extra info extension failed to load.</source>
+ <translation>Ez a fájl nem olvasható, mert az extra információ kiterjesztést nem sikerült betölteni.</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qsimpleresource.cpp" line="+339"/>
+ <source>Custom Widgets</source>
+ <translation>Egyéni Widgetek</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Promoted Widgets</source>
+ <translation>Támogatott Widgetek</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+682"/>
+ <source>Unable to launch %1.</source>
+ <translation>Nem lehet elindítani %1-t.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>%1 timed out.</source>
+ <translation>%1 időtúllépés.</translation>
+ </message>
+</context>
+<context>
+ <name>DesignerMetaEnum</name>
+ <message>
+ <location line="-513"/>
+ <source>%1 is not a valid enumeration value of &apos;%2&apos;.</source>
+ <translation>%1 nem egy érvényes &apos;%2&apos; felsorolási érték.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&apos;%1&apos; could not be converted to an enumeration value of type &apos;%2&apos;.</source>
+ <translation>&apos;%1&apos; nem konvertálható egy &apos;%2&apos; típusú felsorolási értékre.</translation>
+ </message>
+</context>
+<context>
+ <name>DesignerMetaFlags</name>
+ <message>
+ <location line="+78"/>
+ <source>&apos;%1&apos; could not be converted to a flag value of type &apos;%2&apos;.</source>
+ <translation>&apos;%1&apos; nem konvertálható egy &apos;%2&apos; típusú jelző értékre.</translation>
+ </message>
+</context>
+<context>
+ <name>DeviceProfile</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/deviceprofile.cpp" line="+397"/>
+ <source>&apos;%1&apos; is not a number.</source>
+ <extracomment>Reading a number for an embedded device profile</extracomment>
+ <translation>&apos;%1&apos; nem egy szám.</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>An invalid tag &lt;%1&gt; was encountered.</source>
+ <translation>Egy érvénytelen címkét &lt;%1&gt; talált.</translation>
+ </message>
+</context>
+<context>
+ <name>DeviceProfileDialog</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.ui" line="+20"/>
+ <source>&amp;Family</source>
+ <translation>&amp;Család</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>&amp;Point Size</source>
+ <translation>&amp;Pont méret</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Style</source>
+ <translation>Stílus</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Device DPI</source>
+ <translation>Eszköz DPI</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Name</source>
+ <translation>Név</translation>
+ </message>
+</context>
+<context>
+ <name>DeviceSkin</name>
+ <message>
+ <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+79"/>
+ <source>The image file &apos;%1&apos; could not be loaded.</source>
+ <translation>Nem sikerült betölteni a(z) &apos;%1&apos; kép fájlt.</translation>
+ </message>
+ <message>
+ <location line="+64"/>
+ <source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
+ <translation>A(z) &apos;%1&apos; szkin könyvtár nem tartalmaz egy konfigurációs fájlt sem.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>The skin configuration file &apos;%1&apos; could not be opened.</source>
+ <translation>A(z) &apos;%1&apos; szkin konfigurációs fájlt nem sikerült megnyitni.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
+ <translation>A(z) &apos;%1&apos; szkin konfigurációs fájlt nem sikerült olvasni: %2</translation>
+ </message>
+ <message>
+ <location line="+70"/>
+ <source>Syntax error: %1</source>
+ <translation>Szintakszis hiba: %1</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>The skin &quot;up&quot; image file &apos;%1&apos; does not exist.</source>
+ <translation>A(z) &apos;%1&apos; szkin &apos;fel&apos; kép fájl nem létezik.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
+ <translation>A(z) &apos;%1&apos; szkin &apos;le&apos; kép fájl nem létezik.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
+ <translation>A(z) &apos;%1&apos; szkin &apos;zárt&apos; kép fájl nem létezik.</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>The skin cursor image file &apos;%1&apos; does not exist.</source>
+ <translation>A(z) &apos;%1&apos; szkin kurzor kép fájl nem létezik.</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Syntax error in area definition: %1</source>
+ <translation>Szintakszis hiba a terület definícióban: %1</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Mismatch in number of areas, expected %1, got %2.</source>
+ <translation>Rossz párosítás a területek számában, várt %1, kapot %2.</translation>
+ </message>
+</context>
+<context>
+ <name>EmbeddedOptionsControl</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="+307"/>
+ <source>&lt;html&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Font&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%1, %2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Style&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Resolution&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%4 x %5&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/html&gt;</source>
+ <extracomment>Format embedded device profile description</extracomment>
+ <translation>&lt;html&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Betű&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%1, %2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Stílus&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Felbontás&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%4 x %5&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/html&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>EmbeddedOptionsPage</name>
+ <message>
+ <location line="+103"/>
+ <source>Embedded Design</source>
+ <extracomment>Tab in preferences dialog</extracomment>
+ <translation>Tab a beállítások párbeszéd ablakban</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Device Profiles</source>
+ <extracomment>EmbeddedOptionsControl group box&quot;</extracomment>
+ <translation>BeágyazottOpciókVezérlő csoport doboz&quot;</translation>
+ </message>
+</context>
+<context>
+ <name>FontPanel</name>
+ <message>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
+ <source>Font</source>
+ <translation>Betű</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>&amp;Writing system</source>
+ <translation>Rendszer &amp;írása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Family</source>
+ <translation>&amp;Család</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&amp;Style</source>
+ <translation>&amp;Stílus</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&amp;Point size</source>
+ <translation>&amp;Pont méret</translation>
+ </message>
+</context>
+<context>
+ <name>FontPropertyManager</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+62"/>
+ <source>PreferDefault</source>
+ <translation>AlapértelmezettPreferálása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>NoAntialias</source>
+ <translation>NincsÁtlapolás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>PreferAntialias</source>
+ <translation>ÁtlapolásPreferálása</translation>
+ </message>
+ <message>
+ <location line="+61"/>
+ <source>Antialiasing</source>
+ <translation>Átlapolás</translation>
+ </message>
+</context>
+<context>
+ <name>FormBuilder</name>
+ <message>
+ <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+359"/>
+ <source>Invalid stretch value for &apos;%1&apos;: &apos;%2&apos;</source>
+ <extracomment>Parsing layout stretch values</extracomment>
+ <translation>Érvénytelen érték kiterjesztés &apos;%1&apos;-re: &apos;%2&apos;</translation>
+ </message>
+ <message>
+ <location line="+62"/>
+ <source>Invalid minimum size for &apos;%1&apos;: &apos;%2&apos;</source>
+ <extracomment>Parsing grid layout minimum size values</extracomment>
+ <translation>Érvénytelen minimum méret &apos;%1&apos;-re: &apos;%2&apos;</translation>
+ </message>
+</context>
+<context>
+ <name>FormEditorOptionsPage</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="+91"/>
+ <source>%1 %</source>
+ <translation>%1 %</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Preview Zoom</source>
+ <translation>Zoom előnézet</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Default Zoom</source>
+ <translation>Alapértelmezett zoom</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Forms</source>
+ <extracomment>Tab in preferences dialog</extracomment>
+ <translation>Űrlapok</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Default Grid</source>
+ <translation>Alapértelmezett rács</translation>
+ </message>
+</context>
+<context>
+ <name>FormLayoutRowDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui" line="+6"/>
+ <source>Add Form Layout Row</source>
+ <translatorcomment>нелепица какая-то</translatorcomment>
+ <translation>Űrlap szerkezet sor hozzaadása</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>&amp;Label text:</source>
+ <translation>&amp;Címke szöveg:</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Field &amp;type:</source>
+ <translation>Mező &amp;típus:</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>&amp;Field name:</source>
+ <translation>&amp;Mező név:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>&amp;Buddy:</source>
+ <translation>&amp;Haver:</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>&amp;Row:</source>
+ <translation>&amp;Sor:</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Label &amp;name:</source>
+ <translation>Címke &amp;név:</translation>
+ </message>
+</context>
+<context>
+ <name>FormWindow</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1701"/>
+ <source>Unexpected element &lt;%1&gt;</source>
+ <translation>Váratlan elem &lt;%1&gt;</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Error while pasting clipboard contents at line %1, column %2: %3</source>
+ <translation>Hiba történt a vágólap tartalom beillesztése közben a(z) %1 sorban, %2 oszlopban: %3</translation>
+ </message>
+</context>
+<context>
+ <name>FormWindowSettings</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui" line="+54"/>
+ <source>Form Settings</source>
+ <translation>Űrlap beállítások</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Layout &amp;Default</source>
+ <translation>&amp;Alapértelmezett elrendezés</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>&amp;Spacing:</source>
+ <translation>&amp;Ritkítás:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>&amp;Margin:</source>
+ <translation>&amp;Margó:</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>&amp;Layout Function</source>
+ <translation>&amp;Elrendezés függvény
+</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>Ma&amp;rgin:</source>
+ <translation>Ma&amp;rgó:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Spa&amp;cing:</source>
+ <translation>Rit&amp;kítás:</translation>
+ </message>
+ <message>
+ <location line="+117"/>
+ <source>&amp;Author</source>
+ <translation>&amp;Szerző</translation>
+ </message>
+ <message>
+ <location line="-41"/>
+ <source>&amp;Include Hints</source>
+ <translation>Célzások &amp;beleértése</translation>
+ </message>
+ <message>
+ <location line="-53"/>
+ <source>&amp;Pixmap Function</source>
+ <translation>&amp;Pixmap függvény</translation>
+ </message>
+ <message>
+ <location line="+71"/>
+ <source>Grid</source>
+ <translation>Rács</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Embedded Design</source>
+ <translation>Beágyazott terv</translation>
+ </message>
+</context>
+<context>
+ <name>IconSelector</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+352"/>
+ <source>All Pixmaps (</source>
+ <translation>Az összes Pixmap (</translation>
+ </message>
+</context>
+<context>
+ <name>ItemPropertyBrowser</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+66"/>
+ <source>XX Icon Selected off</source>
+ <extracomment>Sample string to determinate the width for the first column of the list item property browser</extracomment>
+ <translation>XX ikon kiválasztásának kikapcsolása</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+119"/>
+ <source>Main</source>
+ <extracomment>Not currently used (main tool bar)</extracomment>
+ <translation>Fő</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>File</source>
+ <translation>Fájl</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Edit</source>
+ <translation>Szerkesztés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Tools</source>
+ <translation>Eszközök</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Form</source>
+ <translation>Űrlap</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Qt Designer</source>
+ <translation>Qt Designer</translation>
+ </message>
+</context>
+<context>
+ <name>NewForm</name>
+ <message>
+ <location filename="../tools/designer/src/designer/newform.cpp" line="+79"/>
+ <source>C&amp;reate</source>
+ <translation>&amp;Létrehozás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Recent</source>
+ <translation>Utóbbi</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Bezárás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Open...</source>
+ <translation>&amp;Megnyitás...</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&amp;Recent Forms</source>
+ <translation>&amp;Utóbbi űrlapok</translation>
+ </message>
+ <message>
+ <location line="+64"/>
+ <source>Read error</source>
+ <translation>Olvasási hiba</translation>
+ </message>
+ <message>
+ <location line="-100"/>
+ <source>New Form</source>
+ <translation>Űj űrlap</translation>
+ </message>
+ <message>
+ <location line="-5"/>
+ <source>Show this Dialog on Startup</source>
+ <translation>Párbeszédablak megjelenítése betöltéskor</translation>
+ </message>
+ <message>
+ <location line="+128"/>
+ <source>A temporary form file could not be created in %1.</source>
+ <translation>Egy átmeneti űrlap fájlt nem sikerült létrehozni %1-ben.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>The temporary form file %1 could not be written.</source>
+ <translation>A(z) %1 átmeneti űrlap fájlt nem sikerült írni.</translation>
+ </message>
+</context>
+<context>
+ <name>ObjectInspectorModel</name>
+ <message>
+ <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+360"/>
+ <source>Object</source>
+ <translation>Objektum</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Class</source>
+ <translation>Osztály</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>separator</source>
+ <translation>Elválasztó</translation>
+ </message>
+ <message>
+ <location line="+98"/>
+ <source>&lt;noname&gt;</source>
+ <translation>&lt;noname&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>ObjectNameDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+158"/>
+ <source>Change Object Name</source>
+ <translation>Objektum nevének megváltoztatása</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Object Name</source>
+ <translation>Objektum név</translation>
+ </message>
+</context>
+<context>
+ <name>PluginDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/plugindialog.ui" line="+54"/>
+ <source>Plugin Information</source>
+ <translation>Beépülő modul információ</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+</context>
+<context>
+ <name>PreferencesDialog</name>
+ <message>
+ <location filename="../tools/designer/src/designer/preferencesdialog.ui" line="+20"/>
+ <source>Preferences</source>
+ <translation>Beállítások</translation>
+ </message>
+</context>
+<context>
+ <name>PreviewConfigurationWidget</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui" line="+5"/>
+ <source>Form</source>
+ <translation>Űrlap</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Print/Preview Configuration</source>
+ <translation>Nyomtatás/Előnézet konfiguráció</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Style</source>
+ <translation>Stílus</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Style sheet</source>
+ <translation>Stíluslap</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <location line="+7"/>
+ <location line="+21"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location line="-12"/>
+ <source>Device skin</source>
+ <translation>Eszköz szkin</translation>
+ </message>
+</context>
+<context>
+ <name>PromotionModel</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+112"/>
+ <source>Not used</source>
+ <extracomment>Usage of promoted widgets</extracomment>
+ <translation>Nincs használva</translation>
+ </message>
+</context>
+<context>
+ <name>Q3WizardContainer</name>
+ <message>
+ <location filename="../tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp" line="+172"/>
+ <location line="+5"/>
+ <source>Page</source>
+ <translation>Lap</translation>
+ </message>
+</context>
+<context>
+ <name>QAbstractFormBuilder</name>
+ <message>
+ <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+206"/>
+ <source>Unexpected element &lt;%1&gt;</source>
+ <translation>Váratlan elem &lt;%1&gt;</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>An error has occurred while reading the UI file at line %1, column %2: %3</source>
+ <translation>Hiba történt az UI fájl olvasása közben a(z) %1 sorban, %2 oszlopban: %3</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
+ <translation>Érvénytelen UI fájl. A rendszergazda elem &lt;ui&gt; hiányzik.</translation>
+ </message>
+ <message>
+ <location line="+119"/>
+ <source>The creation of a widget of the class &apos;%1&apos; failed.</source>
+ <translation>A(z) &apos;%1&apos; osztály egy widget-ének létrehozása nem sikerült.</translation>
+ </message>
+ <message>
+ <location line="+296"/>
+ <source>Attempt to add child that is not of class QWizardPage to QWizard.</source>
+ <translation>Gyermek hozzáadásának megkísérelése QWizard-hoz, amely nem egy QWizardPage osztály.</translation>
+ </message>
+ <message>
+ <location line="+86"/>
+ <source>Attempt to add a layout to a widget &apos;%1&apos; (%2) which already has a layout of non-box type %3.
+This indicates an inconsistency in the ui-file.</source>
+ <translation>Egy elrendezés hozzáadásának megprónálás egy &quot;%1&apos; widgethez (%2), melynek már egy %3 típusú nem doboz elrendezése van.
+Ez ellentmondást mutat az ui fájlban.</translation>
+ </message>
+ <message>
+ <location line="+144"/>
+ <source>Empty widget item in %1 &apos;%2&apos;.</source>
+ <translation>Üres widget elem %1-ben &apos;%2&apos;.</translation>
+ </message>
+ <message>
+ <location line="+680"/>
+ <source>Flags property are not supported yet.</source>
+ <translation>Jelző tulajdonság még nem támogatott.</translation>
+ </message>
+ <message>
+ <location line="+81"/>
+ <source>While applying tab stops: The widget &apos;%1&apos; could not be found.</source>
+ <translation>Tab stops alkalmazásakor: A(z) &apos;%1&apos; widget nem található.</translation>
+ </message>
+ <message>
+ <location line="+908"/>
+ <source>Invalid QButtonGroup reference &apos;%1&apos; referenced by &apos;%2&apos;.</source>
+ <translation>Érvénytelen &apos;%1&apos; QButtonGroup hivatkozásra hivatkozik a(z) &apos;%2&apos;.</translation>
+ </message>
+ <message>
+ <location line="+511"/>
+ <source>This version of the uitools library is linked without script support.</source>
+ <translation>Az uitools könyvtár ezen verziója szkript támogatás nélkül linkelt.</translation>
+ </message>
+</context>
+<context>
+ <name>QAxWidgetPlugin</name>
+ <message>
+ <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+75"/>
+ <source>ActiveX control</source>
+ <translation>ActiveX vezérlő</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>ActiveX control widget</source>
+ <translation>ActiveX vezérlő widget</translation>
+ </message>
+</context>
+<context>
+ <name>QAxWidgetTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+119"/>
+ <source>Set Control</source>
+ <translation>Vezérlő beállítása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Reset Control</source>
+ <translation>Vezérlő újraindítása</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Licensed Control</source>
+ <translation>Felhatalmazott vezérlő</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The control requires a design-time license</source>
+ <translation>A vezérlő egy tervezés idejű felhatalmazást igényel</translation>
+ </message>
+</context>
+<context>
+ <name>QCoreApplication</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="+83"/>
+ <source>%1 is not a promoted class.</source>
+ <translation>%1 nem egy támogatott osztály.</translation>
+ </message>
+ <message>
+ <location line="+65"/>
+ <source>The base class %1 is invalid.</source>
+ <translation>A(z) %1 alap osztály érvénytelen.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>The class %1 already exists.</source>
+ <translation>A(z) %1 osztály már létezik.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Promoted Widgets</source>
+ <translation>Támogatott Widget-ek</translation>
+ </message>
+ <message>
+ <location line="+126"/>
+ <source>The class %1 cannot be removed</source>
+ <translation>A(z) %1 osztályt nem lehet eltávolítani</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>The class %1 cannot be removed because it is still referenced.</source>
+ <translation>A(z) %1 osztályt nem lehet eltávolítani, mert még mindig hivatkozott.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>The class %1 cannot be renamed</source>
+ <translation>A(z) %1 osztályt nem lehet átnevezni</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>The class %1 cannot be renamed to an empty name.</source>
+ <translation>A(z) %1 osztályt nem lehet átnevezni egy üres névűre.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>There is already a class named %1.</source>
+ <translation>Már van egy %1 nevű osztály.</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Cannot set an empty include file.</source>
+ <translatorcomment>перевод близко к тексту - буквальный совсем глаз режет</translatorcomment>
+ <translation>Nem lehet beállítani egy üres bennefoglalt fájlt.</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+88"/>
+ <source>Exception at line %1: %2</source>
+ <translation>Kivétel a(z) %1 sorban: %2</translation>
+ </message>
+ <message>
+ <location line="+36"/>
+ <source>Unknown error</source>
+ <translation>Ismeretlen hiba</translation>
+ </message>
+ <message>
+ <location line="+50"/>
+ <source>An error occurred while running the script for %1: %2
+Script: %3</source>
+ <translation>Hiba történt a szkript futtása közben %1-re: %2
+Szkript: %3</translation>
+ </message>
+</context>
+<context>
+ <name>QDesigner</name>
+ <message>
+ <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+141"/>
+ <source>%1 - warning</source>
+ <translation>%1 -figyelmeztetés</translation>
+ </message>
+ <message>
+ <location line="+96"/>
+ <source>Qt Designer</source>
+ <translation>Qt Designer</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>This application cannot be used for the Console edition of Qt</source>
+ <translation>Ezt alkalmazást nem lehet a Qt konzol szerkesztésére használni</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerActions</name>
+ <message>
+ <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+128"/>
+ <source>Saved %1.</source>
+ <translation>Mentve: %1.</translation>
+ </message>
+ <message>
+ <location line="+50"/>
+ <source>Edit Widgets</source>
+ <translation>Widget-ek szerkesztése</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>&amp;Quit</source>
+ <translation>&amp;Bezárás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Minimize</source>
+ <translation>&amp;Minimalizálás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Bring All to Front</source>
+ <translation>Az összes előre hozása</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Preferences...</source>
+ <translation>Beállítások...</translation>
+ </message>
+ <message>
+ <location line="+298"/>
+ <source>Clear &amp;Menu</source>
+ <translation>&amp;Menü tisztítása</translation>
+ </message>
+ <message>
+ <location line="-233"/>
+ <source>CTRL+SHIFT+S</source>
+ <translation>CTRL+SHIFT+S</translation>
+ </message>
+ <message>
+ <location line="+113"/>
+ <source>CTRL+R</source>
+ <translation>CTRL+R</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>CTRL+M</source>
+ <translation>CTRL+M</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Qt Designer &amp;Help</source>
+ <translation>Qt Designer &amp;Súgó</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Current Widget Help</source>
+ <translation>Aktuális Widget Súgó</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>What&apos;s New in Qt Designer?</source>
+ <translation>Mi az újdonság a Qt Designer-ben?</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>About Plugins</source>
+ <translation>Beépülő modulokról</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+601"/>
+ <source>About Qt Designer</source>
+ <translation>Qt Designer-ről</translation>
+ </message>
+ <message>
+ <location line="-595"/>
+ <source>About Qt</source>
+ <translation>Qt-ról</translation>
+ </message>
+ <message>
+ <location line="+121"/>
+ <location line="+197"/>
+ <source>Open Form</source>
+ <translation>Űrlap megnyitása</translation>
+ </message>
+ <message>
+ <location line="-196"/>
+ <location line="+37"/>
+ <location line="+160"/>
+ <source>Designer UI files (*.%1);;All Files (*)</source>
+ <translation>Designer UI fájlok (*.%1);;Az összes fájl (*)</translation>
+ </message>
+ <message>
+ <location line="-620"/>
+ <source>%1 already exists.
+Do you want to replace it?</source>
+ <translation>%1 már létezik.
+Le szeretné cserélni?</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>Additional Fonts...</source>
+ <translation>További betűk...</translation>
+ </message>
+ <message>
+ <location line="+303"/>
+ <source>&amp;Recent Forms</source>
+ <translation>&amp;Utóbbi űrlapok</translation>
+ </message>
+ <message>
+ <location line="+202"/>
+ <source>Designer</source>
+ <translation>Designer</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Feature not implemented yet!</source>
+ <translation>A tulajdonság még nincs implementálva!</translation>
+ </message>
+ <message>
+ <location line="+59"/>
+ <source>Read error</source>
+ <translation>Olvasási hiba</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>%1
+Do you want to update the file location or generate a new form?</source>
+ <translation>%1
+Szeretné frissíteni a fájl helyét vagy generálni egy új űrlapot?</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Update</source>
+ <translation>&amp;Frissítés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;New Form</source>
+ <translation>&amp;Új űrlap</translation>
+ </message>
+ <message>
+ <location line="+77"/>
+ <location line="+40"/>
+ <source>Save Form?</source>
+ <translation>Menti az űrlapot?</translation>
+ </message>
+ <message>
+ <location line="-39"/>
+ <source>Could not open file</source>
+ <translation>Nem sikerült megnyitni a fájlt</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Select New File</source>
+ <translation>Új fájl kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Could not write file</source>
+ <translation>Nem sikerült írni a fájlt</translation>
+ </message>
+ <message>
+ <location line="+201"/>
+ <source>&amp;Close Preview</source>
+ <translation>Előnézet &amp;bezárása</translation>
+ </message>
+ <message>
+ <location line="-905"/>
+ <source>&amp;New...</source>
+ <translation>&amp;Új...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Open...</source>
+ <translation>&amp;Megnyitás...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Mentés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Save &amp;As...</source>
+ <translation>Mentés &amp;másként...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Save A&amp;ll</source>
+ <translation>Az ö&amp;sszes mentése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Save As &amp;Template...</source>
+ <translation>Mentés &amp;sablonként...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <location line="+901"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Bezárás</translation>
+ </message>
+ <message>
+ <location line="-900"/>
+ <source>Save &amp;Image...</source>
+ <translation>&amp;Kép mentése...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Print...</source>
+ <translation>&amp;Nyomtatás...</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>View &amp;Code...</source>
+ <translation>&amp;Kód nézet...</translation>
+ </message>
+ <message>
+ <location line="+68"/>
+ <source>ALT+CTRL+S</source>
+ <translation>ALT+CTRL+S</translation>
+ </message>
+ <message>
+ <location line="+356"/>
+ <location line="+248"/>
+ <source>Save Form As</source>
+ <translation>Mentés űrlapként</translation>
+ </message>
+ <message>
+ <location line="+429"/>
+ <source>Preview failed</source>
+ <translation>Előnézet hiba</translation>
+ </message>
+ <message>
+ <location line="-575"/>
+ <source>Code generation failed</source>
+ <translation>Kód generálási hiba</translation>
+ </message>
+ <message>
+ <location line="+131"/>
+ <source>The file %1 could not be opened.
+Reason: %2
+Would you like to retry or select a different file?</source>
+ <translation>Nem sikerült megnyitni a(z) %1 fájlt.
+Ok: %2
+Meg szeretné újra próbálni vagy kiválasztani egy különböző fájlt?</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>It was not possible to write the entire file %1 to disk.
+Reason:%2
+Would you like to retry?</source>
+ <translation>Nem lehetett az egész %1 fájlt a lemezre írni.
+Ok: %2
+Meg szeretné próbálni újra?</translation>
+ </message>
+ <message>
+ <location line="+158"/>
+ <location line="+34"/>
+ <source>Assistant</source>
+ <translation>Assistant</translation>
+ </message>
+ <message>
+ <location line="+47"/>
+ <location line="+23"/>
+ <source>The backup file %1 could not be written.</source>
+ <translation>Nem sikerült írni az archivált %1 fájlt.</translation>
+ </message>
+ <message>
+ <location line="+107"/>
+ <source>The backup directory %1 could not be created.</source>
+ <translation>Nem sikerült létrehozni a(z) %1 archivált könyvtárat.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>The temporary backup directory %1 could not be created.</source>
+ <translation>Nem sikerült létrehozni az átmeneti archivált %1 könyvtárat.</translation>
+ </message>
+ <message>
+ <location line="+54"/>
+ <source>Image files (*.%1)</source>
+ <translation>Kép fájlok (*.%1)</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <location line="+17"/>
+ <source>Save Image</source>
+ <translation>Kép mentése</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <source>Saved image %1.</source>
+ <translation>Mentett kép: %1.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>The file %1 could not be written.</source>
+ <translation>Nem sikerült írni a(z) %1 fájlt.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Please close all forms to enable the loading of additional fonts.</source>
+ <translation>Kérem zárja be az összes űrlapot további betűk betöltéséhez.</translation>
+ </message>
+ <message>
+ <location line="+52"/>
+ <source>Printed %1.</source>
+ <translation>Kinyomtatva: %1.</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerAppearanceOptionsPage</name>
+ <message>
+ <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="+138"/>
+ <source>Appearance</source>
+ <extracomment>Tab in preferences dialog</extracomment>
+ <translation>Megjelenés</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerAppearanceOptionsWidget</name>
+ <message>
+ <location line="-53"/>
+ <source>Docked Window</source>
+ <translation>Dokkolt ablak</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Multiple Top-Level Windows</source>
+ <translation>Összes felső szintű ablakok</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Toolwindow Font</source>
+ <translation>Eszköz ablak betű</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerAxWidget</name>
+ <message>
+ <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="-71"/>
+ <source>Reset control</source>
+ <translation>Vezérlés újraindítása</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Set control</source>
+ <translation>Vezérlés beállítása</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+179"/>
+ <source>Control loaded</source>
+ <translation>Vezérlés betöltve</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>A COM exception occurred when executing a meta call of type %1, index %2 of &quot;%3&quot;.</source>
+ <translation>Egy COM kivétel történt a(z) %1 típusú meta hívás végrehajtása közben, &apos;%3&apos; %2 indexe.</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerFormBuilder</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+89"/>
+ <source>Script errors occurred:</source>
+ <translation>Szkript hiba történt:</translation>
+ </message>
+ <message>
+ <location line="+307"/>
+ <source>The preview failed to build.</source>
+ <translation>Nem sikerült az előnézetet felépíteni.</translation>
+ </message>
+ <message>
+ <location line="+65"/>
+ <source>Designer</source>
+ <translation>Designer</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerFormWindow</name>
+ <message>
+ <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="+217"/>
+ <source>%1 - %2[*]</source>
+ <translation>%1 - %2[*]</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Save Form?</source>
+ <translation>Űrlap mentése?</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Do you want to save the changes to this document before closing?</source>
+ <translation>El szeretné menteni a változtatásokat ebbe a dokumentumba a bezárás előtt?</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>If you don&apos;t save, your changes will be lost.</source>
+ <translation>Ha nem menti el, a változtatásai el fognak veszni.</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerMenu</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1181"/>
+ <source>Type Here</source>
+ <translation>Gépelje be ide</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Add Separator</source>
+ <translation>Elválasztó hozzáadása</translation>
+ </message>
+ <message>
+ <location line="+371"/>
+ <source>Insert separator</source>
+ <translation>Elválasztó beszúrása</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Remove separator</source>
+ <translation>Elválasztó eltávolítása</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Remove action &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; tevékenység eltávolítása</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <location line="+650"/>
+ <source>Add separator</source>
+ <translation>Elválasztó hozzáadása</translation>
+ </message>
+ <message>
+ <location line="-348"/>
+ <source>Insert action</source>
+ <translation>Tevékenység beszúrása</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerMenuBar</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-375"/>
+ <source>Type Here</source>
+ <translation>Gépelje be ide</translation>
+ </message>
+ <message>
+ <location line="+298"/>
+ <source>Remove Menu &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; menü eltávolítása</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Remove Menu Bar</source>
+ <translation>Menü sáv eltávolítása</translation>
+ </message>
+ <message>
+ <location line="+70"/>
+ <source>Menu</source>
+ <translation>Menü</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerPluginManager</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="+271"/>
+ <source>An XML error was encountered when parsing the XML of the custom widget %1: %2</source>
+ <translation>Egy XML hiba történt az egyéni %1 widget XML-ének elemzése közben: %2</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>A required attribute (&apos;%1&apos;) is missing.</source>
+ <translation>Egy szükséges attribútum (&apos;%1&apos;) hiányzik.</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>An invalid property specification (&apos;%1&apos;) was encountered. Supported types: %2</source>
+ <translation>Egy érvénytelen tulajdonság specifikációt (&apos;%1&apos;) talált. Támogatott típusok: %2</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>&apos;%1&apos; is not a valid string property specification.</source>
+ <translation>&apos;%1&apos; nem egy érvényes sztring tulajdonság specifikáció.</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>The XML of the custom widget %1 does not contain any of the elements &lt;widget&gt; or &lt;ui&gt;.</source>
+ <translation>Az egyéni %1 widget XML-je nem tartalmaz semmilyen elemet &lt;widget&gt; vagy &lt;ui&gt;.</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>The class attribute for the class %1 is missing.</source>
+ <translation>Az osztály attribútum %1 osztályra hiányzik.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>The class attribute for the class %1 does not match the class name %2.</source>
+ <translation>Az osztály attribútum %1 osztályra nem egyezik meg a(z) %2 osztály nevével.</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerPropertySheet</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+754"/>
+ <source>Dynamic Properties</source>
+ <translation>Dinamikus tulajdonságok</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerResource</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+461"/>
+ <source>The layout type &apos;%1&apos; is not supported, defaulting to grid.</source>
+ <translation>A(z) &apos;%1&apos; elrendezés típus nem támogatott, alapértelmezett rács.</translation>
+ </message>
+ <message>
+ <location line="+243"/>
+ <source>The container extension of the widget &apos;%1&apos; (%2) returned a widget not managed by Designer &apos;%3&apos; (%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.</source>
+ <translation>A(z) &apos;%1&apos; (%2) widget konténer kiterjesztése egy olyan widget-et adott vissza, amelyet a(z) &apos;%3&apos; (%4) Designer nem kezel, %5 lap lekéréskor.
+Konténer lapokat XML-ben való specifikációjuk által kellene hozzáadni, az egyéni widget domXML() eljárása által.</translation>
+ </message>
+ <message>
+ <location line="+599"/>
+ <source>Unexpected element &lt;%1&gt;</source>
+ <extracomment>Parsing clipboard contents</extracomment>
+ <translation>Váratlan elem &lt;%1&gt;</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Error while pasting clipboard contents at line %1, column %2: %3</source>
+ <extracomment>Parsing clipboard contents</extracomment>
+ <translation>Hiba történt a vágólap tartalmának beillesztése közben a(z) %1 sorban, %2 oszlopban: %3</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Error while pasting clipboard contents: The root element &lt;ui&gt; is missing.</source>
+ <extracomment>Parsing clipboard contents</extracomment>
+ <translation>Hiba történt a vágólap tartalmának beillesztése közben. A rendszergazda elem &lt;ui&gt; hiányzik.</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerSharedSettings</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/shared_settings.cpp" line="+83"/>
+ <source>The template path %1 could not be created.</source>
+ <translation>Nem sikerült létrehozni a(z) %1 sablon útvonalat.</translation>
+ </message>
+ <message>
+ <location line="+184"/>
+ <source>An error has been encountered while parsing device profile XML: %1</source>
+ <translation>Hiba történt az eszköz profil %1 XML elemzése közben</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerToolWindow</name>
+ <message>
+ <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="+190"/>
+ <source>Property Editor</source>
+ <translation>Tulajdonság szerkesztő</translation>
+ </message>
+ <message>
+ <location line="+54"/>
+ <source>Action Editor</source>
+ <translation>Tevékenység szerkesztő</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>Object Inspector</source>
+ <translation>Objektum felügyelő</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Resource Browser</source>
+ <translation>Erőforrás böngésző</translation>
+ </message>
+ <message>
+ <location line="+34"/>
+ <source>Signal/Slot Editor</source>
+ <translation>Jel/Szlot szerkesztő</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Widget Box</source>
+ <translation>Widget doboz</translation>
+ </message>
+</context>
+<context>
+ <name>QDesignerWorkbench</name>
+ <message>
+ <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="+199"/>
+ <source>&amp;File</source>
+ <translation>&amp;Fájl</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>F&amp;orm</source>
+ <translation>&amp;Űrlap</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Preview in</source>
+ <translation>Előnézetben</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>&amp;Window</source>
+ <translation>&amp;Ablak</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Súgó</translation>
+ </message>
+ <message>
+ <location line="-15"/>
+ <source>Edit</source>
+ <translation>Szerkesztés</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Toolbars</source>
+ <translation>Eszközsávok</translation>
+ </message>
+ <message>
+ <location line="+465"/>
+ <source>Save Forms?</source>
+ <translation>Űrlap mentése?</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+1"/>
+ <source>There are %n forms with unsaved changes. Do you want to review these changes before quitting?</source>
+ <translation>
+ <numerusform>%n űrlapban vannak el nem mentett változtatások. Át szeretné tekintei ezeket a változtatásokat a kilépés előtt?</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="-495"/>
+ <source>&amp;View</source>
+ <translation>&amp;Nézet</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Beállítások</translation>
+ </message>
+ <message>
+ <location line="+204"/>
+ <source>Widget Box</source>
+ <translation>Widget doboz</translation>
+ </message>
+ <message>
+ <location line="+292"/>
+ <source>If you do not review your documents, all your changes will be lost.</source>
+ <translation>Ha nem tekinti át újra a dokumentumokat, az összes változtatása el fog veszni.</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Discard Changes</source>
+ <translation>Változtatások eldobása</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Review Changes</source>
+ <translation>Változtatások áttekintése</translation>
+ </message>
+ <message>
+ <location line="+95"/>
+ <source>Backup Information</source>
+ <translation>Archiválási információ</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The last session of Designer was not terminated correctly. Backup files were left behind. Do you want to load them?</source>
+ <translation>A Designer utolsó szakasza nem megfelelően állt le. Archivált fájlok hagyott maga után. Be szeretné tölteni őket?</translation>
+ </message>
+ <message>
+ <location line="+111"/>
+ <source>The file &lt;b&gt;%1&lt;/b&gt; could not be opened.</source>
+ <translation>A(z) &lt;b&gt;%1&lt;/b&gt; fájlt nem sikerült megnyitni.</translation>
+ </message>
+ <message>
+ <location line="+46"/>
+ <source>The file &lt;b&gt;%1&lt;/b&gt; is not a valid Designer UI file.</source>
+ <translation>A(z) &lt;b&gt;%1&lt;/b&gt; fájl nem egy érvényes Designer UI fájl.</translation>
+ </message>
+</context>
+<context>
+ <name>QFormBuilder</name>
+ <message>
+ <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="+163"/>
+ <source>An empty class name was passed on to %1 (object name: &apos;%2&apos;).</source>
+ <extracomment>Empty class name passed to widget factory method</extracomment>
+ <translation>Egy üres osztály név volt %1-ra (objektum név: &apos;%2&apos;).</translation>
+ </message>
+ <message>
+ <location line="+56"/>
+ <source>QFormBuilder was unable to create a custom widget of the class &apos;%1&apos;; defaulting to base class &apos;%2&apos;.</source>
+ <translation>QFormBuilder-nek nem sikerült létrehozni egy &apos;%1&apos; osztály egyéni widget-et, alapértelmezés a(z) &apos;%2&apos; alap osztályra.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>QFormBuilder was unable to create a widget of the class &apos;%1&apos;.</source>
+ <translation>QFormBuilder-nak nem sikerült létrehoznia egy &apos;%1&apos; osztály widget-et.</translation>
+ </message>
+ <message>
+ <location line="+61"/>
+ <source>The layout type `%1&apos; is not supported.</source>
+ <translation>A(z) &apos;%1&apos; elrendezés terv nem támogatott.</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="+106"/>
+ <source>The set-type property %1 could not be read.</source>
+ <translation>Nem sikerült olvasni a(z) %1 beállított típusú tulajdonságot.</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>The enumeration-type property %1 could not be read.</source>
+ <translation>A(z) %1 felsorolási típus tulajdonságot nem sikerült olvasni.</translation>
+ </message>
+ <message>
+ <location line="+190"/>
+ <source>Reading properties of the type %1 is not supported yet.</source>
+ <translation>&apos;%1&apos; típus tulajdonságok olvasása még nem támogatott.</translation>
+ </message>
+ <message>
+ <location line="+266"/>
+ <source>The property %1 could not be written. The type %2 is not supported yet.</source>
+ <translation>A(z) %1 tulajdonságot nem sikerült írni. A(z) %2 típus nem támogatott még.</translation>
+ </message>
+</context>
+<context>
+ <name>QStackedWidgetEventFilter</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="+194"/>
+ <source>Previous Page</source>
+ <translation>Előző lap</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Next Page</source>
+ <translation>Következő lap</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Delete</source>
+ <translation>Törlés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Before Current Page</source>
+ <translation>Aktuális lap előtt</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>After Current Page</source>
+ <translation>Aktuális lap után</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change Page Order...</source>
+ <translation>Lap sorrend megváltoztatása...</translation>
+ </message>
+ <message>
+ <location line="+72"/>
+ <source>Change Page Order</source>
+ <translation>Lap sorrend megváltoztatása</translation>
+ </message>
+ <message>
+ <location line="+49"/>
+ <source>Page %1 of %2</source>
+ <translation>%2 %1 lapja</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <location line="+4"/>
+ <source>Insert Page</source>
+ <translation>Lap beszúrása</translation>
+ </message>
+</context>
+<context>
+ <name>QStackedWidgetPreviewEventFilter</name>
+ <message>
+ <location line="-153"/>
+ <source>Go to previous page of %1 &apos;%2&apos; (%3/%4).</source>
+ <translation>Ugrás a(z) %1 &apos;%2&apos; (%3/%4) előző lapjára.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Go to next page of %1 &apos;%2&apos; (%3/%4).</source>
+ <translation>Ugrás a(z) %1 &apos;%2&apos; (%3/%4) következő lapjára.</translation>
+ </message>
+</context>
+<context>
+ <name>QTabWidgetEventFilter</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="+89"/>
+ <source>Delete</source>
+ <translation>Törlés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Before Current Page</source>
+ <translation>Aktuális lap előtt</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>After Current Page</source>
+ <translation>Aktuális lap után</translation>
+ </message>
+ <message>
+ <location line="+283"/>
+ <source>Page %1 of %2</source>
+ <translation>%2 %1 lapja</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <location line="+4"/>
+ <source>Insert Page</source>
+ <translation>Lap beszúrása</translation>
+ </message>
+</context>
+<context>
+ <name>QToolBoxHelper</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="+64"/>
+ <source>Delete Page</source>
+ <translation>Lap törlése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Before Current Page</source>
+ <translation>Aktuális lap előtt</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>After Current Page</source>
+ <translation>Aktuális lap után</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change Page Order...</source>
+ <translation>Lap sorrend megváltoztatása...</translation>
+ </message>
+ <message>
+ <location line="+116"/>
+ <source>Change Page Order</source>
+ <translation>Lap sorrend megváltoztatása</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Page %1 of %2</source>
+ <translation>%2 %1 lapja</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Insert Page</source>
+ <translation>Lap beszúrása</translation>
+ </message>
+</context>
+<context>
+ <name>QtBoolEdit</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+226"/>
+ <location line="+10"/>
+ <location line="+25"/>
+ <source>True</source>
+ <translation>Igaz</translation>
+ </message>
+ <message>
+ <location line="-25"/>
+ <location line="+25"/>
+ <source>False</source>
+ <translation>Hamis</translation>
+ </message>
+</context>
+<context>
+ <name>QtBoolPropertyManager</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1469"/>
+ <source>True</source>
+ <translation>Igaz</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>False</source>
+ <translation>Hamis</translation>
+ </message>
+</context>
+<context>
+ <name>QtCharEdit</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1581"/>
+ <source>Clear Char</source>
+ <translation>Karakter ürítése</translation>
+ </message>
+</context>
+<context>
+ <name>QtColorEditWidget</name>
+ <message>
+ <location line="+605"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+</context>
+<context>
+ <name>QtColorPropertyManager</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4743"/>
+ <source>Red</source>
+ <translation>Piros</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Green</source>
+ <translation>Zöld</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Blue</source>
+ <translation>Kék</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Alpha</source>
+ <translation>Alfa</translation>
+ </message>
+</context>
+<context>
+ <name>QtCursorDatabase</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-206"/>
+ <source>Arrow</source>
+ <translation>Nyíl</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Up Arrow</source>
+ <translation>Felfele nyíl</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Cross</source>
+ <translation>Kereszt</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Wait</source>
+ <translation>Várakozás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>IBeam</source>
+ <translation>IBeam</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Size Vertical</source>
+ <translation>Vertikális méret</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Size Horizontal</source>
+ <translation>Horizontális méret</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Size Backslash</source>
+ <translation>Visszaper méret</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Size Slash</source>
+ <translation>Per méret</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Size All</source>
+ <translation>Az összes méret</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Blank</source>
+ <translation>Üres</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Split Vertical</source>
+ <translation>Vertikális feldarabolás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Split Horizontal</source>
+ <translation>Horizontális feldarabolás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Pointing Hand</source>
+ <translation>Mutató kéz</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Forbidden</source>
+ <translation>Tiltott</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Open Hand</source>
+ <translation>Nyitott kéz</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Closed Hand</source>
+ <translation>Zárt kéz</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>What&apos;s This</source>
+ <translation>Mi ez</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Busy</source>
+ <translation>Elfoglalt</translation>
+ </message>
+</context>
+<context>
+ <name>QtFontEditWidget</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+198"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Select Font</source>
+ <translation>Betű kiválasztása</translation>
+ </message>
+</context>
+<context>
+ <name>QtFontPropertyManager</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-351"/>
+ <source>Family</source>
+ <translation>Család</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Point Size</source>
+ <translation>Pont méret</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Bold</source>
+ <translation>Félkövér</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Italic</source>
+ <translation>Dőlt</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Underline</source>
+ <translation>Aláhúzás</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Strikeout</source>
+ <translation>Kitalálás</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Kerning</source>
+ <translation>Szóközökkel feltöltés</translation>
+ </message>
+</context>
+<context>
+ <name>QtGradientDialog</name>
+ <message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientdialog.ui" line="+53"/>
+ <source>Edit Gradient</source>
+ <translation>Meredekség szerkesztése</translation>
+ </message>
+</context>
+<context>
+ <name>QtGradientEditor</name>
+ <message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+431"/>
+ <source>Start X</source>
+ <translation>X indítása</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Start Y</source>
+ <translation>Y indítása</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Final X</source>
+ <translation>Végső X</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Final Y</source>
+ <translation>Végső Y</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <location line="+24"/>
+ <source>Central X</source>
+ <translation>X középpont</translation>
+ </message>
+ <message>
+ <location line="-20"/>
+ <location line="+24"/>
+ <source>Central Y</source>
+ <translation>Y középpont</translation>
+ </message>
+ <message>
+ <location line="-20"/>
+ <source>Focal X</source>
+ <translation>X gyújtópont</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Focal Y</source>
+ <translation>Y gyújtópont</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Radius</source>
+ <translation>Sugár</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Angle</source>
+ <translation>Szög</translation>
+ </message>
+ <message>
+ <location line="+288"/>
+ <source>Linear</source>
+ <translation>Lineáris</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Radial</source>
+ <translation>Sugárirányú</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Conical</source>
+ <translation>Kúp alakú</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Pad</source>
+ <translation>Lyuk</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Repeat</source>
+ <translation>Megismétlés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Reflect</source>
+ <translation>Prizma</translation>
+ </message>
+ <message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="+53"/>
+ <source>Form</source>
+ <translation>Űrlap</translation>
+ </message>
+ <message>
+ <location line="+48"/>
+ <source>Gradient Editor</source>
+ <translation>Meredekség szerkesztő</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>This area shows a preview of the gradient being edited. It also allows you to edit parameters specific to the gradient&apos;s type such as start and final point, radius, etc. by drag &amp; drop.</source>
+ <translation>Ez a mező jeleníti meg a meredekség egy előzetének szerkesztését. Ez engedélyezi a meredekség típusához tartozó paraméter specifikus dolgok szerkesztését, mint a kezdő és végpont, sugár, stb. a fogd &amp; vidd módszerrel.</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>2</source>
+ <translation>2</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>3</source>
+ <translation>3</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>4</source>
+ <translation>4</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>5</source>
+ <translation>5</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Gradient Stops Editor</source>
+ <translation>Meredekség leállítás szerkesztő</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>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 &amp; drop the handle to reposition it. Use right mouse button to popup context menu with extra actions.</source>
+ <translation>Ez a mező engedélyezi a meredekség leállításának szerkesztését.Dupla kattintás a létező leállítás kezelőn duplikálja ezt. Dupla kattintás a létező leállítás kezelőn kívül létrehoz egy új leállítást. Fogd &amp; vidd az újrapozíciónálo kezelőt. Használja a jobb egér gombot a felugró menü összefüggéshez extra tevékenységekkel.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Zoom</source>
+ <translation>Zoom</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <location line="+3"/>
+ <source>Reset Zoom</source>
+ <translation>Újraindítás zoom</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Position</source>
+ <translation>Pozíció</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <location line="+49"/>
+ <location line="+22"/>
+ <source>Hue</source>
+ <translation>Színárnyalat</translation>
+ </message>
+ <message>
+ <location line="-68"/>
+ <source>H</source>
+ <translation>H</translation>
+ </message>
+ <message>
+ <location line="+87"/>
+ <location line="+49"/>
+ <source>Saturation</source>
+ <translation>Telítettség</translation>
+ </message>
+ <message>
+ <location line="-46"/>
+ <source>S</source>
+ <translation>S</translation>
+ </message>
+ <message>
+ <location line="+68"/>
+ <source>Sat</source>
+ <translation>Sat</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <location line="+49"/>
+ <source>Value</source>
+ <translation>Érték</translation>
+ </message>
+ <message>
+ <location line="-46"/>
+ <source>V</source>
+ <translation>V</translation>
+ </message>
+ <message>
+ <location line="+68"/>
+ <source>Val</source>
+ <translation>Val</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <location line="+49"/>
+ <location line="+22"/>
+ <source>Alpha</source>
+ <translation>Alfa</translation>
+ </message>
+ <message>
+ <location line="-68"/>
+ <source>A</source>
+ <translation>A</translation>
+ </message>
+ <message>
+ <location line="+81"/>
+ <source>Type</source>
+ <translation>Típus</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Spread</source>
+ <translation>Kiterjedés</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Color</source>
+ <translation>Szín</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Current stop&apos;s color</source>
+ <translation>Aktuális leállítás színe</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Show HSV specification</source>
+ <translation>HSV specifikáció megjelenítése</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>HSV</source>
+ <translation>HSV</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Show RGB specification</source>
+ <translation>RGB specifikáció megjelenítése</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>RGB</source>
+ <translation>RGB</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Current stop&apos;s position</source>
+ <translation>Aktuális leállítás pozíciója</translation>
+ </message>
+ <message>
+ <location line="+188"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location line="+111"/>
+ <source>Zoom In</source>
+ <translation>Nagyítás</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Zoom Out</source>
+ <translation>Kicsinyítés</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Toggle details extension</source>
+ <translation>Részlet kiterjesztések kapcsolgatása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&gt;</source>
+ <translation>&gt;</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Linear Type</source>
+ <translation>Lineáris típus</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+22"/>
+ <location line="+22"/>
+ <location line="+22"/>
+ <location line="+22"/>
+ <location line="+22"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location line="-91"/>
+ <source>Radial Type</source>
+ <translation>Sugárirányú típus</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Conical Type</source>
+ <translation>Kúp alakú típus</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Pad Spread</source>
+ <translation>Lyuk kiterjedés</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Repeat Spread</source>
+ <translation>Ismétlési kiterjedés</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Reflect Spread</source>
+ <translation>Prizma kiterjedés</translation>
+ </message>
+</context>
+<context>
+ <name>QtGradientStopsWidget</name>
+ <message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+947"/>
+ <source>New Stop</source>
+ <translation>Új leállítás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Delete</source>
+ <translation>Törlés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Flip All</source>
+ <translation>Az összes feldobása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Select All</source>
+ <translation>Az összes kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Zoom In</source>
+ <translation>Nagyítás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Zoom Out</source>
+ <translation>Kicsinyítés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Reset Zoom</source>
+ <translation>Zoom újraindítása</translation>
+ </message>
+</context>
+<context>
+ <name>QtGradientView</name>
+ <message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+107"/>
+ <source>Grad</source>
+ <translation>Diplomás</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Remove Gradient</source>
+ <translation>Meredekség eltávolítása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Are you sure you want to remove the selected gradient?</source>
+ <translation>El szeretné távolítani a kiválasztott meredekséget?</translation>
+ </message>
+ <message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui" line="+39"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+74"/>
+ <source>New...</source>
+ <translation>Új...</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
+ <source>Edit...</source>
+ <translation>Szerkesztés...</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
+ <source>Rename</source>
+ <translation>Átnevezés</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
+ <source>Remove</source>
+ <translation>Eltávolítás</translation>
+ </message>
+ <message>
+ <location line="-83"/>
+ <source>Gradient View</source>
+ <translation>Meredekség nézet</translation>
+ </message>
+</context>
+<context>
+ <name>QtGradientViewDialog</name>
+ <message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui" line="+53"/>
+ <source>Select Gradient</source>
+ <translation>Meredekség kiválasztása</translation>
+ </message>
+</context>
+<context>
+ <name>QtKeySequenceEdit</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+221"/>
+ <source>Clear Shortcut</source>
+ <translation>Gyorsbillentyű kitisztítása</translation>
+ </message>
+</context>
+<context>
+ <name>QtLocalePropertyManager</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-3541"/>
+ <source>%1, %2</source>
+ <translation>%1, %2</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>Language</source>
+ <translation>Nyelv</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Country</source>
+ <translation>Ország</translation>
+ </message>
+</context>
+<context>
+ <name>QtPointFPropertyManager</name>
+ <message>
+ <location line="+411"/>
+ <source>(%1, %2)</source>
+ <translation>(%1, %2)</translation>
+ </message>
+ <message>
+ <location line="+71"/>
+ <source>X</source>
+ <translation>X</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Y</source>
+ <translation>Y</translation>
+ </message>
+</context>
+<context>
+ <name>QtPointPropertyManager</name>
+ <message>
+ <location line="-320"/>
+ <source>(%1, %2)</source>
+ <translation>(%1, %2)</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>X</source>
+ <translation>X</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Y</source>
+ <translation>Y</translation>
+ </message>
+</context>
+<context>
+ <name>QtPropertyBrowserUtils</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-136"/>
+ <source>[%1, %2, %3] (%4)</source>
+ <translation>[%1, %2, %3] (%4)</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>[%1, %2]</source>
+ <translation>[%1, %2]</translation>
+ </message>
+</context>
+<context>
+ <name>QtRectFPropertyManager</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1706"/>
+ <source>[(%1, %2), %3 x %4]</source>
+ <translation>[(%1, %2), %3 x %4]</translation>
+ </message>
+ <message>
+ <location line="+156"/>
+ <source>X</source>
+ <translation>X</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Y</source>
+ <translation>Y</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Width</source>
+ <translation>Szélesség</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Height</source>
+ <translation>Magasság</translation>
+ </message>
+</context>
+<context>
+ <name>QtRectPropertyManager</name>
+ <message>
+ <location line="-612"/>
+ <source>[(%1, %2), %3 x %4]</source>
+ <translation>[(%1, %2), %3 x %4]</translation>
+ </message>
+ <message>
+ <location line="+120"/>
+ <source>X</source>
+ <translation>X</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Y</source>
+ <translation>Y</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Width</source>
+ <translation>Szélesség</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Height</source>
+ <translation>Magasság</translation>
+ </message>
+</context>
+<context>
+ <name>QtResourceEditorDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="+76"/>
+ <source>%1 already exists.
+Do you want to replace it?</source>
+ <translation>%1 már létezik.
+Le szeretné cserélni?</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>The file does not appear to be a resource file; element &apos;%1&apos; was found where &apos;%2&apos; was expected.</source>
+ <translation>A fájl nem egy erőforrás fájl, &apos;%1&apos; elem található, ahol &apos;%2&apos; a várt.</translation>
+ </message>
+ <message>
+ <location line="+902"/>
+ <source>%1 [read-only]</source>
+ <translation>%1 [csak olvasható]</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <location line="+198"/>
+ <source>%1 [missing]</source>
+ <translation>%1 [hiányzik]</translation>
+ </message>
+ <message>
+ <location line="-72"/>
+ <source>&lt;no prefix&gt;</source>
+ <translation>&lt;nincs előtag&gt;</translation>
+ </message>
+ <message>
+ <location line="+320"/>
+ <location line="+566"/>
+ <source>New Resource File</source>
+ <translation>Új erőforrás fájl</translation>
+ </message>
+ <message>
+ <location line="-564"/>
+ <location line="+25"/>
+ <source>Resource files (*.qrc)</source>
+ <translation>Erőforrás fájlok (*.qrc)</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>Import Resource File</source>
+ <translation>Erőforrás fájl importálása</translation>
+ </message>
+ <message>
+ <location line="+112"/>
+ <source>newPrefix</source>
+ <translation>újElőtag</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; The file&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;is outside of the current resource file&apos;s parent directory.&lt;/p&gt;</source>
+ <translation>&lt;p&gt;&lt;b&gt;Figyelmeztetés:&lt;/b&gt; A(z)&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;fájl az aktuális erőforrás fájl szülő könyvtárán kívül helyezkedik el.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>&lt;p&gt;To resolve the issue, press:&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Copy&lt;/th&gt;&lt;td&gt;to copy the file to the resource file&apos;s parent directory.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Copy As...&lt;/th&gt;&lt;td&gt;to copy the file into a subdirectory of the resource file&apos;s parent directory.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Keep&lt;/th&gt;&lt;td&gt;to use its current location.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+ <translation>&lt;p&gt;A hiba megoldásához, nyomja le a következőt:&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Másolás&lt;/th&gt;&lt;td&gt;a fájl erőforrás fájljának szülőkönyvtárába másoláshoz.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Másolás másként...&lt;/th&gt;&lt;td&gt;a fájl erőforrás fájljának szülőkönyvtárának egy alkönyvtárába másoláshoz.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Megtartás&lt;/th&gt;&lt;td&gt;az aktuális helyének használatához. &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Add Files</source>
+ <translation>Fájlok hozzáadása</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>Incorrect Path</source>
+ <translation>Helytelen útvonal</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+19"/>
+ <location line="+212"/>
+ <location line="+7"/>
+ <source>Copy</source>
+ <translation>Másolás</translation>
+ </message>
+ <message>
+ <location line="-236"/>
+ <source>Copy As...</source>
+ <translation>Másolás, mint...</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Keep</source>
+ <translation>Megtartás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Skip</source>
+ <translation>Kihagyás</translation>
+ </message>
+ <message>
+ <location line="+87"/>
+ <source>Clone Prefix</source>
+ <translation>Előtag klónozása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Enter the suffix which you want to add to the names of the cloned files.
+This could for example be a language extension like &quot;_de&quot;.</source>
+ <translation>Gépelje be az utótagot, melyet hozzá akar adni a klónozott fájl nevekhez.
+Ez például egy nyelv kiterjesztés lenne, úgy mint &quot;_de&quot;.</translation>
+ </message>
+ <message>
+ <location line="+113"/>
+ <location line="+4"/>
+ <source>Copy As</source>
+ <translation>Másolás, mint</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&lt;p&gt;The selected file:&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;is outside of the current resource file&apos;s directory:&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;Please select another path within this directory.&lt;p&gt;</source>
+ <translation>&lt;p&gt;A kiválaszott fájl:&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;az aktuális erőforrás fájl könytárán kívül helyezkedik el:&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;Kérem válasszon másik útvonalat ezen a könyvtáron belül.&lt;p&gt;</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Could not overwrite %1.</source>
+ <translation>Nem sikerült felülírni %1.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Could not copy
+%1
+to
+%2</source>
+ <translation>Nem sikerült másolni
+%1
+ide
+%2</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>A parse error occurred at line %1, column %2 of %3:
+%4</source>
+ <translation>Egy elemzési hiba történt %3 %1 sorában, %2 oszlopában:
+%4</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Save Resource File</source>
+ <translation>Erőforrás fájl mentése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Could not write %1: %2</source>
+ <translation>Nem sikerült írni %1: %2</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>Edit Resources</source>
+ <translation>Erőforrások szerkesztése</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>New...</source>
+ <translation>Új...</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Open...</source>
+ <translation>Megnyitás...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Open Resource File</source>
+ <translation>Erőforrás fájl megnyitása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <location line="+11"/>
+ <source>Remove</source>
+ <translation>Eltávolítás</translation>
+ </message>
+ <message>
+ <location line="-10"/>
+ <location line="+11"/>
+ <source>Move Up</source>
+ <translation>Mozgatás felfelé</translation>
+ </message>
+ <message>
+ <location line="-10"/>
+ <location line="+11"/>
+ <source>Move Down</source>
+ <translation>Mozgatás lefelé</translation>
+ </message>
+ <message>
+ <location line="-9"/>
+ <location line="+1"/>
+ <source>Add Prefix</source>
+ <translation>Előtag hozzáadása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Add Files...</source>
+ <translation>Fájlok hozzáadása...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change Prefix</source>
+ <translation>Előtag megváltoztatása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change Language</source>
+ <translation>Nyelv megváltoztatása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change Alias</source>
+ <translation>Álnév megváltoztatása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Clone Prefix...</source>
+ <translation>Előtag klónozása...</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>Prefix / Path</source>
+ <translation>Előtag / Útvonal</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Language / Alias</source>
+ <translation>Nyelv / Álnév</translation>
+ </message>
+ <message>
+ <location line="+117"/>
+ <source>&lt;html&gt;&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; There have been problems while reloading the resources:&lt;/p&gt;&lt;pre&gt;%1&lt;/pre&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;p&gt;&lt;b&gt;Figyelmeztetés:&lt;/b&gt; Hibák történtek az erőforrások újra töltése közben:&lt;/p&gt;&lt;pre&gt;%1&lt;/pre&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Resource Warning</source>
+ <translation>Erőforrás figyelmeztetés</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui" line="+13"/>
+ <source>Dialog</source>
+ <translation>Párbeszéd ablak</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>New File</source>
+ <translation>Új fájl</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+50"/>
+ <source>N</source>
+ <translation>N</translation>
+ </message>
+ <message>
+ <location line="-43"/>
+ <source>Remove File</source>
+ <translation>Fájl eltávolítása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+57"/>
+ <source>R</source>
+ <translation>R</translation>
+ </message>
+ <message>
+ <location line="-34"/>
+ <source>I</source>
+ <translation>I</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>New Resource</source>
+ <translation>Új erőforrás</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>A</source>
+ <translation>A</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Remove Resource or File</source>
+ <translation>Erőforrás vagy fájl eltávolítása</translation>
+ </message>
+</context>
+<context>
+ <name>QtResourceView</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+566"/>
+ <source>Size: %1 x %2
+%3</source>
+ <translation>Méret: %1 x %2
+%3</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Edit Resources...</source>
+ <translation>Erőforrások szerkesztése...</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Reload</source>
+ <translation>Újratöltés</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Copy Path</source>
+ <translation>Útvonal másolása</translation>
+ </message>
+</context>
+<context>
+ <name>QtResourceViewDialog</name>
+ <message>
+ <location line="+250"/>
+ <source>Select Resource</source>
+ <translation>Erőforrás kiválasztása</translation>
+ </message>
+</context>
+<context>
+ <name>QtSizeFPropertyManager</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-535"/>
+ <source>%1 x %2</source>
+ <translation>%1 x %2</translation>
+ </message>
+ <message>
+ <location line="+130"/>
+ <source>Width</source>
+ <translation>Szélesség</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Height</source>
+ <translation>Magasság</translation>
+ </message>
+</context>
+<context>
+ <name>QtSizePolicyPropertyManager</name>
+ <message>
+ <location line="+1709"/>
+ <location line="+1"/>
+ <source>&lt;Invalid&gt;</source>
+ <translation>&lt;Érvénytelen&gt;</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>[%1, %2, %3, %4]</source>
+ <translation>[%1, %2, %3, %4]</translation>
+ </message>
+ <message>
+ <location line="+45"/>
+ <source>Horizontal Policy</source>
+ <translation>Horizontális irányvonal</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Vertical Policy</source>
+ <translation>Vertikális irányelv</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Horizontal Stretch</source>
+ <translation>Horizontális terjedelem</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Vertical Stretch</source>
+ <translation>Vertikális terjedelem</translation>
+ </message>
+</context>
+<context>
+ <name>QtSizePropertyManager</name>
+ <message>
+ <location line="-2286"/>
+ <source>%1 x %2</source>
+ <translation>%1 x %2</translation>
+ </message>
+ <message>
+ <location line="+96"/>
+ <source>Width</source>
+ <translation>Szélesség</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Height</source>
+ <translation>Magasság</translation>
+ </message>
+</context>
+<context>
+ <name>QtToolBarDialog</name>
+ <message>
+ <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1240"/>
+ <source>Custom Toolbar</source>
+ <translation>Egyéni eszköz sáv</translation>
+ </message>
+ <message>
+ <location line="+544"/>
+ <source>&lt; S E P A R A T O R &gt;</source>
+ <translation>&lt; E L V Á L A S Z T Ó &gt;</translation>
+ </message>
+ <message>
+ <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="+13"/>
+ <source>Customize Toolbars</source>
+ <translation>Eszköz sávok testreszabása</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Actions</source>
+ <translation>Tevékenységek</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Toolbars</source>
+ <translation>Eszköz sávok</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Add new toolbar</source>
+ <translation>Új eszköz sáv hozzáadása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>New</source>
+ <translation>Új</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Remove selected toolbar</source>
+ <translation>Kiválaszott eszköz sáv eltávolítás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Remove</source>
+ <translation>Eltávolítás</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Rename toolbar</source>
+ <translation>Eszköz sáv átnevezése</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Rename</source>
+ <translation>Átnevezés</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Move action up</source>
+ <translation>Tevékenység mozgatása felfelé</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Up</source>
+ <translation>Fel</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Remove action from toolbar</source>
+ <translation>Tevékenység eltávolítása az eszköz sávról</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&lt;-</source>
+ <translation>&lt;-</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Add action to toolbar</source>
+ <translation>Tevékenység hozzáadása az eszközsávhoz</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>-&gt;</source>
+ <translation>-&gt;</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Move action down</source>
+ <translation>Tevékenység mozgatása felfele</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Down</source>
+ <translation>Le</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Current Toolbar Actions</source>
+ <translation>Aktuális eszköz sáv tevékenységek</translation>
+ </message>
+</context>
+<context>
+ <name>QtTreePropertyBrowser</name>
+ <message>
+ <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+442"/>
+ <source>Property</source>
+ <translation>Tulajdonság</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Value</source>
+ <translation>Érték</translation>
+ </message>
+</context>
+<context>
+ <name>SaveFormAsTemplate</name>
+ <message>
+ <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+72"/>
+ <source>Add path...</source>
+ <translation>Útvonal hozzáadása...</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Template Exists</source>
+ <translation>A sablon létezik</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A template with the name %1 already exists.
+Do you want overwrite the template?</source>
+ <translation>Egy %1 nevű sablon már létezik.
+Felül szeretné írni a sablont?</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Overwrite Template</source>
+ <translation>Sablom felülírása</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Open Error</source>
+ <translation>Megnyitási hiba</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>There was an error opening template %1 for writing. Reason: %2</source>
+ <translation>Hiba történt a(z) %1 sablon írásra megnyitása közben. Ok: %2</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Write Error</source>
+ <translation>Írása hiba</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>There was an error writing the template %1 to disk. Reason: %2</source>
+ <translation>Hiba történt a(z) %1 sablon lemezre írása közben. Ok: %2</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Pick a directory to save templates in</source>
+ <translation>Egy könyvtár gondos kiválasztása, melybe a könytárak lesznek elmentve</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/designer/saveformastemplate.ui" line="+45"/>
+ <source>Save Form As Template</source>
+ <translation>Az űrlap sablonként mentése</translation>
+ </message>
+ <message>
+ <location line="+49"/>
+ <source>&amp;Category:</source>
+ <translation>&amp;Kategória:</translation>
+ </message>
+ <message>
+ <location line="-35"/>
+ <source>&amp;Name:</source>
+ <translation>&amp;Név:</translation>
+ </message>
+</context>
+<context>
+ <name>ScriptErrorDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+59"/>
+ <source>An error occurred while running the scripts for &quot;%1&quot;:
+</source>
+ <translation>Hiba történt a szkriptek futtatása közben &apos;%1&apos;-re:</translation>
+ </message>
+</context>
+<context>
+ <name>SelectSignalDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/selectsignaldialog.ui" line="+14"/>
+ <source>Go to slot</source>
+ <translation>Szlotra ugrás</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Select signal</source>
+ <translation>Jel kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>signal</source>
+ <translation>jel</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>class</source>
+ <translation>osztály</translation>
+ </message>
+</context>
+<context>
+ <name>SignalSlotConnection</name>
+ <message>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="-358"/>
+ <source>SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4)</source>
+ <translation>KÜLDŐ(%1), JEL(%2), FOGADÓ(%3), SZLOT(%4)</translation>
+ </message>
+</context>
+<context>
+ <name>SignalSlotDialogClass</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui" line="+13"/>
+ <source>Signals and slots</source>
+ <translation>Jelek és szlotok</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Slots</source>
+ <translation>Szlotok</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <location line="+49"/>
+ <source>Add</source>
+ <translation>Hozzáadás</translation>
+ </message>
+ <message>
+ <location line="-46"/>
+ <location line="+10"/>
+ <location line="+39"/>
+ <location line="+10"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location line="-52"/>
+ <location line="+49"/>
+ <source>Delete</source>
+ <translation>Törlés</translation>
+ </message>
+ <message>
+ <location line="-21"/>
+ <source>Signals</source>
+ <translation>Jelek</translation>
+ </message>
+</context>
+<context>
+ <name>Spacer</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="+275"/>
+ <source>Horizontal Spacer &apos;%1&apos;, %2 x %3</source>
+ <translation>Horizontális távtartók &apos;%1&apos;, %2 x %3</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Vertical Spacer &apos;%1&apos;, %2 x %3</source>
+ <translation>Vertikális távtartók &apos;%1&apos;, %2 x %3</translation>
+ </message>
+</context>
+<context>
+ <name>TemplateOptionsPage</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="+156"/>
+ <source>Template Paths</source>
+ <extracomment>Tab in preferences dialog</extracomment>
+ <translatorcomment>Слово &quot;пути&quot; опустил, т.к. с другими вкладками не перепутать, а длинная вкладка не смотрится.</translatorcomment>
+ <translation>Sablon útvonalak</translation>
+ </message>
+</context>
+<context>
+ <name>ToolBarManager</name>
+ <message>
+ <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+89"/>
+ <source>Configure Toolbars...</source>
+ <translation>Eszköz sávok konfigurálása...</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Window</source>
+ <translation>Ablak</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Help</source>
+ <translation>Súgó</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Style</source>
+ <translation>Stílus</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Dock views</source>
+ <translation>Dokk nézetek</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Toolbars</source>
+ <translation>Eszköz sávok</translation>
+ </message>
+</context>
+<context>
+ <name>VersionDialog</name>
+ <message>
+ <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+171"/>
+ <source>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;&lt;br/&gt;Version %2</source>
+ <translation>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;&lt;br/&gt;Verzió %2</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Qt Designer</source>
+ <translation>Qt Designer</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&lt;br/&gt;Qt Designer is a graphical user interface designer for Qt applications.&lt;br/&gt;</source>
+ <translation>&lt;br/&gt;Qt Designer egy grafikus felhasználói felület tervező Qt alkalmazásokhoz.&lt;br/&gt;</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>%1&lt;br/&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</source>
+ <translation>%1&lt;br/&gt;Szerzői jog (C) 2010 Nokia vállalat és/vagy leányvállalata(i).</translation>
+ </message>
+</context>
+<context>
+ <name>WidgetDataBase</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="+814"/>
+ <source>The file contains a custom widget &apos;%1&apos; whose base class (%2) differs from the current entry in the widget database (%3). The widget database is left unchanged.</source>
+ <translation>A fájl egy egyéni &apos;%1&apos; widget-t tartalmaz, aminek az alap osztálya (%2) különbözik az aktuális beviteltől a widget adatbázisban (%3). A widget adatbázis változatlanul lett hagyva.</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ActionEditor</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+123"/>
+ <source>New...</source>
+ <translation>Új...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Edit...</source>
+ <translation>Szerkesztés...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Go to slot...</source>
+ <translation>Ugrás a szlotra...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Copy</source>
+ <translation>Másolás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Cut</source>
+ <translation>Kivágás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Paste</source>
+ <translation>Beillesztés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Select all</source>
+ <translation>Az összes kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Delete</source>
+ <translation>Törlés</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Actions</source>
+ <translation>Tevékenységek</translation>
+ </message>
+ <message>
+ <location line="+49"/>
+ <source>Configure Action Editor</source>
+ <translation>Tevékenység szerkesztő konfigurálása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Icon View</source>
+ <translation>Ikon nézet</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Detailed View</source>
+ <translation>Részletezett nézet</translation>
+ </message>
+ <message>
+ <location line="+246"/>
+ <source>New action</source>
+ <translation>Új tevékenység</translation>
+ </message>
+ <message>
+ <location line="+98"/>
+ <source>Edit action</source>
+ <translation>Tevékenység szerkesztése</translation>
+ </message>
+ <message>
+ <location line="+69"/>
+ <source>Remove action &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; tevékenység eltávolítása</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Remove actions</source>
+ <translation>Tevékenységek eltávolítása</translation>
+ </message>
+ <message>
+ <location line="+186"/>
+ <source>Used In</source>
+ <translation>Használva ebben</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ActionModel</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+95"/>
+ <source>Name</source>
+ <translation>Név</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Used</source>
+ <translation>Használt</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Text</source>
+ <translation>Szöveg</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Shortcut</source>
+ <translation>Rövidebb út</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Checkable</source>
+ <translation>Leellenőrizhető</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>ToolTip</source>
+ <translation>Eszköz tipp</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::BrushManagerProxy</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+219"/>
+ <source>The element &apos;%1&apos; is missing the required attribute &apos;%2&apos;.</source>
+ <translation>A(z) &apos;%1&apos; elem hiányzik, a szükséges attribútum &apos;%2&apos;.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Empty brush name encountered.</source>
+ <translation>Üres kefe nevet talált.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>An unexpected element &apos;%1&apos; was encountered.</source>
+ <translation>Egy &apos;%1&apos; váratlan elemet talált.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>An error occurred when reading the brush definition file &apos;%1&apos; at line line %2, column %3: %4</source>
+ <translation>Hiba történt a(z) &apos;%1&apos; ecset definíciós fájl olvasása közben %2 sorban, %3 oszlopban: %4</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>An error occurred when reading the resource file &apos;%1&apos; at line %2, column %3: %4</source>
+ <translation>Hiba történt a(z) &apos;%1&apos; erőforrás fájl olvasása közben, %2 sorban, %3 oszlopban: %4</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::BuddyEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+261"/>
+ <source>Add buddy</source>
+ <translation>Haver hozzáadása</translation>
+ </message>
+ <message>
+ <location line="+52"/>
+ <source>Remove buddies</source>
+ <translation>Haverok eltávolítása</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+24"/>
+ <source>Remove %n buddies</source>
+ <translation>
+ <numerusform>%n haverok eltávolítása</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location line="+51"/>
+ <source>Add %n buddies</source>
+ <translation>
+ <numerusform>%n haver hozzáadása</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+47"/>
+ <source>Set automatically</source>
+ <translation>Automatikus beállítás</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::BuddyEditorPlugin</name>
+ <message>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+73"/>
+ <source>Edit Buddies</source>
+ <translation>Haverok szerkesztése</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::BuddyEditorTool</name>
+ <message>
+ <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+56"/>
+ <source>Edit Buddies</source>
+ <translation>Haverok szerkesztése</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ButtonGroupMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+7"/>
+ <source>Select members</source>
+ <translation>Tagok kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Break</source>
+ <translation>Törés</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ButtonTaskMenu</name>
+ <message>
+ <location line="+121"/>
+ <source>Assign to button group</source>
+ <translation>Gomb csoporthoz rendelés</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Button group</source>
+ <translation>Gomb csoport</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>New button group</source>
+ <translation>Új gomb csoport</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change text...</source>
+ <translation>Szöveg megváltoztatása...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>None</source>
+ <translation>Semmi</translation>
+ </message>
+ <message>
+ <location line="+101"/>
+ <source>Button group &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; gomb csoport</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::CodeDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+95"/>
+ <source>Save...</source>
+ <translation>Mentés...</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Copy All</source>
+ <translation>Az összes másolása</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Find in Text...</source>
+ <translation>&amp;Keresés szövegben...</translation>
+ </message>
+ <message>
+ <location line="+75"/>
+ <source>A temporary form file could not be created in %1.</source>
+ <translation>Egy átmeneti űrlap fájlt nem sikerült létrehozni %1-ben.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>The temporary form file %1 could not be written.</source>
+ <translation>A(z) %1 átmeneti űrlap fájlt nem sikerült írni.</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>%1 - [Code]</source>
+ <translation>%1 - [Kód]</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Save Code</source>
+ <translation>Kód mentése</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Header Files (*.%1)</source>
+ <translation>Fejállományok (*.%1)</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>The file %1 could not be opened: %2</source>
+ <translation>A(z) %1 fájlt nem sikerült megnyitni: %2</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>The file %1 could not be written: %2</source>
+ <translation>A(z) %1 fájlt nem sikerült írni: %2</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>%1 - Error</source>
+ <translation>%1 - Hiba</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ColorAction</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+246"/>
+ <source>Text Color</source>
+ <translation>Szöveg szín</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ComboBoxTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+68"/>
+ <source>Edit Items...</source>
+ <translation>Elemek szerkesztése...</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Change Combobox Contents</source>
+ <translation>Combobox tartalmának megváltoztatása</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::CommandLinkButtonTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+156"/>
+ <source>Change description...</source>
+ <translation>Leírás megváltoztatása...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ConnectionEdit</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+1313"/>
+ <source>Select All</source>
+ <translation>Az összes kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Deselect All</source>
+ <translation>Az összes kijelölés eltűntetése</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Delete</source>
+ <translation>Törlés</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ConnectionModel</name>
+ <message>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="-465"/>
+ <source>Sender</source>
+ <translation>Küldő</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Signal</source>
+ <translation>Jel</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Receiver</source>
+ <translation>Fogadó</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Slot</source>
+ <translation>Szlot</translation>
+ </message>
+ <message>
+ <location line="+90"/>
+ <source>&lt;sender&gt;</source>
+ <translation>&lt;küldő&gt;</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&lt;signal&gt;</source>
+ <translation>&lt;jel&gt;</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&lt;receiver&gt;</source>
+ <translation>&lt;fogadó&gt;</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&lt;slot&gt;</source>
+ <translation>&lt;szlot&gt;</translation>
+ </message>
+ <message>
+ <location line="+108"/>
+ <source>The connection already exists!&lt;br&gt;%1</source>
+ <translation>A kapcsolat már létezik!&lt;br&gt;%1</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Signal and Slot Editor</source>
+ <translation>Jel és Szlot szerkesztő</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ContainerWidgetTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+79"/>
+ <source>Delete</source>
+ <translation>Törlés</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Insert</source>
+ <translation>Beszúrás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert Page Before Current Page</source>
+ <translation>Lap beszúrása az aktuális lap elé</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Insert Page After Current Page</source>
+ <translation>Lap beszúrása az aktuális lap után</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Add Subwindow</source>
+ <translation>Alablak hozzáadása</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Subwindow</source>
+ <translation>Al ablak</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Page</source>
+ <translation>Lap</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Page %1 of %2</source>
+ <translation>%2 %1 lapja</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::DPI_Chooser</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="+27"/>
+ <source>System (%1 x %2)</source>
+ <extracomment>System resolution</extracomment>
+ <translation>Rendszer (%1 x %2)</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>User defined</source>
+ <translation>Felhasználó által definiált</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source> x </source>
+ <extracomment>DPI X/Y separator</extracomment>
+ <translation> x </translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::DesignerPropertyManager</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+647"/>
+ <location line="+6"/>
+ <source>AlignLeft</source>
+ <translation>IgazításBalra</translation>
+ </message>
+ <message>
+ <location line="-5"/>
+ <source>AlignHCenter</source>
+ <translation>IgazításHKözépre</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>AlignRight</source>
+ <translation>IgazításJobbra</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>AlignJustify</source>
+ <translation>IgazításFeloldása</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>AlignTop</source>
+ <translation>IgazításTetejére</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <location line="+4"/>
+ <source>AlignVCenter</source>
+ <translation>IgazításVKözépre</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>AlignBottom</source>
+ <translation>IgazításAlulra</translation>
+ </message>
+ <message>
+ <location line="+565"/>
+ <source>%1, %2</source>
+ <translation>%1, %2</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+6"/>
+ <source>Customized (%n roles)</source>
+ <translation>
+ <numerusform>Testreszabva (%n szabály)</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Inherited</source>
+ <translation>Örökölt</translation>
+ </message>
+ <message>
+ <location line="+566"/>
+ <source>Horizontal</source>
+ <translation>Horizontális</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Vertical</source>
+ <translation>Vertikális</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Normal Off</source>
+ <translation>Normál ki</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Normal On</source>
+ <translation>Normál be</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Disabled Off</source>
+ <translation>Tiltás ki</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Disabled On</source>
+ <translation>Tiltás be</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Active Off</source>
+ <translation>Aktív ki</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Active On</source>
+ <translation>Aktív be</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Selected Off</source>
+ <translation>Kiválasztás ki</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Selected On</source>
+ <translation>Kiválasztás be</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <location line="+21"/>
+ <source>translatable</source>
+ <translation>fordítható</translation>
+ </message>
+ <message>
+ <location line="-15"/>
+ <location line="+21"/>
+ <source>disambiguation</source>
+ <translation>Nem félreérthető</translation>
+ </message>
+ <message>
+ <location line="-15"/>
+ <location line="+21"/>
+ <source>comment</source>
+ <translation>megjegyzés</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::DeviceProfileDialog</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+63"/>
+ <source>Device Profiles (*.%1)</source>
+ <translation>Eszköz profilok (*.%1)</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Default</source>
+ <translation>Alapértelmezett</translation>
+ </message>
+ <message>
+ <location line="+67"/>
+ <source>Save Profile</source>
+ <translation>Profil mentése</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Save Profile - Error</source>
+ <translation>Profil mentése - Hiba</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Unable to open the file &apos;%1&apos; for writing: %2</source>
+ <translation>Nem lehet megnyitni a(z) &apos;%1&apos; fájlt írásra: %2</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Open profile</source>
+ <translation>Profil megnyitása</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+6"/>
+ <source>Open Profile - Error</source>
+ <translation>Profil megnyitása - Hiba</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>Unable to open the file &apos;%1&apos; for reading: %2</source>
+ <translation>Nem lehet megnyitni a(z) &apos;%1&apos; fájlt olvasásra: %2</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>&apos;%1&apos; is not a valid profile: %2</source>
+ <translation>&apos;%1&apos; nem egy érvényes profil: %2</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::Dialog</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui" line="+53"/>
+ <source>Dialog</source>
+ <translation>Párbeszéd ablak</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>StringList</source>
+ <translation>Sztring lista</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>New String</source>
+ <translation>Új Sztring</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;New</source>
+ <translation>&amp;Új</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Delete String</source>
+ <translation>Sztring törlése</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Törlés</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>&amp;Value:</source>
+ <translation>&amp;Érték:</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Move String Up</source>
+ <translation>Sztring felfelé mozgatása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Up</source>
+ <translation>Fel</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Move String Down</source>
+ <translation>Sztring lefelé mozgatása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Down</source>
+ <translation>Le</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::EmbeddedOptionsControl</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="-260"/>
+ <source>None</source>
+ <translation>Semmi</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Add a profile</source>
+ <translation>Egy profil hozzáadása</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Edit the selected profile</source>
+ <translation>A kiválasztott profil szerkesztése</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Delete the selected profile</source>
+ <translation>A kiválasztott profil törlése</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Add Profile</source>
+ <translation>Profil hozzáadása</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>New profile</source>
+ <translation>Új profil</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Edit Profile</source>
+ <translation>Profil szerkesztése</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Delete Profile</source>
+ <translation>Profil törlése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Would you like to delete the profile &apos;%1&apos;?</source>
+ <translation>Törölni szeretné a(z) &apos;%1&apos; profilet?</translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>Default</source>
+ <translation>Alapértelmezett</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::FilterWidget</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+185"/>
+ <source>&lt;Filter&gt;</source>
+ <translation>&lt;Szűrő&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::FormEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+190"/>
+ <source>Resource File Changed</source>
+ <translation>Erőforrás fájl megváltoztatva</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The file &quot;%1&quot; has changed outside Designer. Do you want to reload it?</source>
+ <translation>A(z) &apos;%1&apos; fájl megváltoztatták a Designer-en kívül. Újra szeretné tölteni?</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::FormLayoutMenu</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+24"/>
+ <source>Add form layout row...</source>
+ <translation>Űrlap elrendezési sor hozzáadása...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::FormWindow</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1267"/>
+ <source>Edit contents</source>
+ <translation>Tartalom szerkesztése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>F2</source>
+ <translation>F2</translation>
+ </message>
+ <message>
+ <location line="+774"/>
+ <source>Insert widget &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; widget beszúrása</translation>
+ </message>
+ <message>
+ <location line="+67"/>
+ <source>Resize</source>
+ <translation>Átméretezés</translation>
+ </message>
+ <message>
+ <location line="+218"/>
+ <location line="+15"/>
+ <source>Key Move</source>
+ <translation>Kulcs mozgatás</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+211"/>
+ <source>Paste %n action(s)</source>
+ <translation>
+ <numerusform>%n tevékenység beillesztése</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location line="+2"/>
+ <source>Paste %n widget(s)</source>
+ <translation>
+ <numerusform>%n widget beillesztése</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Paste (%1 widgets, %2 actions)</source>
+ <translation>Beillesztés (%1 widget-ek, %2 tevékenységek)</translation>
+ </message>
+ <message>
+ <location line="+56"/>
+ <source>Cannot paste widgets. Designer could not find a container without a layout to paste into.</source>
+ <translation>Nem lehet beilleszteni a widget-eket. A Designer nem talált egy tárolót sem elrendezés nélküli beillesztéshez.</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Break the layout of the container you want to paste into, select this container and then paste again.</source>
+ <translation>A tároló elrendezésének megtörése, ahová be akarja illeszteni, válassza ki ezt a tárolót és aztán illessze e újra.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Paste error</source>
+ <translation>Beillesztési hiba</translation>
+ </message>
+ <message>
+ <location line="+183"/>
+ <source>Raise widgets</source>
+ <translation>Widget-ek növelése</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Lower widgets</source>
+ <translation>Alsó widget-ek</translation>
+ </message>
+ <message>
+ <location line="+204"/>
+ <source>Select Ancestor</source>
+ <translation>Ős kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Lay out</source>
+ <translation>Elrendezés</translation>
+ </message>
+ <message>
+ <location line="+493"/>
+ <location line="+55"/>
+ <source>Drop widget</source>
+ <translation>Widget ejtése</translation>
+ </message>
+ <message>
+ <location line="-13"/>
+ <source>A QMainWindow-based form does not contain a central widget.</source>
+ <translation>Egy QMainWindow alapú űrlap nem tartalmaz egy központi widget-et.</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::FormWindowBase</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+393"/>
+ <source>Delete &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; törlése</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Delete</source>
+ <translation>Törlés</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::FormWindowManager</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+364"/>
+ <source>Cu&amp;t</source>
+ <translation>&amp;Kivágás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Cuts the selected widgets and puts them on the clipboard</source>
+ <translation>A kiválaszott widget-ek kivágása és vágólapra helyezése</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Copy</source>
+ <translation>&amp;Másolás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Copies the selected widgets to the clipboard</source>
+ <translation>A kiválasztott widget-ek vágólapra másolása</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Paste</source>
+ <translation>&amp;Beillesztés</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Pastes the clipboard&apos;s contents</source>
+ <translation>A vágólap tartalmának beillesztése</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Törlés</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Deletes the selected widgets</source>
+ <translation>A kiválasztott widget-ek törlése</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Select &amp;All</source>
+ <translation>Az &amp;összes kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Selects all widgets</source>
+ <translation>Az összes widget kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Bring to &amp;Front</source>
+ <translation>&amp;Előre hozás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+1"/>
+ <source>Raises the selected widgets</source>
+ <translation>A kiválaszott widget-ek növelése</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Send to &amp;Back</source>
+ <translation>&amp;Visszaküldés</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+1"/>
+ <source>Lowers the selected widgets</source>
+ <translation>Alsó kiválasztott widget-ek</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Adjust &amp;Size</source>
+ <translation>&amp;Méret igazítása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Adjusts the size of the selected widget</source>
+ <translation>A kiválasztott widget méretének igazítása</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Lay Out &amp;Horizontally</source>
+ <translation>Elrendezés &amp;Horizontálisan</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Lays out the selected widgets horizontally</source>
+ <translation>A kiválaszott widget-ek horizontális elrendezése</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Lay Out &amp;Vertically</source>
+ <translation>Elrendezés &amp;vertikálisan</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Lays out the selected widgets vertically</source>
+ <translation>A kiválaszott widget-ek vertikális elrendezése</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Lay Out in a &amp;Form Layout</source>
+ <translation>Elrendezés egy &amp;Űrlap elrendezésben</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Lays out the selected widgets in a form layout</source>
+ <translation>A kiválaszott widget-ek elrendezése egy űrlap elrendezésben</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Lay Out in a &amp;Grid</source>
+ <translation>Elrendezés egy &amp;rácsban</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Lays out the selected widgets in a grid</source>
+ <translation>A kiválasztott widget-ek elrendezése egy rácsban</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Lay Out Horizontally in S&amp;plitter</source>
+ <translation>Elrendezés Horizontálisan a &amp;csúszkában</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Lays out the selected widgets horizontally in a splitter</source>
+ <translation>A kiválasztott widget-ek horizontális elrendezése egy csúszkában</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Lay Out Vertically in Sp&amp;litter</source>
+ <translation>Elrendezés vertikálisan egy &amp;csúszkában</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Lays out the selected widgets vertically in a splitter</source>
+ <translation>A kiválaszott widget-ek vertikális elrendezése egy csúszkában</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>&amp;Break Layout</source>
+ <translation>Elrendezés &amp;törése</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Breaks the selected layout</source>
+ <translation>A kiválaszott elrendezés törése</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Si&amp;mplify Grid Layout</source>
+ <translation>Egy&amp;szerűsített rács elrendezés</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Removes empty columns and rows</source>
+ <translation>Üres oszlopok és sorok eltávolítása</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>&amp;Preview...</source>
+ <translation>&amp;Előnézet...</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Preview current form</source>
+ <translation>Aktuális űrlap előnézet</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Form &amp;Settings...</source>
+ <translation>Űrlap &amp;beállítások...</translation>
+ </message>
+ <message>
+ <location line="+92"/>
+ <source>Break Layout</source>
+ <translation>Elrendezés törése</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Adjust Size</source>
+ <translation>Méret igazítása</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>Could not create form preview</source>
+ <comment>Title of warning message box</comment>
+ <translation>Nem sikerült létrehozni az űrlap előnézetet</translation>
+ </message>
+ <message>
+ <location line="+341"/>
+ <source>Form Settings - %1</source>
+ <translation>Űrlap beállítások - %1</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::FormWindowSettings</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+193"/>
+ <source>None</source>
+ <translation>Semmi</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Device Profile: %1</source>
+ <translation>Eszköz profil: %1</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::GridPanel</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/gridpanel.ui" line="+13"/>
+ <source>Form</source>
+ <translation>Űrlap</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Grid</source>
+ <translation>Rács</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Visible</source>
+ <translation>Látható</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Grid &amp;X</source>
+ <translation>Rács &amp;X</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <location line="+57"/>
+ <source>Snap</source>
+ <translation>Bepattintás</translation>
+ </message>
+ <message>
+ <location line="-48"/>
+ <source>Reset</source>
+ <translation>Újraindítás</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Grid &amp;Y</source>
+ <translation>Rács &amp;Y</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::GroupBoxTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+82"/>
+ <source>Change title...</source>
+ <translation>Cím változtatása...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::HtmlTextEdit</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="-58"/>
+ <source>Insert HTML entity</source>
+ <translation>HTML entitás beszúrása</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::IconSelector</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-24"/>
+ <source>The pixmap file &apos;%1&apos; cannot be read.</source>
+ <translation>A(z) &apos;%1&apos; pixmap fájlt nem lehet olvasni.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>The file &apos;%1&apos; does not appear to be a valid pixmap file: %2</source>
+ <translation>A(z) &apos;%1&apos; fájlt nem egy érvényes pixmap fájl: %2</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>The file &apos;%1&apos; could not be read: %2</source>
+ <translation>A(z) &apos;%1&apos; fájlt nem sikerült olvasni: %2</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>Choose a Pixmap</source>
+ <translation>Egy pixmap kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Pixmap Read Error</source>
+ <translation>Pixmap olvasási hiba</translation>
+ </message>
+ <message>
+ <location line="+54"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Normal Off</source>
+ <translation>Normál ki</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Normal On</source>
+ <translation>Normál be</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Disabled Off</source>
+ <translation>Tiltás ki</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Disabled On</source>
+ <translation>Tiltás be</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Active Off</source>
+ <translation>Aktív ki</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Active On</source>
+ <translation>Aktív be</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Selected Off</source>
+ <translation>Kiválaszott ki</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Selected On</source>
+ <translation>Kiválaszott be</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Choose Resource...</source>
+ <translation>Erőforrás kiválasztása...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Choose File...</source>
+ <translation>Fájl kiválasztása...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Reset</source>
+ <translation>Újraindítás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Reset All</source>
+ <translation>Az összes újraindítása</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ItemListEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+358"/>
+ <source>Properties &amp;&lt;&lt;</source>
+ <translation>Tulajdonságok &amp;&lt;&lt;</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui" line="+143"/>
+ <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+2"/>
+ <source>Properties &amp;&gt;&gt;</source>
+ <translation>Tulajdonságok &amp;&gt;&gt;</translation>
+ </message>
+ <message>
+ <location line="-75"/>
+ <source>Items List</source>
+ <translation>Elem lista</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>New Item</source>
+ <translation>Új elem</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;New</source>
+ <translation>&amp;Új</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Delete Item</source>
+ <translation>Elem törlése</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Törlés</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Move Item Up</source>
+ <translation>Elem mozgatása felfelé</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>U</source>
+ <translation>U</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Move Item Down</source>
+ <translation>Elem mozgatása lefelé</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>D</source>
+ <translation>D</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::LabelTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="+85"/>
+ <source>Change rich text...</source>
+ <translation>Gazdag szöveg választása...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change plain text...</source>
+ <translation>Egyszerű szöveg választása...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::LanguageResourceDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-343"/>
+ <source>Choose Resource</source>
+ <translation>Erőforrás kiválasztása</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::LineEditTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+80"/>
+ <source>Change text...</source>
+ <translation>Szöveg kiválasztása...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ListWidgetEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+69"/>
+ <source>New Item</source>
+ <translation>Új elem</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <source>Edit List Widget</source>
+ <translation>Widget szerkesztési lista</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Edit Combobox</source>
+ <translation>Combobox szerkesztése</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ListWidgetTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+67"/>
+ <source>Edit Items...</source>
+ <translation>Elemek szerkesztése...</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Change List Contents</source>
+ <translation>Tartalom változtatási lista</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::MdiContainerWidgetTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+118"/>
+ <source>Next Subwindow</source>
+ <translation>Új alablak</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Previous Subwindow</source>
+ <translation>Előző alablak</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Tile</source>
+ <translation>Cserép</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Cascade</source>
+ <translation>Kaszkád</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::MenuTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+56"/>
+ <source>Remove</source>
+ <translation>Eltávolítás</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::MorphMenu</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+264"/>
+ <source>Morph into</source>
+ <translation>Morph into</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::NewActionDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/newactiondialog.ui" line="+46"/>
+ <source>New Action...</source>
+ <translation>Új tevékenység...</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>&amp;Text:</source>
+ <translation>&amp;Szöveg:</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Object &amp;name:</source>
+ <translation>Objektum &amp;név:</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>&amp;Icon:</source>
+ <translation>&amp;Ikon:</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Shortcut:</source>
+ <translation>Rövidebb út:</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Checkable:</source>
+ <translation>Ellenőrizhető:</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>ToolTip:</source>
+ <translation>Eszköz tipp:</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <location line="+21"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::NewDynamicPropertyDialog</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+134"/>
+ <source>Set Property Name</source>
+ <translation>Tulajdonság nevének beállítása</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>The current object already has a property named &apos;%1&apos;.
+Please select another, unique one.</source>
+ <translation>Az aktuális objektumnak már van egy &apos;%1&apos; nevű tulajdonsága.
+Kérem válasszon másikat, egy egyedülállót.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>The &apos;_q_&apos; prefix is reserved for the Qt library.
+Please select another name.</source>
+ <translation>Az &apos;_q_&apos; előtag foglalt a Qt könyvtárhoz.
+Kérem válasszon másikat.</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui" line="+13"/>
+ <source>Create Dynamic Property</source>
+ <translation>Dinamikus tulajdonság létrehozása</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>Property Name</source>
+ <translation>Tulajdonság Neve</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>horizontalSpacer</source>
+ <translation>horizontálisTávtartó</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>Property Type</source>
+ <translation>Tulajdonság Típusa</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::NewFormWidget</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+104"/>
+ <source>Default size</source>
+ <translation>Alapértelmezett méret</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>QVGA portrait (240x320)</source>
+ <translation>QVGA portré (240x320)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>QVGA landscape (320x240)</source>
+ <translation>QVGA tájkép (320x240)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>VGA portrait (480x640)</source>
+ <translation>VGA portré (480x640)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>VGA landscape (640x480)</source>
+ <translation>VGA tájkép: (640x480)</translation>
+ </message>
+ <message>
+ <location line="+66"/>
+ <source>Widgets</source>
+ <extracomment>New Form Dialog Categories</extracomment>
+ <translation>Widget-ek</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Custom Widgets</source>
+ <translation>Egyéni Widget-ek</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>None</source>
+ <translation>Semmi</translation>
+ </message>
+ <message>
+ <location line="+57"/>
+ <source>Error loading form</source>
+ <translation>Hiba történt az űrlap betöltése közben</translation>
+ </message>
+ <message>
+ <location line="+244"/>
+ <source>Unable to open the form template file &apos;%1&apos;: %2</source>
+ <translation>Nem lehet megnyitni a(z) &apos;%1&apos; űrlap sablon fájlt: %2</translation>
+ </message>
+ <message>
+ <location line="+67"/>
+ <source>Internal error: No template selected.</source>
+ <translation>Belső hiba: Nincsen sablon kiválasztva.</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/newformwidget.ui" line="+82"/>
+ <source>0</source>
+ <translation>0</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Choose a template for a preview</source>
+ <translation>Válasszon egy sablont egy előnézetre</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Embedded Design</source>
+ <translation>Beágyazott tervezés</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Device:</source>
+ <translation>Eszköz:</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Screen Size:</source>
+ <translation>Képernyő méret:</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::NewPromotedClassPanel</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+92"/>
+ <source>Add</source>
+ <translation>Hozzáadás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>New Promoted Class</source>
+ <translation>Új támogatott osztály</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Base class name:</source>
+ <translation>Alap osztály név:</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Promoted class name:</source>
+ <translation>Támogatott osztály neve:</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Header file:</source>
+ <translation>Fejállomány:</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Global include</source>
+ <translation>Globális include</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Reset</source>
+ <translation>Újraindítás</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ObjectInspector</name>
+ <message>
+ <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+754"/>
+ <source>&amp;Find in Text...</source>
+ <translation>&amp;Keresés a szövegben...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ObjectInspector::ObjectInspectorPrivate</name>
+ <message>
+ <location line="-438"/>
+ <source>Change Current Page</source>
+ <translation>Aktuális lap megváltoztatása</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::OrderDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+109"/>
+ <source>Index %1 (%2)</source>
+ <translation>Index %1 (%2)</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/orderdialog.ui" line="+53"/>
+ <source>Change Page Order</source>
+ <translation>Lap sorrend megváltoztatása</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Page Order</source>
+ <translation>Lap sorrend</translation>
+ </message>
+ <message>
+ <location line="+57"/>
+ <source>Move page up</source>
+ <translation>Lap mozgatása felfelé</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Move page down</source>
+ <translation>Lap mozgatása lefelé</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PaletteEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui" line="+61"/>
+ <source>Edit Palette</source>
+ <translation>Paletta szerkesztése</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>Tune Palette</source>
+ <translation>Paletta finomhangolása</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>Show Details</source>
+ <translation>Részletek megjelenítése</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Compute Details</source>
+ <translation>Számítási részletek</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Quick</source>
+ <translation>Gyors</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Preview</source>
+ <translation>Előnézet</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Disabled</source>
+ <translation>Tiltott</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Inactive</source>
+ <translation>Inaktív</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Active</source>
+ <translation>Aktív</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PaletteEditorButton</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+57"/>
+ <source>Change Palette</source>
+ <translation>Paletta megváltoztatása</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PaletteModel</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+374"/>
+ <source>Color Role</source>
+ <translation>Szín szabály</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Active</source>
+ <translation>Aktív</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Inactive</source>
+ <translation>Inaktív</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Disabled</source>
+ <translation>Tiltott</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PixmapEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-1541"/>
+ <source>Choose Resource...</source>
+ <translation>Erőforrás kiválasztása...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Choose File...</source>
+ <translation>Fájl kiválasztása...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Copy Path</source>
+ <translation>Útvonal kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Paste Path</source>
+ <translation>Útvonal beillesztése</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+16"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PlainTextEditorDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+65"/>
+ <source>Edit text</source>
+ <translation>Szöveg szerkesztése</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PluginDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="+72"/>
+ <source>Components</source>
+ <translation>Komponensek</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Plugin Information</source>
+ <translation>Beépülő modul információ</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Refresh</source>
+ <translation>Felfrissítés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Scan for newly installed custom widget plugins.</source>
+ <translation>Újonnan telepített egyéni widget beépülő modulok letapogatása.</translation>
+ </message>
+ <message>
+ <location line="+48"/>
+ <source>Qt Designer couldn&apos;t find any plugins</source>
+ <translation>Qt Designer nem talált egyetlen beépülő modult sem</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Qt Designer found the following plugins</source>
+ <translation>Qt Designer a következő beépülő modulokat találta</translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>New custom widget plugins have been found.</source>
+ <translation>Új egyéni widget betöltő modul talált.</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PreviewActionGroup</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+95"/>
+ <source>%1 Style</source>
+ <translation>%1 Stílus</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PreviewConfigurationWidget</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+139"/>
+ <source>Default</source>
+ <translation>Alapértelmezett</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>None</source>
+ <translation>Semmi</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Browse...</source>
+ <translation>Böngészés...</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate</name>
+ <message>
+ <location line="+118"/>
+ <source>Load Custom Device Skin</source>
+ <translation>Egyéni eszköz szkin betöltése</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>All QVFB Skins (*.%1)</source>
+ <translation>Az összes QVFB szkin (*.%1)</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>%1 - Duplicate Skin</source>
+ <translation>%1 - Duplikált szkin</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The skin &apos;%1&apos; already exists.</source>
+ <translation>A(z) &apos;%1&apos; szkin már létezik.</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>%1 - Error</source>
+ <translation>%1 - Hiba</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>%1 is not a valid skin directory:
+%2</source>
+ <translation>%1 nem egy érvényes szkin könyvtár:
+%2</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PreviewDeviceSkin</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+259"/>
+ <source>&amp;Portrait</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Landscape (&amp;CCW)</source>
+ <extracomment>Rotate form preview counter-clockwise</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&amp;Landscape (CW)</source>
+ <extracomment>Rotate form preview clockwise</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Bezárás</translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PreviewManager</name>
+ <message>
+ <location line="+426"/>
+ <source>%1 - [Preview]</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PreviewMdiArea</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/previewframe.cpp" line="+72"/>
+ <source>The moose in the noose
+ate the goose who was loose.</source>
+ <extracomment>Palette editor background</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PreviewWidget</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui" line="+61"/>
+ <source>Preview Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>LineEdit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>ComboBox</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>PushButton</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+58"/>
+ <source>ButtonGroup2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>CheckBox1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>CheckBox2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>ButtonGroup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>RadioButton1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>RadioButton2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>RadioButton3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PromotionModel</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+17"/>
+ <source>Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Header file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Global include</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Usage</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PromotionTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+85"/>
+ <source>Promoted widgets...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Promote to ...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change signals/slots...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Promote to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Demote to %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PropertyEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+183"/>
+ <source>Add Dynamic Property...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Remove Dynamic Property</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Sorting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Color Groups</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Tree View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Drop Down Button View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+50"/>
+ <source>String...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Bool...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Other...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Configure Property Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+533"/>
+ <source>Object: %1
+Class: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::PropertyLineEdit</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+88"/>
+ <source>Insert line break</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::QDesignerPromotionDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+85"/>
+ <source>Promoted Widgets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Promoted Classes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+60"/>
+ <source>Promote</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+152"/>
+ <source>Change signals/slots...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>%1 - Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::QDesignerResource</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+277"/>
+ <source>Loading qrc file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The specified qrc file &lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;/p&gt;&lt;p&gt;could not be found. Do you want to update the file location?&lt;/p&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>New location for %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Resource files (*.qrc)</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::QDesignerTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+68"/>
+ <source>Change objectName...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change toolTip...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change whatsThis...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change styleSheet...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Create Menu Bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Add Tool Bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Create Status Bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Remove Status Bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change script...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change signals/slots...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Go to slot...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Size Constraints</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Set Minimum Width</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Set Minimum Height</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Set Minimum Size</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Set Maximum Width</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Set Maximum Height</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Set Maximum Size</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+235"/>
+ <source>Edit ToolTip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Edit WhatsThis</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+144"/>
+ <source>no signals available</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location line="+67"/>
+ <source>Set size constraint on %n widget(s)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::QDesignerWidgetBox</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="+123"/>
+ <location line="+13"/>
+ <source>Unexpected element &lt;%1&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>A parse error occurred at line %1, column %2 of the XML code specified for the widget %3: %4
+%5</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>The XML code specified for the widget %1 does not contain any widget elements.
+%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="+349"/>
+ <source>An error has been encountered at line %1 of %2: %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+139"/>
+ <source>Unexpected element &lt;%1&gt; encountered when parsing for &lt;widget&gt; or &lt;ui&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Unexpected end of file encountered when parsing widgets.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>A widget element could not be found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::QtGradientStopsController</name>
+ <message>
+ <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="+173"/>
+ <source>H</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>S</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>V</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+4"/>
+ <source>Hue</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>Sat</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Val</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Saturation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Value</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>R</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>G</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Red</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Green</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Blue</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::RichTextEditorDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+436"/>
+ <source>Edit text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Rich Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>&amp;OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::RichTextEditorToolBar</name>
+ <message>
+ <location line="-302"/>
+ <source>Bold</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>CTRL+B</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Italic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>CTRL+I</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Underline</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>CTRL+U</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Left Align</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Center</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Right Align</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Justify</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Superscript</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Subscript</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Insert &amp;Link</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Insert &amp;Image</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ScriptDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+66"/>
+ <source>Edit script</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&lt;html&gt;Enter a Qt Script snippet to be executed while loading the form.&lt;br&gt;The widget and its children are accessible via the variables &lt;i&gt;widget&lt;/i&gt; and &lt;i&gt;childWidgets&lt;/i&gt;, respectively.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+51"/>
+ <source>Syntax error</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ScriptErrorDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+27"/>
+ <source>Script errors</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::SignalSlotDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+199"/>
+ <source>There is already a slot with the signature &apos;%1&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>There is already a signal with the signature &apos;%1&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>%1 - Duplicate Signature</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <location line="+76"/>
+ <source>Signals/Slots of %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::SignalSlotEditorPlugin</name>
+ <message>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="+72"/>
+ <source>Edit Signals/Slots</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>F4</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::SignalSlotEditorTool</name>
+ <message>
+ <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="+58"/>
+ <source>Edit Signals/Slots</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::StatusBarTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+81"/>
+ <source>Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::StringListEditorButton</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+56"/>
+ <source>Change String List</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::StyleSheetEditorDialog</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+90"/>
+ <location line="+280"/>
+ <source>Valid Style Sheet</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="-278"/>
+ <source>Add Resource...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Add Gradient...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Add Color...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Add Font...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Edit Style Sheet</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+276"/>
+ <source>Invalid Style Sheet</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TabOrderEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="+363"/>
+ <source>Start from Here</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Restart</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Tab Order List...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Tab Order List</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Tab Order</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TabOrderEditorPlugin</name>
+ <message>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="+73"/>
+ <source>Edit Tab Order</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TabOrderEditorTool</name>
+ <message>
+ <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="+57"/>
+ <source>Edit Tab Order</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TableWidgetEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.ui" line="+97"/>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+218"/>
+ <source>Properties &amp;&gt;&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="-44"/>
+ <source>Edit Table Widget</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>&amp;Items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Table Items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="-151"/>
+ <source>New Column</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>New Row</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>&amp;Columns</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Rows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+137"/>
+ <source>Properties &amp;&lt;&lt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TableWidgetTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+64"/>
+ <source>Edit Items...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TemplateOptionsWidget</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="-18"/>
+ <source>Pick a directory to save templates in</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/templateoptionspage.ui" line="+13"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Additional Template Paths</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <location line="+7"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TextEditTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+58"/>
+ <source>Edit HTML</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change HTML...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Edit Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Change Plain Text...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TextEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-204"/>
+ <source>Choose Resource...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Choose File...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+118"/>
+ <source>Choose a File</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ToolBarEventFilter</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+148"/>
+ <source>Insert Separator before &apos;%1&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Append Separator</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Remove action &apos;%1&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Remove Toolbar &apos;%1&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+58"/>
+ <source>Insert Separator</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TreeWidgetEditor</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+68"/>
+ <source>New Column</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>&amp;Columns</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+69"/>
+ <source>Per column properties</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Common properties</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="+101"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+53"/>
+ <source>New Item</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+19"/>
+ <source>New Subitem</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+175"/>
+ <source>Properties &amp;&lt;&lt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="+86"/>
+ <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+2"/>
+ <source>Properties &amp;&gt;&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="-144"/>
+ <source>Edit Tree Widget</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>&amp;Items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>Tree Items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>New &amp;Subitem</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Delete Item</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Delete</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Move Item Left (before Parent Item)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>L</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Move Item Right (as a First Subitem of the Next Sibling Item)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>R</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Move Item Up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>U</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Move Item Down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>D</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::TreeWidgetTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+63"/>
+ <source>Edit Items...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::WidgetBox</name>
+ <message>
+ <location filename="../tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp" line="+115"/>
+ <source>Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::WidgetBoxTreeWidget</name>
+ <message>
+ <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="-268"/>
+ <source>Scratchpad</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+370"/>
+ <source>Custom Widgets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+263"/>
+ <source>Expand all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Collapse all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>List View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Icon View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Edit name</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::WidgetDataBase</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="-411"/>
+ <source>A custom widget plugin whose class name (%1) matches that of an existing class has been found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::WidgetEditorTool</name>
+ <message>
+ <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+67"/>
+ <source>Edit Widgets</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::WidgetFactory</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="+263"/>
+ <source>The custom widget factory registered for widgets of class %1 returned 0.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>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.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+99"/>
+ <source>%1 Widget</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+90"/>
+ <source>The current page of the container &apos;%1&apos; (%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.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>Attempt to add a layout to a widget &apos;%1&apos; (%2) which already has an unmanaged layout of type %3.
+This indicates an inconsistency in the ui-file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+211"/>
+ <source>Cannot create style &apos;%1&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::WizardContainerWidgetTaskMenu</name>
+ <message>
+ <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="-49"/>
+ <source>Next</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Back</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ZoomMenu</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/zoomwidget.cpp" line="+84"/>
+ <source>%1 %</source>
+ <extracomment>Zoom factor</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>qdesigner_internal::ZoomablePreviewDeviceSkin</name>
+ <message>
+ <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="-270"/>
+ <source>&amp;Zoom</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/linguist_cs.ts b/translations/linguist_cs.ts
new file mode 100644
index 0000000..32905c9
--- /dev/null
+++ b/translations/linguist_cs.ts
@@ -0,0 +1,2023 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="cs_CZ">
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1357"/>
+ <source>Qt Linguist</source>
+ <translation>Qt Linguist</translation>
+ </message>
+</context>
+<context>
+ <name>BatchTranslationDialog</name>
+ <message>
+ <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="+79"/>
+ <source>Batch Translation of &apos;%1&apos; - Qt Linguist</source>
+ <translation>Automatický překlad &apos;%1&apos; - Qt Linguist</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>Searching, please wait...</source>
+ <translation>Hledá se, čekejte, prosím...</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Zrušit</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>Linguist batch translator</source>
+ <translation>Automatický překladatel (Linguist)</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+1"/>
+ <source>Batch translated %n entries</source>
+ <translation>
+ <numerusform>1 záznam byl automaticky přeložen</numerusform>
+ <numerusform>%n záznamy byly automaticky přeloženy</numerusform>
+ <numerusform>%n záznamů bylo automaticky přeloženo</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/batchtranslation.ui"/>
+ <source>Qt Linguist - Batch Translation</source>
+ <translation>Qt Linguist - Automatický překlad</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Options</source>
+ <translation>Volby</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Set translated entries to finished</source>
+ <translation>Označit přeložené záznamy jako hotové</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Retranslate entries with existing translation</source>
+ <translation>Znovu přeložit záznamy s již existujícím překladem</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Translate also finished entries</source>
+ <translation>Přeložit i hotové záznamy</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Phrase book preference</source>
+ <translation>Slovníky</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move up</source>
+ <translation>Posunout nahoru</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move down</source>
+ <translation>Posunout dolů</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Run</source>
+ <translation>&amp;Provést</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Cancel</source>
+ <translation>Zrušit</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Note that the modified entries will be reset to unfinished if &apos;Set translated entries to finished&apos; above is unchecked</source>
+ <translation>Všimněte si, že změněné záznamy budou znovu nastaveny na nevyřízené, pokud není zapnuto nahoře zmíněné nastavení &apos;Označit přeložené záznamy jako hotové&apos;</translation>
+ </message>
+ <message>
+ <location/>
+ <source>The batch translator will search through the selected phrase books in the order given above</source>
+ <translation>Automatický překladatel bude prohledávat vybrané slovníky v pořadí uvedeném výše</translation>
+ </message>
+</context>
+<context>
+ <name>DataModel</name>
+ <message>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+214"/>
+ <source>&lt;qt&gt;Duplicate messages found in &apos;%1&apos;:</source>
+ <translation>&lt;qt&gt;Vícekrát existující hlášení v &apos;%1&apos;:</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&lt;p&gt;[more duplicates omitted]</source>
+ <translation>&lt;p&gt;[vypuštěny další vícekrát existující zprávy]</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&lt;p&gt;* Context: %1&lt;br&gt;* Source: %2</source>
+ <translation>&lt;p&gt;* Souvislosti: %1&lt;br&gt;* Zdroj: %2</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&lt;br&gt;* Comment: %3</source>
+ <translation>&lt;br&gt;* Poznámka: %3</translation>
+ </message>
+ <message>
+ <location line="+70"/>
+ <source>Linguist does not know the plural rules for &apos;%1&apos;.
+Will assume a single universal form.</source>
+ <translation>Pravidla pro tvoření množného čísla (plurálu) jazyka &apos;%1&apos; nejsou v Linguistu stanovena.
+Pracuje se s jednoduchým všeobecným tvarem.</translation>
+ </message>
+ <message>
+ <location line="+56"/>
+ <source>Cannot create &apos;%2&apos;: %1</source>
+ <translation>&apos;%2&apos; nemůže být vytvořen: %1</translation>
+ </message>
+ <message>
+ <location line="+56"/>
+ <source>Universal Form</source>
+ <translation>Všeobecný tvar</translation>
+ </message>
+</context>
+<context>
+ <name>ErrorsView</name>
+ <message>
+ <location filename="../tools/linguist/linguist/errorsview.cpp" line="+76"/>
+ <source>Accelerator possibly superfluous in translation.</source>
+ <translation>V textu překladu je možná přebytečný akcelerátor.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Accelerator possibly missing in translation.</source>
+ <translation>V textu překladu možná chybí akcelerátor.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Translation does not end with the same punctuation as the source text.</source>
+ <translation>Interpunkční znaménko na konci textu překladu se liší od interpunkce zdrojového textu.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>A phrase book suggestion for &apos;%1&apos; was ignored.</source>
+ <translation>Na návrh slovníku pro &apos;%1&apos; nebyl brán zřetel.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Translation does not refer to the same place markers as in the source text.</source>
+ <translation>Držitelé místa v textu překladu a ve zdrojovém textu se liší.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Translation does not contain the necessary %n place marker.</source>
+ <translation>Potřebný držitel místa (%n) v překladu chybí.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Unknown error</source>
+ <translation>Neznámá chyba</translation>
+ </message>
+</context>
+<context>
+ <name>FindDialog</name>
+ <message>
+ <location filename="../tools/linguist/linguist/finddialog.ui"/>
+ <source>This window allows you to search for some text in the translation source file.</source>
+ <translation>Toto okno vám umožňuje hledání textu ve zdrojovém souboru s překladem.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Type in the text to search for.</source>
+ <translation>Zadejte text, který se má hledat.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Options</source>
+ <translation>Volby</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Source texts are searched when checked.</source>
+ <translation>Když je zapnuto, hledá se ve zdrojových textech.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Translations are searched when checked.</source>
+ <translation>Když je zapnuto, hledá se v překladech.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Texts such as &apos;TeX&apos; and &apos;tex&apos; are considered as different when checked.</source>
+ <translation>Když je zapnuto, texty jako &apos;TeX&apos; a &apos;tex&apos; se považují za rozdílné.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Comments and contexts are searched when checked.</source>
+ <translation>Když je zapnuto, prohledávají se poznámky a souvislosti.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Find</source>
+ <translation>Hledat</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Find what:</source>
+ <translation>&amp;Vzor hledání:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Source texts</source>
+ <translation>&amp;Zdrojové texty</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Translations</source>
+ <translation>&amp;Překlady</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Match case</source>
+ <translation>&amp;Dbát na psaní velkých a malých písmen</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Comments</source>
+ <translation>&amp;Poznámky</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ignore &amp;accelerators</source>
+ <translation>Nedbat na &amp;akcelerátory</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Click here to find the next occurrence of the text you typed in.</source>
+ <translation>Klepněte sem pro skok k dalšímu výskytu hledáného textu.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Find Next</source>
+ <translation>Hledat dál</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Click here to close this window.</source>
+ <translation>Klepněte sem pro zavření tohoto okna.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Cancel</source>
+ <translation>Zrušit</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/finddialog.cpp" line="+12"/>
+ <source></source>
+ <comment>Choose Edit|Find from the menu bar or press Ctrl+F to pop up the Find dialog</comment>
+ <translation></translation>
+ </message>
+</context>
+<context>
+ <name>FormMultiWidget</name>
+ <message>
+ <location filename="../tools/linguist/linguist/messageeditorwidgets.cpp" line="+296"/>
+ <source>Alt+Delete</source>
+ <extracomment>translate, but don&apos;t change</extracomment>
+ <translation>Alt+Delete</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Shift+Alt+Insert</source>
+ <extracomment>translate, but don&apos;t change</extracomment>
+ <translation>Shift+Alt+Insert</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Alt+Insert</source>
+ <extracomment>translate, but don&apos;t change</extracomment>
+ <translation>Alt+Insert</translation>
+ </message>
+ <message>
+ <location line="+131"/>
+ <source>Confirmation - Qt Linguist</source>
+ <translation>Potvrzení - Qt Linguist</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Delete non-empty length variant?</source>
+ <translation>Smazat vyplněnou obměnu délky?</translation>
+ </message>
+</context>
+<context>
+ <name>LRelease</name>
+ <message numerus="yes">
+ <location filename="../tools/linguist/shared/qm.cpp" line="+748"/>
+ <source>Dropped %n message(s) which had no ID.</source>
+ <translation>
+ <numerusform>Byl smazán záznam bez identifikátoru.</numerusform>
+ <numerusform>Byly smazány %n záznamy bez identifikátoru.</numerusform>
+ <numerusform>Byly smazány %n záznamy bez identifikátoru.</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location line="+4"/>
+ <source>Excess context/disambiguation dropped from %n message(s).</source>
+ <translation>
+ <numerusform>U jednoho záznamu byla odstraněna přebytečná souvislost případně přebytečné zabránění dvojznačnosti (přebytečná informace k rozhodování).</numerusform>
+ <numerusform>U %n záznamů byla odstraněna přebytečná souvislost případně přebytečné zabránění dvojznačnosti (přebytečná informace k rozhodování).</numerusform>
+ <numerusform>U %n záznamů byla odstraněna přebytečná souvislost případně přebytečné zabránění dvojznačnosti (přebytečná informace k rozhodování).</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location line="+8"/>
+ <source> Generated %n translation(s) (%1 finished and %2 unfinished)
+</source>
+ <translation>
+ <numerusform> Byl vytvořen jeden překlad (%1 dokončeno %2 nedokončeno)
+</numerusform>
+ <numerusform> Byly vytvořeny %n překlady (%1 dokončeno %2 nedokončeno)
+</numerusform>
+ <numerusform> Byly vytvořeny %n překlady (%1 dokončeno %2 nedokončeno)
+</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location line="+4"/>
+ <source> Ignored %n untranslated source text(s)
+</source>
+ <translation>
+ <numerusform> Na jeden nepřeložený text nebyl brán zřetel
+</numerusform>
+ <numerusform> na %n nepřeložené texty nebyl brán zřetel
+</numerusform>
+ <numerusform> na %n nepřeložené texty nebyl brán zřetel
+</numerusform>
+ </translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+ <source>MainWindow</source>
+ <translation>Hlavní okno</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Phrases</source>
+ <translation>&amp;Slovníky</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Close Phrase Book</source>
+ <translation>&amp;Zavřít slovník</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Edit Phrase Book</source>
+ <translation>&amp;Upravit slovník</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Print Phrase Book</source>
+ <translation>&amp;Vytisknout slovník</translation>
+ </message>
+ <message>
+ <location/>
+ <source>V&amp;alidation</source>
+ <translation>&amp;Schválení</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;View</source>
+ <translation>&amp;Pohled</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Vie&amp;ws</source>
+ <translation>Po&amp;hledy</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Toolbars</source>
+ <translation>&amp;Nástrojové lišty</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Help</source>
+ <translation>&amp;Nápověda</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Translation</source>
+ <translation>&amp;Překlad</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;File</source>
+ <translation>&amp;Soubor</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Edit</source>
+ <translation>Ú&amp;pravy</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Open...</source>
+ <translation>&amp;Otevřít...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Open a Qt translation source file (TS file) for editing</source>
+ <translation>Otevřít Qt zdrojový soubor s překladem (soubor TS) pro úpravy</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+O</source>
+ <translation>Ctrl+O</translation>
+ </message>
+ <message>
+ <location/>
+ <source>E&amp;xit</source>
+ <translation>&amp;Ukončit</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Close this window and exit.</source>
+ <translation>Toto okno zavřít a ukončit.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+646"/>
+ <location line="+15"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Uložit</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+ <source>Save changes made to this Qt translation source file</source>
+ <translation>Uložit změny provedené v tomto Qt zdrojovém souboru s překladem</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move to the previous unfinished item.</source>
+ <translation>Jít na předchozí nevyřízený záznam.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move to the next unfinished item.</source>
+ <translation>Jít na další nevyřízený záznam.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move to the previous item.</source>
+ <translation>Jít na předchozí záznam.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move to the next item.</source>
+ <translation>Jít na další záznam.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Mark this item as done and move to the next unfinished item.</source>
+ <translation>Označit tento záznam jako hotový a jít na další nevyřízený záznam.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Copy from source text</source>
+ <translation>Převzít zdrojový text</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toggle the validity check of accelerators, i.e. whether the number of ampersands in the source and translation text is the same. If the check fails, a message is shown in the warnings window.</source>
+ <translation>Zapnout/Vypnout ověření akcelerátorů, to znamená, zda se shoduje počet znaků obchodnického -A (&amp;) ve zdrojovém textu a v textu překladu. V případě neúspěchu se v okně s upozorněními ukáže zpráva s varováním.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toggle the validity check of ending punctuation. If the check fails, a message is shown in the warnings window.</source>
+ <translation>Zapnout/Vypnout ověření znaku na konci věty na konci textu. V případě neúspěchu se v okně s upozorněními ukáže zpráva s varováním.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toggle checking that phrase suggestions are used. If the check fails, a message is shown in the warnings window.</source>
+ <translation>Zapnout/Vypnout ověření použití návrhů slovníku. V případě neúspěchu se v okně s upozorněními ukáže zpráva s varováním.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toggle the validity check of place markers, i.e. whether %1, %2, ... are used consistently in the source text and translation text. If the check fails, a message is shown in the warnings window.</source>
+ <translation>Zapnout/Vypnout ověření držitelů místa, to znamená, zda se shoduje používání %1, %2,... ve zdrojovém textu a v textu překladu. V případě neúspěchu se v okně s upozorněními ukáže zpráva s varováním.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Open Read-O&amp;nly...</source>
+ <translation>Otevřít pouze &amp;pro čtení...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Save All</source>
+ <translation>&amp;Uložit vše</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+S</source>
+ <translation>Ctrl+S</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-14"/>
+ <location line="+11"/>
+ <source>Save &amp;As...</source>
+ <translation>Uložit &amp;jako...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Save As...</source>
+ <translation>Uložit jako...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Save changes made to this Qt translation source file into a new file.</source>
+ <translation>Uložit změny provedené v tomto Qt zdrojovém souboru s překladem do nového souboru.</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+4"/>
+ <source>&amp;Release</source>
+ <translation>&amp;Vydat</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+ <source>Create a Qt message file suitable for released applications from the current message file.</source>
+ <translation>Vytvořit Qt soubor se zprávami vhodný pro vydané aplikace (soubor QM) ze současného souboru s překladem.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Print...</source>
+ <translation>&amp;Tisk...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+P</source>
+ <translation>Ctrl+P</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Undo</source>
+ <translation>&amp;Zpět</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Recently Opened &amp;Files</source>
+ <translation>Naposledy upravované sou&amp;bory</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Save</source>
+ <translation>Uložit</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Print a list of all the translation units in the current translation source file.</source>
+ <translation>Vytisknout seznam se všemi překladovými jednotkami v současném zdrojovém souboru s překladem.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Undo the last editing operation performed on the current translation.</source>
+ <translation>Poslední změnu provedenou v současném překladu vrátit zpět.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+Z</source>
+ <translation>Ctrl+Z</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Redo</source>
+ <translation>&amp;Znovu</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Redo an undone editing operation performed on the translation.</source>
+ <translation>Poslední zpět vrácenou změnu v překladu provést znovu.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+Y</source>
+ <translation>Ctrl+Y</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Cu&amp;t</source>
+ <translation>&amp;Vyjmout</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Copy the selected translation text to the clipboard and deletes it.</source>
+ <translation>Zkopírovat vybraný text s překladem do schránky a smazat jej.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+X</source>
+ <translation>Ctrl+X</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Copy</source>
+ <translation>&amp;Kopírovat</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Copy the selected translation text to the clipboard.</source>
+ <translation>Zkopírovat vybraný text s překladem do schránky.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+C</source>
+ <translation>Ctrl+C</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Paste</source>
+ <translation>&amp;Vložit</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Paste the clipboard text into the translation.</source>
+ <translation>Vložit text ze schránky do překladu.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+V</source>
+ <translation>Ctrl+V</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Select &amp;All</source>
+ <translation>Vybrat &amp;vše</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Select the whole translation text.</source>
+ <translation>Vybrat celý text s překladem.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+A</source>
+ <translation>Ctrl+A</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Find...</source>
+ <translation>&amp;Hledat...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Search for some text in the translation source file.</source>
+ <translation>Hledat text v souboru s překladem.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+F</source>
+ <translation>Ctrl+F</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Find &amp;Next</source>
+ <translation>Hledat &amp;dál</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Continue the search where it was left.</source>
+ <translation>Pokračovat v hledání.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>F3</source>
+ <translation>F3</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Prev Unfinished</source>
+ <translation>&amp;Předchozí nevyřízený</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Close</source>
+ <translation>Zavřít</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Close All</source>
+ <translation>&amp;Zavřít vše</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+W</source>
+ <translation>Ctrl+W</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+K</source>
+ <translation>Ctrl+K</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Next Unfinished</source>
+ <translation>&amp;Další nevyřízený</translation>
+ </message>
+ <message>
+ <location/>
+ <source>P&amp;rev</source>
+ <translation>Před&amp;chozí</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+Shift+K</source>
+ <translation>Ctrl+Shift+K</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ne&amp;xt</source>
+ <translation>Da&amp;lší</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Done and Next</source>
+ <translation>&amp;Hotovo a další</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Copies the source text into the translation field.</source>
+ <translation>Kopíruje zdrojový text do pole s překladem.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+B</source>
+ <translation>Ctrl+B</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Accelerators</source>
+ <translation>&amp;Akcelerátory</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Ending Punctuation</source>
+ <translation>&amp;Interpunkce na konci</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Phrase matches</source>
+ <translation>&amp;Slovník</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Place &amp;Marker Matches</source>
+ <translation>Držitel &amp;místa</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;New Phrase Book...</source>
+ <translation>&amp;Nový slovník...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Create a new phrase book.</source>
+ <translation>Vytvořit nový slovník.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+N</source>
+ <translation>Ctrl+N</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Open Phrase Book...</source>
+ <translation>&amp;Otevřít slovník...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Open a phrase book to assist translation.</source>
+ <translation>Otevřít slovník kvůli podpoře při překladu.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+H</source>
+ <translation>Ctrl+H</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Reset Sorting</source>
+ <translation>Řazení &amp;vrátit zpět</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Sort the items back in the same order as in the message file.</source>
+ <translation>Seřadit záznamy ve stejném pořadí jako v původním souboru s překladem.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Display guesses</source>
+ <translation>Ukázat &amp;návrhy</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Set whether or not to display translation guesses.</source>
+ <translation>Zapnout/Vypnout zobrazení návrhů k překladu.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Statistics</source>
+ <translation>S&amp;tatistika</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Display translation statistics.</source>
+ <translation>Ukázat statistiku k překladu.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Manual</source>
+ <translation>&amp;Příručka</translation>
+ </message>
+ <message>
+ <location/>
+ <source>F1</source>
+ <translation>F1</translation>
+ </message>
+ <message>
+ <location/>
+ <source>About Qt Linguist</source>
+ <translation>O Qt Linguistu</translation>
+ </message>
+ <message>
+ <location/>
+ <source>About Qt</source>
+ <translation>O Qt</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Display information about the Qt toolkit by Trolltech.</source>
+ <translation>Zobrazit informace o sadě nástrojů Qt od Trolltechu.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;What&apos;s This?</source>
+ <translation>&amp;Copak je asi toto?</translation>
+ </message>
+ <message>
+ <location/>
+ <source>What&apos;s This?</source>
+ <translation>Copak je asi toto?</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Enter What&apos;s This? mode.</source>
+ <translation>Zapnout režim &quot;Copak je asi toto?&quot;.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Shift+F1</source>
+ <translation>Shift+F1</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Search And Translate...</source>
+ <translation>Hledat a &amp;překládat...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Replace the translation on all entries that matches the search source text.</source>
+ <translation>Nahradit překlad u všech záznamů, které odpovídají hledanému textu.</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+21"/>
+ <source>&amp;Batch Translation...</source>
+ <translation>&amp;Automatický překlad...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Batch translate all entries using the information in the phrase books.</source>
+ <translation>Automaticky přeložit všechny záznamy s pomocí slovníků.</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-34"/>
+ <location line="+10"/>
+ <source>Release As...</source>
+ <translation>Vydat jako...</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-2004"/>
+ <source></source>
+ <comment>This is the application&apos;s main window.</comment>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+188"/>
+ <source>Source text</source>
+ <translation>Zdrojový text</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <location line="+25"/>
+ <source>Index</source>
+ <translation>Rejstřík</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <location line="+62"/>
+ <source>Context</source>
+ <translation>Souvislosti</translation>
+ </message>
+ <message>
+ <location line="-61"/>
+ <source>Items</source>
+ <translation>Záznamy</translation>
+ </message>
+ <message>
+ <location line="+78"/>
+ <source>This panel lists the source contexts.</source>
+ <translation>V tomto panelu jsou ukazovány souvislosti.</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Strings</source>
+ <translation>Řetězce</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>Phrases and guesses</source>
+ <translation>Slovník a návrhy</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Sources and Forms</source>
+ <translation>Zdrojové soubory a formuláře</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Warnings</source>
+ <translation>Upozornění</translation>
+ </message>
+ <message>
+ <location line="+59"/>
+ <source> MOD </source>
+ <comment>status bar: file(s) modified</comment>
+ <translation>Změněno</translation>
+ </message>
+ <message>
+ <location line="+130"/>
+ <source>Loading...</source>
+ <translation>Nahrává se...</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <location line="+22"/>
+ <source>Loading File - Qt Linguist</source>
+ <translation>Nahrává se soubor - Qt Linguist</translation>
+ </message>
+ <message>
+ <location line="-21"/>
+ <source>The file &apos;%1&apos; does not seem to be related to the currently open file(s) &apos;%2&apos;.
+
+Close the open file(s) first?</source>
+ <translation>Nezdá se, že by soubor &apos;%1&apos; souvisel s již otevřenými soubory &apos;%2&apos;.
+
+Zavřít nejprve již otevřený soubor(y)?</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>The file &apos;%1&apos; does not seem to be related to the file &apos;%2&apos; which is being loaded as well.
+
+Skip loading the first named file?</source>
+ <translation>Nezdá se, že by soubor &apos;%1&apos; souvisel s již otevřeným souborem &apos;%2&apos;, který je rovněž nahrán.
+
+Přeskočit nahrávání prve jmenovaného souboru?</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+61"/>
+ <source>%n translation unit(s) loaded.</source>
+ <translation>
+ <numerusform>Nahrána jedna překladová jednotka.</numerusform>
+ <numerusform>Nahrány %n překladové jednotky.</numerusform>
+ <numerusform>Nahrány %n překladové jednotky.</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+93"/>
+ <source>Related files (%1);;</source>
+ <translation>Příbuzné soubory (%1);;</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Open Translation Files</source>
+ <translation>Otevřít soubory s překlady</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <location line="+31"/>
+ <source>File saved.</source>
+ <translation>Soubor uložen.</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+15"/>
+ <location line="+1165"/>
+ <source>Release</source>
+ <translation>Vydat</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1164"/>
+ <source>Qt message files for released applications (*.qm)
+All files (*)</source>
+ <translation>Qt soubory se zprávami pro vydané aplikace (*.qm)
+Všechny soubory (*)</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+12"/>
+ <source>File created.</source>
+ <translation>Soubor vytvořen.</translation>
+ </message>
+ <message>
+ <location line="+34"/>
+ <location line="+355"/>
+ <source>Printing...</source>
+ <translation>Tisk...</translation>
+ </message>
+ <message>
+ <location line="-347"/>
+ <source>Context: %1</source>
+ <translation>Souvislosti: %1</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <source>finished</source>
+ <translation>vyřízeno</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>unresolved</source>
+ <translation>nevyřešeno</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>obsolete</source>
+ <translation>zastaralé</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <location line="+307"/>
+ <source>Printing... (page %1)</source>
+ <translation>Tisk... (strana %1)</translation>
+ </message>
+ <message>
+ <location line="-300"/>
+ <location line="+307"/>
+ <source>Printing completed</source>
+ <translation>Tisk dokončen</translation>
+ </message>
+ <message>
+ <location line="-305"/>
+ <location line="+307"/>
+ <source>Printing aborted</source>
+ <translation>Tisk zrušen</translation>
+ </message>
+ <message>
+ <location line="-232"/>
+ <source>Search wrapped.</source>
+ <translation>Hledání začíná odshora.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <location line="+278"/>
+ <location line="+34"/>
+ <location line="+24"/>
+ <location line="+22"/>
+ <location line="+516"/>
+ <location line="+1"/>
+ <location line="+274"/>
+ <location line="+40"/>
+ <location line="+10"/>
+ <source>Qt Linguist</source>
+ <translation>Qt Linguist</translation>
+ </message>
+ <message>
+ <location line="-1198"/>
+ <location line="+102"/>
+ <source>Cannot find the string &apos;%1&apos;.</source>
+ <translation>Nelze najít řetězec &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location line="-82"/>
+ <source>Search And Translate in &apos;%1&apos; - Qt Linguist</source>
+ <translation>Hledat a překládat v &apos;%1&apos; - Qt Linguist</translation>
+ </message>
+ <message>
+ <location line="+34"/>
+ <location line="+23"/>
+ <location line="+24"/>
+ <source>Translate - Qt Linguist</source>
+ <translation>Překlad - Qt Linguist</translation>
+ </message>
+ <message numerus="yes">
+ <location line="-46"/>
+ <source>Translated %n entry(s)</source>
+ <translation>
+ <numerusform>Přeložen jeden záznam</numerusform>
+ <numerusform>Přeloženy %n záznamy</numerusform>
+ <numerusform>Přeloženy %n záznamy</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>No more occurrences of &apos;%1&apos;. Start over?</source>
+ <translation>Žádné další výskyty &apos;%1&apos;. Začít znovu?</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Create New Phrase Book</source>
+ <translation>Vytvořit nový slovník</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Qt phrase books (*.qph)
+All files (*)</source>
+ <translation>Slovníky Qt (*.qph)
+Všechny soubory (*)</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Phrase book created.</source>
+ <translation>Slovník vytvořen.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Open Phrase Book</source>
+ <translation>Otevřít slovník</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Qt phrase books (*.qph);;All files (*)</source>
+ <translation>Slovníky Qt (*.qph);;Všechny soubory (*)</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+7"/>
+ <source>%n phrase(s) loaded.</source>
+ <translation>
+ <numerusform>Nahrán jeden záznam ve slovníku.</numerusform>
+ <numerusform>Nahrány %n záznamy ve slovníku.</numerusform>
+ <numerusform>Nahrány %n záznamy ve slovníku.</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+93"/>
+ <location line="+3"/>
+ <location line="+7"/>
+ <source>Add to phrase book</source>
+ <translation>Přidat do slovníku</translation>
+ </message>
+ <message>
+ <location line="-9"/>
+ <source>No appropriate phrasebook found.</source>
+ <translation>Nelze nalézt žádný příslušný slovník.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Adding entry to phrasebook %1</source>
+ <translation>Přidává se záznam do slovníku %1</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Select phrase book to add to</source>
+ <translation>Do kterého slovníku se má záznam přidat</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Unable to launch Qt Assistant (%1)</source>
+ <translation>Qt Assistant nelze spustit (%1)</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Version %1</source>
+ <translation>Verze %1</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&lt;center&gt;&lt;img src=&quot;:/images/splash.png&quot;/&gt;&lt;/img&gt;&lt;p&gt;%1&lt;/p&gt;&lt;/center&gt;&lt;p&gt;Qt Linguist is a tool for adding translations to Qt applications.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</source>
+ <translation>&lt;center&gt;&lt;img src=&quot;:/images/splash.png&quot;/&gt;&lt;/img&gt;&lt;p&gt;%1&lt;/p&gt;&lt;/center&gt;&lt;p&gt;Qt Linguist je nástrojem pro přidávání překladů do aplikací Qt.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation a/nebo její dceřinná společnost(i).</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Do you want to save the modified files?</source>
+ <translation>Chcete uložit změněné soubory?</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Do you want to save &apos;%1&apos;?</source>
+ <translation>Chcete uložit &apos;%1&apos;?</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>Qt Linguist[*]</source>
+ <translation>Qt Linguist[*]</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>%1[*] - Qt Linguist</source>
+ <translation>%1[*] - Qt Linguist</translation>
+ </message>
+ <message>
+ <location line="+267"/>
+ <location line="+12"/>
+ <source>No untranslated translation units left.</source>
+ <translation>Nezbyly žádné nepřeložené překladové jednotky.</translation>
+ </message>
+ <message>
+ <location line="+176"/>
+ <source>&amp;Window</source>
+ <translation>&amp;Okno</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Minimize</source>
+ <translation>Zmenšit</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Ctrl+M</source>
+ <translation>Ctrl+M</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Display the manual for %1.</source>
+ <translation>Zobrazit příručku k %1.</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Display information about %1.</source>
+ <translation>Zobrazit údaje o %1.</translation>
+ </message>
+ <message>
+ <location line="+70"/>
+ <source>&amp;Save &apos;%1&apos;</source>
+ <translation>&amp;Uložit &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Save &apos;%1&apos; &amp;As...</source>
+ <translation>&apos;%1&apos; uložit &amp;jako...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Release &apos;%1&apos;</source>
+ <translation>Vydat &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Release &apos;%1&apos; As...</source>
+ <translation>&apos;%1&apos; vydat jako...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Close &apos;%1&apos;</source>
+ <translation>&amp;Zavřít &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+13"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Zavřít</translation>
+ </message>
+ <message>
+ <location line="-10"/>
+ <source>Save All</source>
+ <translation>Uložit vše</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1"/>
+ <source>&amp;Release All</source>
+ <translation>&amp;Vydat vše</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1"/>
+ <source>Close All</source>
+ <translation>Zavřít vše</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Translation File &amp;Settings for &apos;%1&apos;...</source>
+ <translation>Nastavení &amp;souboru s překladem pro &apos;%1&apos; ...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Batch Translation of &apos;%1&apos;...</source>
+ <translation>&amp;Automatický překlad &apos;%1&apos; ...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Search And &amp;Translate in &apos;%1&apos;...</source>
+ <translation>Hledat a &amp;překládat v &apos;%1&apos; ...</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Search And &amp;Translate...</source>
+ <translation>Hledat a &amp;překládat...</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+51"/>
+ <source>File</source>
+ <translation>Soubor</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+7"/>
+ <source>Edit</source>
+ <translation>Úpravy</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+6"/>
+ <source>Translation</source>
+ <translation>Překlad</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+6"/>
+ <source>Validation</source>
+ <translation>Schválení</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+7"/>
+ <source>Help</source>
+ <translation>Nápověda</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+84"/>
+ <source>Cannot read from phrase book &apos;%1&apos;.</source>
+ <translation>Nelze číst ze slovníku &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Close this phrase book.</source>
+ <translation>Tento slovník zavřít.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Enables you to add, modify, or delete entries in this phrase book.</source>
+ <translation>Umožní vložit, měnit nebo odstranit záznamy z tohoto slovníku.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Print the entries in this phrase book.</source>
+ <translation>Vytisknout záznamy z tohoto slovníku.</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Cannot create phrase book &apos;%1&apos;.</source>
+ <translation>Nelze vytvořit slovník &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Do you want to save phrase book &apos;%1&apos;?</source>
+ <translation>Chcete uložit slovník &apos;%1&apos;?</translation>
+ </message>
+ <message>
+ <location line="+323"/>
+ <source>All</source>
+ <translation>Vše</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+ <source>Open/Refresh Form &amp;Preview</source>
+ <translation>Otevřít/Obnovit &amp;náhled na formulář</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Form Preview Tool</source>
+ <translation>Nástroj pro náhled na formulář</translation>
+ </message>
+ <message>
+ <location/>
+ <source>F5</source>
+ <translation>F5</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-536"/>
+ <source>Translation File &amp;Settings...</source>
+ <translation>&amp;Nastavení souboru s překladem...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Add to Phrase Book</source>
+ <translation>&amp;Přidat do slovníku</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+T</source>
+ <translation>Ctrl+T</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+J</source>
+ <translation>Ctrl+J</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+Shift+J</source>
+ <translation>Ctrl+Shift+J</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Previous unfinished item</source>
+ <translation>Předchozí nevyřízený záznam</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Next unfinished item</source>
+ <translation>Další nevyřízený záznam</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move to previous item</source>
+ <translation>Jít na předchozí záznam</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Next item</source>
+ <translation>Další záznam</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Mark item as done and move to the next unfinished item</source>
+ <translation>Označit záznam jako vyřízený a jít na další nevyřízený záznam</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Copies the source text into the translation field</source>
+ <translation>Kopíruje zdrojový text do pole s překladem</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toggle the validity check of accelerators</source>
+ <translation>Zapnout/Vypnout ověření akcelerátorů</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toggle the validity check of ending punctuation</source>
+ <translation>Zapnout/Vypnout ověření znaku na konci věty na konci textu</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toggle checking that phrase suggestions are used</source>
+ <translation>Zapnout/Vypnout ověření použití záznamů ze slovníku</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toggle the validity check of place markers</source>
+ <translation>Zapnout/Vypnout ověření držitelů místa</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Create a Qt message file suitable for released applications from the current message file. The filename will automatically be determined from the name of the TS file.</source>
+ <translation>Vytvořit z nynějšího překladového souboru soubor s hlášeními Qt vhodný pro vydané aplikace. Název souboru bude automaticky odvozen z názvu souboru TS.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Length Variants</source>
+ <translation>Varianty délky</translation>
+ </message>
+</context>
+<context>
+ <name>MessageEditor</name>
+ <message>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+42"/>
+ <source></source>
+ <comment>This is the right panel of the main window.</comment>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Russian</source>
+ <translation>Ruský</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>German</source>
+ <translation>Německý</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Japanese</source>
+ <translation>Japonský</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>French</source>
+ <translation>Francouzský</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Polish</source>
+ <translation>Polský</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Chinese</source>
+ <translation>Čínský</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>This whole panel allows you to view and edit the translation of some source text.</source>
+ <translation>Celý tento panel umožňuje zobrazení a úpravy překladu zdrojového textu.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Source text</source>
+ <translation>Zdrojový text</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>This area shows the source text.</source>
+ <translation>Tato oblast ukazuje zdrojový text.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Source text (Plural)</source>
+ <translation>Zdrojový text (Plural)</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>This area shows the plural form of the source text.</source>
+ <translation>Tato oblast ukazuje množné číslo zdrojového textu.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Developer comments</source>
+ <translation>Vývojářovy poznámky</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>This area shows a comment that may guide you, and the context in which the text occurs.</source>
+ <translation>Tato oblast ukazuje případn poznámky, jež vás mohou vést, a souvislosti, v nichž se text vyskytuje.</translation>
+ </message>
+ <message>
+ <location line="+59"/>
+ <source>Here you can enter comments for your own use. They have no effect on the translated applications.</source>
+ <translation>Sem můžete vepsat poznámky určené pro vaše vlastní použití. Na překlad nemají žádný vliv.</translation>
+ </message>
+ <message>
+ <location line="+232"/>
+ <source>%1 translation (%2)</source>
+ <translation>Překlad %1 (%2)</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>This is where you can enter or modify the translation of the above source text.</source>
+ <translation>Tady můžete zadávat nebo měnit překlad zdrojového textu.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>%1 translation</source>
+ <translation>Překlad %1</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>%1 translator comments</source>
+ <translation>%1 překladatelovy poznámky</translation>
+ </message>
+ <message>
+ <location line="+157"/>
+ <source>&apos;%1&apos;
+Line: %2</source>
+ <translation>&apos;%1&apos;
+Řádek: %2</translation>
+ </message>
+</context>
+<context>
+ <name>MessageModel</name>
+ <message>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+832"/>
+ <source>Completion status for %1</source>
+ <translation>Stav zpracování %1</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>&lt;file header&gt;</source>
+ <translation>&lt;hlavička souboru&gt;</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&lt;context comment&gt;</source>
+ <translation>&lt;související poznámka&gt;</translation>
+ </message>
+ <message>
+ <location line="+71"/>
+ <source>&lt;unnamed context&gt;</source>
+ <translation>&lt;nepojmenovaná souvislost&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>MsgEdit</name>
+ <message>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-614"/>
+ <source></source>
+ <comment>This is the right panel of the main window.</comment>
+ <translation></translation>
+ </message>
+</context>
+<context>
+ <name>PhraseBookBox</name>
+ <message>
+ <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+12"/>
+ <source></source>
+ <comment>Go to Phrase &gt; Edit Phrase Book... The dialog that pops up is a PhraseBookBox.</comment>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+54"/>
+ <source>(New Entry)</source>
+ <translation>(Nový záznam)</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1[*] - Qt Linguist</source>
+ <translation>%1[*] - Qt Linguist</translation>
+ </message>
+ <message>
+ <location line="+90"/>
+ <source>Qt Linguist</source>
+ <translation>Qt Linguist</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Cannot save phrase book &apos;%1&apos;.</source>
+ <translation>Nelze uložit slovník &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/phrasebookbox.ui"/>
+ <source>Edit Phrase Book</source>
+ <translation>Upravit slovník</translation>
+ </message>
+ <message>
+ <location/>
+ <source>This window allows you to add, modify, or delete entries in a phrase book.</source>
+ <translation>Toto okno vám umožní vložit, měnit nebo odstranit záznamy z tohoto slovníku.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Translation:</source>
+ <translation>&amp;Překlad:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>This is the phrase in the target language corresponding to the source phrase.</source>
+ <translation>Toto je text, který v cílovém jazyce odpovídá zdrojovému textu.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>S&amp;ource phrase:</source>
+ <translation>&amp;Zdrojový text:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>This is a definition for the source phrase.</source>
+ <translation>Toto je vymezení zdrojového textu.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>This is the phrase in the source language.</source>
+ <translation>Toto je text ve zdrojovém jazyce.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Definition:</source>
+ <translation>&amp;Vymezení:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Click here to add the phrase to the phrase book.</source>
+ <translation>Sem klepněte kvůli vložení nového záznamu do slovníku.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;New Entry</source>
+ <translation>&amp;Nový záznam</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Click here to remove the entry from the phrase book.</source>
+ <translation>Sem klepněte kvůli odstranění nového záznamu ze slovníku.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Remove Entry</source>
+ <translation>&amp;Odstranit záznam</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Settin&amp;gs...</source>
+ <translation>&amp;Nastavení...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Click here to save the changes made.</source>
+ <translation>Sem klepněte kvůli uložení provedených změn.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Save</source>
+ <translation>&amp;Uložit</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Click here to close this window.</source>
+ <translation>Sem klepněte kvůli zavření tohoto okna.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Close</source>
+ <translation>Zavřít</translation>
+ </message>
+</context>
+<context>
+ <name>PhraseModel</name>
+ <message>
+ <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+117"/>
+ <source>Source phrase</source>
+ <translation>Zdrojový text</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Translation</source>
+ <translation>Překlad</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Definition</source>
+ <translation>Vymezení</translation>
+ </message>
+</context>
+<context>
+ <name>PhraseView</name>
+ <message>
+ <location filename="../tools/linguist/linguist/phraseview.cpp" line="+122"/>
+ <source>Insert</source>
+ <translation>Vložit</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Edit</source>
+ <translation>Upravit</translation>
+ </message>
+ <message>
+ <location line="+113"/>
+ <source>Guess (%1)</source>
+ <translation>Návrh (%1)</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Guess</source>
+ <translation>Návrh</translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../tools/linguist/shared/qm.cpp" line="+12"/>
+ <source>Compiled Qt translations</source>
+ <translation>Sestavené překlady Qt</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1280"/>
+ <source>Translation files (%1);;</source>
+ <translation>Překladové soubory (%1);;</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>All files (*)</source>
+ <translation>Všechny soubory (*)</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1118"/>
+ <location line="+18"/>
+ <location line="+67"/>
+ <location line="+39"/>
+ <location line="+17"/>
+ <location line="+15"/>
+ <location filename="../tools/linguist/linguist/phrase.cpp" line="+196"/>
+ <source>Qt Linguist</source>
+ <translation>Qt Linguist</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/shared/po.cpp" line="+658"/>
+ <source>GNU Gettext localization files</source>
+ <translation>Překladové soubory GNU Gettext</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/shared/ts.cpp" line="+752"/>
+ <source>Qt translation sources (format 1.1)</source>
+ <translation>Překladové soubory Qt (verze formátu 1.1)</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Qt translation sources (format 2.0)</source>
+ <translation>Překladové soubory Qt (verze formátu 2.0)</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Qt translation sources (latest format)</source>
+ <translation>Překladové soubory Qt (nejnovější formát)</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/shared/xliff.cpp" line="+827"/>
+ <source>XLIFF localization files</source>
+ <translation>Překladové soubory XLIFF</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/shared/qph.cpp" line="+183"/>
+ <source>Qt Linguist &apos;Phrase Book&apos;</source>
+ <translation>Slovník Qt Linguist</translation>
+ </message>
+</context>
+<context>
+ <name>SourceCodeView</name>
+ <message>
+ <location filename="../tools/linguist/linguist/sourcecodeview.cpp" line="+70"/>
+ <source>&lt;i&gt;Source code not available&lt;/i&gt;</source>
+ <translation>&lt;i&gt;Zdrojový text není dostupný&lt;/i&gt;</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>&lt;i&gt;File %1 not available&lt;/i&gt;</source>
+ <translation>&lt;i&gt;Soubor %1 není dostupný&lt;/i&gt;</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&lt;i&gt;File %1 not readable&lt;/i&gt;</source>
+ <translation>&lt;i&gt;Soubor %1 není čitelný&lt;/i&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>Statistics</name>
+ <message>
+ <location filename="../tools/linguist/linguist/statistics.ui"/>
+ <source>Statistics</source>
+ <translation>Statistiky</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Translation</source>
+ <translation>Překlad</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Source</source>
+ <translation>Zdroj</translation>
+ </message>
+ <message>
+ <location/>
+ <source>0</source>
+ <translation>0</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Words:</source>
+ <translation>Slov:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Characters:</source>
+ <translation>Znaků:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Characters (with spaces):</source>
+ <translation>Znaků (s mezerami):</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Close</source>
+ <translation>Zavřít</translation>
+ </message>
+</context>
+<context>
+ <name>TranslateDialog</name>
+ <message>
+ <location filename="../tools/linguist/linguist/translatedialog.ui"/>
+ <source>This window allows you to search for some text in the translation source file.</source>
+ <translation>Toto okno vám umožňuje hledání textu ve zdrojovém souboru s překladem.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Type in the text to search for.</source>
+ <translation>Zadejte text, který se má hledat.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Find &amp;source text:</source>
+ <translation>Hledat &amp;zdrojový text:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Translate to:</source>
+ <translation>&amp;Překlad:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Search options</source>
+ <translation>Nastavení hledání</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Texts such as &apos;TeX&apos; and &apos;tex&apos; are considered as different when checked.</source>
+ <translation>Když je zapnuto, texty jako &apos;TeX&apos; a &apos;tex&apos; se považují za rozdílné.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Match &amp;case</source>
+ <translation>Dbát na &amp;psaní velkých a malých písmen</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Mark new translation as &amp;finished</source>
+ <translation>Nový překlad označit jako &amp;vyřízený</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Click here to find the next occurrence of the text you typed in.</source>
+ <translation>Klepněte sem pro skok k dalšímu výskytu hledáného textu.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Find Next</source>
+ <translation>Hledat dál</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Translate</source>
+ <translation>Přeložit</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Translate All</source>
+ <translation>Přeložit vše</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Click here to close this window.</source>
+ <translation>Klepněte sem pro zavření tohoto okna.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Cancel</source>
+ <translation>Zrušit</translation>
+ </message>
+</context>
+<context>
+ <name>TranslationSettingsDialog</name>
+ <message>
+ <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+68"/>
+ <source>Any Country</source>
+ <translation>Země</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <location line="+8"/>
+ <source>Settings for &apos;%1&apos; - Qt Linguist</source>
+ <translation>Nastavení pro &apos;%1&apos; - Qt Linguist</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/translationsettings.ui"/>
+ <source>Source language</source>
+ <translation>Zdrojový jazyk</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Language</source>
+ <translation>Jazyk</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Country/Region</source>
+ <translation>Země/Oblast</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Target language</source>
+ <translation>Cílový jazyk</translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/linguist_hu.ts b/translations/linguist_hu.ts
new file mode 100644
index 0000000..aaff893
--- /dev/null
+++ b/translations/linguist_hu.ts
@@ -0,0 +1,2014 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="hu_HU" sourcelanguage="hu">
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1358"/>
+ <source>Qt Linguist</source>
+ <translation>Qt Linguist</translation>
+ </message>
+</context>
+<context>
+ <name>BatchTranslationDialog</name>
+ <message>
+ <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="+79"/>
+ <source>Batch Translation of &apos;%1&apos; - Qt Linguist</source>
+ <translation>&apos;%1&apos; Qt Linguist egy adat fordítása</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>Searching, please wait...</source>
+ <translation>Keresés, kérem várjon...</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Mégse</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>Linguist batch translator</source>
+ <translation>Linguist köteg fordító</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+1"/>
+ <source>Batch translated %n entries</source>
+ <translation>
+ <numerusform>%n adat belépés lefordítva</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/batchtranslation.ui"/>
+ <source>Qt Linguist - Batch Translation</source>
+ <translation>Qt Linguist adat fordítás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Options</source>
+ <translation>Opciók</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Set translated entries to finished</source>
+ <translation>Lefordított bevitelek befejezettre állítása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Retranslate entries with existing translation</source>
+ <translation>Bevitelek újrafordítása létező fordításokkal</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Translate also finished entries</source>
+ <translation>Befejezett belépéseknek is a lefordítása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Phrase book preference</source>
+ <translation>Fázis könyv beállítások</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move up</source>
+ <translation>Felfelé mozgatás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move down</source>
+ <translation>Lefelé mozgatás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Run</source>
+ <translation>&amp;Futtatás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Cancel</source>
+ <translation>Mégse</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Note that the modified entries will be reset to unfinished if &apos;Set translated entries to finished&apos; above is unchecked</source>
+ <translation>Ne felejtse el, hogy a módosított belépések újra lesznek indítva befejezetlenre, ha a &apos;lefordított bevitelek befejezettre állítása&apos; felül meg van jelölve</translation>
+ </message>
+ <message>
+ <location/>
+ <source>The batch translator will search through the selected phrase books in the order given above</source>
+ <translation>A köteg fordító a kiválasztott fázis könyvek között fog keresni, a fent megadott sorrendben</translation>
+ </message>
+</context>
+<context>
+ <name>DataModel</name>
+ <message>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+214"/>
+ <source>&lt;qt&gt;Duplicate messages found in &apos;%1&apos;:</source>
+ <translation>&lt;qt&gt;Dupliált üzenetek találhatóak a(z) &apos;%1&apos;-ben:</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <location line="+8"/>
+ <source>&lt;p&gt;[more duplicates omitted]</source>
+ <translation>&lt;p&gt;[többi duplikáció kihagyása]</translation>
+ </message>
+ <message>
+ <location line="-5"/>
+ <source>&lt;p&gt;* ID: %1</source>
+ <translation>&lt;p&gt;* Azonosító: %1</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>&lt;p&gt;* Context: %1&lt;br&gt;* Source: %2</source>
+ <translation>&lt;p&gt;* Szövegösszefüggés: %1&lt;br&gt;* Forrás: %2</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&lt;br&gt;* Comment: %3</source>
+ <translation>&lt;br&gt;* Megjegyzés: %3</translation>
+ </message>
+ <message>
+ <location line="+71"/>
+ <source>Linguist does not know the plural rules for &apos;%1&apos;.
+Will assume a single universal form.</source>
+ <translation>A Linguist nem ismeri a többes számú szabályokat a &apos;%1&apos;-re. Egy egyszerű univerzális formát fog feltételezni.</translation>
+ </message>
+ <message>
+ <location line="+56"/>
+ <source>Cannot create &apos;%2&apos;: %1</source>
+ <translation>Nem lehet létrehozni &apos;%2&apos;: %1</translation>
+ </message>
+ <message>
+ <location line="+56"/>
+ <source>Universal Form</source>
+ <translation>Univerzális forma</translation>
+ </message>
+</context>
+<context>
+ <name>ErrorsView</name>
+ <message>
+ <location filename="../tools/linguist/linguist/errorsview.cpp" line="+76"/>
+ <source>Accelerator possibly superfluous in translation.</source>
+ <translation>A gyorsítás valószínűleg nélkülözhető a fordításban.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Accelerator possibly missing in translation.</source>
+ <translation>A gyorsítás valószínűleg hiányzik a fordításban.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Translation does not end with the same punctuation as the source text.</source>
+ <translation>A fordítás nem ugyanazzal az írásjellel végződik, mint a forrás szöveg.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>A phrase book suggestion for &apos;%1&apos; was ignored.</source>
+ <translation>A(z) &apos;%1&apos;-re tett fáziskönyv ajánlat mellőzve lett.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Translation does not refer to the same place markers as in the source text.</source>
+ <translation>Nem ugyanazok a hely megjelölők találhatóak a fordításban, mint a forrás szövegben.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Translation does not contain the necessary %n place marker.</source>
+ <translation>A fordítás nem tartalmazza a szükséges %n hely megjelölőket.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Unknown error</source>
+ <translation>Ismeretlen hiba</translation>
+ </message>
+</context>
+<context>
+ <name>FindDialog</name>
+ <message>
+ <location filename="../tools/linguist/linguist/finddialog.ui"/>
+ <source>This window allows you to search for some text in the translation source file.</source>
+ <translation>Ez az ablak engedélyezi, hogy szöveget keresses a fordítás forrás fájlban.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Type in the text to search for.</source>
+ <translation>Gépelje be szövegbe, amit keres..</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Options</source>
+ <translation>Opciók</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Source texts are searched when checked.</source>
+ <translation>Forrás szövegek keresési ellenőrzéskor.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Translations are searched when checked.</source>
+ <translation>Fordítások keresése ellenőrzéskor.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Texts such as &apos;TeX&apos; and &apos;tex&apos; are considered as different when checked.</source>
+ <translation>&apos;TeX&apos; és &apos;tex&apos; szövegek különbözőként kezelése bejelöléskor.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Comments and contexts are searched when checked.</source>
+ <translation>Megjegyzések és tartalmak keresése bejelöléskor.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Find</source>
+ <translation>Keresés
+</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Find what:</source>
+ <translation>Ennek &amp;keresése:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Source texts</source>
+ <translation>&amp;Forrás szövegek</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Translations</source>
+ <translation>&amp;Fordítások</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Match case</source>
+ <translation>&amp;Egyezés</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Comments</source>
+ <translation>&amp;Kommentek</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ignore &amp;accelerators</source>
+ <translation>&amp;Gyorsítások mellőzése</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Click here to find the next occurrence of the text you typed in.</source>
+ <translation>Kattintson ide a begépelt szöveg következő előfordulásának megkereséséhez.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Find Next</source>
+ <translation>Következő keresése</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Click here to close this window.</source>
+ <translation>Kattintson ide az ablak bezárásához.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Cancel</source>
+ <translation>Mégse</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/finddialog.cpp" line="+12"/>
+ <source></source>
+ <comment>Choose Edit|Find from the menu bar or press Ctrl+F to pop up the Find dialog</comment>
+ <translatorcomment>Válassza ki a Szerkesztés/Keresés opciót a menüből vagy nyomja le a Ctrl+F billentyűket a keresési párbeszédablak felugrásához</translatorcomment>
+ <translation></translation>
+ </message>
+</context>
+<context>
+ <name>FormMultiWidget</name>
+ <message>
+ <location filename="../tools/linguist/linguist/messageeditorwidgets.cpp" line="+296"/>
+ <source>Alt+Delete</source>
+ <extracomment>translate, but don&apos;t change</extracomment>
+ <translatorcomment>fordítsd, de ne változtasd</translatorcomment>
+ <translation>ALT+Delete</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Shift+Alt+Insert</source>
+ <extracomment>translate, but don&apos;t change</extracomment>
+ <translatorcomment>Fordítsd, de ne változtasd.</translatorcomment>
+ <translation>Shift+Alt+Insert</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Alt+Insert</source>
+ <extracomment>translate, but don&apos;t change</extracomment>
+ <translation>Alt+Insert</translation>
+ </message>
+ <message>
+ <location line="+131"/>
+ <source>Confirmation - Qt Linguist</source>
+ <translation>Megerősítés - Qt Linguist</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Delete non-empty length variant?</source>
+ <translation>Törölje az 0 hosszúságú változatok?</translation>
+ </message>
+</context>
+<context>
+ <name>LRelease</name>
+ <message numerus="yes">
+ <location filename="../tools/linguist/shared/qm.cpp" line="+761"/>
+ <source>Dropped %n message(s) which had no ID.</source>
+ <translation>
+ <numerusform>%n üzenez eldobva, melyek nem rendelkeztek azonosítóval.</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location line="+4"/>
+ <source>Excess context/disambiguation dropped from %n message(s).</source>
+ <translation>
+ <numerusform>Fölösleges szövegösszefüggés/egyértelműsítés törlése %n üzenetből.</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location line="+8"/>
+ <source> Generated %n translation(s) (%1 finished and %2 unfinished)
+</source>
+ <translation>
+ <numerusform>%n fordítás legenerálása (%1 befejezett és %2 befejezetlen)</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location line="+4"/>
+ <source> Ignored %n untranslated source text(s)
+</source>
+ <translation>
+ <numerusform>%n lefordítatlan forrás szöveg mellőzése</numerusform>
+ </translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+ <source>MainWindow</source>
+ <translation>FőAblak</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Phrases</source>
+ <translation>&amp;Fázisok</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Close Phrase Book</source>
+ <translation>&amp;Fázis könyvek bezárása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Edit Phrase Book</source>
+ <translation>Fázis könyvek &amp;szerkesztése</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Print Phrase Book</source>
+ <translation>&amp;Fázis könyvek nyomtatása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>V&amp;alidation</source>
+ <translation>&amp;Érvényesítés</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;View</source>
+ <translation>&amp;Nézet</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Vie&amp;ws</source>
+ <translation>&amp;Nézetek</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Toolbars</source>
+ <translation>&amp;Eszköztár</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Help</source>
+ <translation>&amp;Súgó</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Translation</source>
+ <translation>&amp;Fordítások</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;File</source>
+ <translation>&amp;Fájl</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Edit</source>
+ <translation>&amp;Szerkesztés</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Open...</source>
+ <translation>&amp;Megnyitás...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Open a Qt translation source file (TS file) for editing</source>
+ <translation>Egy Qt fordítási forrás fájl (TS fájl) megnyitása szerkesztésre</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+O</source>
+ <translation>Ctrl+O</translation>
+ </message>
+ <message>
+ <location/>
+ <source>E&amp;xit</source>
+ <translation>&amp;Kilépés</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Close this window and exit.</source>
+ <translation>Ablak bezárása és kilépés.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+646"/>
+ <location line="+15"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Mentés</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+ <source>Save changes made to this Qt translation source file</source>
+ <translation>Változtatások elmentése a Qt fordítási forrás fájlban</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move to the previous unfinished item.</source>
+ <translation>Az előző befejezetlen elemre mozgatás.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move to the next unfinished item.</source>
+ <translation>A következő befejezetlen elemre mozgatás.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move to the previous item.</source>
+ <translation>Az előző elemre mozgatás.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move to the next item.</source>
+ <translation>A következő elemre mozgatás.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Mark this item as done and move to the next unfinished item.</source>
+ <translation>Az elem készre jelölése és a következő befejezetlen elemre mozgás.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Copy from source text</source>
+ <translation>Másolás forrás szövegből</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toggle the validity check of accelerators, i.e. whether the number of ampersands in the source and translation text is the same. If the check fails, a message is shown in the warnings window.</source>
+ <translation>Gyorsítások érvényesség ellenőrzésének kapcsolgatása, lásd vajon az et jelek száma megegyezik-e a a forrás és lefordított szövegben. Ha ez az ellenőrzés hibásan zárul le, a figyelmeztető ablakban egy üzenet tűnik fel.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toggle the validity check of ending punctuation. If the check fails, a message is shown in the warnings window.</source>
+ <translation>A végződő írásjelek érvényesség ellenőrzésének kapcsolgatása. Ha ez az ellenőrzés nem sikerült, akkor egy üzenet bukkan fel a figyelmeztető ablakban.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toggle checking that phrase suggestions are used. If the check fails, a message is shown in the warnings window.</source>
+ <translation>Fázis ajánlások ellenőrzésének kapcsolgatása. Ha az ellenőrzés sikertelen, akkor egy üzenet bukkan fel a figyelmeztető ablakban.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toggle the validity check of place markers, i.e. whether %1, %2, ... are used consistently in the source text and translation text. If the check fails, a message is shown in the warnings window.</source>
+ <translation>A hely megjelelölők érvényesség ellenőrzésének kapcsolgatása, lásd vajon a(z) %1, %2.. következetesen vannak-e használva a forrás és lefordított szövegben. Ha az ellenőrzés sikertelen, egy üzenet bukkan fel a figyelmeztető ablakban.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Open Read-O&amp;nly...</source>
+ <translation>&amp;Csak olvasható megnyitása...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Save All</source>
+ <translation>Az összes &amp;mentése</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+S</source>
+ <translation>Ctrl+S</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-14"/>
+ <location line="+11"/>
+ <source>Save &amp;As...</source>
+ <translation>&amp;Másként mentés...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Save As...</source>
+ <translation>Másként mentés...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Save changes made to this Qt translation source file into a new file.</source>
+ <translation>A változtatások egy új fájlba mentése, amik ebben a Qt fordítási forrás fájlban keletkeztek.</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+4"/>
+ <source>&amp;Release</source>
+ <translation>&amp;Kiadás</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+ <source>Create a Qt message file suitable for released applications from the current message file.</source>
+ <translation>Qt üzenez fájl létrehozása az aktuális üzenet fájlból, ami alkalmas a kiadásra.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Print...</source>
+ <translation>&amp;Nyomtatás...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+P</source>
+ <translation>Ctrl+P</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Undo</source>
+ <translation>&amp;Visszacsinálás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Recently Opened &amp;Files</source>
+ <translation>&amp;Utoljára megnyitott &amp;fájlok</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Save</source>
+ <translation>Mentés</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Print a list of all the translation units in the current translation source file.</source>
+ <translation>Az összes fordítási egység kinyomtatása az aktuális fordítási forrás fájlban.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Undo the last editing operation performed on the current translation.</source>
+ <translation>Az utoljára szerkesztett művelet visszavonása az aktuális fordításon.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+Z</source>
+ <translation>Ctrl+Z</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Redo</source>
+ <translation>&amp;Helyreállítás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Redo an undone editing operation performed on the translation.</source>
+ <translation>Szerkesztő művelet helyreállítása és visszavonása, ami az aktuális fordításon lett végrehajtva.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+Y</source>
+ <translation>Ctrl+Y</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Cu&amp;t</source>
+ <translation>&amp;Kivágás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Copy the selected translation text to the clipboard and deletes it.</source>
+ <translation>A kiválasztott fordítási szöveg vágólapra másolása és törlése.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+X</source>
+ <translation>Ctrl+X</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Copy</source>
+ <translation>&amp;Másolás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Copy the selected translation text to the clipboard.</source>
+ <translation>A kiválaszott fordítási szöveg vágólapra másolása.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+C</source>
+ <translation>Ctrl+C</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Paste</source>
+ <translation>&amp;Beillesztés</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Paste the clipboard text into the translation.</source>
+ <translation>A vágólapon levő szöveg fordításba illesztése.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+V</source>
+ <translation>Ctrl+V</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Select &amp;All</source>
+ <translation>Az &amp;összes kiválasztása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Select the whole translation text.</source>
+ <translation>Az egész fordítási szöveg kiválasztása.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+A</source>
+ <translation>Ctrl+A</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Find...</source>
+ <translation>&amp;Keresés...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Search for some text in the translation source file.</source>
+ <translation>Néhány szövegre keresés a fordítási forrás fájlban.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+F</source>
+ <translation>Ctrl+F</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Find &amp;Next</source>
+ <translation>&amp;Következő keresése</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Continue the search where it was left.</source>
+ <translation>A keresés folytatása ott, ahol abba lett hagyva.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>F3</source>
+ <translation>F3</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Prev Unfinished</source>
+ <translation>Az &amp;előző befejezetlen</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Close</source>
+ <translation>Bezárás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Close All</source>
+ <translation>Az összes &amp;bezárása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+W</source>
+ <translation>Ctrl+W</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+K</source>
+ <translation>Ctrl+K</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Next Unfinished</source>
+ <translation>&amp;Következő befejezetlen</translation>
+ </message>
+ <message>
+ <location/>
+ <source>P&amp;rev</source>
+ <translation>&amp;Előző</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+Shift+K</source>
+ <translation>Ctrl+Shift+K</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ne&amp;xt</source>
+ <translation>&amp;Következő</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Done and Next</source>
+ <translation>&amp;Kész és Következő</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Copies the source text into the translation field.</source>
+ <translation>Forrás szövegek fordítási mezőbe másolása.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+B</source>
+ <translation>Ctrl+B</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Accelerators</source>
+ <translation>&amp;Gyorsítások</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Ending Punctuation</source>
+ <translation>&amp;Vég írásjelek</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Phrase matches</source>
+ <translation>&amp;Fázis egyezés</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Place &amp;Marker Matches</source>
+ <translation>Hely &amp;megjelölők egyezései</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;New Phrase Book...</source>
+ <translation>&amp;Új fázis könyv...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Create a new phrase book.</source>
+ <translation>Egy új fázis könyv létrehozása.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+N</source>
+ <translation>Ctrl+N</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Open Phrase Book...</source>
+ <translation>Fázis könyv &amp;megnyitása...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Open a phrase book to assist translation.</source>
+ <translation>Fáris könyv megnyitása a fordítás támogatásával.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+H</source>
+ <translation>Ctrl+H</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Reset Sorting</source>
+ <translation>&amp;Rendezés helyreállítása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Sort the items back in the same order as in the message file.</source>
+ <translation>Az elemek visszarendezése ugyanabba a sorrendben, ahogy az üzenet fájlban található.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Display guesses</source>
+ <translation>Feltételezések &amp;kijelzése</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Set whether or not to display translation guesses.</source>
+ <translation>Annak beállítása, hogy vajon kijelezze a fordítási feltételezéseket vagy sem.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Statistics</source>
+ <translation>&amp;Statisztikák</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Display translation statistics.</source>
+ <translation>Fordítási statisztikák kijelzése.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Manual</source>
+ <translation>&amp;Kézi</translation>
+ </message>
+ <message>
+ <location/>
+ <source>F1</source>
+ <translation>F1</translation>
+ </message>
+ <message>
+ <location/>
+ <source>About Qt Linguist</source>
+ <translation>Qt Linguist-ról</translation>
+ </message>
+ <message>
+ <location/>
+ <source>About Qt</source>
+ <translation>Qt-ról</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Display information about the Qt toolkit by Trolltech.</source>
+ <translation>Információ megjelenítése a Trolltech Qt eszközrendszeréről.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;What&apos;s This?</source>
+ <translation>&amp;Mi ez?</translation>
+ </message>
+ <message>
+ <location/>
+ <source>What&apos;s This?</source>
+ <translation>Mi ez?</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Enter What&apos;s This? mode.</source>
+ <translation>Mi ez? beviteli mód.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Shift+F1</source>
+ <translation>Shift+F1</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Search And Translate...</source>
+ <translation>&amp;Keresés és fordítás...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Replace the translation on all entries that matches the search source text.</source>
+ <translation>A fordítások kicserélése az összes olyan helyen, ahol az megegyezik a keresett forrás szöveggel.</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+21"/>
+ <source>&amp;Batch Translation...</source>
+ <translation>&amp;Köteg fordítás...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Batch translate all entries using the information in the phrase books.</source>
+ <translation>Köteg fordítás mindenhol, ahol az információ a fázis könyvekben van haszálva.</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-34"/>
+ <location line="+10"/>
+ <source>Release As...</source>
+ <translation>Kiadás, mint...</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-2005"/>
+ <source></source>
+ <comment>This is the application&apos;s main window.</comment>
+ <translatorcomment>Ez az alkalmazás fő ablaka.</translatorcomment>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+188"/>
+ <source>Source text</source>
+ <translation>Forrás szöveg</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <location line="+25"/>
+ <source>Index</source>
+ <translation>Index</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <location line="+63"/>
+ <source>Context</source>
+ <translation>Összefüggés</translation>
+ </message>
+ <message>
+ <location line="-62"/>
+ <source>Items</source>
+ <translation>Elemek</translation>
+ </message>
+ <message>
+ <location line="+79"/>
+ <source>This panel lists the source contexts.</source>
+ <translation>Ez a panel kilistázza a forrás összefüggéseket.</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Strings</source>
+ <translation>Sztringek</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>Phrases and guesses</source>
+ <translation>Kommunikációk és feltételezések</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Sources and Forms</source>
+ <translation>Források és formák</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Warnings</source>
+ <translation>Figyelmeztetések</translation>
+ </message>
+ <message>
+ <location line="+59"/>
+ <source> MOD </source>
+ <comment>status bar: file(s) modified</comment>
+ <translation>MOD</translation>
+ </message>
+ <message>
+ <location line="+130"/>
+ <source>Loading...</source>
+ <translation>Betöltés...</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <location line="+22"/>
+ <source>Loading File - Qt Linguist</source>
+ <translation>Fájl betöltése - Qt Linguist</translation>
+ </message>
+ <message>
+ <location line="-21"/>
+ <source>The file &apos;%1&apos; does not seem to be related to the currently open file(s) &apos;%2&apos;.
+
+Close the open file(s) first?</source>
+ <translation>A(z) &apos;%1&apos; fájl nem tartozik hozzá egyetlen aktuálisan megnyitott &apos;%2&apos; fájlhoz sem.
+
+Bezárja először a megnyitott fájl(oka)t?</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>The file &apos;%1&apos; does not seem to be related to the file &apos;%2&apos; which is being loaded as well.
+
+Skip loading the first named file?</source>
+ <translation>A(z) &apos;%1&apos; fájl nem tartozik egyetlen &apos;%2&apos; fájlhoz sem, amelyik ugyanúgy be lett töltve.
+
+Azt első megnevezett fájl betöltésének kihagyása?</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+61"/>
+ <source>%n translation unit(s) loaded.</source>
+ <translation>
+ <numerusform>%n fordítási egység betöltése.</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+93"/>
+ <source>Related files (%1);;</source>
+ <translation>Hozzákapcsolodó fájlok (%1);;</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Open Translation Files</source>
+ <translation>Fordítási fájlok megnyitása</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <location line="+31"/>
+ <source>File saved.</source>
+ <translation>Fájl elmentve.</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+15"/>
+ <location line="+1165"/>
+ <source>Release</source>
+ <translation>Kiadás</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1164"/>
+ <source>Qt message files for released applications (*.qm)
+All files (*)</source>
+ <translation>Qt üzenet fájlok a kiadott alkalmazásra (*.qm)
+Az összes fájl(*)</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+12"/>
+ <source>File created.</source>
+ <translation>Fál létrehozva.</translation>
+ </message>
+ <message>
+ <location line="+34"/>
+ <location line="+355"/>
+ <source>Printing...</source>
+ <translation>Nyomtatás...</translation>
+ </message>
+ <message>
+ <location line="-347"/>
+ <source>Context: %1</source>
+ <translation>Összefüggés: %1</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <source>finished</source>
+ <translation>Befejezve</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>unresolved</source>
+ <translation>Nincs megoldva</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>obsolete</source>
+ <translation>Elavulás</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <location line="+307"/>
+ <source>Printing... (page %1)</source>
+ <translation>Nyomtatás... (%1 lap)</translation>
+ </message>
+ <message>
+ <location line="-300"/>
+ <location line="+307"/>
+ <source>Printing completed</source>
+ <translation>Nyomtatás teljesítve</translation>
+ </message>
+ <message>
+ <location line="-305"/>
+ <location line="+307"/>
+ <source>Printing aborted</source>
+ <translation>Nyomtatás megszakítva</translation>
+ </message>
+ <message>
+ <location line="-232"/>
+ <source>Search wrapped.</source>
+ <translation>Keresés elrejtése.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <location line="+278"/>
+ <location line="+34"/>
+ <location line="+24"/>
+ <location line="+22"/>
+ <location line="+516"/>
+ <location line="+1"/>
+ <location line="+274"/>
+ <location line="+40"/>
+ <location line="+10"/>
+ <source>Qt Linguist</source>
+ <translation>Qt Linguist</translation>
+ </message>
+ <message>
+ <location line="-1198"/>
+ <location line="+102"/>
+ <source>Cannot find the string &apos;%1&apos;.</source>
+ <translation>A(z) &apos;%1&apos; sztring nem található.</translation>
+ </message>
+ <message>
+ <location line="-82"/>
+ <source>Search And Translate in &apos;%1&apos; - Qt Linguist</source>
+ <translation>Keresés és fordítás a(z) &apos;%1&apos;-ben - Qt Linguist</translation>
+ </message>
+ <message>
+ <location line="+34"/>
+ <location line="+23"/>
+ <location line="+24"/>
+ <source>Translate - Qt Linguist</source>
+ <translation>Qt Linguist fordítása</translation>
+ </message>
+ <message numerus="yes">
+ <location line="-46"/>
+ <source>Translated %n entry(s)</source>
+ <translation>
+ <numerusform>%n bevitel lefordítva</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>No more occurrences of &apos;%1&apos;. Start over?</source>
+ <translation>Nem található &apos;%1&apos; több előfordulása. Előlről kezdi?</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Create New Phrase Book</source>
+ <translation>Új kommunikációs könyv létrehozása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Qt phrase books (*.qph)
+All files (*)</source>
+ <translation>Qt kommunikációs könyv (*.qph)
+Az összes fájl (*)</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Phrase book created.</source>
+ <translation>Kommunikációs könyv létrehozva.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Open Phrase Book</source>
+ <translation>Kommunikációs könyv megnyitása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Qt phrase books (*.qph);;All files (*)</source>
+ <translation>Qt kommunikációs könyvek (*.qpm);;Az összes fájl (*)</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+7"/>
+ <source>%n phrase(s) loaded.</source>
+ <translation>
+ <numerusform>%n kommunikáció betöltése.</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+93"/>
+ <location line="+3"/>
+ <location line="+7"/>
+ <source>Add to phrase book</source>
+ <translation>Kommunikációs könyv hozzáadása</translation>
+ </message>
+ <message>
+ <location line="-9"/>
+ <source>No appropriate phrasebook found.</source>
+ <translation>Nem található megfelelő kommunikációs könyv.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Adding entry to phrasebook %1</source>
+ <translation>Új elem hozzáadása a(z) %1 fázis fáziskönyvhöz</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Select phrase book to add to</source>
+ <translation>Kommunikációs könyv kiválasztása hozzáadásra</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Unable to launch Qt Assistant (%1)</source>
+ <translation>Nem lehet elindítani a Qt Assistant (%1)</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Version %1</source>
+ <translation>%1 Verzió</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&lt;center&gt;&lt;img src=&quot;:/images/splash.png&quot;/&gt;&lt;/img&gt;&lt;p&gt;%1&lt;/p&gt;&lt;/center&gt;&lt;p&gt;Qt Linguist is a tool for adding translations to Qt applications.&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</source>
+ <translation>&lt;center&gt;&lt;img src=&quot;:/images/splash.png&quot;/&gt;&lt;/img&gt;&lt;p&gt;%1&lt;/p&gt;&lt;/center&gt;&lt;p&gt;Qt Linguist egy olyan eszköz, amelyekkel fordítások adhat hozzá a Qt alkalmazásokhoz.&lt;/p&gt;&lt;p&gt;Szerzői jog(C) 2010 Nokia Vállalat és/vagy leányvállalatai.</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Do you want to save the modified files?</source>
+ <translation>El szeretné menteni a módosított fájlokat?</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Do you want to save &apos;%1&apos;?</source>
+ <translation>El szeretné menteni a(z) %1-t ?</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>Qt Linguist[*]</source>
+ <translation>Qt Linguist[*]</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>%1[*] - Qt Linguist</source>
+ <translation>%1[*] - Qt Linguist</translation>
+ </message>
+ <message>
+ <location line="+267"/>
+ <location line="+12"/>
+ <source>No untranslated translation units left.</source>
+ <translation>Nem maradtak lefordítatlan fordítások.</translation>
+ </message>
+ <message>
+ <location line="+176"/>
+ <source>&amp;Window</source>
+ <translation>&amp;Ablak</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Minimize</source>
+ <translation>Minimalizálás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Ctrl+M</source>
+ <translation>Ctrl+M</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Display the manual for %1.</source>
+ <translation>A manuál megjelenítése %1-re vonatkozóan.</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Display information about %1.</source>
+ <translation>Információ megjelenítése a(z) %1-ről.</translation>
+ </message>
+ <message>
+ <location line="+70"/>
+ <source>&amp;Save &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; &amp;mentése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Save &apos;%1&apos; &amp;As...</source>
+ <translation>&apos;%1&apos; &amp;másként mentése...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Release &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; kiadása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Release &apos;%1&apos; As...</source>
+ <translation>&apos;%1&apos; másként kiadása...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Close &apos;%1&apos;</source>
+ <translation>&apos;%1&apos; &amp;bezárása</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+13"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Bezárás</translation>
+ </message>
+ <message>
+ <location line="-10"/>
+ <source>Save All</source>
+ <translation>Az összes mentése</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1"/>
+ <source>&amp;Release All</source>
+ <translation>Az összes &amp;kiadása</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1"/>
+ <source>Close All</source>
+ <translation>Az összes bezárása</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Translation File &amp;Settings for &apos;%1&apos;...</source>
+ <translation>Fordítási fájlok &amp;beállítása erre &apos;%1&apos;...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Batch Translation of &apos;%1&apos;...</source>
+ <translation>A(z) &apos;%1&apos; &amp;köteg fordítása...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Search And &amp;Translate in &apos;%1&apos;...</source>
+ <translation>Keresés és &amp;fordítás &apos;%1&apos;-ben...</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Search And &amp;Translate...</source>
+ <translation>Keresés és &amp;fordítás...</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+51"/>
+ <source>File</source>
+ <translation>Fájl</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+7"/>
+ <source>Edit</source>
+ <translation>Szerkesztés</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+6"/>
+ <source>Translation</source>
+ <translation>Fordítás</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+6"/>
+ <source>Validation</source>
+ <translation>Érvényesítés</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+7"/>
+ <source>Help</source>
+ <translation>Súgó</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+84"/>
+ <source>Cannot read from phrase book &apos;%1&apos;.</source>
+ <translation>Nem lehet a(z) &apos;%1&apos; kommunikációs könyvből olvasni.</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Close this phrase book.</source>
+ <translation>A kommunikációs könyv bezárása.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Enables you to add, modify, or delete entries in this phrase book.</source>
+ <translation>Hozzáadás, módosítás, vagy törlés engedélyezése ebben a kommunikációs könyvben.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Print the entries in this phrase book.</source>
+ <translation>Az összes bevitel kinyomtatása ebben a társalgási szótárban.</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Cannot create phrase book &apos;%1&apos;.</source>
+ <translation>Nem lehet a &apos;%1&apos; társalgási szótárat létrehozni.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Do you want to save phrase book &apos;%1&apos;?</source>
+ <translation>El szeretné menteni a &apos;%1&apos; társalgási szótárat?</translation>
+ </message>
+ <message>
+ <location line="+323"/>
+ <source>All</source>
+ <translation>Mind</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+ <source>Open/Refresh Form &amp;Preview</source>
+ <translation>Forma megnyitása/felfrissítése &amp;nézet</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Form Preview Tool</source>
+ <translation>Forma előnézeti eszköz</translation>
+ </message>
+ <message>
+ <location/>
+ <source>F5</source>
+ <translation>F5</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-536"/>
+ <source>Translation File &amp;Settings...</source>
+ <translation>Fordítási fájl &amp;beállítások...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Add to Phrase Book</source>
+ <translation>Társalgási szótárhoz &amp;hozzáadás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+T</source>
+ <translation>Ctrl+T</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+J</source>
+ <translation>Ctrl+J</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Ctrl+Shift+J</source>
+ <translation>Ctrl+Shift+J</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Previous unfinished item</source>
+ <translation>Előző befejezetlen elem</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Next unfinished item</source>
+ <translation>Következő befejezetlen elem</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Move to previous item</source>
+ <translation>Az előző befejezetlen elemre mozgás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Next item</source>
+ <translation>Következő elem</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Mark item as done and move to the next unfinished item</source>
+ <translation>Az elem készként jelölése és a következő befejezetlen elemre mozgatás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Copies the source text into the translation field</source>
+ <translation>A forrás szöveg fordítási szövegbe másolása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toggle the validity check of accelerators</source>
+ <translation>Gyorsítások érvényesség ellenőrzésének kapcsolgatása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toggle the validity check of ending punctuation</source>
+ <translation>Vég írásjelek érvényesség ellenőrzésének kapcsolgatása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toggle checking that phrase suggestions are used</source>
+ <translation>A használt társalgási ajánlások ellenőrzésének kapcsolgatása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Toggle the validity check of place markers</source>
+ <translation>Hely megjelölők érvényesség vizsgálatának kapcsolgatása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Create a Qt message file suitable for released applications from the current message file. The filename will automatically be determined from the name of the TS file.</source>
+ <translation>Egy Qt üzenet fájl létrehozása az aktuális üzenet fájlból, amely megfelelő az alkalmazás kiadásaira. A fájlnév TS fájl nevéből lesz automatikusan meghatározva.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Length Variants</source>
+ <translation>Hossz változatok</translation>
+ </message>
+</context>
+<context>
+ <name>MessageEditor</name>
+ <message>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+42"/>
+ <source></source>
+ <comment>This is the right panel of the main window.</comment>
+ <translatorcomment>Ez a fő ablak jobb panelja.</translatorcomment>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Russian</source>
+ <translation>Orosz</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>German</source>
+ <translation>Német</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Japanese</source>
+ <translation>Japán</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>French</source>
+ <translation>Francia</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Polish</source>
+ <translation>Lengyel</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Chinese</source>
+ <translation>Kínai</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>This whole panel allows you to view and edit the translation of some source text.</source>
+ <translation>Ez az egész pabel engedélyezi néhány forrás szöveg fordításának megtekintését és szerkesztését.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Source text</source>
+ <translation>Forrás szöveg</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>This area shows the source text.</source>
+ <translation>Ez a terület mutatja a forrás szöveget.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Source text (Plural)</source>
+ <translation>Forrás szöveg (Többesszám)</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>This area shows the plural form of the source text.</source>
+ <translation>Ez a terület mutatja a forrás szöveg többesszámú formáját.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Developer comments</source>
+ <translation>Fejlesztői megjegyzések</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>This area shows a comment that may guide you, and the context in which the text occurs.</source>
+ <translation>Ez a terület mutatja a megjegyzéseket, ami segítheti Önt, és az összefüggéseket, hogy melyik szövegben fordul elő.</translation>
+ </message>
+ <message>
+ <location line="+59"/>
+ <source>Here you can enter comments for your own use. They have no effect on the translated applications.</source>
+ <translation>Itt hozzáadhatja a saját megjegyzését saját használatra. Nincsen hatásuk a lefordított alkalmazásokon.</translation>
+ </message>
+ <message>
+ <location line="+232"/>
+ <source>%1 translation (%2)</source>
+ <translation>%1 fordítás (%2)</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>This is where you can enter or modify the translation of the above source text.</source>
+ <translation>Ez az a hely, ahol beviheti és módosíthatja a fentebb található forrás szöveg fordítását.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>%1 translation</source>
+ <translation>%1 fordítás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>%1 translator comments</source>
+ <translation>%1 fordító megjegyzések</translation>
+ </message>
+ <message>
+ <location line="+157"/>
+ <source>&apos;%1&apos;
+Line: %2</source>
+ <translation>&apos;%1&apos;
+Sor: %2</translation>
+ </message>
+</context>
+<context>
+ <name>MessageModel</name>
+ <message>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+832"/>
+ <source>Completion status for %1</source>
+ <translation>%1 elkészítési státusza</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>&lt;file header&gt;</source>
+ <translation>&lt;file header&gt;</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&lt;context comment&gt;</source>
+ <translation>&lt;context comment&gt;</translation>
+ </message>
+ <message>
+ <location line="+71"/>
+ <source>&lt;unnamed context&gt;</source>
+ <translation>&lt;unnamed context&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>MsgEdit</name>
+ <message>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-614"/>
+ <source></source>
+ <comment>This is the right panel of the main window.</comment>
+ <translatorcomment>Ez a fő ablak jobb panelja.</translatorcomment>
+ <translation></translation>
+ </message>
+</context>
+<context>
+ <name>PhraseBookBox</name>
+ <message>
+ <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+12"/>
+ <source></source>
+ <comment>Go to Phrase &gt; Edit Phrase Book... The dialog that pops up is a PhraseBookBox.</comment>
+ <translatorcomment>Társalgás -&gt; Társalgási szótár szerkesztése... A felbukkanó ablak egy TársalgásiSzótárDoboz.</translatorcomment>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+54"/>
+ <source>(New Entry)</source>
+ <translation>(Új bevitel)</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1[*] - Qt Linguist</source>
+ <translation>%1[*] - Qt Linguist</translation>
+ </message>
+ <message>
+ <location line="+90"/>
+ <source>Qt Linguist</source>
+ <translation>Qt Linguist</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Cannot save phrase book &apos;%1&apos;.</source>
+ <translation>Nem lehet elmenteni a(z) &apos;%1&apos; társalgási szótárat.</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/phrasebookbox.ui"/>
+ <source>Edit Phrase Book</source>
+ <translation>Társalgási szótár szerkesztése</translation>
+ </message>
+ <message>
+ <location/>
+ <source>This window allows you to add, modify, or delete entries in a phrase book.</source>
+ <translation>Ez az ablak engedélyezi új bevitelek hozzáadását, módosítását, vagy törlését egy társalgási szótárban.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Translation:</source>
+ <translation>&amp;Fordítás:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>This is the phrase in the target language corresponding to the source phrase.</source>
+ <translation>Ez a forrás társalgás megfelelője a cél nyelvben.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>S&amp;ource phrase:</source>
+ <translation>&amp;Forrás társalgás:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>This is a definition for the source phrase.</source>
+ <translation>Ez egy forrás fordítás definíció.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>This is the phrase in the source language.</source>
+ <translation>Ez egy társalgás a forrás nyelvben.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Definition:</source>
+ <translation>&amp;Definíció:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Click here to add the phrase to the phrase book.</source>
+ <translation>Kattintson ide a társalgás hozzáadásához a társalgási könyvben.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;New Entry</source>
+ <translation>&amp;Új bevitel</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Click here to remove the entry from the phrase book.</source>
+ <translation>Kattintson ide a bevitel társalgási könyvből való eltávolításához.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Remove Entry</source>
+ <translation>Bevitel &amp;eltávolítása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Settin&amp;gs...</source>
+ <translation>&amp;Beállítások...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Click here to save the changes made.</source>
+ <translation>Kattintson ide a változtatások elmentéséhez.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Save</source>
+ <translation>&amp;Mentés</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Click here to close this window.</source>
+ <translation>Kattintson ide az ablak bezárásához.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Close</source>
+ <translation>Bezárás</translation>
+ </message>
+</context>
+<context>
+ <name>PhraseModel</name>
+ <message>
+ <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+117"/>
+ <source>Source phrase</source>
+ <translation>Forrás társalgás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Translation</source>
+ <translation>Fordítás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Definition</source>
+ <translation>Definíció</translation>
+ </message>
+</context>
+<context>
+ <name>PhraseView</name>
+ <message>
+ <location filename="../tools/linguist/linguist/phraseview.cpp" line="+122"/>
+ <source>Insert</source>
+ <translation>Beszúrás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Edit</source>
+ <translation>Szerkesztés</translation>
+ </message>
+ <message>
+ <location line="+113"/>
+ <source>Guess (%1)</source>
+ <translation>Feltételezés (%1)</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Guess</source>
+ <translation>Feltételezés</translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../tools/linguist/shared/qm.cpp" line="+12"/>
+ <source>Compiled Qt translations</source>
+ <translation>Lefordított Qt fordítások</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1280"/>
+ <source>Translation files (%1);;</source>
+ <translation>Fordítási fájlok (%1);;</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>All files (*)</source>
+ <translation>Fájlok hozzáadása ( *)</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1127"/>
+ <location line="+27"/>
+ <location line="+67"/>
+ <location line="+39"/>
+ <location line="+17"/>
+ <location line="+15"/>
+ <location filename="../tools/linguist/linguist/phrase.cpp" line="+196"/>
+ <source>Qt Linguist</source>
+ <translation>Qt Linguist</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/shared/po.cpp" line="+658"/>
+ <source>GNU Gettext localization files</source>
+ <translation>GNU Gettext lokalizációs fájlok</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/shared/ts.cpp" line="+752"/>
+ <source>Qt translation sources (format 1.1)</source>
+ <translation>Qt fordítási forrása (1.1 formátum)</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Qt translation sources (format 2.0)</source>
+ <translation>Qt fordítás források (2.0 formátum)</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Qt translation sources (latest format)</source>
+ <translation>Qt fordítási források (legutolsó formátum)</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/shared/xliff.cpp" line="+827"/>
+ <source>XLIFF localization files</source>
+ <translation>XLIFF lokalizációs fájlok</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/shared/qph.cpp" line="+183"/>
+ <source>Qt Linguist &apos;Phrase Book&apos;</source>
+ <translation>Qt Linguist &apos;Társalgási Könyv&apos;</translation>
+ </message>
+</context>
+<context>
+ <name>SourceCodeView</name>
+ <message>
+ <location filename="../tools/linguist/linguist/sourcecodeview.cpp" line="+70"/>
+ <source>&lt;i&gt;Source code not available&lt;/i&gt;</source>
+ <translation>&lt;i&gt;A forrás kód nem elérhető&lt;/i&gt;</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>&lt;i&gt;File %1 not available&lt;/i&gt;</source>
+ <translation>&lt;i&gt;A(z) %1 fájl nem elérhető&lt;/i&gt;</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&lt;i&gt;File %1 not readable&lt;/i&gt;</source>
+ <translation>&lt;i&gt;A(z) %1 fájl nem olvasható&lt;/i&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>Statistics</name>
+ <message>
+ <location filename="../tools/linguist/linguist/statistics.ui"/>
+ <source>Statistics</source>
+ <translation>Statisztikák</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Translation</source>
+ <translation>Fordítás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Source</source>
+ <translation>Forrás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>0</source>
+ <translation>0</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Words:</source>
+ <translation>Szavak:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Characters:</source>
+ <translation>Karakterek:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Characters (with spaces):</source>
+ <translation>Karakterek (szóközökkel):</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Close</source>
+ <translation>Bezárás</translation>
+ </message>
+</context>
+<context>
+ <name>TranslateDialog</name>
+ <message>
+ <location filename="../tools/linguist/linguist/translatedialog.ui"/>
+ <source>This window allows you to search for some text in the translation source file.</source>
+ <translation>Ez az ablak engedélyezi, hogy rákeressen néhány szövegre a fordítási forrás fájlban.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Type in the text to search for.</source>
+ <translation>Gépelje be a keresni kívánt szöveget.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Find &amp;source text:</source>
+ <translation>&amp;Forrás szöveg keresése:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Translate to:</source>
+ <translation>&amp;Fordítás erre:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Search options</source>
+ <translation>Keresés opciók</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Texts such as &apos;TeX&apos; and &apos;tex&apos; are considered as different when checked.</source>
+ <translation>&apos;TeX&apos; és &apos;text&apos; szövegek különbözően kezelése bejelöléskor.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Match &amp;case</source>
+ <translation>Megegyező &amp;eset</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Mark new translation as &amp;finished</source>
+ <translation>Új fordítások &amp;befejezettként jelölése</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Click here to find the next occurrence of the text you typed in.</source>
+ <translation>Kattintson ide a begépelt szöveg következő előfordulásának megkereséséhez.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Find Next</source>
+ <translation>Következő keresése</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Translate</source>
+ <translation>Fordítás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Translate All</source>
+ <translation>Az összes fordítása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Click here to close this window.</source>
+ <translation>Kattintson ide az ablak bezárásához.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Cancel</source>
+ <translation>Mégse</translation>
+ </message>
+</context>
+<context>
+ <name>TranslationSettingsDialog</name>
+ <message>
+ <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+68"/>
+ <source>Any Country</source>
+ <translation>Bármeny ország</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <location line="+8"/>
+ <source>Settings for &apos;%1&apos; - Qt Linguist</source>
+ <translation>&apos;%1&apos;-re állítás - Qt Linguist</translation>
+ </message>
+ <message>
+ <location filename="../tools/linguist/linguist/translationsettings.ui"/>
+ <source>Source language</source>
+ <translation>Forrás nyelv</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Language</source>
+ <translation>Nyelv</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Country/Region</source>
+ <translation>OrszágRégió</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Target language</source>
+ <translation>Cél nyelv</translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/qt_cs.ts b/translations/qt_cs.ts
new file mode 100644
index 0000000..e184f64
--- /dev/null
+++ b/translations/qt_cs.ts
@@ -0,0 +1,10362 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="cs_CZ">
+<context>
+ <name>AudioEqualizer</name>
+ <message>
+ <source>Frequency band, %1 Hz</source>
+ <translation type="obsolete">Kmitočtové pásmo, %1 Hz</translation>
+ </message>
+</context>
+<context>
+ <name>AudioOutput</name>
+ <message>
+ <source>&lt;html&gt;The audio playback device &lt;b&gt;%1&lt;/b&gt; does not work.&lt;br/&gt;Falling back to &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</source>
+ <translation type="obsolete">&lt;html&gt;Zařízení pro přehrávání zvuku &lt;b&gt;%1&lt;/b&gt; nepracuje.&lt;br/&gt;Místo něj &lt;b&gt;%2&lt;/b&gt; se používá.&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <source>Revert back to device &apos;%1&apos;</source>
+ <translation type="obsolete">Přepnout zpět na zařízení &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <source>&lt;html&gt;Switching to the audio playback device &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;which just became available and has higher preference.&lt;/html&gt;</source>
+ <translation type="obsolete">&lt;html&gt;Zařízení pro přehrávání zvuku &lt;b&gt;%1&lt;/b&gt; bylo spuštěno,&lt;br/&gt;protože je právě dostupné a má větší přednost.&lt;/html&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>CloseButton</name>
+ <message>
+ <location filename="../src/gui/widgets/qtabbar.cpp" line="+2245"/>
+ <source>Close Tab</source>
+ <translation>Zavřít kartu</translation>
+ </message>
+</context>
+<context>
+ <name>FakeReply</name>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2193"/>
+ <source>Fake error !</source>
+ <translation>Napodobená chyba!</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Invalid URL</source>
+ <translation>Neplátné URL</translation>
+ </message>
+</context>
+<context>
+ <name>Phonon::</name>
+ <message>
+ <location filename="../src/3rdparty/phonon/phonon/phononnamespace.cpp" line="+63"/>
+ <source>Games</source>
+ <translation>Hry</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>Music</source>
+ <translation>Hudba</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Video</source>
+ <translation>Video</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Communication</source>
+ <translation>Spojení</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Accessibility</source>
+ <translation>Dostupnost</translation>
+ </message>
+ <message>
+ <location line="-10"/>
+ <source>Notifications</source>
+ <translation>Oznámení</translation>
+ </message>
+</context>
+<context>
+ <name>Phonon::AudioOutput</name>
+ <message>
+ <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+377"/>
+ <source>&lt;html&gt;The audio playback device &lt;b&gt;%1&lt;/b&gt; does not work.&lt;br/&gt;Falling back to &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</source>
+ <translation>&lt;html&gt;Zařízení pro přehrávání zvuku &lt;b&gt;%1&lt;/b&gt; nepracuje.&lt;br/&gt;Místo něj &lt;b&gt;%2&lt;/b&gt; se používá.&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>&lt;html&gt;Switching to the audio playback device &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;which just became available and has higher preference.&lt;/html&gt;</source>
+ <translation>&lt;html&gt;Zařízení pro přehrávání zvuku &lt;b&gt;%1&lt;/b&gt; bylo spuštěno,&lt;br/&gt;protože je právě dostupné a má větší přednost.&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Revert back to device &apos;%1&apos;</source>
+ <translation>Přepnout zpět na zařízení &apos;%1&apos;</translation>
+ </message>
+</context>
+<context>
+ <name>Phonon::Gstreamer::Backend</name>
+ <message>
+ <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+176"/>
+ <source>Warning: You do not seem to have the base GStreamer plugins installed.
+ All audio and video support has been disabled</source>
+ <translation>Upozornění: Zdá se, že zákládní přídavné moduly pro GStreamer nejsou nainstalovány.
+Podpora audia a videa byla vypnuta</translation>
+ </message>
+ <message>
+ <location line="-5"/>
+ <source>Warning: You do not seem to have the package gstreamer0.10-plugins-good installed.
+ Some video features have been disabled.</source>
+ <translation>Varování: Balíček gstreamer0.10-plugins-good není nainstalován.
+Některé vlastnosti videa nejsou dostupné.</translation>
+ </message>
+</context>
+<context>
+ <name>Phonon::Gstreamer::MediaObject</name>
+ <message>
+ <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+884"/>
+ <location line="+8"/>
+ <location line="+15"/>
+ <location line="+22"/>
+ <location line="+6"/>
+ <location line="+19"/>
+ <location line="+339"/>
+ <location line="+24"/>
+ <source>Could not open media source.</source>
+ <translation>Zdroj s médii se nepodařilo otevřít.</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>Could not decode media source.</source>
+ <translation>Zdroj s médii se nepodařilo rozluštit.</translation>
+ </message>
+ <message>
+ <location line="-417"/>
+ <source>Invalid source type.</source>
+ <translation>Neplatný typ zdroje s médii.</translation>
+ </message>
+ <message>
+ <location line="-807"/>
+ <source>Cannot start playback.
+
+Check your Gstreamer installation and make sure you
+have libgstreamer-plugins-base installed.</source>
+ <translation>Přehrávání nelze spustit.
+
+Ověřte, prosím, instalaci Gstreamer a ujistěte se,
+že je nainstalován balíček libgstreamer-plugins-base.</translation>
+ </message>
+ <message>
+ <location line="+1211"/>
+ <source>Could not open audio device. The device is already in use.</source>
+ <translation>Zvukové zařízení se nepodařilo otevřít, protože se již používá.</translation>
+ </message>
+ <message>
+ <location line="-1098"/>
+ <source>A required codec is missing. You need to install the following codec(s) to play this content: %0</source>
+ <translation>Všechny vyžadované kodeky nejsou nainstalovány. Kvůli přehrání tohoto obsahu je potřeba nainstalovat následující kodek(y): %0</translation>
+ </message>
+ <message>
+ <location line="+1088"/>
+ <source>Could not locate media source.</source>
+ <translation>Zdroj s médii se nepodařilo nalézt.</translation>
+ </message>
+</context>
+<context>
+ <name>Phonon::MMF</name>
+ <message>
+ <location filename="../src/3rdparty/phonon/mmf/audiooutput.cpp" line="+108"/>
+ <source>Audio Output</source>
+ <translation>Výstup zvuku</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The audio output device</source>
+ <translation>Zařízení pro výstup zvuku</translation>
+ </message>
+</context>
+<context>
+ <name>Phonon::MMF::AudioEqualizer</name>
+ <message>
+ <location filename="../src/3rdparty/phonon/mmf/audioequalizer.cpp" line="+75"/>
+ <source>Frequency band, %1 Hz</source>
+ <translation>Kmitočtové pásmo, %1 Hz</translation>
+ </message>
+</context>
+<context>
+ <name>Phonon::MMF::EffectFactory</name>
+ <message>
+ <location filename="../src/3rdparty/phonon/mmf/effectfactory.cpp" line="+65"/>
+ <source>audio equalizer</source>
+ <translation>zvukový ekvalizér</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Bass boost</source>
+ <translation>Zdůraznění basů</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Distance Attenuation</source>
+ <translation>Zeslabení v závislosti na vzdálenosti</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <location line="+2"/>
+ <source>Environmental Reverb</source>
+ <translation>Vnější ozvěna</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Loudness</source>
+ <translation>Hlasitost</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Source Orientation</source>
+ <translation>Zaměření zdroje</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Stereo Widening</source>
+ <translation>Rozšíření sterea</translation>
+ </message>
+</context>
+<context>
+ <name>Phonon::VolumeSlider</name>
+ <message>
+ <location filename="../src/3rdparty/phonon/phonon/volumeslider.cpp" line="+42"/>
+ <location line="+18"/>
+ <location line="+129"/>
+ <location line="+15"/>
+ <source>Volume: %1%</source>
+ <translation>Hlasitost: %1%</translation>
+ </message>
+ <message>
+ <location line="-159"/>
+ <location line="+18"/>
+ <location line="+54"/>
+ <source>Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%</source>
+ <translation>Posuvník se používá k nastavení hlasitosti. Poloha nejvíce vlevo odpovídá 0%; poloha nejvíce vpravo odpovídá %1%</translation>
+ </message>
+ <message>
+ <location line="+67"/>
+ <source>Muted</source>
+ <translation>Ztlumení</translation>
+ </message>
+</context>
+<context>
+ <name>Q3Accel</name>
+ <message>
+ <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
+ <source>%1, %2 not defined</source>
+ <translation>%1, %2 nejsou stanoveny</translation>
+ </message>
+ <message>
+ <location line="+36"/>
+ <source>Ambiguous %1 not handled</source>
+ <translation>Nejednoznačné %1 nemohou být zpracovány</translation>
+ </message>
+</context>
+<context>
+ <name>Q3DataTable</name>
+ <message>
+ <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
+ <source>True</source>
+ <translation>Pravdivý</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>False</source>
+ <translation>Nesprávný</translation>
+ </message>
+ <message>
+ <location line="+507"/>
+ <source>Delete</source>
+ <translation>Smazat</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>Insert</source>
+ <translation>Vložit</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Update</source>
+ <translation>Obnovit</translation>
+ </message>
+</context>
+<context>
+ <name>Q3FileDialog</name>
+ <message>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+2426"/>
+ <location line="+2027"/>
+ <source>&amp;OK</source>
+ <translation>&amp;OK</translation>
+ </message>
+ <message>
+ <location line="-254"/>
+ <source>&amp;No</source>
+ <translation>&amp;Ne</translation>
+ </message>
+ <message>
+ <location line="-1557"/>
+ <source>Dir</source>
+ <translation>Adresář</translation>
+ </message>
+ <message>
+ <location line="+1557"/>
+ <source>&amp;Yes</source>
+ <translation>&amp;Ano</translation>
+ </message>
+ <message>
+ <location line="-1724"/>
+ <source>Back</source>
+ <translation>Zpět</translation>
+ </message>
+ <message>
+ <location line="-85"/>
+ <source>Date</source>
+ <translation>Datum</translation>
+ </message>
+ <message>
+ <location line="+251"/>
+ <source>File</source>
+ <translation>Soubor</translation>
+ </message>
+ <message>
+ <location line="-255"/>
+ <source>Name</source>
+ <translation>Název</translation>
+ </message>
+ <message>
+ <location line="+961"/>
+ <location line="+1999"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+209"/>
+ <source>Open</source>
+ <translation>Otevřít</translation>
+ </message>
+ <message>
+ <location line="-2959"/>
+ <source>Size</source>
+ <translation>Velikost</translation>
+ </message>
+ <message>
+ <location line="+1767"/>
+ <source>Sort</source>
+ <translation>Roztřídit</translation>
+ </message>
+ <message>
+ <location line="-1765"/>
+ <source>Type</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <location line="+1710"/>
+ <location line="+5"/>
+ <location line="+355"/>
+ <source>&amp;Open</source>
+ <translation>&amp;Otevřít</translation>
+ </message>
+ <message>
+ <location line="-357"/>
+ <location line="+341"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Uložit</translation>
+ </message>
+ <message>
+ <location line="+51"/>
+ <location line="+1009"/>
+ <source>Error</source>
+ <translation>Chyba</translation>
+ </message>
+ <message>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+144"/>
+ <source>Open </source>
+ <translation>Otevřít</translation>
+ </message>
+ <message>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="-4660"/>
+ <location line="+30"/>
+ <source>Write: %1</source>
+ <translation>Zapsat: %1</translation>
+ </message>
+ <message>
+ <location line="+3263"/>
+ <source>Sort by &amp;Size</source>
+ <translation>Roztřídit podle &amp;velikosti</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Sort by &amp;Date</source>
+ <translation>Roztřídit podle &amp;data</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>Sort by &amp;Name</source>
+ <translation>Roztřídit podle &amp;názvu</translation>
+ </message>
+ <message>
+ <location line="+101"/>
+ <source>New Folder 1</source>
+ <translation>Nová složka 1</translation>
+ </message>
+ <message>
+ <location line="-44"/>
+ <source>the directory</source>
+ <translation>Adresář</translation>
+ </message>
+ <message>
+ <location line="-1723"/>
+ <source>File &amp;type:</source>
+ <translation>Typ &amp;souboru:</translation>
+ </message>
+ <message>
+ <location line="-1"/>
+ <location line="+1977"/>
+ <location line="+16"/>
+ <source>File &amp;name:</source>
+ <translation>Název &amp;souboru:</translation>
+ </message>
+ <message>
+ <location line="-264"/>
+ <source>Delete %1</source>
+ <translation>Smazat %1</translation>
+ </message>
+ <message>
+ <location line="-3345"/>
+ <location line="+1579"/>
+ <source>Cancel</source>
+ <translation>Zrušit</translation>
+ </message>
+ <message>
+ <location line="+1700"/>
+ <source>R&amp;eload</source>
+ <translation>Nahrát &amp;znovu</translation>
+ </message>
+ <message>
+ <location line="+110"/>
+ <source>New Folder</source>
+ <translation>Nová složka</translation>
+ </message>
+ <message>
+ <location line="-101"/>
+ <source>&amp;Unsorted</source>
+ <translation>&amp;Neroztříděné</translation>
+ </message>
+ <message>
+ <location line="-1673"/>
+ <source>Look &amp;in:</source>
+ <translation>Hle&amp;dat v:</translation>
+ </message>
+ <message>
+ <location line="+79"/>
+ <source>Preview File Contents</source>
+ <translation>Náhled obsahu souboru</translation>
+ </message>
+ <message>
+ <location line="+1700"/>
+ <source>New Folder %1</source>
+ <translation>Nová složka %1</translation>
+ </message>
+ <message>
+ <location line="-1612"/>
+ <source>Read-write</source>
+ <translation>Číst/Zapisovat</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Read-only</source>
+ <translation>Pouze číst</translation>
+ </message>
+ <message>
+ <location line="-1805"/>
+ <source>Copy or Move a File</source>
+ <translation>Soubor kopírovat nebo posunout</translation>
+ </message>
+ <message>
+ <location line="+3368"/>
+ <source>&lt;qt&gt;Are you sure you wish to delete %1 &quot;%2&quot;?&lt;/qt&gt;</source>
+ <translation>&lt;qt&gt;Jste si jistý, že chcete smazat %1 &quot;%2&quot;?&lt;/qt&gt;</translation>
+ </message>
+ <message>
+ <location line="+146"/>
+ <source>Find Directory</source>
+ <translation>Najít adresář</translation>
+ </message>
+ <message>
+ <location line="-1952"/>
+ <source>Attributes</source>
+ <translation>Vlastnosti</translation>
+ </message>
+ <message>
+ <location line="+1767"/>
+ <source>Show &amp;hidden files</source>
+ <translation>&amp;Ukázat skryté soubory</translation>
+ </message>
+ <message>
+ <location line="-701"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="-73"/>
+ <source>Save As</source>
+ <translation>Uložit jako</translation>
+ </message>
+ <message>
+ <location line="-821"/>
+ <source>Inaccessible</source>
+ <translation>Nepřístupné</translation>
+ </message>
+ <message>
+ <location line="+1859"/>
+ <source>%1
+File not found.
+Check path and filename.</source>
+ <translation>%1
+Soubor se nepodařilo nalézt.
+Ověřte cestu a název souboru.</translation>
+ </message>
+ <message>
+ <location line="-1986"/>
+ <source>List View</source>
+ <translation>Pohled se seznamem</translation>
+ </message>
+ <message>
+ <location line="+134"/>
+ <source>Special</source>
+ <translation>Zvláštní vlastnost</translation>
+ </message>
+ <message>
+ <location line="-8"/>
+ <source>Write-only</source>
+ <translation>Pouze zápis</translation>
+ </message>
+ <message>
+ <location line="+1558"/>
+ <source>the symlink</source>
+ <translation>Symbolický odkaz</translation>
+ </message>
+ <message>
+ <location line="-83"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Smazat</translation>
+ </message>
+ <message>
+ <location line="-1837"/>
+ <location line="+49"/>
+ <location line="+2149"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+112"/>
+ <source>All Files (*)</source>
+ <translation>Všechny soubory (*)</translation>
+ </message>
+ <message>
+ <location line="-123"/>
+ <location line="+108"/>
+ <source>Directories</source>
+ <translation>Adresáře</translation>
+ </message>
+ <message>
+ <location line="-1816"/>
+ <source>Symlink to Special</source>
+ <translation>Symbolický odkaz k zvláštnímu souboru</translation>
+ </message>
+ <message>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+180"/>
+ <source>Select a Directory</source>
+ <translation>Vyberte adresář</translation>
+ </message>
+ <message>
+ <location line="-371"/>
+ <source>All Files (*.*)</source>
+ <translation>Všechny soubory (*.*)</translation>
+ </message>
+ <message>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="-1803"/>
+ <source>Read: %1</source>
+ <translation>Číst: %1</translation>
+ </message>
+ <message>
+ <location line="+3272"/>
+ <source>&amp;Rename</source>
+ <translation>&amp;Přejmenovat</translation>
+ </message>
+ <message>
+ <location line="+345"/>
+ <source>Directory:</source>
+ <translation>Adresář:</translation>
+ </message>
+ <message>
+ <location line="-1972"/>
+ <source>One directory up</source>
+ <translation>O jeden adresář nahoru</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Preview File Info</source>
+ <translation>Náhled informace o souboru</translation>
+ </message>
+ <message>
+ <location line="+1663"/>
+ <source>the file</source>
+ <translation>Soubor</translation>
+ </message>
+ <message>
+ <location line="-1698"/>
+ <source>Create New Folder</source>
+ <translation>Vytvořit novou složku</translation>
+ </message>
+ <message>
+ <location line="+147"/>
+ <source>Symlink to File</source>
+ <translation>Symbolický odkaz k souboru</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Symlink to Directory</source>
+ <translation>Symbolický odkaz k adresáři</translation>
+ </message>
+ <message>
+ <location line="-122"/>
+ <source>Detail View</source>
+ <translation>Podrobný pohled</translation>
+ </message>
+</context>
+<context>
+ <name>Q3LocalFs</name>
+ <message>
+ <location filename="../src/qt3support/network/q3localfs.cpp" line="+271"/>
+ <source>Could not open
+%1</source>
+ <translation>Nepodařilo se otevřít:
+%1</translation>
+ </message>
+ <message>
+ <location line="-52"/>
+ <source>Could not remove file or directory
+%1</source>
+ <translation>Nepodařilo se odstranit soubor nebo adresář
+%1</translation>
+ </message>
+ <message>
+ <location line="-34"/>
+ <source>Could not create directory
+%1</source>
+ <translation>Nepodařilo se vytvořit adresář
+%1</translation>
+ </message>
+ <message>
+ <location line="-55"/>
+ <location line="+10"/>
+ <source>Could not read directory
+%1</source>
+ <translation>Nepodařilo se přečíst adresář
+%1</translation>
+ </message>
+ <message>
+ <location line="+106"/>
+ <source>Could not rename
+%1
+to
+%2</source>
+ <translation>Nepodařilo se přejmenovat:
+%1
+na
+%2</translation>
+ </message>
+ <message>
+ <location line="+93"/>
+ <source>Could not write
+%1</source>
+ <translation>Nepodařilo se zapsat:
+%1</translation>
+ </message>
+</context>
+<context>
+ <name>Q3MainWindow</name>
+ <message>
+ <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
+ <source>Line up</source>
+ <translation>Uspořádat</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Customize...</source>
+ <translation>Přizpůsobit...</translation>
+ </message>
+</context>
+<context>
+ <name>Q3NetworkProtocol</name>
+ <message>
+ <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
+ <source>Operation stopped by the user</source>
+ <translation>Operace byla zastavena uživatelem</translation>
+ </message>
+</context>
+<context>
+ <name>Q3ProgressDialog</name>
+ <message>
+ <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
+ <location line="+61"/>
+ <source>Cancel</source>
+ <translation>Zrušit</translation>
+ </message>
+</context>
+<context>
+ <name>Q3TabDialog</name>
+ <message>
+ <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+190"/>
+ <location line="+824"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location line="-323"/>
+ <source>Help</source>
+ <translation>Nápověda</translation>
+ </message>
+ <message>
+ <location line="-43"/>
+ <source>Apply</source>
+ <translation>Použít</translation>
+ </message>
+ <message>
+ <location line="+138"/>
+ <source>Cancel</source>
+ <translation>Zrušit</translation>
+ </message>
+ <message>
+ <location line="-50"/>
+ <source>Defaults</source>
+ <translation>Výchozí</translation>
+ </message>
+</context>
+<context>
+ <name>Q3TextEdit</name>
+ <message>
+ <location filename="../src/qt3support/text/q3textedit.cpp" line="+5435"/>
+ <source>Cu&amp;t</source>
+ <translation>Vyj&amp;mout</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Copy</source>
+ <translation>&amp;Kopírovat</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>&amp;Redo</source>
+ <translation>&amp;Znovu</translation>
+ </message>
+ <message>
+ <location line="-1"/>
+ <source>&amp;Undo</source>
+ <translation>&amp;Zpět</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Clear</source>
+ <translation>Smazat</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>&amp;Paste</source>
+ <translation>&amp;Vložit</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <location line="+2"/>
+ <source>Select All</source>
+ <translation>Vybrat vše</translation>
+ </message>
+</context>
+<context>
+ <name>Q3TitleBar</name>
+ <message>
+ <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+256"/>
+ <source>Close</source>
+ <translation>Zavřít</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>Minimize</source>
+ <translation>Zmenšit</translation>
+ </message>
+ <message>
+ <source>Puts a minimized back to normal</source>
+ <translation type="obsolete">Dá velikost zmenšeného okna zpátky do obvyklého stavu</translation>
+ </message>
+ <message>
+ <location line="+36"/>
+ <source>Displays the name of the window and contains controls to manipulate it</source>
+ <translation>Zobrazí název okna a obsahuje příkazy pro zacházení s ním</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <source>Makes the window full screen</source>
+ <translation>Dá okno na celou obrazovku</translation>
+ </message>
+ <message>
+ <location line="-36"/>
+ <source>System</source>
+ <translation>Systém</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Maximize</source>
+ <translation>Zvětšit</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Contains commands to manipulate the window</source>
+ <translation>Obsahuje příkazy pro zacházení s velikostí okna</translation>
+ </message>
+ <message>
+ <location line="-25"/>
+ <source>Restore up</source>
+ <translation>Obnovit</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Puts a minimized window back to normal</source>
+ <translation>Dá velikost zmenšeného okna zpátky do obvyklého stavu</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Closes the window</source>
+ <translation>Zavře okno</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>Puts a maximized window back to normal</source>
+ <translation>Dá velikost zvětšeného okna zpátky do obvyklého stavu</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>Moves the window out of the way</source>
+ <translation>Zmenší okno</translation>
+ </message>
+ <message>
+ <location line="-25"/>
+ <source>Restore down</source>
+ <translation>Obnovit</translation>
+ </message>
+</context>
+<context>
+ <name>Q3ToolBar</name>
+ <message>
+ <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
+ <source>More...</source>
+ <translation>Více...</translation>
+ </message>
+</context>
+<context>
+ <name>Q3UrlOperator</name>
+ <message>
+ <location filename="../src/qt3support/network/q3urloperator.cpp" line="+402"/>
+ <source>The protocol `%1&apos; does not support getting files</source>
+ <translation>Protokol `%1&apos; nepodporuje nahrávání souborů</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>The protocol `%1&apos; does not support renaming files or directories</source>
+ <translation>Protokol `%1&apos; nepodporuje přejmenovávání souborů nebo adresářů</translation>
+ </message>
+ <message>
+ <location line="-9"/>
+ <source>The protocol `%1&apos; does not support listing directories</source>
+ <translation>Protokol `%1&apos; nepodporuje sestavování seznamu adresářů</translation>
+ </message>
+ <message>
+ <location line="+499"/>
+ <location line="+1"/>
+ <source>(unknown)</source>
+ <translation>(neznámý)</translation>
+ </message>
+ <message>
+ <location line="-494"/>
+ <source>The protocol `%1&apos; does not support removing files or directories</source>
+ <translation>Protokol `%1&apos; nepodporuje odstraňování souborů nebo adresářů</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>The protocol `%1&apos; does not support putting files</source>
+ <translation>Protokol `%1&apos; nepodporuje ukládání souborů</translation>
+ </message>
+ <message>
+ <location line="-19"/>
+ <location line="+260"/>
+ <location line="+4"/>
+ <source>The protocol `%1&apos; is not supported</source>
+ <translation>Protokol `%1&apos; není podporován</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <location line="+4"/>
+ <source>The protocol `%1&apos; does not support copying or moving files or directories</source>
+ <translation>Protokol `%1&apos; nepodporuje kopírování či přesun souborů nebo adresářů</translation>
+ </message>
+ <message>
+ <location line="-259"/>
+ <source>The protocol `%1&apos; does not support creating new directories</source>
+ <translation>Protokol `%1&apos; nepodporuje vytváření nových adresářů</translation>
+ </message>
+</context>
+<context>
+ <name>Q3Wizard</name>
+ <message>
+ <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+181"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Nápověda</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Zrušit</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Finish</source>
+ <translation>Do&amp;končit</translation>
+ </message>
+ <message>
+ <location line="-1"/>
+ <source>&amp;Next &gt;</source>
+ <translation>&amp;Další &gt;</translation>
+ </message>
+ <message>
+ <location line="-1"/>
+ <source>&lt; &amp;Back</source>
+ <translation>&lt; &amp;Zpět</translation>
+ </message>
+</context>
+<context>
+ <name>QAbstractSocket</name>
+ <message>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="+890"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+633"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+661"/>
+ <location line="+26"/>
+ <source>Host not found</source>
+ <translation>Nepodařilo se najít počítač</translation>
+ </message>
+ <message>
+ <location line="+50"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+3"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+4"/>
+ <source>Connection refused</source>
+ <translation>Spojení bylo odmítnuto</translation>
+ </message>
+ <message>
+ <location line="+142"/>
+ <source>Connection timed out</source>
+ <translation>Časový limit pro spojení byl překročen</translation>
+ </message>
+ <message>
+ <location line="+1029"/>
+ <source>Socket is not connected</source>
+ <translation>Zásuvka (socket) není spojena</translation>
+ </message>
+ <message>
+ <location line="-380"/>
+ <source>Socket operation timed out</source>
+ <translation>Časový limit pro zásuvkovou (socket) operaci byl překročen</translation>
+ </message>
+ <message>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-8"/>
+ <source>Network unreachable</source>
+ <translation>Síť není dosažitelná</translation>
+ </message>
+ <message>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="-1197"/>
+ <location line="+789"/>
+ <location line="+208"/>
+ <source>Operation on socket is not supported</source>
+ <translation>Tato zásuvková (socket) operace není podporována</translation>
+ </message>
+</context>
+<context>
+ <name>QAbstractSpinBox</name>
+ <message>
+ <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1219"/>
+ <source>Step &amp;down</source>
+ <translation>Krok &amp;dolů</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>&amp;Step up</source>
+ <translation>&amp;Krok nahoru</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>&amp;Select All</source>
+ <translation>&amp;Vybrat vše</translation>
+ </message>
+</context>
+<context>
+ <name>QAccessibleButton</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+250"/>
+ <source>Press</source>
+ <translation>Stisknout</translation>
+ </message>
+</context>
+<context>
+ <name>QApplication</name>
+ <message>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+378"/>
+ <source>Activates the program&apos;s main window</source>
+ <translation>Spustí hlavní okno programu</translation>
+ </message>
+ <message>
+ <source>QT_LAYOUT_DIRECTION</source>
+ <translation type="obsolete">LTR</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>Activate</source>
+ <translation>Spustit</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="+354"/>
+ <source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
+ <translation>Použití &apos;%1&apos; vyžaduje Qt %2; bylo ale nalezeno Qt %3.</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Incompatible Qt Library Error</source>
+ <translation>Qt není slučitelná</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/kernel/qapplication.cpp" line="+2290"/>
+ <source>QT_LAYOUT_DIRECTION</source>
+ <comment>Translate this string to the string &apos;LTR&apos; in left-to-right languages or to &apos;RTL&apos; in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout.</comment>
+ <translation>LTR</translation>
+ </message>
+</context>
+<context>
+ <name>QAxSelect</name>
+ <message>
+ <location filename="../src/activeqt/container/qaxselect.ui"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location/>
+ <source>COM &amp;Object:</source>
+ <translation>COM-&amp;Objekt:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Zrušit</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Select ActiveX Control</source>
+ <translation>Vybrat prvek ActiveX</translation>
+ </message>
+</context>
+<context>
+ <name>QCheckBox</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-133"/>
+ <source>Check</source>
+ <translation>Označit křížkem</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Toggle</source>
+ <translation>Přepnout</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <source>Uncheck</source>
+ <translation>Zrušit označení křížkem</translation>
+ </message>
+</context>
+<context>
+ <name>QColorDialog</name>
+ <message>
+ <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1352"/>
+ <source>&amp;Red:</source>
+ <translation>&amp;Červená:</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>&amp;Sat:</source>
+ <translation>&amp;Sytost:</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Val:</source>
+ <translation>&amp;Jasnost:</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>Hu&amp;e:</source>
+ <translation>Barevný &amp;odstín:</translation>
+ </message>
+ <message>
+ <location line="+107"/>
+ <source>Select Color</source>
+ <translation>Vybrat barvu</translation>
+ </message>
+ <message>
+ <location line="+182"/>
+ <source>&amp;Add to Custom Colors</source>
+ <translation>&amp;Přidat k uživatelem stanoveným barvám</translation>
+ </message>
+ <message>
+ <location line="-284"/>
+ <source>Bl&amp;ue:</source>
+ <translation>&amp;Modrá:</translation>
+ </message>
+ <message>
+ <location line="-1"/>
+ <source>&amp;Green:</source>
+ <translation>&amp;Zelená:</translation>
+ </message>
+ <message>
+ <location line="+283"/>
+ <source>&amp;Basic colors</source>
+ <translation>Základní &amp;barvy</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Custom colors</source>
+ <translation>&amp;Uživatelem stanovené barvy</translation>
+ </message>
+ <message>
+ <location line="-282"/>
+ <source>A&amp;lpha channel:</source>
+ <translation>A&amp;lfa kanál:</translation>
+ </message>
+</context>
+<context>
+ <name>QComboBox</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
+ <location line="+65"/>
+ <source>Open</source>
+ <translation>Otevřít</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+557"/>
+ <source>True</source>
+ <translation>Pravdivý</translation>
+ </message>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+0"/>
+ <source>Close</source>
+ <translation>Zavřít</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="-1"/>
+ <source>False</source>
+ <translation>Nesprávný</translation>
+ </message>
+</context>
+<context>
+ <name>QCoreApplication</name>
+ <message>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
+ <source>%1: key is empty</source>
+ <comment>QSystemSemaphore</comment>
+ <translation>%1: Neplatný údaj u klíče (prázdný)</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>%1: unable to make key</source>
+ <comment>QSystemSemaphore</comment>
+ <translation>%1: Nepodařilo se vytvořit klíč</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>%1: ftok failed</source>
+ <comment>QSystemSemaphore</comment>
+ <translation>%1: Vyvolání ftok se nezdařilo</translation>
+ </message>
+ <message>
+ <source>%1: key is empty</source>
+ <translation type="obsolete">%1: Neplatný údaj u klíče (prázdný)</translation>
+ </message>
+ <message>
+ <source>%1: unable to make key</source>
+ <translation type="obsolete">%1: Nepodařilo se vytvořit klíč</translation>
+ </message>
+ <message>
+ <source>%1: ftok failed</source>
+ <translation type="obsolete">%1: Vyvolání ftok se nezdařilo</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_symbian.cpp" line="+65"/>
+ <source>%1: already exists</source>
+ <comment>QSystemSemaphore</comment>
+ <translation>%1: Již existuje</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>%1: does not exist</source>
+ <comment>QSystemSemaphore</comment>
+ <translation>%1: Neexistuje</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>%1: out of resources</source>
+ <comment>QSystemSemaphore</comment>
+ <translation>%1: Nejsou již použitelné zdroje</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>%1: unknown error %2</source>
+ <comment>QSystemSemaphore</comment>
+ <translation>%1: Neznámá chyba %2</translation>
+ </message>
+</context>
+<context>
+ <name>QDB2Driver</name>
+ <message>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1552"/>
+ <source>Unable to commit transaction</source>
+ <translation>Transakci se nepodařilo provést (operace &apos;commit&apos;, odeslání, se nezdařila)</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <source>Unable to set autocommit</source>
+ <translation>&apos;autocommit&apos; se nepodařilo nastavit</translation>
+ </message>
+ <message>
+ <location line="-330"/>
+ <source>Unable to connect</source>
+ <translation>Nepodařilo se navázat spojení</translation>
+ </message>
+ <message>
+ <location line="+315"/>
+ <source>Unable to rollback transaction</source>
+ <translation>Transakci se nepodařilo zvrátit (operace &apos;rollback&apos;, zvrácení, se nezdařila)</translation>
+ </message>
+</context>
+<context>
+ <name>QDB2Result</name>
+ <message>
+ <location line="-786"/>
+ <source>Unable to bind variable</source>
+ <translation>Proměnnou se nepodařilo provést</translation>
+ </message>
+ <message>
+ <location line="-230"/>
+ <location line="+240"/>
+ <source>Unable to execute statement</source>
+ <translation>Příkaz se nepodařilo provést</translation>
+ </message>
+ <message>
+ <location line="+98"/>
+ <source>Unable to fetch next</source>
+ <translation>Další datový záznam se nepodařilo natáhnout</translation>
+ </message>
+ <message>
+ <location line="-301"/>
+ <source>Unable to prepare statement</source>
+ <translation>Příkaz se nepodařilo připravit</translation>
+ </message>
+ <message>
+ <location line="+282"/>
+ <source>Unable to fetch record %1</source>
+ <translation>Datový záznam %1 se nepodařilo natáhnout</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>Unable to fetch first</source>
+ <translation>První datový záznam se nepodařilo natáhnout</translation>
+ </message>
+</context>
+<context>
+ <name>QDateTimeEdit</name>
+ <message>
+ <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2287"/>
+ <source>AM</source>
+ <translation>AM</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>PM</source>
+ <translation>PM</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>am</source>
+ <translation>am</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>pm</source>
+ <translation>pm</translation>
+ </message>
+</context>
+<context>
+ <name>QDial</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/>
+ <source>QDial</source>
+ <translation>QDial</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>SliderHandle</source>
+ <translation>Posuvník</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>SpeedoMeter</source>
+ <translation>Rychloměr</translation>
+ </message>
+</context>
+<context>
+ <name>QDialog</name>
+ <message>
+ <location filename="../src/gui/dialogs/qdialog.cpp" line="+501"/>
+ <source>Done</source>
+ <translation>Hotovo</translation>
+ </message>
+ <message>
+ <location line="+135"/>
+ <source>What&apos;s This?</source>
+ <translation>Co je toto?</translation>
+ </message>
+</context>
+<context>
+ <name>QDialogButtonBox</name>
+ <message>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1872"/>
+ <location line="+464"/>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+606"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+0"/>
+ <source>&amp;OK</source>
+ <translation>&amp;OK</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>&amp;No</source>
+ <translation>&amp;Ne</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>&amp;Yes</source>
+ <translation>&amp;Ano</translation>
+ </message>
+ <message>
+ <location line="-11"/>
+ <source>Help</source>
+ <translation>Nápověda</translation>
+ </message>
+ <message>
+ <location line="-15"/>
+ <source>Open</source>
+ <translation>Otevřít</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>Save</source>
+ <translation>Uložit</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Uložit</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Abort</source>
+ <translation>Zrušit</translation>
+ </message>
+ <message>
+ <location line="-32"/>
+ <source>Apply</source>
+ <translation>Použít</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>Close</source>
+ <translation>Zavřít</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Reset</source>
+ <translation>Vrátit</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <source>Retry</source>
+ <translation>Opakovat</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Restore Defaults</source>
+ <translation>Obnovit výchozí</translation>
+ </message>
+ <message>
+ <location line="-44"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Zavřít</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>Cancel</source>
+ <translation>Zrušit</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Ignore</source>
+ <translation>Přehlížet</translation>
+ </message>
+ <message>
+ <location line="-26"/>
+ <source>Close without Saving</source>
+ <translation>Zavřít bez uložení</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>N&amp;o to All</source>
+ <translation>N&amp;e, žádné</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Save All</source>
+ <translation>Uložit vše</translation>
+ </message>
+ <message>
+ <location line="-35"/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Zrušit</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Discard</source>
+ <translation>Odmítnout</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Yes to &amp;All</source>
+ <translation>Ano, &amp;vše</translation>
+ </message>
+ <message>
+ <location line="-10"/>
+ <source>Don&apos;t Save</source>
+ <translation>Neukládat</translation>
+ </message>
+</context>
+<context>
+ <name>QDirModel</name>
+ <message>
+ <source>Kind</source>
+ <translation type="obsolete">Druh</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+457"/>
+ <source>Name</source>
+ <translation>Název</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Size</source>
+ <translation>Velikost</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Kind</source>
+ <comment>Match OS X Finder</comment>
+ <translation>Druh</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Type</source>
+ <comment>All other platforms</comment>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation type="obsolete">Typ</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Date Modified</source>
+ <translation>Datum změny</translation>
+ </message>
+</context>
+<context>
+ <name>QDockWidget</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1241"/>
+ <source>Dock</source>
+ <translation>Vplout do panelu</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>Close</source>
+ <translation>Zavřít</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Float</source>
+ <translation>Plout</translation>
+ </message>
+</context>
+<context>
+ <name>QDoubleSpinBox</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-533"/>
+ <source>Less</source>
+ <translation>Méně</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>More</source>
+ <translation>Více</translation>
+ </message>
+</context>
+<context>
+ <name>QErrorMessage</name>
+ <message>
+ <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+415"/>
+ <source>&amp;OK</source>
+ <translation>&amp;OK</translation>
+ </message>
+ <message>
+ <location line="-201"/>
+ <source>Fatal Error:</source>
+ <translation>Osudová chyba:</translation>
+ </message>
+ <message>
+ <location line="+200"/>
+ <source>&amp;Show this message again</source>
+ <translation>Toto hlášení &amp;ukázat ještě jednou</translation>
+ </message>
+ <message>
+ <location line="-206"/>
+ <source>Debug Message:</source>
+ <translation>Hlášení o odladění:</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Warning:</source>
+ <translation>Varování:</translation>
+ </message>
+</context>
+<context>
+ <name>QFile</name>
+ <message>
+ <location filename="../src/corelib/io/qfile.cpp" line="+905"/>
+ <source>Cannot create %1 for output</source>
+ <translation>%1 se nepodařilo zřídit pro výstup</translation>
+ </message>
+ <message>
+ <location line="-13"/>
+ <source>Failure to write block</source>
+ <translation>Datový blok se nepodařilo zapsat</translation>
+ </message>
+ <message>
+ <location line="-180"/>
+ <source>Will not rename sequential file using block copy</source>
+ <translation>Nepřejmenuje posloupný soubor pomocí kopie bloku</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Cannot remove source file</source>
+ <translation>Nelze odstranit zdrojový soubor</translation>
+ </message>
+ <message>
+ <location line="+130"/>
+ <source>Cannot open %1 for input</source>
+ <translation>%1 se nepodařilo otevřít pro čtení</translation>
+ </message>
+ <message>
+ <location line="-168"/>
+ <location line="+155"/>
+ <source>Destination file exists</source>
+ <translation>Cílový soubor již existuje</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Cannot open for output</source>
+ <translation>Nepodařilo se otevřít pro zápis</translation>
+ </message>
+</context>
+<context>
+ <name>QFileDialog</name>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.ui"/>
+ <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
+ <source>Back</source>
+ <translation>Zpět</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+464"/>
+ <location line="+1"/>
+ <source>File</source>
+ <translation>Soubor</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>File Folder</source>
+ <comment>Match Windows Explorer</comment>
+ <translation>Souborová složka</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Folder</source>
+ <comment>All other platforms</comment>
+ <translation>Složka</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Alias</source>
+ <comment>Mac OS X Finder</comment>
+ <translation>Přezdívka</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Shortcut</source>
+ <comment>All other platforms</comment>
+ <translation>Zkratka</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+541"/>
+ <source>Open</source>
+ <translation>Otevřít</translation>
+ </message>
+ <message>
+ <location line="+691"/>
+ <location line="+50"/>
+ <location line="+1528"/>
+ <source>&amp;Open</source>
+ <translation>&amp;Otevřít</translation>
+ </message>
+ <message>
+ <location line="-1578"/>
+ <location line="+50"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Uložit</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="-22"/>
+ <source>Drive</source>
+ <translation>Disková jednotka</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-714"/>
+ <source>Show </source>
+ <translation>Ukázat </translation>
+ </message>
+ <message>
+ <location line="+2091"/>
+ <source>&apos;%1&apos; is write protected.
+Do you want to delete it anyway?</source>
+ <translation>&apos;%1&apos; je chráněn proti zápisu.
+Přesto chcete soubor smazat?</translation>
+ </message>
+ <message>
+ <location line="-2077"/>
+ <location line="+663"/>
+ <source>File &amp;name:</source>
+ <translation>Název &amp;souboru:</translation>
+ </message>
+ <message>
+ <location line="+1286"/>
+ <source>New Folder</source>
+ <translation>Nová složka</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.ui"/>
+ <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
+ <source>Parent Directory</source>
+ <translation>Nadřazený adresář</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1956"/>
+ <source>&amp;New Folder</source>
+ <translation>&amp;Nová složka</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qsidebar.cpp" line="+442"/>
+ <source>Remove</source>
+ <translation>Odstranit</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+402"/>
+ <source>My Computer</source>
+ <translation>Můj počítač</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.ui"/>
+ <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
+ <source>Look in:</source>
+ <translation>Hledat v:</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
+ <source>Files of type:</source>
+ <translation>Soubory typu:</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-36"/>
+ <source>Find Directory</source>
+ <translation>Najít adresář</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Show &amp;hidden files</source>
+ <translation>&amp;Ukázat skryté soubory</translation>
+ </message>
+ <message>
+ <location line="+2090"/>
+ <source>Are sure you want to delete &apos;%1&apos;?</source>
+ <translation>Jste si jistý, že %1 chcete smazat?</translation>
+ </message>
+ <message>
+ <location line="-2121"/>
+ <source>Save As</source>
+ <translation>Uložit jako</translation>
+ </message>
+ <message>
+ <location line="+1472"/>
+ <location line="+862"/>
+ <source>%1
+Directory not found.
+Please verify the correct directory name was given.</source>
+ <translation>%1
+Adresář se nepodařilo nalézt.
+Ověřte, prosím, že byl zadán správný název adresáře.</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.ui"/>
+ <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
+ <source>List View</source>
+ <translation>Pohled se seznamem</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1635"/>
+ <location line="+38"/>
+ <source>&amp;Choose</source>
+ <translation>&amp;Vybrat</translation>
+ </message>
+ <message>
+ <location line="-707"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Smazat</translation>
+ </message>
+ <message>
+ <location line="-15"/>
+ <location line="+450"/>
+ <source>All Files (*)</source>
+ <translation>Všechny soubory (*)</translation>
+ </message>
+ <message>
+ <location line="+227"/>
+ <source>Directories</source>
+ <translation>Adresáře</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+174"/>
+ <source>All Files (*.*)</source>
+ <translation>Všechny soubory (*.*)</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-663"/>
+ <source>&amp;Rename</source>
+ <translation>&amp;Přejmenovat</translation>
+ </message>
+ <message>
+ <location line="+2107"/>
+ <source>Could not delete directory.</source>
+ <translation>Adresář se nepodařilo smazat.</translation>
+ </message>
+ <message>
+ <location line="-2099"/>
+ <location line="+659"/>
+ <source>Directory:</source>
+ <translation>Adresář:</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+29"/>
+ <source>Unknown</source>
+ <translation>Neznámý</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+810"/>
+ <source>%1 already exists.
+Do you want to replace it?</source>
+ <translation>Soubor %1 již existuje.
+Chcete jej nahradit?</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.ui"/>
+ <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
+ <source>Forward</source>
+ <translation>Dopředu</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1040"/>
+ <source>Recent Places</source>
+ <translation>Naposledy navštívené</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.ui"/>
+ <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
+ <source>Create New Folder</source>
+ <translation>Vytvořit novou složku</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
+ <source>Detail View</source>
+ <translation>Podrobný pohled</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1020"/>
+ <source>%1
+File not found.
+Please verify the correct file name was given.</source>
+ <translation>%1
+Soubor se nepodařilo nalézt.
+Ověřte, prosím, že byl zadán správný název souboru.</translation>
+ </message>
+</context>
+<context>
+ <name>QFileSystemModel</name>
+ <message>
+ <source>Kind</source>
+ <translation type="obsolete">Druh</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+893"/>
+ <source>Name</source>
+ <translation>Název</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Size</source>
+ <translation>Velikost</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation type="obsolete">Typ</translation>
+ </message>
+ <message>
+ <location line="-149"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+478"/>
+ <source>%1 GB</source>
+ <translation>%1 GB</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+4"/>
+ <source>%1 KB</source>
+ <translation>%1 KB</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="-2"/>
+ <source>%1 MB</source>
+ <translation>%1 MB</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="-4"/>
+ <source>%1 TB</source>
+ <translation>%1 TB</translation>
+ </message>
+ <message>
+ <location line="+85"/>
+ <source>&lt;b&gt;The name &quot;%1&quot; can not be used.&lt;/b&gt;&lt;p&gt;Try using another name, with fewer characters or no punctuations marks.</source>
+ <translation>&lt;b&gt;Název &quot;%1&quot; nelze použít.&lt;/b&gt;&lt;p&gt;Zkuste použít jiný název, s menším počtem znaků nebo bez zvláštních znaků.</translation>
+ </message>
+ <message>
+ <location line="-78"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+7"/>
+ <source>%1 bytes</source>
+ <translation>%1 bytů</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+258"/>
+ <source>My Computer</source>
+ <translation>Můj počítač</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Computer</source>
+ <translation>Počítač</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+77"/>
+ <source>Invalid filename</source>
+ <translation>Neplatný název souboru</translation>
+ </message>
+ <message>
+ <location line="+71"/>
+ <source>Kind</source>
+ <comment>Match OS X Finder</comment>
+ <translation>Druh</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Type</source>
+ <comment>All other platforms</comment>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Date Modified</source>
+ <translation>Datum změny</translation>
+ </message>
+</context>
+<context>
+ <name>QFontDatabase</name>
+ <message>
+ <location filename="../src/gui/text/qfontdatabase.cpp" line="+2137"/>
+ <source>Any</source>
+ <translation>Všechna</translation>
+ </message>
+ <message>
+ <location line="+60"/>
+ <source>Lao</source>
+ <translation>Laoské</translation>
+ </message>
+ <message>
+ <location line="-2092"/>
+ <location line="+12"/>
+ <location line="+1308"/>
+ <source>Bold</source>
+ <translation>Tučné</translation>
+ </message>
+ <message>
+ <location line="-1306"/>
+ <source>Demi</source>
+ <translation>Polotučné</translation>
+ </message>
+ <message>
+ <location line="+2075"/>
+ <source>Thai</source>
+ <translation>Thajské</translation>
+ </message>
+ <message>
+ <location line="-2083"/>
+ <location line="+18"/>
+ <location line="+1294"/>
+ <source>Black</source>
+ <translation>Černé</translation>
+ </message>
+ <message>
+ <location line="+720"/>
+ <source>Greek</source>
+ <translation>Řecké</translation>
+ </message>
+ <message>
+ <location line="+66"/>
+ <source>Khmer</source>
+ <translation>Khmerské</translation>
+ </message>
+ <message>
+ <location line="-69"/>
+ <source>Latin</source>
+ <translation>Latinské</translation>
+ </message>
+ <message>
+ <location line="-2015"/>
+ <location line="+1304"/>
+ <source>Light</source>
+ <translation>Lehké</translation>
+ </message>
+ <message>
+ <location line="+801"/>
+ <source>Ogham</source>
+ <translation>Ogamské</translation>
+ </message>
+ <message>
+ <location line="-54"/>
+ <source>Oriya</source>
+ <translation>Oriya</translation>
+ </message>
+ <message>
+ <location line="+57"/>
+ <source>Runic</source>
+ <translation>Runové</translation>
+ </message>
+ <message>
+ <location line="-54"/>
+ <source>Tamil</source>
+ <translation>Tamilské</translation>
+ </message>
+ <message>
+ <location line="-33"/>
+ <source>Cyrillic</source>
+ <translation>Cyrilské</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>Kannada</source>
+ <translation>Kannada</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Malayalam</source>
+ <translation>Malayalam</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>Simplified Chinese</source>
+ <translation>Zjednodušená čínština</translation>
+ </message>
+ <message>
+ <location line="-2104"/>
+ <location line="+1319"/>
+ <source>Demi Bold</source>
+ <translation>Polotučné</translation>
+ </message>
+ <message>
+ <location line="+728"/>
+ <source>Arabic</source>
+ <translation>Arabské</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>Hebrew</source>
+ <translation>Hebrejské</translation>
+ </message>
+ <message>
+ <location line="+51"/>
+ <source>Myanmar</source>
+ <translation>Myanmar</translation>
+ </message>
+ <message>
+ <location line="-1932"/>
+ <location line="+1161"/>
+ <source>Italic</source>
+ <translation>Itala</translation>
+ </message>
+ <message>
+ <location line="+789"/>
+ <source>Korean</source>
+ <translation>Korejské</translation>
+ </message>
+ <message>
+ <location line="-2119"/>
+ <location line="+1335"/>
+ <source>Normal</source>
+ <translation>Obvyklé</translation>
+ </message>
+ <message>
+ <location line="-1163"/>
+ <location line="+1160"/>
+ <source>Oblique</source>
+ <translation>Nakloněné</translation>
+ </message>
+ <message>
+ <location line="+748"/>
+ <source>Telugu</source>
+ <translation>Telugu</translation>
+ </message>
+ <message>
+ <location line="-21"/>
+ <source>Thaana</source>
+ <translation>Thaana</translation>
+ </message>
+ <message>
+ <location line="+66"/>
+ <source>Symbol</source>
+ <translation>Symbol</translation>
+ </message>
+ <message>
+ <location line="-69"/>
+ <source>Syriac</source>
+ <translation>Syrské</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Devanagari</source>
+ <translation>Devanagari</translation>
+ </message>
+ <message>
+ <location line="+54"/>
+ <source>Japanese</source>
+ <translation>Japonské</translation>
+ </message>
+ <message>
+ <location line="-51"/>
+ <source>Bengali</source>
+ <translation>Bengálské</translation>
+ </message>
+ <message>
+ <location line="-18"/>
+ <source>Armenian</source>
+ <translation>Arménské</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>Sinhala</source>
+ <translation>Sinhálské</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Tibetan</source>
+ <translation>Tibetské</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>Vietnamese</source>
+ <translation>Větnamské</translation>
+ </message>
+ <message>
+ <location line="-51"/>
+ <source>Gujarati</source>
+ <translation>Gujarati</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>Traditional Chinese</source>
+ <translation>Tradiční čínština</translation>
+ </message>
+ <message>
+ <location line="-9"/>
+ <source>Georgian</source>
+ <translation>Gruzínské</translation>
+ </message>
+ <message>
+ <location line="-36"/>
+ <source>Gurmukhi</source>
+ <translation>Gurmukhi</translation>
+ </message>
+</context>
+<context>
+ <name>QFontDialog</name>
+ <message>
+ <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+776"/>
+ <source>&amp;Font</source>
+ <translation>&amp;Písmo</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&amp;Size</source>
+ <translation>&amp;Velikost</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Sample</source>
+ <translation>Vzorek</translation>
+ </message>
+ <message>
+ <location line="-9"/>
+ <source>Font st&amp;yle</source>
+ <translation>Druh pís&amp;ma</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Wr&amp;iting System</source>
+ <translation>Způsob &amp;psaní</translation>
+ </message>
+ <message>
+ <location line="-609"/>
+ <location line="+257"/>
+ <source>Select Font</source>
+ <translation>Vybrat písmo</translation>
+ </message>
+ <message>
+ <location line="+350"/>
+ <source>&amp;Underline</source>
+ <translation>&amp;Podtrhnout</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>Effects</source>
+ <translation>Efekty</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Stri&amp;keout</source>
+ <translation>Pře&amp;škrtnout</translation>
+ </message>
+</context>
+<context>
+ <name>QFtp</name>
+ <message>
+ <location filename="../src/network/access/qftp.cpp" line="+2333"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+2021"/>
+ <source>Listing directory failed:
+%1</source>
+ <translation>Obsah adresářů nelze ukázat:
+%1</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+15"/>
+ <source>Creating directory failed:
+%1</source>
+ <translation>Vytvoření adresářů se nezdařilo:
+%1</translation>
+ </message>
+ <message>
+ <location line="-1525"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="-1353"/>
+ <source>Not connected</source>
+ <translation>Žádné spojení</translation>
+ </message>
+ <message>
+ <location line="+399"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+332"/>
+ <source>Connection refused for data connection</source>
+ <translation>Odmítnuto spojení spojení pro data</translation>
+ </message>
+ <message>
+ <location line="+1102"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+1003"/>
+ <source>Login failed:
+%1</source>
+ <translation>Přihlášení se nezdařilo:
+%1</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+9"/>
+ <source>Downloading file failed:
+%1</source>
+ <translation>Stažení souboru se nezdařilo:
+%1</translation>
+ </message>
+ <message>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+285"/>
+ <source>Connected to host</source>
+ <translation>Spojení s počítačem navázáno</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qftp.cpp" line="-1437"/>
+ <source>Connection timed out to host %1</source>
+ <translation>Časový limit pro spojení s počítačem &apos;%1&apos; byl překročen</translation>
+ </message>
+ <message>
+ <location line="+104"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="-1458"/>
+ <location line="+1451"/>
+ <source>Connected to host %1</source>
+ <translation>Spojeno s počítačem %1</translation>
+ </message>
+ <message>
+ <location line="+1317"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="-290"/>
+ <source>Connecting to host failed:
+%1</source>
+ <translation>Spojení s počítačem se nezdařilo:
+%1</translation>
+ </message>
+ <message>
+ <location line="-1429"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="-1267"/>
+ <source>Host %1 not found</source>
+ <translation>Počítač %1 se nepodařilo nalézt</translation>
+ </message>
+ <message>
+ <location line="+1449"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+1282"/>
+ <source>Uploading file failed:
+%1</source>
+ <translation>Nahrání souboru se nezdařilo:
+%1</translation>
+ </message>
+ <message>
+ <location line="-8"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="-6"/>
+ <source>Changing directory failed:
+%1</source>
+ <translation>Změna adresáře se nezdařila:
+%1</translation>
+ </message>
+ <message>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+286"/>
+ <source>Host found</source>
+ <translation>Počítač byl nalezen</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qftp.cpp" line="+20"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="-271"/>
+ <source>Removing directory failed:
+%1</source>
+ <translation>Odstranění adresáře se nezdařilo:
+%1</translation>
+ </message>
+ <message>
+ <location line="-1457"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="-1287"/>
+ <source>Connection refused to host %1</source>
+ <translation>Spojení s počítačem %1 odmítnuto</translation>
+ </message>
+ <message>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+1555"/>
+ <source>Connection to %1 closed</source>
+ <translation>Spojení s %1 ukončeno</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qftp.cpp" line="+1449"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="-274"/>
+ <source>Removing file failed:
+%1</source>
+ <translation>Odstranění souboru se nezdařilo:
+%1</translation>
+ </message>
+ <message>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+270"/>
+ <source>Host %1 found</source>
+ <translation>Počítač %1 byl nalezen</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qftp.cpp" line="-944"/>
+ <location line="+29"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="-1093"/>
+ <location line="+728"/>
+ <source>Unknown error</source>
+ <translation>Neznámá chyba</translation>
+ </message>
+ <message>
+ <location line="+951"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+126"/>
+ <location line="+250"/>
+ <source>Connection closed</source>
+ <translation>Spojení ukončeno</translation>
+ </message>
+</context>
+<context>
+ <name>QHostInfo</name>
+ <message>
+ <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
+ <source>Unknown error</source>
+ <translation>Neznámá chyba</translation>
+ </message>
+</context>
+<context>
+ <name>QHostInfoAgent</name>
+ <message>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+257"/>
+ <location line="+32"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+220"/>
+ <location line="+27"/>
+ <source>Host not found</source>
+ <translation>Nepodařilo se najít počítač</translation>
+ </message>
+ <message>
+ <location line="-45"/>
+ <location line="+39"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-34"/>
+ <location line="+29"/>
+ <source>Unknown address type</source>
+ <translation>Neznámý typ adresy</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-19"/>
+ <location line="+27"/>
+ <source>Unknown error</source>
+ <translation>Neznámá chyba</translation>
+ </message>
+ <message>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-67"/>
+ <source>No host name given</source>
+ <translation>Nebyl zadán název pro hostitelský počítač</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Invalid hostname</source>
+ <translation>Neplatný název pro hostitelský počítač</translation>
+ </message>
+</context>
+<context>
+ <name>QHttp</name>
+ <message>
+ <location filename="../src/network/access/qhttp.cpp" line="+2636"/>
+ <source>Connection refused (or timed out)</source>
+ <translation>Spojení bylo odmítnuto (nebo byl překročen časový limit)</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+584"/>
+ <source>Data corrupted</source>
+ <translation>Data jsou poškozena</translation>
+ </message>
+ <message>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+2308"/>
+ <source>Connected to host</source>
+ <translation>Spojení s počítačem navázáno</translation>
+ </message>
+ <message>
+ <location line="-14"/>
+ <source>Connected to host %1</source>
+ <translation>Spojeno s počítačem %1</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttp.cpp" line="+3"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-19"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="-456"/>
+ <source>Host %1 not found</source>
+ <translation>Počítač %1 se nepodařilo nalézt</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+16"/>
+ <source>Host requires authentication</source>
+ <translation>Hostitelský počítač požaduje autentizaci</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttp.cpp" line="+325"/>
+ <source>Error writing response to device</source>
+ <translation>Při psaní odpovědi výstupnímu zařízení se vyskytla chyba</translation>
+ </message>
+ <message>
+ <location line="-2594"/>
+ <source>HTTPS connection requested but SSL support not compiled in</source>
+ <translation>Požadované HTTPS spojení nelze vytvořit, protože neexistuje žádná SSL podpora</translation>
+ </message>
+ <message>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+467"/>
+ <source>Host found</source>
+ <translation>Počítač byl nalezen</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-12"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="-470"/>
+ <source>Connection refused</source>
+ <translation>Spojení bylo odmítnuto</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttp.cpp" line="+2421"/>
+ <source>Proxy authentication required</source>
+ <translation>Požadována proxy autentizace</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+18"/>
+ <source>Unknown protocol specified</source>
+ <translation>Byl zadán neznámý protokol</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttp.cpp" line="-132"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-12"/>
+ <location line="+19"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+6"/>
+ <source>HTTP request failed</source>
+ <translation>HTTP dotaz se nezdařil</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-16"/>
+ <source>Proxy requires authentication</source>
+ <translation>Proxy server požaduje autentizaci</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttp.cpp" line="+136"/>
+ <source>Authentication required</source>
+ <translation>Požadována autentizace</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+12"/>
+ <source>SSL handshake failed</source>
+ <translation>Během startu SSL protokolu se vyskytla chyba</translation>
+ </message>
+ <message>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+456"/>
+ <source>Connection to %1 closed</source>
+ <translation>Spojení s %1 ukončeno</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttp.cpp" line="+83"/>
+ <location line="+48"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="-347"/>
+ <location line="+47"/>
+ <source>Invalid HTTP chunked body</source>
+ <translation>Obsah (chunked body - rozkouskované tělo) HTTP je neplatný</translation>
+ </message>
+ <message>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+294"/>
+ <source>Host %1 found</source>
+ <translation>Počítač %1 byl nalezen</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttp.cpp" line="-349"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="-498"/>
+ <source>Wrong content length</source>
+ <translation>Neplatný údaj o délce obsahu</translation>
+ </message>
+ <message>
+ <location line="-995"/>
+ <location line="+820"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="-634"/>
+ <location line="+567"/>
+ <source>Unknown error</source>
+ <translation>Neznámá chyba</translation>
+ </message>
+ <message>
+ <location line="+351"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+184"/>
+ <source>Invalid HTTP response header</source>
+ <translation>Hlavička HTTP odpovědi není platná</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Unknown authentication method</source>
+ <translation>Neznámý způsob autentizace</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-18"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+401"/>
+ <source>Connection closed</source>
+ <translation>Spojení ukončeno</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttp.cpp" line="-368"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="-574"/>
+ <source>No server set to connect to</source>
+ <translation>Pro spojení nebyl nastaven žádný počítač - server</translation>
+ </message>
+ <message>
+ <location line="+168"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+60"/>
+ <source>Server closed connection unexpectedly</source>
+ <translation>Server neočekávaně uzavřel spojení</translation>
+ </message>
+ <message>
+ <location line="-747"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="-441"/>
+ <source>Request aborted</source>
+ <translation>Požadavek byl zrušen</translation>
+ </message>
+</context>
+<context>
+ <name>QHttpSocketEngine</name>
+ <message>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+29"/>
+ <source>Proxy connection refused</source>
+ <translation>Proxy server odmítl navázání spojení</translation>
+ </message>
+ <message>
+ <location line="-35"/>
+ <source>Proxy denied connection</source>
+ <translation>Proxy server odmítl spojení</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>Proxy server not found</source>
+ <translation>Nepodařilo se najít žádný proxy server</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Proxy server connection timed out</source>
+ <translation>Při spojení s proxy serverem byl překročen časový limit</translation>
+ </message>
+ <message>
+ <location line="-120"/>
+ <source>Did not receive HTTP response from proxy</source>
+ <translation>Žádná HTTP odpověď od proxy serveru</translation>
+ </message>
+ <message>
+ <location line="+122"/>
+ <source>Proxy connection closed prematurely</source>
+ <translation>Proxy server předčasně ukončil spojení</translation>
+ </message>
+ <message>
+ <location line="-29"/>
+ <source>Error communicating with HTTP proxy</source>
+ <translation>Chyba při spojení s proxy serverem</translation>
+ </message>
+ <message>
+ <location line="-37"/>
+ <source>Authentication required</source>
+ <translation>Požadována autentizace</translation>
+ </message>
+ <message>
+ <location line="-31"/>
+ <source>Error parsing authentication request from proxy</source>
+ <translation>Chyba při vyhodnocení autentizačního požadavku proxy serveru</translation>
+ </message>
+</context>
+<context>
+ <name>QIBaseDriver</name>
+ <message>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1558"/>
+ <source>Unable to commit transaction</source>
+ <translation>Transakci se nepodařilo provést (operace &apos;commit&apos;, odeslání, se nezdařila)</translation>
+ </message>
+ <message>
+ <location line="-13"/>
+ <source>Could not start transaction</source>
+ <translation>Nepodařilo se spustit žádnou transakci</translation>
+ </message>
+ <message>
+ <location line="-54"/>
+ <source>Error opening database</source>
+ <translation>Nepodařilo se otevřít spojení s databází</translation>
+ </message>
+ <message>
+ <location line="+80"/>
+ <source>Unable to rollback transaction</source>
+ <translation>Transakci se nepodařilo zvrátit (operace &apos;rollback&apos;, zvrácení, se nezdařila)</translation>
+ </message>
+</context>
+<context>
+ <name>QIBaseResult</name>
+ <message>
+ <location line="-707"/>
+ <source>Unable to commit transaction</source>
+ <translation>Transakci se nepodařilo provést (operace &apos;commit&apos;, odeslání, se nezdařila)</translation>
+ </message>
+ <message>
+ <location line="-422"/>
+ <source>Unable to open BLOB</source>
+ <translation>Nepodařilo se otevřít BLOB</translation>
+ </message>
+ <message>
+ <location line="+499"/>
+ <source>Could not describe statement</source>
+ <translation>Nepodařilo se získat žádný popis příkazu</translation>
+ </message>
+ <message>
+ <location line="-25"/>
+ <location line="+11"/>
+ <source>Could not describe input statement</source>
+ <translation>Nepodařilo se získat žádný popis vstupního příkazu</translation>
+ </message>
+ <message>
+ <location line="-21"/>
+ <source>Could not allocate statement</source>
+ <translation>Přidělení příkazu se nezdařilo</translation>
+ </message>
+ <message>
+ <location line="-478"/>
+ <source>Unable to write BLOB</source>
+ <translation>Nepodařilo se zapsat BLOB</translation>
+ </message>
+ <message>
+ <location line="+417"/>
+ <source>Could not start transaction</source>
+ <translation>Nepodařilo se spustit žádnou transakci</translation>
+ </message>
+ <message>
+ <location line="+211"/>
+ <source>Unable to close statement</source>
+ <translation>Příkaz se nepodařilo zavřít</translation>
+ </message>
+ <message>
+ <location line="-231"/>
+ <source>Could not get query info</source>
+ <translation>Požadované informace k vyhledávání nejsou k dispozici</translation>
+ </message>
+ <message>
+ <location line="-242"/>
+ <location line="+187"/>
+ <source>Could not find array</source>
+ <translation>Nepodařilo se najít pole</translation>
+ </message>
+ <message>
+ <location line="-155"/>
+ <source>Could not get array data</source>
+ <translation>Nepodařilo se přečíst data pole</translation>
+ </message>
+ <message>
+ <location line="+449"/>
+ <source>Unable to execute query</source>
+ <translation>Dotaz se nepodařilo provést</translation>
+ </message>
+ <message>
+ <location line="-153"/>
+ <source>Could not prepare statement</source>
+ <translation>Příkaz se nepodařilo připravit</translation>
+ </message>
+ <message>
+ <location line="+199"/>
+ <source>Could not fetch next item</source>
+ <translation>Další prvek se nepodařilo vyzvednout</translation>
+ </message>
+ <message>
+ <location line="+197"/>
+ <source>Could not get statement info</source>
+ <translation>K dispozici není žádná informace k příkazu</translation>
+ </message>
+ <message>
+ <location line="-885"/>
+ <source>Unable to create BLOB</source>
+ <translation>Nepodařilo se vytvořit žádný BLOB</translation>
+ </message>
+ <message>
+ <location line="+36"/>
+ <source>Unable to read BLOB</source>
+ <translation>BLOB se nepodařilo přečíst</translation>
+ </message>
+</context>
+<context>
+ <name>QIODevice</name>
+ <message>
+ <location filename="../src/corelib/global/qglobal.cpp" line="+2064"/>
+ <source>No such file or directory</source>
+ <translation>Nepodařilo se najít žádný takový soubor nebo adresář</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>Permission denied</source>
+ <translation>Přístup odepřen</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>No space left on device</source>
+ <translation>Na zařízení není žádný volný úložný prostor</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/io/qiodevice.cpp" line="+1561"/>
+ <source>Unknown error</source>
+ <translation>Neznámá chyba</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/global/qglobal.cpp" line="-6"/>
+ <source>Too many open files</source>
+ <translation>Příliš mnoho otevřených souborů</translation>
+ </message>
+</context>
+<context>
+ <name>QInputContext</name>
+ <message>
+ <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+256"/>
+ <source>XIM</source>
+ <translation>XIM</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>FEP</source>
+ <translation>FEP</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Windows input method</source>
+ <translation>Windows-vstupní metoda</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>S60 FEP input method</source>
+ <translation>S60 FEP-vstupní metoda</translation>
+ </message>
+ <message>
+ <location line="-12"/>
+ <source>XIM input method</source>
+ <translation>XIM-vstupní metoda</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Mac OS X input method</source>
+ <translation>Mac OS X-vstupní metoda</translation>
+ </message>
+</context>
+<context>
+ <name>QInputDialog</name>
+ <message>
+ <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
+ <source>Enter a value:</source>
+ <translation>Zadejte hodnotu:</translation>
+ </message>
+</context>
+<context>
+ <name>QLibrary</name>
+ <message>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+411"/>
+ <source>Could not unmap &apos;%1&apos;: %2</source>
+ <translation>Operace unmap, zrušit zobrazení, se nezdařila u &apos;%1&apos;: %2</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+253"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+109"/>
+ <source>Cannot unload library %1: %2</source>
+ <translation>Knihovnu %1 nelze vyjmout: %2</translation>
+ </message>
+ <message>
+ <location line="-17"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="-22"/>
+ <source>Cannot load library %1: %2</source>
+ <translation>Knihovnu %1 nelze nahrát: %2</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+341"/>
+ <source>The plugin &apos;%1&apos; uses incompatible Qt library. (%2.%3.%4) [%5]</source>
+ <translation>Přídavný modul &apos;%1&apos; používá neslučitelnou Qt knihovnu. (%2.%3.%4) [%5]</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+51"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+37"/>
+ <source>Cannot resolve symbol &quot;%1&quot; in %2: %3</source>
+ <translation>Symbol &quot;%1&quot; nelze v %2 vyřešit: %3</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="-347"/>
+ <source>Plugin verification data mismatch in &apos;%1&apos;</source>
+ <translation>Ověřovací data přídavného nesouhlasí v &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+375"/>
+ <source>The plugin &apos;%1&apos; uses incompatible Qt library. (Cannot mix debug and release libraries.)</source>
+ <translation>Přídavný modul &apos;%1&apos; používá neslučitelnou Qt knihovnu. (Knihovny vytvořené v režimu ladění a vydání nemohou být používány společně.)</translation>
+ </message>
+ <message>
+ <location line="-43"/>
+ <source>The file &apos;%1&apos; is not a valid Qt plugin.</source>
+ <translation>Soubor &apos;%1&apos; není platným přídavným modulem Qt.</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+343"/>
+ <source>The shared library was not found.</source>
+ <translation>Nepodařilo se nalézt sdílenou knihovnu.</translation>
+ </message>
+ <message>
+ <location line="+402"/>
+ <source>Unknown error</source>
+ <translation>Neznámá chyba</translation>
+ </message>
+ <message>
+ <location line="-365"/>
+ <source>The plugin &apos;%1&apos; uses incompatible Qt library. Expected build key &quot;%2&quot;, got &quot;%3&quot;</source>
+ <translation>Přídavný modul &apos;%1&apos; používá neslučitelnou Qt knihovnu. Potřebný byl zvláštní klíč pro sestavení &quot;%2&quot;, obdržen &quot;%3&quot;</translation>
+ </message>
+ <message>
+ <location line="-389"/>
+ <source>Could not mmap &apos;%1&apos;: %2</source>
+ <translation>Operace mmap se nezdařila u &apos;%1&apos;: %2</translation>
+ </message>
+</context>
+<context>
+ <name>QLineEdit</name>
+ <message>
+ <location filename="../src/gui/widgets/qlineedit.cpp" line="+1991"/>
+ <source>Cu&amp;t</source>
+ <translation>&amp;Vyjmout</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Copy</source>
+ <translation>&amp;Kopírovat</translation>
+ </message>
+ <message>
+ <location line="-12"/>
+ <source>&amp;Redo</source>
+ <translation>&amp;Znovu</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <source>&amp;Undo</source>
+ <translation>&amp;Zpět</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>&amp;Paste</source>
+ <translation>&amp;Vložit</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Delete</source>
+ <translation>Smazat</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Select All</source>
+ <translation>Vybrat vše</translation>
+ </message>
+</context>
+<context>
+ <name>QLocalServer</name>
+ <message>
+ <location filename="../src/network/socket/qlocalserver.cpp" line="+224"/>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+256"/>
+ <source>%1: Name error</source>
+ <translation>%1: Chybný název</translation>
+ </message>
+ <message>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+9"/>
+ <source>%1: Unknown error %2</source>
+ <translation>%1: Neznámá chyba %2</translation>
+ </message>
+ <message>
+ <location line="-17"/>
+ <source>%1: Permission denied</source>
+ <translation>%1: Přístup odepřen</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>%1: Address in use</source>
+ <translation>%1: Adresa se již používá</translation>
+ </message>
+</context>
+<context>
+ <name>QLocalSocket</name>
+ <message>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+153"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+160"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+75"/>
+ <source>%1: Connection error</source>
+ <translation>%1: Chyba spojení</translation>
+ </message>
+ <message>
+ <location line="-21"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="-21"/>
+ <source>%1: Connection refused</source>
+ <translation>%1: Spojení bylo odmítnuto</translation>
+ </message>
+ <message>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+28"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+10"/>
+ <source>%1: Unknown error %2</source>
+ <translation>%1: Neznámá chyba %2</translation>
+ </message>
+ <message>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+9"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="-19"/>
+ <source>%1: Socket access error</source>
+ <translation>%1: Chyba při přístupu k zásuvce (socketu)</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+ <source>%1: Socket resource error</source>
+ <translation>%1: Chyba zásuvky (socketu) - potíže se zdrojem</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+12"/>
+ <source>%1: The socket operation is not supported</source>
+ <translation>%1: Tato operace se zásuvkou (socketem) není podporována</translation>
+ </message>
+ <message>
+ <location line="-18"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="-18"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="-5"/>
+ <location line="+45"/>
+ <source>%1: Invalid name</source>
+ <translation>%1: Neplatný název</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>%1: Unknown error</source>
+ <translation>%1: Neznámá chyba</translation>
+ </message>
+ <message>
+ <location line="-13"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+9"/>
+ <source>%1: Socket operation timed out</source>
+ <translation>%1: Překročení času při operaci se zásuvkou (socketem)</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+ <source>%1: Datagram too large</source>
+ <translation>%1: Datagram je příliš veliký</translation>
+ </message>
+ <message>
+ <location line="-15"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="-15"/>
+ <source>%1: Remote closed</source>
+ <translation>%1: Spojení bylo protější stranou uzavřeno</translation>
+ </message>
+</context>
+<context>
+ <name>QMYSQLDriver</name>
+ <message>
+ <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1440"/>
+ <source>Unable to commit transaction</source>
+ <translation>Transakci se nepodařilo provést (operace &apos;commit&apos;, odeslání, se nezdařila)</translation>
+ </message>
+ <message>
+ <location line="-179"/>
+ <source>Unable to open database &apos;</source>
+ <translation>Nepodařilo se otevřít spojení s databází &apos;</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Unable to connect</source>
+ <translation>Nepodařilo se navázat spojení</translation>
+ </message>
+ <message>
+ <location line="+185"/>
+ <source>Unable to rollback transaction</source>
+ <translation>Transakci se nepodařilo zvrátit (operace &apos;rollback&apos;, zvrácení, se nezdařila)</translation>
+ </message>
+ <message>
+ <location line="-34"/>
+ <source>Unable to begin transaction</source>
+ <translation>Transakci se nepodařilo spustit</translation>
+ </message>
+</context>
+<context>
+ <name>QMYSQLResult</name>
+ <message>
+ <location line="-413"/>
+ <source>Unable to execute statement</source>
+ <translation>Příkaz se nepodařilo provést</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Unable to store statement results</source>
+ <translation>Výsledky příkazu se nepodařilo uložit</translation>
+ </message>
+ <message>
+ <location line="-253"/>
+ <source>Unable to execute next query</source>
+ <translation>Další dotaz nelze provést</translation>
+ </message>
+ <message>
+ <location line="+244"/>
+ <location line="+21"/>
+ <source>Unable to bind outvalues</source>
+ <translation>Výstupní hodnoty se nepodařilo spojit</translation>
+ </message>
+ <message>
+ <location line="-255"/>
+ <source>Unable to store next result</source>
+ <translation>Další výsledek nelze uložit</translation>
+ </message>
+ <message>
+ <location line="-302"/>
+ <source>Unable to fetch data</source>
+ <translation>Nepodařilo se natáhnout žádná data</translation>
+ </message>
+ <message>
+ <location line="+380"/>
+ <location line="+8"/>
+ <source>Unable to prepare statement</source>
+ <translation>Příkaz se nepodařilo připravit</translation>
+ </message>
+ <message>
+ <location line="-199"/>
+ <source>Unable to store result</source>
+ <translation>Výsledek se nepodařilo uložit</translation>
+ </message>
+ <message>
+ <location line="+322"/>
+ <source>Unable to bind value</source>
+ <translation>Hodnotu se nepodařilo spojit</translation>
+ </message>
+ <message>
+ <location line="-328"/>
+ <source>Unable to execute query</source>
+ <translation>Dotaz se nepodařilo provést</translation>
+ </message>
+ <message>
+ <location line="+242"/>
+ <source>Unable to reset statement</source>
+ <translation>Příkaz se nepodařilo znovu nastavit</translation>
+ </message>
+</context>
+<context>
+ <name>QMdiArea</name>
+ <message>
+ <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
+ <source>(Untitled)</source>
+ <translation>(Bez názvu)</translation>
+ </message>
+</context>
+<context>
+ <name>QMdiSubWindow</name>
+ <message>
+ <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+355"/>
+ <source>Help</source>
+ <translation>Nápověda</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Menu</source>
+ <translation>Menu</translation>
+ </message>
+ <message>
+ <location line="+699"/>
+ <source>&amp;Move</source>
+ <translation>Po&amp;sunout</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Size</source>
+ <translation>Změnit &amp;velikost</translation>
+ </message>
+ <message>
+ <location line="-706"/>
+ <source>Close</source>
+ <translation>Zavřít</translation>
+ </message>
+ <message>
+ <location line="-18"/>
+ <source>Minimize</source>
+ <translation>Zmenšit</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Shade</source>
+ <translation>Navinout</translation>
+ </message>
+ <message>
+ <location line="+720"/>
+ <source>Stay on &amp;Top</source>
+ <translation>Zůstat v &amp;popředí</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Zavřít</translation>
+ </message>
+ <message>
+ <location line="-787"/>
+ <source>- [%1]</source>
+ <translation>- [%1]</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>%1 - [%2]</source>
+ <translation>%1 - [%2]</translation>
+ </message>
+ <message>
+ <location line="+774"/>
+ <source>&amp;Restore</source>
+ <translation>&amp;Obnovit</translation>
+ </message>
+ <message>
+ <location line="-705"/>
+ <source>Restore</source>
+ <translation>Obnovit</translation>
+ </message>
+ <message>
+ <location line="-12"/>
+ <source>Maximize</source>
+ <translation>Zvětšit</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Unshade</source>
+ <translation>Odvinout</translation>
+ </message>
+ <message>
+ <location line="+719"/>
+ <source>Mi&amp;nimize</source>
+ <translation>Zmen&amp;šit</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Ma&amp;ximize</source>
+ <translation>Zvě&amp;tšit</translation>
+ </message>
+ <message>
+ <location line="-714"/>
+ <source>Restore Down</source>
+ <translation>Obnovit</translation>
+ </message>
+</context>
+<context>
+ <name>QMenu</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+158"/>
+ <location line="+225"/>
+ <source>Open</source>
+ <translation>Otevřít</translation>
+ </message>
+ <message>
+ <location line="-226"/>
+ <location line="+225"/>
+ <source>Close</source>
+ <translation>Zavřít</translation>
+ </message>
+ <message>
+ <location line="-222"/>
+ <location line="+225"/>
+ <location line="+51"/>
+ <source>Execute</source>
+ <translation>Provést</translation>
+ </message>
+</context>
+<context>
+ <name>QMenuBar</name>
+ <message>
+ <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+410"/>
+ <source>Actions</source>
+ <translation>Činnosti</translation>
+ </message>
+</context>
+<context>
+ <name>QMessageBox</name>
+ <message>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1964"/>
+ <location line="+847"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="-52"/>
+ <location line="+8"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Help</source>
+ <translation>Nápověda</translation>
+ </message>
+ <message>
+ <source>&lt;h3&gt;About Qt&lt;/h3&gt;&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;&lt;p&gt;Qt is a C++ toolkit for cross-platform application development.&lt;/p&gt;&lt;p&gt;Qt provides single-source portability across MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;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.&lt;/p&gt;&lt;p&gt;Qt is available under three different licensing options designed to accommodate the needs of our various users.&lt;/p&gt;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.&lt;/p&gt;&lt;p&gt;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.&lt;/p&gt;&lt;p&gt;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.&lt;/p&gt;&lt;p&gt;Please see &lt;a href=&quot;http://qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; for more information.&lt;/p&gt;</source>
+ <translation type="obsolete">&lt;h3&gt;O Qt&lt;/h3&gt;&lt;p&gt;Tento program používá Qt ve verzi %1.&lt;/p&gt;&lt;p&gt;Qt je sadou softwarových nástrojů C++ určených pro vývoj aplikací napříč platformami.&lt;/p&gt;&lt;p&gt;Qt poskytuje jednoduchou přenositelnost přes MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, a všechny hlavní obchodní varianty systému Unix. Qt je rovněž dostupný pro vložená zařízení jako Qt pro Embedded Linux a Qt pro Windows CE.&lt;/p&gt;&lt;p&gt;Qt je dostupné pod třemi rozdílnými licenčními volbami navrženými pro přizpůsobení se potřebám našich různých uživatelů.&lt;/p&gt;Qt licencované pod naší obchodní licenční smlouvou je vhodné pro vývoj soukromého/obchodního software, kde si nepřejete sdílet jakýkoli zdrojový kód se třetími stranami, nebo jinak řečeno, když nemůžete vyhovět podmínkám GNU LGPL ve verzi 2.1 nebo GNU GPL ve verzi 3.0.&lt;/p&gt;&lt;p&gt;Qt licencované pod GNU LGPL ve verzi 2.1 je vhodné pro vývoj Qt aplikací (soukromých nebo s otevřeným zdrojovým kódem), za předpokladu že můžete souhlasit s požadavky a podmínkami GNU LGPL version 2.1.&lt;/p&gt;&lt;p&gt;Qt licencované pod GNU General Public License ve verzi 3.0 je vhodné pro vývoj aplikací Qt, u nichž si přejete použít takovou aplikaci ve spojení se software, který podléhá požadavkům GNU GPL ve verzi 3.0, nebo kde jste jinak ochoten souhlasit s podmínkami GNU GPL ve verzi 3.0.&lt;/p&gt;&lt;p&gt;Podívejte se, prosím, na &lt;a href=&quot;http://qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt; kvůli přehledu licencování Qt.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation a/nebo její dceřinná(é) společnost(i).&lt;/p&gt;&lt;p&gt;Qt je výrobkem společnosti Nokia. Podívejte se na &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt;kvůli více informacím.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location line="-1099"/>
+ <source>Show Details...</source>
+ <translation>Ukázat podrobnosti...</translation>
+ </message>
+ <message>
+ <location line="+1575"/>
+ <source>&lt;h3&gt;About Qt&lt;/h3&gt;&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
+ <translation>&lt;h3&gt;O Qt&lt;/h3&gt;&lt;p&gt;Tento program používá Qt-verze %1.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&lt;p&gt;Qt is a C++ toolkit for cross-platform application development.&lt;/p&gt;&lt;p&gt;Qt provides single-source portability across MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;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.&lt;/p&gt;&lt;p&gt;Qt is available under three different licensing options designed to accommodate the needs of our various users.&lt;/p&gt;&lt;p&gt;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.&lt;/p&gt;&lt;p&gt;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.&lt;/p&gt;&lt;p&gt;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.&lt;/p&gt;&lt;p&gt;Please see &lt;a href=&quot;http://qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; for more information.&lt;/p&gt;</source>
+ <translation>&lt;p&gt;Qt je sadou softwarových nástrojů C++ určených pro vývoj aplikací napříč platformami.&lt;/p&gt;&lt;p&gt;Qt poskytuje jednoduchou přenositelnost přes MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, a všechny hlavní obchodní varianty systému Unix. Qt je rovněž dostupný pro vložená zařízení jako Qt pro Embedded Linux a Qt pro Windows CE.&lt;/p&gt;&lt;p&gt;Qt je dostupné pod třemi rozdílnými licenčními volbami navrženými pro přizpůsobení se potřebám našich různých uživatelů.&lt;/p&gt;Qt licencované pod naší obchodní licenční smlouvou je vhodné pro vývoj soukromého/obchodního software, kde si nepřejete sdílet jakýkoli zdrojový kód se třetími stranami, nebo jinak řečeno, když nemůžete vyhovět podmínkám GNU LGPL ve verzi 2.1 nebo GNU GPL ve verzi 3.0.&lt;/p&gt;&lt;p&gt;Qt licencované pod GNU LGPL ve verzi 2.1 je vhodné pro vývoj Qt aplikací (soukromých nebo s otevřeným zdrojovým kódem), za předpokladu že můžete souhlasit s požadavky a podmínkami GNU LGPL version 2.1.&lt;/p&gt;&lt;p&gt;Qt licencované pod GNU General Public License ve verzi 3.0 je vhodné pro vývoj aplikací Qt, u nichž si přejete použít takovou aplikaci ve spojení se software, který podléhá požadavkům GNU GPL ve verzi 3.0, nebo kde jste jinak ochoten souhlasit s podmínkami GNU GPL ve verzi 3.0.&lt;/p&gt;&lt;p&gt;Podívejte se, prosím, na &lt;a href=&quot;http://qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt; kvůli přehledu licencování Qt.&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation a/nebo její dceřinná(é) společnost(i).&lt;/p&gt;&lt;p&gt;Qt je výrobkem společnosti Nokia. Podívejte se na &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt;kvůli více informacím.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>About Qt</source>
+ <translation>O Qt</translation>
+ </message>
+ <message>
+ <source>&lt;p&gt;This program uses Qt Open Source Edition version %1.&lt;/p&gt;&lt;p&gt;Qt Open Source Edition is intended for the development of Open Source applications. You need a commercial Qt license for development of proprietary (closed source) applications.&lt;/p&gt;&lt;p&gt;Please see &lt;a href=&quot;http://www.trolltech.com/company/model/&quot;&gt;www.trolltech.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
+ <translation type="obsolete">&lt;p&gt;Tento program používá Qt Open Source Edition verze %1.&lt;/p&gt;&lt;p&gt;Qt Open Source Edition je zamýšlena pro vývoj Open Source aplikací. Pro vývoj vlastnických aplikací (uzavřené zdrojové kódy) potřebujete Qt licenci.&lt;/p&gt;&lt;p&gt;Podívejte se, prosím, na &lt;a href=&quot;http://www.trolltech.com/company/model/&quot;&gt;www.trolltech.com/company/model/&lt;/a&gt; kvůli přehledu licencování Qt.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location line="-1610"/>
+ <source>Hide Details...</source>
+ <translation>Skrýt podrobnosti...</translation>
+ </message>
+ <message>
+ <source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
+ <translation type="obsolete">&lt;p&gt;Tento program používá Qt-verze %1.&lt;/p&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>QMultiInputContext</name>
+ <message>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
+ <source>Select IM</source>
+ <translation>Zvolit způsob vstupu</translation>
+ </message>
+</context>
+<context>
+ <name>QMultiInputContextPlugin</name>
+ <message>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+102"/>
+ <source>Multiple input method switcher that uses the context menu of the text widgets</source>
+ <translation>Přepínač pro více způsobů vstupu, který používá související nabídku textového prvku</translation>
+ </message>
+ <message>
+ <location line="-7"/>
+ <source>Multiple input method switcher</source>
+ <translation>Přepínač pro více způsobů vstupu</translation>
+ </message>
+</context>
+<context>
+ <name>QNativeSocketEngine</name>
+ <message>
+ <location filename="../src/network/socket/qnativesocketengine.cpp" line="+269"/>
+ <source>The proxy type is invalid for this operation</source>
+ <translation>Tuto operaci nelze s tímto typem proxy provést</translation>
+ </message>
+ <message>
+ <location line="-60"/>
+ <source>Network operation timed out</source>
+ <translation>Časový limit pro síťovou operaci byl překročen</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>The remote host closed the connection</source>
+ <translation>Vzdálený počítač uzavřel spojení</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Invalid socket descriptor</source>
+ <translation>Neplatný deskriptor zásuvky (socketu)</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Host unreachable</source>
+ <translation>Cílový počítač je nedosažitelný</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>Protocol type not supported</source>
+ <translation>Protokol tohoto typu není podporován</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Datagram was too large to send</source>
+ <translation>Datagram byl pro odeslání příliš veliký</translation>
+ </message>
+ <message>
+ <location line="-45"/>
+ <source>Attempt to use IPv6 socket on a platform with no IPv6 support</source>
+ <translation>Vyzkoušelo se použít IPv6 zásuvku (socket) na systému bez podpory IPv6</translation>
+ </message>
+ <message>
+ <location line="+51"/>
+ <source>Unable to receive a message</source>
+ <translation>Zprávu se nepodařilo přijmout</translation>
+ </message>
+ <message>
+ <location line="-24"/>
+ <source>Permission denied</source>
+ <translation>Přístup odepřen</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Connection refused</source>
+ <translation>Spojení bylo odmítnuto</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>Unable to write</source>
+ <translation>Nepodařilo se zapsat</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Another socket is already listening on the same port</source>
+ <translation>Na tomto portu již naslouchá jiná zásuvka (socket)</translation>
+ </message>
+ <message>
+ <location line="-12"/>
+ <source>Unable to send a message</source>
+ <translation>Nepodařilo se odeslat hlášení</translation>
+ </message>
+ <message>
+ <location line="-12"/>
+ <source>The bound address is already in use</source>
+ <translation>Uvedená adresa se už používá</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>Connection timed out</source>
+ <translation>Časový limit pro spojení byl překročen</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Network error</source>
+ <translation>Síťová chyba</translation>
+ </message>
+ <message>
+ <location line="-45"/>
+ <source>Unsupported socket operation</source>
+ <translation>Nepodporovaná zásuvková operace (povel pro socket)</translation>
+ </message>
+ <message>
+ <location line="+51"/>
+ <source>Operation on non-socket</source>
+ <translation>Operaci lze použít pouze na jedné zásuvce (socketu)</translation>
+ </message>
+ <message>
+ <location line="-66"/>
+ <source>Unable to initialize broadcast socket</source>
+ <translation>Zásuvku pro vysílání (socket) se nepodařilo spustit</translation>
+ </message>
+ <message>
+ <location line="+72"/>
+ <source>Unknown error</source>
+ <translation>Neznámá chyba</translation>
+ </message>
+ <message>
+ <location line="-75"/>
+ <source>Unable to initialize non-blocking socket</source>
+ <translation>Neblokující zásuvku (socket) se nepodařilo spustit</translation>
+ </message>
+ <message>
+ <location line="+48"/>
+ <source>The address is protected</source>
+ <translation>Adresa je chráněna</translation>
+ </message>
+ <message>
+ <location line="-18"/>
+ <source>Network unreachable</source>
+ <translation>Síť je nedosažitelná</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>The address is not available</source>
+ <translation>Adresa není dostupná</translation>
+ </message>
+ <message>
+ <location line="-30"/>
+ <source>Out of resources</source>
+ <translation>Nejsou dostupné žádné zdroje</translation>
+ </message>
+</context>
+<context>
+ <name>QNetworkAccessCacheBackend</name>
+ <message>
+ <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+66"/>
+ <source>Error opening %1</source>
+ <translation>%1 se nepodařilo otevřít</translation>
+ </message>
+</context>
+<context>
+ <name>QNetworkAccessDebugPipeBackend</name>
+ <message>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+195"/>
+ <source>Write error writing to %1: %2</source>
+ <translation>Při zápisu do souboru %1: %2 nastala chyba</translation>
+ </message>
+</context>
+<context>
+ <name>QNetworkAccessFileBackend</name>
+ <message>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+100"/>
+ <source>Request for opening non-local file %1</source>
+ <translation>Požadavek na otevření souboru přes síť %1</translation>
+ </message>
+ <message>
+ <location line="+152"/>
+ <source>Read error reading from %1: %2</source>
+ <translation>Při čtení ze souboru %1 nastala chyba: %2</translation>
+ </message>
+ <message>
+ <location line="-21"/>
+ <source>Cannot open %1: Path is a directory</source>
+ <translation>%1 nelze otevřít: Jedná se o adresář</translation>
+ </message>
+ <message>
+ <location line="-86"/>
+ <source>Error opening %1: %2</source>
+ <translation>%1 se nepodařilo otevřít: %2</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Write error writing to %1: %2</source>
+ <translation>Při zápisu do souboru %1: %2 nastala chyba</translation>
+ </message>
+</context>
+<context>
+ <name>QNetworkAccessFtpBackend</name>
+ <message>
+ <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+131"/>
+ <source>No suitable proxy found</source>
+ <translation>Nepodařilo se najít žádný vhodný proxy server</translation>
+ </message>
+ <message>
+ <location line="+165"/>
+ <source>Error while downloading %1: %2</source>
+ <translation>Při stahování %1 se vyskytla chyba: %2</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Error while uploading %1: %2</source>
+ <translation>Při nahrávání %1 se vyskytla chyba: %2</translation>
+ </message>
+ <message>
+ <location line="-153"/>
+ <source>Cannot open %1: is a directory</source>
+ <translation>%1 nelze otevřít: Jedná se o adresář</translation>
+ </message>
+ <message>
+ <location line="+112"/>
+ <source>Logging in to %1 failed: authentication required</source>
+ <translation>Přihlášení do %1 se nezdařilo: Je požadována autentizace</translation>
+ </message>
+</context>
+<context>
+ <name>QNetworkAccessHttpBackend</name>
+ <message>
+ <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+585"/>
+ <source>No suitable proxy found</source>
+ <translation>Nepodařilo se najít žádný vhodný proxy server</translation>
+ </message>
+</context>
+<context>
+ <name>QNetworkReply</name>
+ <message>
+ <location line="+95"/>
+ <source>Error downloading %1 - server replied: %2</source>
+ <translation>Beim Herunterladen von %1 trat ein Fehler auf - Die Antwort des Servers ist: %2</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+77"/>
+ <source>Protocol &quot;%1&quot; is unknown</source>
+ <translation>Protokol &quot;%1&quot; není znám</translation>
+ </message>
+</context>
+<context>
+ <name>QNetworkReplyImpl</name>
+ <message>
+ <location line="+519"/>
+ <location line="+28"/>
+ <source>Operation canceled</source>
+ <translation>Operace byla zrušena</translation>
+ </message>
+</context>
+<context>
+ <name>QOCIDriver</name>
+ <message>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2166"/>
+ <source>Unable to commit transaction</source>
+ <translation>Transakci se nepodařilo provést (operace &apos;commit&apos;, odeslání, se nezdařila)</translation>
+ </message>
+ <message>
+ <source>Unable to initialize</source>
+ <translation type="obsolete">Inicializace se nezdařila</translation>
+ </message>
+ <message>
+ <location line="-90"/>
+ <source>Unable to logon</source>
+ <translation>Přihlášení se nezdařilo</translation>
+ </message>
+ <message>
+ <location line="+109"/>
+ <source>Unable to rollback transaction</source>
+ <translation>Transakci se nepodařilo zvrátit (operace &apos;rollback&apos;, zvrácení, se nezdařila)</translation>
+ </message>
+ <message>
+ <location line="-38"/>
+ <source>Unable to begin transaction</source>
+ <translation>Transakci se nepodařilo spustit</translation>
+ </message>
+ <message>
+ <location line="-215"/>
+ <source>Unable to initialize</source>
+ <comment>QOCIDriver</comment>
+ <translation>Spuštění se nezdařilo</translation>
+ </message>
+</context>
+<context>
+ <name>QOCIResult</name>
+ <message>
+ <location line="-165"/>
+ <source>Unable to alloc statement</source>
+ <translation>Přidělení příkazu se nepodařilo</translation>
+ </message>
+ <message>
+ <location line="-59"/>
+ <source>Unable to goto next</source>
+ <translation>Nelze jít k dalšímu prvku</translation>
+ </message>
+ <message>
+ <location line="+100"/>
+ <source>Unable to get statement type</source>
+ <translation>Nepodařilo se získat typ příkazu</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>Unable to execute statement</source>
+ <translation>Příkaz se nepodařilo provést</translation>
+ </message>
+ <message>
+ <location line="-634"/>
+ <location line="+161"/>
+ <location line="+15"/>
+ <source>Unable to bind column for batch execute</source>
+ <translation>Nepodařilo se spojit sloupec pro provedení příkazu dávkového zpracování</translation>
+ </message>
+ <message>
+ <source>Unable to execute select statement</source>
+ <translation type="obsolete">Výběrové vyhledávání se nepodařilo provést</translation>
+ </message>
+ <message>
+ <location line="+393"/>
+ <source>Unable to prepare statement</source>
+ <translation>Příkaz se nepodařilo připravit</translation>
+ </message>
+ <message>
+ <location line="-378"/>
+ <source>Unable to execute batch statement</source>
+ <translation>Příkaz pro dávkové zpracování se nepodařilo provést</translation>
+ </message>
+ <message>
+ <location line="+424"/>
+ <source>Unable to bind value</source>
+ <translation>Hodnotu se nepodařilo spojit</translation>
+ </message>
+</context>
+<context>
+ <name>QODBCDriver</name>
+ <message>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+2045"/>
+ <source>Unable to commit transaction</source>
+ <translation>Transakci se nepodařilo provést (operace &apos;commit&apos;, odeslání, se nezdařila)</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <source>Unable to enable autocommit</source>
+ <translation>&apos;autocommit&apos; se nepodařilo povolit</translation>
+ </message>
+ <message>
+ <source>Unable to connect - Driver doesn&apos;t support all needed functionality</source>
+ <translation type="obsolete">Nepodařilo se navázat spojení, protože ovladač nutnou funkcionalitu plně nepodporuje</translation>
+ </message>
+ <message>
+ <location line="-49"/>
+ <source>Unable to disable autocommit</source>
+ <translation>&apos;autocommit&apos;, automatické odeslání, se nepodařilo zastavit</translation>
+ </message>
+ <message>
+ <location line="-238"/>
+ <source>Unable to connect</source>
+ <translation>Nepodařilo se navázat spojení</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Unable to connect - Driver doesn&apos;t support all functionality required</source>
+ <translation>Nepodařilo se navázat spojení, protože ovladač nutnou funkcionalitu plně nepodporuje</translation>
+ </message>
+ <message>
+ <location line="+266"/>
+ <source>Unable to rollback transaction</source>
+ <translation>Transakci se nepodařilo zvrátit (operace &apos;rollback&apos;, zvrácení, se nezdařila)</translation>
+ </message>
+</context>
+<context>
+ <name>QODBCResult</name>
+ <message>
+ <location line="-566"/>
+ <source>Unable to bind variable</source>
+ <translation>Proměnnou se nepodařilo provést</translation>
+ </message>
+ <message>
+ <location line="-615"/>
+ <location line="+623"/>
+ <source>Unable to execute statement</source>
+ <translation>Příkaz se nepodařilo provést</translation>
+ </message>
+ <message>
+ <location line="-547"/>
+ <source>Unable to fetch next</source>
+ <translation>Další datový záznam se nepodařilo natáhnout</translation>
+ </message>
+ <message>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+190"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+72"/>
+ <location line="+576"/>
+ <source>Unable to fetch last</source>
+ <translation>Poslední datový záznam se nepodařilo natáhnout</translation>
+ </message>
+ <message>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-377"/>
+ <source>Unable to prepare statement</source>
+ <translation>Příkaz se nepodařilo spustit</translation>
+ </message>
+ <message>
+ <location line="-230"/>
+ <source>Unable to fetch previous</source>
+ <translation>Předchozí datový záznam se nepodařilo natáhnout</translation>
+ </message>
+ <message>
+ <location line="-63"/>
+ <source>Unable to fetch</source>
+ <translation>Nepodařilo se natáhnout žádná data</translation>
+ </message>
+ <message>
+ <location line="-71"/>
+ <location line="+346"/>
+ <source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
+ <translation>QODBCResult::reset: &apos;SQL_CURSOR_STATIC&apos; se nepodařilo nastavit jako příkaz vlastnosti . Ověřte, prosím, nastavení svého ODBC ovladače</translation>
+ </message>
+ <message>
+ <location line="-231"/>
+ <source>Unable to fetch first</source>
+ <translation>První datový záznam se nepodařilo natáhnout</translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="-97"/>
+ <source>Invalid hostname</source>
+ <translation>Neplatný název pro hostitelský počítač</translation>
+ </message>
+ <message>
+ <source>Home</source>
+ <translation type="obsolete">Home</translation>
+ </message>
+ <message>
+ <source>Protocol error: packet of size 0 received</source>
+ <translation type="obsolete">Chyba v zápisu: Byl přijat paket o nulové velikosti</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+131"/>
+ <source>Invalid URI: %1</source>
+ <translation>Neplátná URI: %1</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+60"/>
+ <source>Socket error on %1: %2</source>
+ <translation>Chyba zásuvky (socketu) u %1: %2</translation>
+ </message>
+ <message>
+ <location filename="../src/network/kernel/qhostinfo.cpp" line="+175"/>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+0"/>
+ <source>No host name given</source>
+ <translation>Nebyl zadán název pro hostitelský počítač</translation>
+ </message>
+ <message>
+ <source>Read error reading from %1: %2</source>
+ <translation type="obsolete">Při čtení ze souboru %1 nastala chyba: %2</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+15"/>
+ <source>Remote host closed the connection prematurely on %1</source>
+ <translation>Vzdálený počítač předčasně ukončil spojení s %1</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="-57"/>
+ <source>Operation not supported on %1</source>
+ <translation>Tato operace není %1 podporována</translation>
+ </message>
+ <message>
+ <source>Write error writing to %1: %2</source>
+ <translation type="obsolete">Při zápisu do souboru %1: %2 nastala chyba</translation>
+ </message>
+</context>
+<context>
+ <name>QPPDOptionsModel</name>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1198"/>
+ <source>Name</source>
+ <translation>Název</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Value</source>
+ <translation>Hodnota</translation>
+ </message>
+</context>
+<context>
+ <name>QPSQLDriver</name>
+ <message>
+ <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+1251"/>
+ <source>Unable to subscribe</source>
+ <translation>Registrace se nezdařila</translation>
+ </message>
+ <message>
+ <location line="-420"/>
+ <source>Could not begin transaction</source>
+ <translation>Transakci se nepodařilo spustit</translation>
+ </message>
+ <message>
+ <location line="+46"/>
+ <source>Could not rollback transaction</source>
+ <translation>Transakci se nepodařilo zvrátit (operace &apos;rollback&apos;, zvrácení, se nezdařila)</translation>
+ </message>
+ <message>
+ <location line="-16"/>
+ <source>Could not commit transaction</source>
+ <translation>Transakci se nepodařilo provést (operace &apos;commit&apos;, odeslání, se nezdařila)</translation>
+ </message>
+ <message>
+ <location line="-79"/>
+ <source>Unable to connect</source>
+ <translation>Nepodařilo se navázat spojení</translation>
+ </message>
+ <message>
+ <location line="+501"/>
+ <source>Unable to unsubscribe</source>
+ <translation>Registraci se nepodařilo zrušit</translation>
+ </message>
+</context>
+<context>
+ <name>QPSQLResult</name>
+ <message>
+ <location line="-713"/>
+ <source>Unable to prepare statement</source>
+ <translation>Příkaz se nepodařilo připravit</translation>
+ </message>
+ <message>
+ <location line="-372"/>
+ <source>Unable to create query</source>
+ <translation>Nepodařilo se vytvořit žádný dotaz</translation>
+ </message>
+</context>
+<context>
+ <name>QPageSetupWidget</name>
+ <message>
+ <location filename="../src/gui/dialogs/qpagesetupwidget.ui"/>
+ <source>Form</source>
+ <translation>Formulář</translation>
+ </message>
+ <message>
+ <location/>
+ <source>bottom margin</source>
+ <translation>Dolní okraj</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Paper</source>
+ <translation>Papír</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Paper source:</source>
+ <translation>Zdroj papíru:</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
+ <source>Centimeters (cm)</source>
+ <translation>Centimetry (cm)</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qpagesetupwidget.ui"/>
+ <source>right margin</source>
+ <translation>Pravý okraj</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Margins</source>
+ <translation>Okraje</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Landscape</source>
+ <translation>Formát na šířku</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Width:</source>
+ <translation>Šířka:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Orientation</source>
+ <translation>Zaměření</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Portrait</source>
+ <translation>Formát na výšku</translation>
+ </message>
+ <message>
+ <location/>
+ <source>top margin</source>
+ <translation>Horní okraj</translation>
+ </message>
+ <message>
+ <location/>
+ <source>left margin</source>
+ <translation>Levý okraj</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Page size:</source>
+ <translation>Velikost stran:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Reverse portrait</source>
+ <translation>Obrácený formát na výšku</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+0"/>
+ <source>Millimeters (mm)</source>
+ <translation>Milimetry (mm)</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Points (pt)</source>
+ <translation>Body (pt)</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Inches (in)</source>
+ <translation>Palce (in)</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qpagesetupwidget.ui"/>
+ <source>Reverse landscape</source>
+ <translation>Obrácený formát na šířku</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Height:</source>
+ <translation>Výška:</translation>
+ </message>
+</context>
+<context>
+ <name>QPluginLoader</name>
+ <message>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="-89"/>
+ <source>The plugin was not loaded.</source>
+ <translation>Přídavný modul nebyl nahrán.</translation>
+ </message>
+ <message>
+ <location line="+113"/>
+ <source>Unknown error</source>
+ <translation>Neznámá chyba</translation>
+ </message>
+</context>
+<context>
+ <name>QPrintDialog</name>
+ <message>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="-232"/>
+ <source>A0</source>
+ <translation>A0</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A1</source>
+ <translation>A1</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A2</source>
+ <translation>A2</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A3</source>
+ <translation>A3</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A4</source>
+ <translation>A4</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A5</source>
+ <translation>A5</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A6</source>
+ <translation>A6</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A7</source>
+ <translation>A7</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A8</source>
+ <translation>A8</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A9</source>
+ <translation>A9</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B0</source>
+ <translation>B0</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B1</source>
+ <translation>B1</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B2</source>
+ <translation>B2</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B3</source>
+ <translation>B3</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B4</source>
+ <translation>B4</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B5</source>
+ <translation>B5</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B6</source>
+ <translation>B6</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B7</source>
+ <translation>B7</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B8</source>
+ <translation>B8</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B9</source>
+ <translation>B9</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+266"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+1"/>
+ <source>B10</source>
+ <translation>B10</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>C5E</source>
+ <translation>C5E</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>DLE</source>
+ <translation>DLE</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+335"/>
+ <source>A6 (105 x 148 mm)</source>
+ <translation>A6 (105 x 148 mm)</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Legal (8.5 x 14 inches, 216 x 356 mm)</source>
+ <translation>Právní (8,5 x 14 palců, 216 x 356 mm)</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+2"/>
+ <source>Folio</source>
+ <translation>Folio</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Legal</source>
+ <translation>Právní</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+20"/>
+ <source>Print all</source>
+ <translation>Tisknout vše</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+112"/>
+ <location line="+13"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
+ <source>Print</source>
+ <translation>Tisk</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-733"/>
+ <source>&amp;Options &lt;&lt;</source>
+ <translation>&amp;Nastavení &lt;&lt; </translation>
+ </message>
+ <message>
+ <location line="-72"/>
+ <location line="+68"/>
+ <source>&amp;Options &gt;&gt;</source>
+ <translation>&amp;Nastavení &gt;&gt;</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-30"/>
+ <source>B6 (125 x 176 mm)</source>
+ <translation>B6 (125 x 176 mm)</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>B8 (62 x 88 mm)</source>
+ <translation>B8 (62 x 88 mm)</translation>
+ </message>
+ <message>
+ <location line="-10"/>
+ <source>A8 (52 x 74 mm)</source>
+ <translation>A8 (52 x 74 mm)</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>B9 (44 x 62 mm)</source>
+ <translation>B9 (44 x 62 mm)</translation>
+ </message>
+ <message>
+ <location line="-10"/>
+ <source>A9 (37 x 52 mm)</source>
+ <translation>A9 (37 x 52 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B0 (1000 x 1414 mm)</source>
+ <translation>B0 (1000 x 1414 mm)</translation>
+ </message>
+ <message>
+ <location line="-5"/>
+ <source>A5 (148 x 210 mm)</source>
+ <translation>A5 (148 x 210 mm)</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Tabloid (279 x 432 mm)</source>
+ <translation>Bulvární noviny/tisk (279 x 432 mm)</translation>
+ </message>
+ <message>
+ <location line="-8"/>
+ <source>B10 (31 x 44 mm)</source>
+ <translation>B10 (31 x 44 mm)</translation>
+ </message>
+ <message>
+ <location line="-8"/>
+ <source>B2 (500 x 707 mm)</source>
+ <translation>B2 (500 x 707 mm)</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-63"/>
+ <source>&amp;Print</source>
+ <translation>&amp;Tisk</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-9"/>
+ <source>A3 (297 x 420 mm)</source>
+ <translation>A3 (297 x 420 mm)</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Print selection</source>
+ <translation>Tisk výběru</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+321"/>
+ <source>Print to File (Postscript)</source>
+ <translation>Tisk do souboru (Postscript)</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-33"/>
+ <source>B4 (250 x 353 mm)</source>
+ <translation>B4 (250 x 353 mm)</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+206"/>
+ <source>%1 already exists.
+Do you want to overwrite it?</source>
+ <translation>Soubor %1 již existuje.
+Má se přepsat?</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-13"/>
+ <source>A1 (594 x 841 mm)</source>
+ <translation>A1 (594 x 841 mm)</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+4"/>
+ <source>Custom</source>
+ <translation>Stanovený uživatelem</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+10"/>
+ <source>B1 (707 x 1000 mm)</source>
+ <translation>B1 (707 x 1000 mm)</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Folio (210 x 330 mm)</source>
+ <translation>Folio (210 x 330 mm)</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="-5"/>
+ <source>Ledger</source>
+ <translation>Hlavní (účetní) kniha</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Letter</source>
+ <translation>Dopis</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-2"/>
+ <source>DLE (110 x 220 mm)</source>
+ <translation>DLE (110 x 220 mm)</translation>
+ </message>
+ <message>
+ <location line="-1"/>
+ <source>C5E (163 x 229 mm)</source>
+ <translation>C5E (163 x 229 mm)</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>B5 (176 x 250 mm, 6.93 x 9.84 inches)</source>
+ <translation>B5 (176 x 250 mm, 6.93 x 9.84 palců</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>Print range</source>
+ <translation>Tisková oblast</translation>
+ </message>
+ <message>
+ <location line="-229"/>
+ <source>File exists</source>
+ <translation>Soubor již existuje</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-158"/>
+ <source>Write %1 file</source>
+ <translation>Zapsat %1 soubor</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+181"/>
+ <source>A0 (841 x 1189 mm)</source>
+ <translation>A0 (841 x 1189 mm)</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-1"/>
+ <source>Local file</source>
+ <translation>Místní soubor</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+108"/>
+ <source>locally connected</source>
+ <translation>přímo spojeno</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+25"/>
+ <source>Ledger (432 x 279 mm)</source>
+ <translation>Hlavní (účetní) kniha (432 x 279 mm)</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+23"/>
+ <location line="+225"/>
+ <source>Aliases: %1</source>
+ <translation>Přezdívka: %1</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-48"/>
+ <source>Print to File (PDF)</source>
+ <translation>Tisk do souboru (PDF)</translation>
+ </message>
+ <message>
+ <location line="+123"/>
+ <source>Print To File ...</source>
+ <translation>Tisk do souboru...</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+4"/>
+ <source>US Common #10 Envelope (105 x 241 mm)</source>
+ <translation>US běžná #10 obálka (105 x 241 mm)</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+1"/>
+ <source>Tabloid</source>
+ <translation>Bulvární noviny</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-25"/>
+ <source>A4 (210 x 297 mm, 8.26 x 11.7 inches)</source>
+ <translation>A4 (210 x 297 mm, 8.26 x 11.7 palců)</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="-5"/>
+ <source>Executive</source>
+ <translation>Prováděcí</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+223"/>
+ <location line="+199"/>
+ <source>unknown</source>
+ <translation>Neznámý</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-184"/>
+ <source>&lt;qt&gt;Do you want to overwrite it?&lt;/qt&gt;</source>
+ <translation>&lt;qt&gt;Chcete jej přepsat?&lt;/qt&gt;</translation>
+ </message>
+ <message>
+ <location line="+203"/>
+ <source>Executive (7.5 x 10 inches, 191 x 254 mm)</source>
+ <translation>Prováděcí (7,5 x 10 palců, 191 x 254 mm)</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Letter (8.5 x 11 inches, 216 x 279 mm)</source>
+ <translation>Dopis (8,5 x 11 palců, 216 x 279 mm)</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+1"/>
+ <source>The &apos;From&apos; value cannot be greater than the &apos;To&apos; value.</source>
+ <translation>Údaj pro první stranu nesmí být větší než údaj pro poslední stranu.</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+6"/>
+ <source>US Common #10 Envelope</source>
+ <translation>US běžná #10 obálka</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+76"/>
+ <source>%1 is a directory.
+Please choose a different file name.</source>
+ <translation>%1 je adresář.
+Zvolte, prosím, pro soubor jiný název.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>File %1 is not writable.
+Please choose a different file name.</source>
+ <translation>Soubor %1 je chráněn proti zápisu.
+Zvolte, prosím, pro soubor jiný název.</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-14"/>
+ <source>B3 (353 x 500 mm)</source>
+ <translation>B3 (353 x 500 mm)</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>A7 (74 x 105 mm)</source>
+ <translation>A7 (74 x 105 mm)</translation>
+ </message>
+ <message>
+ <location line="-5"/>
+ <source>A2 (420 x 594 mm)</source>
+ <translation>A2 (420 x 594 mm)</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>B7 (88 x 125 mm)</source>
+ <translation>B7 (88 x 125 mm)</translation>
+ </message>
+</context>
+<context>
+ <name>QPrintPreviewDialog</name>
+ <message>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+246"/>
+ <source>%1%</source>
+ <translation>%1%</translation>
+ </message>
+ <message>
+ <location line="+68"/>
+ <source>Print Preview</source>
+ <translation>Náhled tisku</translation>
+ </message>
+ <message>
+ <source>Close</source>
+ <translation type="obsolete">Zavřít</translation>
+ </message>
+ <message>
+ <location line="+89"/>
+ <source>Print</source>
+ <translation>Tisk</translation>
+ </message>
+ <message>
+ <location line="-46"/>
+ <source>Fit page</source>
+ <translation>Přizpůsobit stranu</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Zoom in</source>
+ <translation>Zvětšit</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Landscape</source>
+ <translation>Formát na šířku</translation>
+ </message>
+ <message>
+ <location line="-7"/>
+ <source>Zoom out</source>
+ <translation>Zmenšit</translation>
+ </message>
+ <message>
+ <location line="-13"/>
+ <source>Fit width</source>
+ <translation>Přizpůsobit šířku</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Portrait</source>
+ <translation>Formát na výšku</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
+ <location line="+12"/>
+ <source>Page Setup</source>
+ <translation>Nastavení strany</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+29"/>
+ <source>Page setup</source>
+ <translation>Nastavení strany</translation>
+ </message>
+ <message>
+ <location line="-16"/>
+ <source>Show overview of all pages</source>
+ <translation>Ukázat přehled všech stran</translation>
+ </message>
+ <message>
+ <location line="-42"/>
+ <source>First page</source>
+ <translation>První strana</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Last page</source>
+ <translation>Poslední strana</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>Show single page</source>
+ <translation>Ukázat jednotlivé strany</translation>
+ </message>
+ <message>
+ <location line="+168"/>
+ <source>Export to PDF</source>
+ <translation>Vyvést do PDF</translation>
+ </message>
+ <message>
+ <location line="-209"/>
+ <source>Previous page</source>
+ <translation>Předchozí strana</translation>
+ </message>
+ <message>
+ <location line="-1"/>
+ <source>Next page</source>
+ <translation>Další strana</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>Show facing pages</source>
+ <translation>Ukázat strany ležící naproti</translation>
+ </message>
+ <message>
+ <location line="+170"/>
+ <source>Export to PostScript</source>
+ <translation>Vyvést do PostScriptu</translation>
+ </message>
+</context>
+<context>
+ <name>QPrintPropertiesWidget</name>
+ <message>
+ <location filename="../src/gui/dialogs/qprintpropertieswidget.ui"/>
+ <source>Form</source>
+ <translation>Formulář</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Page</source>
+ <translation>Strana</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Advanced</source>
+ <translation>Rozšířené</translation>
+ </message>
+</context>
+<context>
+ <name>QPrintSettingsOutput</name>
+ <message>
+ <location filename="../src/gui/dialogs/qprintsettingsoutput.ui"/>
+ <source>to</source>
+ <translation>do</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Form</source>
+ <translation>Formulář</translation>
+ </message>
+ <message>
+ <location/>
+ <source>None</source>
+ <translation>Žádný</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Color</source>
+ <translation>Barva</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Print all</source>
+ <translation>Tisknout vše</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Selection</source>
+ <translation>Výběr</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Long side</source>
+ <translation>Dlouhá strana</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Copies</source>
+ <translation>Počet exemplářů</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Print range</source>
+ <translation>Tisk oblasti</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Color Mode</source>
+ <translation>Barevný režim</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Options</source>
+ <translation>Volby</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Output Settings</source>
+ <translation>Nastavení výstupu</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Reverse</source>
+ <translation>Obrácený</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Grayscale</source>
+ <translation>Odstíny šedi</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Short side</source>
+ <translation>Krátká strana</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Collate</source>
+ <translation>Srovnat</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Copies:</source>
+ <translation>Počet exemplářů:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Pages from</source>
+ <translation>Strany od</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Duplex Printing</source>
+ <translation>Zdvojený tisk</translation>
+ </message>
+</context>
+<context>
+ <name>QPrintWidget</name>
+ <message>
+ <location filename="../src/gui/dialogs/qprintwidget.ui"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Form</source>
+ <translation>Formulář</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Type:</source>
+ <translation>Typ:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Name:</source>
+ <translation>&amp;Název:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Output &amp;file:</source>
+ <translation>Výstupní &amp;soubor:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>P&amp;roperties</source>
+ <translation>&amp;Vlastnosti</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Preview</source>
+ <translation>Náhled</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Printer</source>
+ <translation>Tiskárna</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Location:</source>
+ <translation>Umístění:</translation>
+ </message>
+</context>
+<context>
+ <name>QProcess</name>
+ <message>
+ <location filename="../src/corelib/io/qprocess.cpp" line="+954"/>
+ <location line="+826"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+763"/>
+ <source>Error writing to process</source>
+ <translation>Zápis do procesu se nezdařil</translation>
+ </message>
+ <message>
+ <location line="+203"/>
+ <source>No program defined</source>
+ <translation>Nestanoven žádný program</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="+653"/>
+ <source>Resource error (fork failure): %1</source>
+ <translation>Potíže se zdroji (selhání rozcestí - &quot;fork failure&quot;): %1</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/io/qprocess.cpp" line="-1128"/>
+ <location line="+52"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="-190"/>
+ <location line="+50"/>
+ <source>Error reading from process</source>
+ <translation>Čtení z procesu se nezdařilo</translation>
+ </message>
+ <message>
+ <source>Process failed to start</source>
+ <translation type="obsolete">Spuštění procesu se nezdařilo</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="-251"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="-486"/>
+ <source>Could not open input redirection for reading</source>
+ <translation>Vstupní přesměrování se nepodařilo otevřít pro čtení</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+20"/>
+ <source>Could not open output redirection for writing</source>
+ <translation>Výstupní přesměrování se nepodařilo otevřít pro zápis</translation>
+ </message>
+ <message>
+ <location line="+491"/>
+ <location line="+52"/>
+ <location line="+74"/>
+ <location line="+66"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+406"/>
+ <location line="+50"/>
+ <location line="+75"/>
+ <location line="+42"/>
+ <location line="+54"/>
+ <source>Process operation timed out</source>
+ <translation>Překročení času u procesu</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/io/qprocess.cpp" line="+117"/>
+ <source>Process crashed</source>
+ <translation>Proces spadl</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="-381"/>
+ <source>Process failed to start: %1</source>
+ <translation>Proces se nepodařilo spustit: %1</translation>
+ </message>
+</context>
+<context>
+ <name>QProgressDialog</name>
+ <message>
+ <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+196"/>
+ <source>Cancel</source>
+ <translation>Zrušit</translation>
+ </message>
+</context>
+<context>
+ <name>QPushButton</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-4"/>
+ <source>Open</source>
+ <translation>Otevřít</translation>
+ </message>
+</context>
+<context>
+ <name>QRadioButton</name>
+ <message>
+ <location line="+12"/>
+ <source>Check</source>
+ <translation>Označit křížkem</translation>
+ </message>
+</context>
+<context>
+ <name>QRegExp</name>
+ <message>
+ <location filename="../src/corelib/tools/qregexp.cpp" line="+68"/>
+ <source>bad lookahead syntax</source>
+ <translation>nesprávná syntax pro plánování dopředu</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>no error occurred</source>
+ <translation>žádná chyba</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>missing left delim</source>
+ <translation>chybějící levé vymezení</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <source>bad char class syntax</source>
+ <translation>nesprávná syntax pro třídu znaku</translation>
+ </message>
+ <message>
+ <location line="-1"/>
+ <source>disabled feature used</source>
+ <translation>byla použita zakázaná vlastnost</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>invalid octal value</source>
+ <translation>neplatná osmičková hodnota</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>invalid interval</source>
+ <translation>neplatný interval</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>invalid category</source>
+ <translation>neplatná skupina</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>bad repetition syntax</source>
+ <translation>nesprávná syntax pro opakování</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>met internal limit</source>
+ <translation>dosažena vnitřní mez</translation>
+ </message>
+ <message>
+ <location line="-1"/>
+ <source>unexpected end</source>
+ <translation>neočekávaný konec</translation>
+ </message>
+</context>
+<context>
+ <name>QSQLite2Driver</name>
+ <message>
+ <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+449"/>
+ <source>Unable to commit transaction</source>
+ <translation>Transakci se nepodařilo provést (operace &apos;commit&apos;, odeslání, se nezdařila)</translation>
+ </message>
+ <message>
+ <source>Error to open database</source>
+ <translation type="obsolete">Nepodařilo se otevřít spojení s datatabází</translation>
+ </message>
+ <message>
+ <source>Unable to rollback Transaction</source>
+ <translation type="obsolete">Transakci se nepodařilo zvrátit (operace &apos;rollback&apos;, zvrácení, se nezdařila)</translation>
+ </message>
+ <message>
+ <location line="-17"/>
+ <source>Unable to begin transaction</source>
+ <translation>Transakci se nepodařilo spustit</translation>
+ </message>
+ <message>
+ <location line="-41"/>
+ <source>Error opening database</source>
+ <translation>Nepodařilo se otevřít spojení s databází</translation>
+ </message>
+ <message>
+ <location line="+75"/>
+ <source>Unable to rollback transaction</source>
+ <translation>Transakci se nepodařilo zvrátit (operace &apos;rollback&apos;, zvrácení, se nezdařila)</translation>
+ </message>
+</context>
+<context>
+ <name>QSQLite2Result</name>
+ <message>
+ <location line="-176"/>
+ <source>Unable to execute statement</source>
+ <translation>Příkaz se nepodařilo provést</translation>
+ </message>
+ <message>
+ <location line="-143"/>
+ <source>Unable to fetch results</source>
+ <translation>Výsledek se nepodařilo natáhnout</translation>
+ </message>
+</context>
+<context>
+ <name>QSQLiteDriver</name>
+ <message>
+ <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+590"/>
+ <source>Unable to commit transaction</source>
+ <translation>Transakci se nepodařilo provést (operace &apos;commit&apos;, odeslání, se nezdařila)</translation>
+ </message>
+ <message>
+ <location line="-35"/>
+ <source>Error closing database</source>
+ <translation>Nepodařilo se uzavřít spojení s datatabází</translation>
+ </message>
+ <message>
+ <location line="-11"/>
+ <source>Error opening database</source>
+ <translation>Nepodařilo se otevřít spojení s databází</translation>
+ </message>
+ <message>
+ <location line="+61"/>
+ <source>Unable to rollback transaction</source>
+ <translation>Transakci se nepodařilo zvrátit (operace &apos;rollback&apos;, zvrácení, se nezdařila)</translation>
+ </message>
+ <message>
+ <location line="-30"/>
+ <source>Unable to begin transaction</source>
+ <translation>Transakci se nepodařilo spustit</translation>
+ </message>
+</context>
+<context>
+ <name>QSQLiteResult</name>
+ <message>
+ <location line="-378"/>
+ <location line="+66"/>
+ <location line="+8"/>
+ <source>Unable to fetch row</source>
+ <translation>Řádek se nepodařilo natáhnout</translation>
+ </message>
+ <message>
+ <location line="-73"/>
+ <source>No query</source>
+ <translation>Žádný požadavek</translation>
+ </message>
+ <message>
+ <location line="+132"/>
+ <source>Unable to execute statement</source>
+ <translation>Příkaz se nepodařilo provést</translation>
+ </message>
+ <message>
+ <location line="+65"/>
+ <source>Unable to bind parameters</source>
+ <translation>Parametry se nepodařilo spojit</translation>
+ </message>
+ <message>
+ <location line="-45"/>
+ <source>Unable to reset statement</source>
+ <translation>Příkaz se nepodařilo znovu nastavit</translation>
+ </message>
+ <message>
+ <location line="+52"/>
+ <source>Parameter count mismatch</source>
+ <translation>Počet parametrů není správný</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptBreakpointsModel</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptbreakpointsmodel.cpp" line="+455"/>
+ <source>ID</source>
+ <translation>ID</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Location</source>
+ <translation>Umístění</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Condition</source>
+ <translation>Podmínka</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Ignore-count</source>
+ <translation>Spustit po</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Single-shot</source>
+ <translation>Spustit jednou</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Hit-count</source>
+ <translation>Spuštěný</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptBreakpointsWidget</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="+298"/>
+ <source>New</source>
+ <translation>Nový</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Delete</source>
+ <translation>Smazat</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptDebugger</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptdebugger.cpp" line="+885"/>
+ <location line="+1013"/>
+ <source>Go to Line</source>
+ <translation>Jít na řádek</translation>
+ </message>
+ <message>
+ <location line="-1012"/>
+ <source>Line:</source>
+ <translation>Řádek:</translation>
+ </message>
+ <message>
+ <location line="+791"/>
+ <source>Interrupt</source>
+ <translation>Přerušit</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Shift+F5</source>
+ <translation>Shift+F5</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Continue</source>
+ <translation>Pokračovat</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>F5</source>
+ <translation>F5</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Step Into</source>
+ <translation>Krok do</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>F11</source>
+ <translation>F11</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Step Over</source>
+ <translation>Krok přes</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>F10</source>
+ <translation>F10</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Step Out</source>
+ <translation>Krok ven</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Shift+F11</source>
+ <translation>Shift+F11</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Run to Cursor</source>
+ <translation>Provést po kurzor</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Ctrl+F10</source>
+ <translation>Ctrl+F10</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Run to New Script</source>
+ <translation>Provést po nový skript</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Toggle Breakpoint</source>
+ <translation>Přepnout bod přerušení (zastavení)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>F9</source>
+ <translation>F9</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Clear Debug Output</source>
+ <translation>Smazat výstup ladění</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Clear Error Log</source>
+ <translation>Smazat výstupní zápis s chybami</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Clear Console</source>
+ <translation>Smazat konzoli</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>&amp;Find in Script...</source>
+ <translation>&amp;Hledat ve skriptu...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Ctrl+F</source>
+ <translation>Ctrl+F</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Find &amp;Next</source>
+ <translation>Najít &amp;další</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>F3</source>
+ <translation>F3</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Find &amp;Previous</source>
+ <translation>Najít &amp;předchozí</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Shift+F3</source>
+ <translation>Shift+F3</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Ctrl+G</source>
+ <translation>Ctrl+G</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Debug</source>
+ <translation>Ladit</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptDebuggerCodeFinderWidget</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptdebuggercodefinderwidget.cpp" line="+141"/>
+ <source>Close</source>
+ <translation>Zavřít</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Previous</source>
+ <translation>Předchozí</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Next</source>
+ <translation>Další</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Case Sensitive</source>
+ <translation>Rozlišující velká a malá písmena</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Whole words</source>
+ <translation>Celá slova</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>&lt;img src=&quot;:/qt/scripttools/debugging/images/wrap.png&quot;&gt;&amp;nbsp;Search wrapped</source>
+ <translation>&lt;img src=&quot;:/qt/scripttools/debugging/images/wrap.png&quot;&gt;&amp;nbsp;Hledání dosáhlo konce</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptDebuggerLocalsModel</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp" line="+872"/>
+ <source>Name</source>
+ <translation>Název</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Value</source>
+ <translation>Hodnota</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptDebuggerStackModel</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptdebuggerstackmodel.cpp" line="+161"/>
+ <source>Level</source>
+ <translation>Úroveň</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Name</source>
+ <translation>Název</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Location</source>
+ <translation>Umístění</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptEdit</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptedit.cpp" line="+411"/>
+ <source>Toggle Breakpoint</source>
+ <translation>Přepnout bod zastavení</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Disable Breakpoint</source>
+ <translation>Vypnout bod zastavení</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Enable Breakpoint</source>
+ <translation>Zapnout bod zastavení</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Breakpoint Condition:</source>
+ <translation>Podmínka zastavení:</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptEngineDebugger</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptenginedebugger.cpp" line="+523"/>
+ <source>Loaded Scripts</source>
+ <translation>Nahrané skripty</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Breakpoints</source>
+ <translation>Body zastavení</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Stack</source>
+ <translation>Zásobník</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Locals</source>
+ <translation>Místní proměnné</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Console</source>
+ <translation>Konzole</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Debug Output</source>
+ <translation>Výstup ladění</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Error Log</source>
+ <translation>Výstupní zápis s chybami</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Search</source>
+ <translation>Hledat</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>View</source>
+ <translation>Pohled</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Qt Script Debugger</source>
+ <translation>Qt ladění skriptů</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptNewBreakpointWidget</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="-223"/>
+ <source>Close</source>
+ <translation>Zavřít</translation>
+ </message>
+</context>
+<context>
+ <name>QScrollBar</name>
+ <message>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+456"/>
+ <source>Top</source>
+ <translation>Začátek</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Scroll down</source>
+ <translation>Projíždět dolů</translation>
+ </message>
+ <message>
+ <location line="-9"/>
+ <source>Scroll here</source>
+ <translation>Projíždět až sem</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Scroll left</source>
+ <translation>Projíždět doleva</translation>
+ </message>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+143"/>
+ <source>Line up</source>
+ <translation>O jeden řádek nahoru</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Line down</source>
+ <translation>O jeden řádek dolů</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="-5"/>
+ <source>Bottom</source>
+ <translation>Konec</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-6"/>
+ <source>Page up</source>
+ <translation>O stranu nahoru</translation>
+ </message>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+2"/>
+ <source>Position</source>
+ <translation>Poloha</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+1"/>
+ <source>Page right</source>
+ <translation>O stranu doprava</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Scroll up</source>
+ <translation>Projíždět nahoru</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Scroll right</source>
+ <translation>Projíždět doprava</translation>
+ </message>
+ <message>
+ <location line="-7"/>
+ <source>Left edge</source>
+ <translation>Levý okraj</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+2"/>
+ <source>Page down</source>
+ <translation>O stranu dolů</translation>
+ </message>
+ <message>
+ <location line="-1"/>
+ <source>Page left</source>
+ <translation>O stranu doleva</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>Right edge</source>
+ <translation>Pravý okraj</translation>
+ </message>
+</context>
+<context>
+ <name>QSharedMemory</name>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+88"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+74"/>
+ <source>%1: doesn&apos;t exist</source>
+ <translation>%1: Neexistuje</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>%1: UNIX key file doesn&apos;t exist</source>
+ <translation>%1: Soubor s unixovým klíčem neexistuje</translation>
+ </message>
+ <message>
+ <location line="+78"/>
+ <source>%1: system-imposed size restrictions</source>
+ <translation>%1: Bylo dosaženo systémem podmíněné meze velikosti</translation>
+ </message>
+ <message>
+ <source>%1: unix key file doesn&apos;t exists</source>
+ <translation type="obsolete">%1: Soubor s unixovým klíčem neexistuje</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="+71"/>
+ <source>%1: doesn&apos;t exists</source>
+ <translation>%1: Neexistuje</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="-86"/>
+ <source>%1: key is empty</source>
+ <translation>%1: Neplatný údaj u klíče (prázdný)</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="+44"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+67"/>
+ <source>%1: key error</source>
+ <translation>%1: Chybný klíč</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+304"/>
+ <source>%1: create size is less then 0</source>
+ <translation>%1: Údaj o velikosti vytvoření je menší než nula</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="-48"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="-35"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-76"/>
+ <source>%1: already exists</source>
+ <translation>%1: Již existuje</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+14"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+25"/>
+ <source>%1: unknown error %2</source>
+ <translation>%1: Neznámá chyba %2</translation>
+ </message>
+ <message>
+ <location line="-11"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-12"/>
+ <source>%1: invalid size</source>
+ <translation>%1: Neplatná velikost</translation>
+ </message>
+ <message>
+ <location line="+67"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+87"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+27"/>
+ <source>%1: unable to make key</source>
+ <translation>%1: Nepodařilo se vytvořit klíč</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="-81"/>
+ <source>%1: unable to set key on lock</source>
+ <translation>%1: Nepodařilo se nastavit klíč pro uzavření</translation>
+ </message>
+ <message>
+ <location line="+271"/>
+ <source>%1: unable to unlock</source>
+ <translation>%1: Uzavření se nepodařilo zrušit</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="-59"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="-105"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-18"/>
+ <source>%1: permission denied</source>
+ <translation>%1: Přístup odepřen</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+54"/>
+ <source>%1: ftok failed</source>
+ <translation>%1: Vyvolání ftok se nezdařilo</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="-4"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="-40"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-4"/>
+ <source>%1: out of resources</source>
+ <translation>%1: Nejsou již použitelné zdroje</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+164"/>
+ <source>%1: not attached</source>
+ <translation>%1: Nepřipojen</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+90"/>
+ <source>%1: size query failed</source>
+ <translation>%1: Vyhledání velikosti se nezdařilo</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="-22"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+155"/>
+ <source>%1: unable to lock</source>
+ <translation>%1: Uzavření se nezdařilo</translation>
+ </message>
+</context>
+<context>
+ <name>QShortcut</name>
+ <message>
+ <location filename="../src/gui/kernel/qkeysequence.cpp" line="+1143"/>
+ <source>+</source>
+ <translation>+</translation>
+ </message>
+ <message>
+ <location line="-664"/>
+ <source>No</source>
+ <translation>Ne</translation>
+ </message>
+ <message>
+ <location line="-71"/>
+ <source>Up</source>
+ <translation>Nahoru</translation>
+ </message>
+ <message>
+ <location line="+644"/>
+ <location line="+135"/>
+ <source>Alt</source>
+ <translation>Alt</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>F%1</source>
+ <translation>F%1</translation>
+ </message>
+ <message>
+ <location line="-803"/>
+ <source>Del</source>
+ <translation>Delete</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>End</source>
+ <translation>End</translation>
+ </message>
+ <message>
+ <location line="-12"/>
+ <source>Esc</source>
+ <translation>Esc</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Ins</source>
+ <translation>Insert</translation>
+ </message>
+ <message>
+ <location line="-5"/>
+ <source>Tab</source>
+ <translation>Tab</translation>
+ </message>
+ <message>
+ <location line="+83"/>
+ <source>Yes</source>
+ <translation>Ano</translation>
+ </message>
+ <message>
+ <location line="-58"/>
+ <source>Back</source>
+ <translation>Zpět</translation>
+ </message>
+ <message>
+ <location line="+67"/>
+ <source>Call</source>
+ <translation>Volání</translation>
+ </message>
+ <message>
+ <location line="+563"/>
+ <location line="+135"/>
+ <source>Ctrl</source>
+ <translation>Ctrl</translation>
+ </message>
+ <message>
+ <location line="-775"/>
+ <source>Down</source>
+ <translation>Dolů</translation>
+ </message>
+ <message>
+ <location line="+79"/>
+ <source>Flip</source>
+ <translation>Obrátit</translation>
+ </message>
+ <message>
+ <location line="-72"/>
+ <source>Help</source>
+ <translation>Nápověda</translation>
+ </message>
+ <message>
+ <location line="-12"/>
+ <source>Home</source>
+ <translation>Home</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Left</source>
+ <translation>Vlevo</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Menu</source>
+ <translation>Menu</translation>
+ </message>
+ <message>
+ <location line="+637"/>
+ <location line="+130"/>
+ <source>Meta</source>
+ <translation>Meta</translation>
+ </message>
+ <message>
+ <location line="-772"/>
+ <source>PgUp</source>
+ <translation>PgUp</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Stop</source>
+ <translation>Stop</translation>
+ </message>
+ <message>
+ <location line="-23"/>
+ <source>Enter</source>
+ <translation>Enter</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Pause</source>
+ <translation>Pause</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Print</source>
+ <translation>Print</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Right</source>
+ <translation>Vpravo</translation>
+ </message>
+ <message>
+ <location line="+642"/>
+ <location line="+138"/>
+ <source>Shift</source>
+ <translation>Shift</translation>
+ </message>
+ <message>
+ <location line="-796"/>
+ <source>Space</source>
+ <translation>Mezerník</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>Media Record</source>
+ <translation>Nahrát</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Print Screen</source>
+ <translation>Print Screen</translation>
+ </message>
+ <message>
+ <location line="-32"/>
+ <source>Treble Down</source>
+ <translation>Výšky -</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Scroll Lock</source>
+ <translation>Scroll Lock</translation>
+ </message>
+ <message>
+ <location line="-45"/>
+ <source>Volume Down</source>
+ <translation>Hlasitost -</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Volume Mute</source>
+ <translation>Ztlumit hlasitost</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Media Previous</source>
+ <translation>Předchozí</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Home Page</source>
+ <translation>Domovská stránka</translation>
+ </message>
+ <message>
+ <location line="-11"/>
+ <source>Volume Up</source>
+ <translation>Hlasitost +</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>Launch (6)</source>
+ <translation>Spustit (6)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (7)</source>
+ <translation>Spustit (7)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (8)</source>
+ <translation>Spustit (8)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (9)</source>
+ <translation>Spustit (9)</translation>
+ </message>
+ <message>
+ <location line="-7"/>
+ <source>Launch (2)</source>
+ <translation>Spustit (2)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (3)</source>
+ <translation>Spustit (3)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (4)</source>
+ <translation>Spustit (4)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (5)</source>
+ <translation>Spustit (5)</translation>
+ </message>
+ <message>
+ <location line="-5"/>
+ <source>Launch (0)</source>
+ <translation>Spustit (0)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (1)</source>
+ <translation>Spustit (1)</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Launch (F)</source>
+ <translation>Spustit (F)</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <source>Launch (B)</source>
+ <translation>Spustit (B)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (C)</source>
+ <translation>Spustit (C)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (D)</source>
+ <translation>Spustit (D)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (E)</source>
+ <translation>Spustit (E)</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <source>Launch (A)</source>
+ <translation>Spustit (A)</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Delete</source>
+ <translation>Delete</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Escape</source>
+ <translation>Escape</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Hangup</source>
+ <translation>Pověsit</translation>
+ </message>
+ <message>
+ <location line="-18"/>
+ <source>Insert</source>
+ <translation>Insert</translation>
+ </message>
+ <message>
+ <location line="-43"/>
+ <source>Bass Boost</source>
+ <translation>Zesílení basů</translation>
+ </message>
+ <message>
+ <location line="-15"/>
+ <source>PgDown</source>
+ <translation>PgDown</translation>
+ </message>
+ <message>
+ <location line="-14"/>
+ <source>Return</source>
+ <translation>Return</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Search</source>
+ <translation>Hledat</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Select</source>
+ <translation>Vybrat</translation>
+ </message>
+ <message>
+ <location line="-73"/>
+ <source>SysReq</source>
+ <translation>SysReq</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>NumLock</source>
+ <translation>NumLock</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>ScrollLock</source>
+ <translation>ScrollLock</translation>
+ </message>
+ <message>
+ <location line="+68"/>
+ <source>Context1</source>
+ <translation>Kontext1</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Context2</source>
+ <translation>Kontext2</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Context3</source>
+ <translation>Kontext3</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Context4</source>
+ <translation>Kontext4</translation>
+ </message>
+ <message>
+ <location line="-22"/>
+ <source>Page Up</source>
+ <translation>Page Up</translation>
+ </message>
+ <message>
+ <location line="-23"/>
+ <source>Open URL</source>
+ <translation>Otevřít URL</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Caps Lock</source>
+ <translation>Caps Lock</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>System Request</source>
+ <translation>Žádost systému</translation>
+ </message>
+ <message>
+ <location line="-60"/>
+ <source>CapsLock</source>
+ <translation>CapsLock</translation>
+ </message>
+ <message>
+ <location line="-17"/>
+ <source>Backtab</source>
+ <translation>Zpět-Tab</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <source>Bass Up</source>
+ <translation>Basy +</translation>
+ </message>
+ <message>
+ <location line="-5"/>
+ <source>Refresh</source>
+ <translation>Obnovit</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Launch Mail</source>
+ <translation>Spustit e-mail</translation>
+ </message>
+ <message>
+ <location line="-45"/>
+ <source>Backspace</source>
+ <translation>Backspace</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <source>Bass Down</source>
+ <translation>Basy -</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Standby</source>
+ <translation>V pohotovosti</translation>
+ </message>
+ <message>
+ <location line="-10"/>
+ <source>Treble Up</source>
+ <translation>Výšky +</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>Num Lock</source>
+ <translation>Num Lock</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Number Lock</source>
+ <translation>Zahlen-Feststelltaste</translation>
+ </message>
+ <message>
+ <location line="-30"/>
+ <source>Favorites</source>
+ <translation>Oblíbené</translation>
+ </message>
+ <message>
+ <location line="-17"/>
+ <source>Forward</source>
+ <translation>Dopředu</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Page Down</source>
+ <translation>Obraz dolů</translation>
+ </message>
+ <message>
+ <location line="-33"/>
+ <source>Media Play</source>
+ <translation>Přehrávání</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Media Stop</source>
+ <translation>Zastavit přehrávání</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Media Next</source>
+ <translation>Další</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Launch Media</source>
+ <translation>Spustit přehrávač</translation>
+ </message>
+</context>
+<context>
+ <name>QSlider</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+153"/>
+ <source>Page up</source>
+ <translation>O stranu nahoru</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Position</source>
+ <translation>Poloha</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Page right</source>
+ <translation>O stranu doprava</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Page down</source>
+ <translation>O stranu dolů</translation>
+ </message>
+ <message>
+ <location line="-5"/>
+ <source>Page left</source>
+ <translation>O stranu doleva</translation>
+ </message>
+</context>
+<context>
+ <name>QSocks5SocketEngine</name>
+ <message>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+710"/>
+ <source>Network operation timed out</source>
+ <translation>Časový limit pro síťovou operaci byl překročen</translation>
+ </message>
+ <message>
+ <location line="-773"/>
+ <source>Connection to proxy closed prematurely</source>
+ <translation>Proxy server předčasně ukončil spojení</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Proxy authentication failed: %1</source>
+ <translation>Autentizace u proxy serveru se nezdařila: %1</translation>
+ </message>
+ <message>
+ <location line="-1"/>
+ <source>Proxy authentication failed</source>
+ <translation>Autentizace u proxy serveru se nezdařila</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>General SOCKSv5 server failure</source>
+ <translation>Všeobecná chyba při spojení s SOCKSv5 serverem</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>Unknown SOCKSv5 proxy error code 0x%1</source>
+ <translation>Byl obdržen neznámý chybový kód od SOCKSv5 proxy serveru: 0x%1</translation>
+ </message>
+ <message>
+ <location line="-29"/>
+ <source>Connection not allowed by SOCKSv5 server</source>
+ <translation>SOCKSv5 server odmítl spojení</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>SOCKSv5 command not supported</source>
+ <translation>Tento SOCKSv5 příkaz není podporován</translation>
+ </message>
+ <message>
+ <location line="-70"/>
+ <source>Connection to proxy timed out</source>
+ <translation>Při spojení s proxy serverem byl překročen časový limit</translation>
+ </message>
+ <message>
+ <location line="-5"/>
+ <source>Proxy host not found</source>
+ <translation>Proxy server se nepodařilo najit</translation>
+ </message>
+ <message>
+ <location line="+71"/>
+ <source>TTL expired</source>
+ <translation>TTL uplynul</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Address type not supported</source>
+ <translation>Tento typ adresy není podporován</translation>
+ </message>
+ <message>
+ <location line="-87"/>
+ <source>Connection to proxy refused</source>
+ <translation>Proxy server odmítl navázání spojení</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>SOCKS version 5 protocol error</source>
+ <translation>Chyba protokolu (SOCKS verze 5)</translation>
+ </message>
+</context>
+<context>
+ <name>QSoftKeyManager</name>
+ <message>
+ <location filename="../src/gui/kernel/qsoftkeymanager.cpp" line="+78"/>
+ <source>Ok</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Select</source>
+ <translation>Vybrat</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Done</source>
+ <translation>Hotovo</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Options</source>
+ <translation>Volby</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Cancel</source>
+ <translation>Zrušit</translation>
+ </message>
+ <message>
+ <location line="+151"/>
+ <source>Exit</source>
+ <translation>Ukončit</translation>
+ </message>
+</context>
+<context>
+ <name>QSpinBox</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-567"/>
+ <source>Less</source>
+ <translation>Méně</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>More</source>
+ <translation>Více</translation>
+ </message>
+</context>
+<context>
+ <name>QSql</name>
+ <message>
+ <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+893"/>
+ <location line="+16"/>
+ <location line="+36"/>
+ <source>No</source>
+ <translation>Ne</translation>
+ </message>
+ <message>
+ <location line="-53"/>
+ <location line="+16"/>
+ <location line="+36"/>
+ <source>Yes</source>
+ <translation>Ano</translation>
+ </message>
+ <message>
+ <location line="-34"/>
+ <source>Cancel</source>
+ <translation>Zrušit</translation>
+ </message>
+ <message>
+ <location line="-20"/>
+ <source>Delete</source>
+ <translation>Delete</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Insert</source>
+ <translation>Vložit</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Update</source>
+ <translation>Obnovit</translation>
+ </message>
+ <message>
+ <location line="-12"/>
+ <source>Delete this record?</source>
+ <translation>Smazat tento zápis?</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Save edits?</source>
+ <translation>Uložit změny?</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Confirm</source>
+ <translation>Potvrdit</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Cancel your edits?</source>
+ <translation>Zrušit změny?</translation>
+ </message>
+</context>
+<context>
+ <name>QSslSocket</name>
+ <message>
+ <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+362"/>
+ <source>Error creating SSL session: %1</source>
+ <translation>Nepodařilo se vytvořit sezení SSL: %1</translation>
+ </message>
+ <message>
+ <location line="-15"/>
+ <source>Error creating SSL session, %1</source>
+ <translation>Nepodařilo se vytvořit sezení SSL, %1</translation>
+ </message>
+ <message>
+ <location line="-46"/>
+ <source>Cannot provide a certificate with no key, %1</source>
+ <translation>Bez klíče nelze poskytnout žádné osvědčení k volnému použití, %1</translation>
+ </message>
+ <message>
+ <location line="+245"/>
+ <source>Unable to write data: %1</source>
+ <translation>Data se nepodařilo zapsat: %1</translation>
+ </message>
+ <message>
+ <location line="+215"/>
+ <source>Error during SSL handshake: %1</source>
+ <translation>Během startu SSL protokolu se vyskytla chyba: %1</translation>
+ </message>
+ <message>
+ <location line="-453"/>
+ <source>Error loading local certificate, %1</source>
+ <translation>Nepodařilo se nahrát místní osvědčení, %1</translation>
+ </message>
+ <message>
+ <location line="-23"/>
+ <source>Invalid or empty cipher list (%1)</source>
+ <translation>Neplatný či prázdný seznam se šifrovacími klíči (%1)</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>Private key does not certificate public key, %1</source>
+ <translation>Vystavení osvědčení k veřejnému klíči přes soukromý klíč se nezdařilo, %1</translation>
+ </message>
+ <message>
+ <location line="-67"/>
+ <source>Error creating SSL context (%1)</source>
+ <translation>Nepodařilo se vytvořit žádný kontext SSL (%1)</translation>
+ </message>
+ <message>
+ <location line="+405"/>
+ <source>Error while reading: %1</source>
+ <translation>Při čtení se vyskytla chyba: %1</translation>
+ </message>
+ <message>
+ <location line="-345"/>
+ <source>Error loading private key, %1</source>
+ <translation>Soukromý klíč se nepodařilo nahrát, %1</translation>
+ </message>
+</context>
+<context>
+ <name>QStateMachine</name>
+ <message>
+ <location filename="../src/corelib/statemachine/qstatemachine.cpp" line="+998"/>
+ <source>Missing initial state in compound state &apos;%1&apos;</source>
+ <translation>Chybí počáteční stav složeného stavu &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Missing default state in history state &apos;%1&apos;</source>
+ <translation>Chybí výchozí stav ve vývoji stavu &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>No common ancestor for targets and source of transition from state &apos;%1&apos;</source>
+ <translation>Cíl a zdroj přechodu ze stavu &apos;%1&apos; nemají žádný společný původ</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Unknown error</source>
+ <translation>Neznámá chyba</translation>
+ </message>
+</context>
+<context>
+ <name>QSystemSemaphore</name>
+ <message>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-46"/>
+ <source>%1: does not exist</source>
+ <translation>%1: Neexistuje</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <source>%1: already exists</source>
+ <translation>%1: Již existuje</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+73"/>
+ <source>%1: unknown error %2</source>
+ <translation>%1: Neznámá chyba %2</translation>
+ </message>
+ <message>
+ <location line="-17"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="-3"/>
+ <source>%1: permission denied</source>
+ <translation>%1: Přístup odepřen</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="-4"/>
+ <source>%1: out of resources</source>
+ <translation>%1: Nejsou již použitelné zdroje</translation>
+ </message>
+</context>
+<context>
+ <name>QTDSDriver</name>
+ <message>
+ <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
+ <source>Unable to open connection</source>
+ <translation>Nepodařilo se otevřít spojení s databází</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Unable to use database</source>
+ <translation>Datatbázi se nepodařilo použít</translation>
+ </message>
+</context>
+<context>
+ <name>QTabBar</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="-326"/>
+ <source>Scroll Left</source>
+ <translation>Projíždět doleva</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Scroll Right</source>
+ <translation>Projíždět doprava</translation>
+ </message>
+</context>
+<context>
+ <name>QTcpServer</name>
+ <message>
+ <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
+ <source>Operation on socket is not supported</source>
+ <translation>Tato zásuvková (socket) operace není podporována</translation>
+ </message>
+</context>
+<context>
+ <name>QTextControl</name>
+ <message>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+2013"/>
+ <source>Cu&amp;t</source>
+ <translation>Vyj&amp;mout</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Copy</source>
+ <translation>&amp;Kopírovat</translation>
+ </message>
+ <message>
+ <location line="-9"/>
+ <source>&amp;Redo</source>
+ <translation>&amp;Znovu</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>&amp;Undo</source>
+ <translation>&amp;Zpět</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>&amp;Paste</source>
+ <translation>&amp;Vložit</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Delete</source>
+ <translation>Smazat</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Select All</source>
+ <translation>Vybrat vše</translation>
+ </message>
+ <message>
+ <location line="-16"/>
+ <source>Copy &amp;Link Location</source>
+ <translation>&amp;Kopírovat adresu odkazu</translation>
+ </message>
+</context>
+<context>
+ <name>QToolButton</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+312"/>
+ <location line="+8"/>
+ <source>Open</source>
+ <translation>Otevřít</translation>
+ </message>
+ <message>
+ <location line="-10"/>
+ <location line="+6"/>
+ <source>Press</source>
+ <translation>Stisknout</translation>
+ </message>
+</context>
+<context>
+ <name>QUdpSocket</name>
+ <message>
+ <location filename="../src/network/socket/qudpsocket.cpp" line="+179"/>
+ <source>This platform does not support IPv6</source>
+ <translation>Tato patforma nepodpotuje IPv6</translation>
+ </message>
+</context>
+<context>
+ <name>QUndoGroup</name>
+ <message>
+ <location filename="../src/gui/util/qundogroup.cpp" line="+413"/>
+ <source>Redo</source>
+ <translation>Znovu</translation>
+ </message>
+ <message>
+ <location line="-28"/>
+ <source>Undo</source>
+ <translation>Zpět</translation>
+ </message>
+</context>
+<context>
+ <name>QUndoModel</name>
+ <message>
+ <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
+ <source>&lt;empty&gt;</source>
+ <translation>&lt;prázdný&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>QUndoStack</name>
+ <message>
+ <location filename="../src/gui/util/qundostack.cpp" line="+859"/>
+ <source>Redo</source>
+ <translation>Znovu</translation>
+ </message>
+ <message>
+ <location line="-27"/>
+ <source>Undo</source>
+ <translation>Zpět</translation>
+ </message>
+</context>
+<context>
+ <name>QUnicodeControlCharacterMenu</name>
+ <message>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+906"/>
+ <source>RLE Start of right-to-left embedding</source>
+ <translation>RLE Začátek zapuštění zprava doleva (right-to-left embedding)</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>ZWSP Zero width space</source>
+ <translation>ZWSP Prostor s nulovou šířkou (Zero width space)</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Insert Unicode control character</source>
+ <translation>Vložit kontrolní znak Unicode</translation>
+ </message>
+ <message>
+ <location line="-8"/>
+ <source>LRO Start of left-to-right override</source>
+ <translation>LRO Začátek zrušení zleva doprava (left-to-right override)</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>LRE Start of left-to-right embedding</source>
+ <translation>LRE Začátek zapuštění zleva doprava (right-to-left embedding)</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <source>RLM Right-to-left mark</source>
+ <translation>RLM Značka zprava doleva (Right-to-left mark)</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>PDF Pop directional formatting</source>
+ <translation>PDF Vsunout směrové formátování (Pop directional formatting)</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>ZWNJ Zero width non-joiner</source>
+ <translation>ZWNJ Nespojovač s nulovou šířkou (Zero width non-joiner)</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>RLO Start of right-to-left override</source>
+ <translation>RLO Začátek zrušení zprava doleva (right-to-left override)</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>ZWJ Zero width joiner</source>
+ <translation>ZWJ Spojovač s nulovou šířkou (Zero width joiner)</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>LRM Left-to-right mark</source>
+ <translation>LRM Značka zleva doprava (Left-to-right mark)</translation>
+ </message>
+</context>
+<context>
+ <name>QWebFrame</name>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+730"/>
+ <source>Request blocked</source>
+ <translation>Požadavek byl odmítnut</translation>
+ </message>
+ <message>
+ <location line="-19"/>
+ <source>Request cancelled</source>
+ <translation>Požadavek byl zrušen</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Cannot show URL</source>
+ <translation>Adresu (URL) nelze ukázat</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Frame load interrupted by policy change</source>
+ <translation>Nahrání rámce bylo přerušeno změnou směrnice</translation>
+ </message>
+ <message>
+ <source>Frame load interruped by policy change</source>
+ <translation type="obsolete">Nahrání rámce bylo přerušeno změnou směrnice</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>File does not exist</source>
+ <translation>Soubor neexistuje</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>Cannot show mimetype</source>
+ <translation>Tento mime typ nelze ukázat</translation>
+ </message>
+</context>
+<context>
+ <name>QWebPage</name>
+ <message>
+ <source>Cut</source>
+ <translation type="obsolete">Vyjmout</translation>
+ </message>
+ <message>
+ <source>LTR</source>
+ <translation type="obsolete">Zleva doprava</translation>
+ </message>
+ <message>
+ <source>RTL</source>
+ <translation type="obsolete">Zprava doleva</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+61"/>
+ <source>Top</source>
+ <translation>Začátek</translation>
+ </message>
+ <message>
+ <source>Bold</source>
+ <translation type="obsolete">Tučné</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation type="obsolete">Kopírovat</translation>
+ </message>
+ <message>
+ <source>Stop</source>
+ <translation type="obsolete">Ukončit</translation>
+ </message>
+ <message>
+ <source>Open Frame</source>
+ <translation type="obsolete">Otevřít rámec</translation>
+ </message>
+ <message>
+ <source>Open Image</source>
+ <translation type="obsolete">Vyobrazení otevřít v novém okně</translation>
+ </message>
+ <message>
+ <source>Fonts</source>
+ <translation type="obsolete">Písma</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation type="obsolete">Vložit</translation>
+ </message>
+ <message>
+ <source>Reset</source>
+ <translation type="obsolete">Vrátit</translation>
+ </message>
+ <message>
+ <source>Inspect</source>
+ <translation type="obsolete">Provést prohlídku</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+2213"/>
+ <source>Select to the start of the block</source>
+ <translation>Vybrat až po začátek bloku</translation>
+ </message>
+ <message>
+ <location line="-36"/>
+ <source>Move the cursor to the end of the block</source>
+ <translation>Ukazatel polohy posunout až na konec bloku</translation>
+ </message>
+ <message>
+ <location line="-469"/>
+ <source>JavaScript Alert - %1</source>
+ <translation>Upozornění od JavaScriptu - %1</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>JavaScript Confirm - %1</source>
+ <translation>Potvrzení od JavaScriptu - %1</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>JavaScript Prompt - %1</source>
+ <translation>Výzva od JavaScriptu - %1</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>JavaScript Problem - %1</source>
+ <translation>Potíže s JavaScriptem - %1</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>The script on this page appears to have a problem. Do you want to stop the script?</source>
+ <translation>Vypadá to na to, že skript na této straně má potíže. Chcete tento skript zastavit?</translation>
+ </message>
+ <message>
+ <location line="+419"/>
+ <source>Select all</source>
+ <translation>Vybrat vše</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>Select to the start of the line</source>
+ <translation>Vybrat až po začátek řádku</translation>
+ </message>
+ <message>
+ <location line="+54"/>
+ <source>Insert a new paragraph</source>
+ <translation>Vložit nový odstavec</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert a new line</source>
+ <translation>Vložit nový řádek</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Paste and Match Style</source>
+ <translation>Vložit a odpovídat stylu</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Remove formatting</source>
+ <translation>Odstranit formátování</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Strikethrough</source>
+ <translation>Přeškrtnuto</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Subscript</source>
+ <translation>Dolní index</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Superscript</source>
+ <translation>Horní index</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Insert Bulleted List</source>
+ <translation>Vložit seznam s odrážkami</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Insert Numbered List</source>
+ <translation>Vložit číslovaný seznam</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Indent</source>
+ <translation>Odsadit</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Outdent</source>
+ <translation>Zrušit odsazení</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Center</source>
+ <translation>Na střed</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Justify</source>
+ <translation>Do bloku</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Align Left</source>
+ <translation>Zarovnat vlevo</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Align Right</source>
+ <translation>Zarovnat vpravo</translation>
+ </message>
+ <message>
+ <source>Look Up In Dictionary</source>
+ <translation type="obsolete">Podívat se do slovníku</translation>
+ </message>
+ <message>
+ <source>Search The Web</source>
+ <translation type="obsolete">Hledat na síti</translation>
+ </message>
+ <message>
+ <source>Check Spelling While Typing</source>
+ <translation type="obsolete">Kontrolovat pravopis během psaní</translation>
+ </message>
+ <message>
+ <source>Add To Dictionary</source>
+ <translation type="obsolete">Přidat do slovníku</translation>
+ </message>
+ <message>
+ <location line="-85"/>
+ <source>Delete to the start of the word</source>
+ <translation>Smazat až po začátek slova</translation>
+ </message>
+ <message>
+ <source>Recent searches</source>
+ <translation type="obsolete">Dosavadní hledané výrazy</translation>
+ </message>
+ <message>
+ <location line="-69"/>
+ <source>Move the cursor to the next word</source>
+ <translation>Ukazatel polohy posunout k následujícímu slovu</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Move the cursor to the next line</source>
+ <translation>Ukazatel polohy posunout k následujícímu řádku</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+9"/>
+ <source>Scroll down</source>
+ <translation>Projíždět dolů</translation>
+ </message>
+ <message>
+ <location line="-12"/>
+ <source>Scroll here</source>
+ <translation>Projíždět až sem</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Scroll left</source>
+ <translation>Projíždět doleva</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+12"/>
+ <source>Move the cursor to the start of the block</source>
+ <translation>Ukazatel polohy posunout na začátek bloku</translation>
+ </message>
+ <message>
+ <source>Text Direction</source>
+ <translation type="obsolete">Směr psaní</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="-7"/>
+ <source>Bottom</source>
+ <translation>Konec</translation>
+ </message>
+ <message>
+ <source>Ignore</source>
+ <translation type="obsolete">Nevšímat si</translation>
+ </message>
+ <message>
+ <source>Italic</source>
+ <translation type="obsolete">Kurzívní</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="-3"/>
+ <source>Move the cursor to the end of the line</source>
+ <translation>Ukazatel polohy posunout na konec řádku</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>Move the cursor to the start of the line</source>
+ <translation>Ukazatel polohy posunout na začátek řádku</translation>
+ </message>
+ <message>
+ <source>Reload</source>
+ <translation type="obsolete">Nahrát znovu</translation>
+ </message>
+ <message>
+ <source>Submit</source>
+ <translation type="obsolete">Poslat</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+167"/>
+ <source>Web Inspector - %2</source>
+ <translation>Web Inspektor - %2</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+3"/>
+ <source>Page up</source>
+ <translation>O stranu nahoru</translation>
+ </message>
+ <message>
+ <source>Spelling</source>
+ <translation type="obsolete">Pravopis</translation>
+ </message>
+ <message>
+ <source>Outline</source>
+ <translation type="obsolete">Obrys</translation>
+ </message>
+ <message>
+ <source>Check Grammar With Spelling</source>
+ <translation type="obsolete">Kontrolovat mluvnici společně s pravopisem</translation>
+ </message>
+ <message>
+ <source>No file selected</source>
+ <translation type="obsolete">Nebyl vybrán žádný soubor</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+42"/>
+ <source>Submit</source>
+ <comment>default label for Submit buttons in forms on web pages</comment>
+ <translation>Poslat</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Reset</source>
+ <comment>default label for Reset buttons in forms on web pages</comment>
+ <translation>Vrátit</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>This is a searchable index. Enter search keywords: </source>
+ <comment>text that appears at the start of nearly-obsolete web pages in the form of a &apos;searchable index&apos;</comment>
+ <translation>Tento rejstřík má funkci hledání. Zadejte nějaký hledaný výraz:</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Choose File</source>
+ <comment>title for file button used in HTML forms</comment>
+ <translation>Vybrat soubor</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>No file selected</source>
+ <comment>text to display in file button used in HTML forms when no file is selected</comment>
+ <translation>Nebyl vybrán žádný soubor</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Open in New Window</source>
+ <comment>Open in New Window context menu item</comment>
+ <translation>Otevřít v novém okně</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Save Link...</source>
+ <comment>Download Linked File context menu item</comment>
+ <translation>Uložit odkaz...</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Copy Link</source>
+ <comment>Copy Link context menu item</comment>
+ <translation>Kopírovat adresu odkazu</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Open Image</source>
+ <comment>Open Image in New Window context menu item</comment>
+ <translation>Vyobrazení otevřít v novém okně</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Save Image</source>
+ <comment>Download Image context menu item</comment>
+ <translation>Uložit vyobrazení</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Copy Image</source>
+ <comment>Copy Link context menu item</comment>
+ <translation>Kopírovat vyobrazení</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Open Frame</source>
+ <comment>Open Frame in New Window context menu item</comment>
+ <translation>Otevřít rámec</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Copy</source>
+ <comment>Copy context menu item</comment>
+ <translation>Kopírovat</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Go Back</source>
+ <comment>Back context menu item</comment>
+ <translation>Jít zpět</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Go Forward</source>
+ <comment>Forward context menu item</comment>
+ <translation>Jít dopředu</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Stop</source>
+ <comment>Stop context menu item</comment>
+ <translation>Zastavit</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Reload</source>
+ <comment>Reload context menu item</comment>
+ <translation>Nahrát znovu</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Cut</source>
+ <comment>Cut context menu item</comment>
+ <translation>Vyjmout</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Paste</source>
+ <comment>Paste context menu item</comment>
+ <translation>Vložit</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>No Guesses Found</source>
+ <comment>No Guesses Found context menu item</comment>
+ <translation>Nebyly nalezeny žádné návrhy</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Ignore</source>
+ <comment>Ignore Spelling context menu item</comment>
+ <translation>Přehlížet</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Add To Dictionary</source>
+ <comment>Learn Spelling context menu item</comment>
+ <translation>Přidat do slovníku</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Search The Web</source>
+ <comment>Search The Web context menu item</comment>
+ <translation>Hledat na síti</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Look Up In Dictionary</source>
+ <comment>Look Up in Dictionary context menu item</comment>
+ <translation>Podívat se do slovníku</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Open Link</source>
+ <comment>Open Link context menu item</comment>
+ <translation>Otevřít adresu odkazu</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Ignore</source>
+ <comment>Ignore Grammar context menu item</comment>
+ <translation>Přehlížet</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Spelling</source>
+ <comment>Spelling and Grammar context sub-menu item</comment>
+ <translation>Pravopis</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Show Spelling and Grammar</source>
+ <comment>menu item title</comment>
+ <translation>Ukázat pravopis a mluvnici</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Hide Spelling and Grammar</source>
+ <comment>menu item title</comment>
+ <translation>Skrýt pravopis a mluvnici</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Check Spelling</source>
+ <comment>Check spelling context menu item</comment>
+ <translation>Ověření pravopisu</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Check Spelling While Typing</source>
+ <comment>Check spelling while typing context menu item</comment>
+ <translation>Ověřovat pravopis během psaní</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Check Grammar With Spelling</source>
+ <comment>Check grammar with spelling context menu item</comment>
+ <translation>Ověřovat mluvnici společně s pravopisem</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Fonts</source>
+ <comment>Font context sub-menu item</comment>
+ <translation>Písma</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Bold</source>
+ <comment>Bold context menu item</comment>
+ <translation>Tučné</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Italic</source>
+ <comment>Italic context menu item</comment>
+ <translation>Kurzíva</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Underline</source>
+ <comment>Underline context menu item</comment>
+ <translation>Podtržení</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Outline</source>
+ <comment>Outline context menu item</comment>
+ <translation>Obrys</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Direction</source>
+ <comment>Writing direction context sub-menu item</comment>
+ <translation>Směr</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Text Direction</source>
+ <comment>Text direction context sub-menu item</comment>
+ <translation>Směr psaní</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Default</source>
+ <comment>Default writing direction context menu item</comment>
+ <translation>Výchozí</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Left to Right</source>
+ <comment>Left to Right context menu item</comment>
+ <translation>Zleva doprava</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Right to Left</source>
+ <comment>Right to Left context menu item</comment>
+ <translation>Zprava doleva</translation>
+ </message>
+ <message>
+ <location line="+105"/>
+ <source>Loading...</source>
+ <comment>Media controller status message when the media is loading</comment>
+ <translation>Nahrává se...</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Live Broadcast</source>
+ <comment>Media controller status message when watching a live broadcast</comment>
+ <translation>Živý přenos</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Audio Element</source>
+ <comment>Media controller element</comment>
+ <translation>Zvukový prvek</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Video Element</source>
+ <comment>Media controller element</comment>
+ <translation>Videoprvek</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Mute Button</source>
+ <comment>Media controller element</comment>
+ <translation>Tlačítko pro ztlumení</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Unmute Button</source>
+ <comment>Media controller element</comment>
+ <translation>Tlačítko pro zrušení ztlumení</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Play Button</source>
+ <comment>Media controller element</comment>
+ <translation>Tlačítko pro přehrávání</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Pause Button</source>
+ <comment>Media controller element</comment>
+ <translation>Tlačítko pro pozastavení</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Slider</source>
+ <comment>Media controller element</comment>
+ <translation>Posuvník</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Slider Thumb</source>
+ <comment>Media controller element</comment>
+ <translation>Palec posuvníku</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Rewind Button</source>
+ <comment>Media controller element</comment>
+ <translation>Tlačítko pro přetočení</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Return to Real-time Button</source>
+ <comment>Media controller element</comment>
+ <translation>Tlačítko pro návrat ke skutečnému času</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Elapsed Time</source>
+ <comment>Media controller element</comment>
+ <translation>Uplynulý čas</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Remaining Time</source>
+ <comment>Media controller element</comment>
+ <translation>Zbývající čas</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Status Display</source>
+ <comment>Media controller element</comment>
+ <translation>Údaj o stavu</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Fullscreen Button</source>
+ <comment>Media controller element</comment>
+ <translation>Tlačítko pro zobrazení na celou obrazovku</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Seek Forward Button</source>
+ <comment>Media controller element</comment>
+ <translation>Tlačítko pro hledání dopředu</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Seek Back Button</source>
+ <comment>Media controller element</comment>
+ <translation>Tlačítko pro hledání dozadu</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Audio element playback controls and status display</source>
+ <comment>Media controller element</comment>
+ <translation>Řízení přehrávání zvuku a zobrazení stavu</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Video element playback controls and status display</source>
+ <comment>Media controller element</comment>
+ <translation>Řízení přehrávání videa a zobrazení stavu</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Mute audio tracks</source>
+ <comment>Media controller element</comment>
+ <translation>Ztlumit zvukové stopy</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Unmute audio tracks</source>
+ <comment>Media controller element</comment>
+ <translation>Zrušit ztlumení zvukových stop</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Begin playback</source>
+ <comment>Media controller element</comment>
+ <translation>Začít přehrávání</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Pause playback</source>
+ <comment>Media controller element</comment>
+ <translation>Pozastavit přehrávání</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Movie time scrubber</source>
+ <comment>Media controller element</comment>
+ <translation>Čas přehrávání</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Movie time scrubber thumb</source>
+ <comment>Media controller element</comment>
+ <translation>Palec pro nastavení času přehrávání</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Rewind movie</source>
+ <comment>Media controller element</comment>
+ <translation>Přetočit film zpět</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Return streaming movie to real-time</source>
+ <comment>Media controller element</comment>
+ <translation>Vrátit film na skutečný čas</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Current movie time</source>
+ <comment>Media controller element</comment>
+ <translation>Čas přehrávání filmu</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Remaining movie time</source>
+ <comment>Media controller element</comment>
+ <translation>Zbývající čas z přehrávání filmu</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Current movie status</source>
+ <comment>Media controller element</comment>
+ <translation>Stav filmu</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Play movie in full-screen mode</source>
+ <comment>Media controller element</comment>
+ <translation>Přehrávat film v režimu zobrazení na celou obrazovku</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Seek quickly back</source>
+ <comment>Media controller element</comment>
+ <translation>Rychlé zpětné hledání</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Seek quickly forward</source>
+ <comment>Media controller element</comment>
+ <translation>Rychlé dopředné hledání</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Indefinite time</source>
+ <comment>Media time description</comment>
+ <translation>Neomezený čas</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>%1 days %2 hours %3 minutes %4 seconds</source>
+ <comment>Media time description</comment>
+ <translation>%1 dny %2 hodiny %3 minuty %4 sekundy</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>%1 hours %2 minutes %3 seconds</source>
+ <comment>Media time description</comment>
+ <translation>%1 hodiny %2 minuty %3 sekundy</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>%1 minutes %2 seconds</source>
+ <comment>Media time description</comment>
+ <translation>%1 minuty %2 sekundy</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 seconds</source>
+ <comment>Media time description</comment>
+ <translation>%1 sekundy</translation>
+ </message>
+ <message>
+ <source>LTR</source>
+ <comment>Left to Right context menu item</comment>
+ <translation type="obsolete">Zleva doprava</translation>
+ </message>
+ <message>
+ <source>RTL</source>
+ <comment>Right to Left context menu item</comment>
+ <translation type="obsolete">Zprava doleva</translation>
+ </message>
+ <message>
+ <location line="-210"/>
+ <source>Inspect</source>
+ <comment>Inspect Element context menu item</comment>
+ <translation>Provést prohlídku</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>No recent searches</source>
+ <comment>Label for only item in menu that appears when clicking on the search field image, when no searches have been performed</comment>
+ <translation>Neexistují žádné naposledy hledané výrazy</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Recent searches</source>
+ <comment>label for first item in the menu that appears when clicking on the search field image, used as embedded menu title</comment>
+ <translation>Dosavadní hledané výrazy</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Clear recent searches</source>
+ <comment>menu item in Recent Searches menu that empties menu&apos;s contents</comment>
+ <translation>Smazat naposledy hledané výrazy</translation>
+ </message>
+ <message>
+ <location line="+75"/>
+ <source>Unknown</source>
+ <comment>Unknown filesize FTP directory listing item</comment>
+ <translation>Neznámý</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>%1 (%2x%3 pixels)</source>
+ <comment>Title string for images</comment>
+ <translation>%1 (%2x%3 pixelů)</translation>
+ </message>
+ <message>
+ <source>Save Image</source>
+ <translation type="obsolete">Uložit vyobrazení</translation>
+ </message>
+ <message>
+ <source>Save Link...</source>
+ <translation type="obsolete">Uložit odkaz...</translation>
+ </message>
+ <message>
+ <source>No recent searches</source>
+ <translation type="obsolete">Neexistují žádné naposledy hledané výrazy</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+1"/>
+ <source>Page right</source>
+ <translation>O stranu doprava</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+12"/>
+ <source>Move the cursor to the start of the document</source>
+ <translation>Ukazatel polohy posunout na začátek dokumentu</translation>
+ </message>
+ <message>
+ <location line="-30"/>
+ <source>Move the cursor to the next character</source>
+ <translation>Ukazatel polohy posunout k následujícímu znaku</translation>
+ </message>
+ <message>
+ <source>Copy Link</source>
+ <translation type="obsolete">Kopírovat adresu odkazu</translation>
+ </message>
+ <message>
+ <location line="+54"/>
+ <source>Select to the previous line</source>
+ <translation>Vybrat až po předchozí řádek</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>Select to the previous word</source>
+ <translation>Vybrat až po předchozí slovo</translation>
+ </message>
+ <message>
+ <source>Check Spelling</source>
+ <translation type="obsolete">Kontrola pravopisu</translation>
+ </message>
+ <message>
+ <location line="-9"/>
+ <source>Select to the next character</source>
+ <translation>Vybrat až po následující znak</translation>
+ </message>
+ <message>
+ <source>Show Spelling and Grammar</source>
+ <translation type="obsolete">Ukázat pravopis a mluvnici</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>Delete to the end of the word</source>
+ <translation>Smazat až po konec slova</translation>
+ </message>
+ <message>
+ <source>Direction</source>
+ <translation type="obsolete">Směr</translation>
+ </message>
+ <message>
+ <location line="-18"/>
+ <source>Select to the end of the line</source>
+ <translation>Vybrat až po začátek řádku</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="-307"/>
+ <source>Submit</source>
+ <comment>Submit (input element) alt text for &lt;input&gt; elements with no alt, title, or value</comment>
+ <translation>Poslat</translation>
+ </message>
+ <message>
+ <source>Choose File</source>
+ <translation type="obsolete">Vybrat soubor</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+3"/>
+ <source>Scroll up</source>
+ <translation>Projíždět nahoru</translation>
+ </message>
+ <message>
+ <source>Clear recent searches</source>
+ <translation type="obsolete">Smazat naposledy hledané výrazy</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+9"/>
+ <source>Select to the start of the document</source>
+ <translation>Vybrat až po začátek dokumentu</translation>
+ </message>
+ <message>
+ <source>Default</source>
+ <translation type="obsolete">Výchozí</translation>
+ </message>
+ <message>
+ <source>Underline</source>
+ <translation type="obsolete">Podtrhnout</translation>
+ </message>
+ <message>
+ <location line="-66"/>
+ <source>Move the cursor to the previous character</source>
+ <translation>Ukazatel polohy posunout k předchozímu znaku</translation>
+ </message>
+ <message>
+ <source>Copy Image</source>
+ <translation type="obsolete">Kopírovat vyobrazení</translation>
+ </message>
+ <message>
+ <location line="+69"/>
+ <source>Select to the end of the document</source>
+ <translation>Vybrat až po konec dokumentu</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>Select to the end of the block</source>
+ <translation>Vybrat až po konec bloku</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+1"/>
+ <source>Scroll right</source>
+ <translation>Projíždět doprava</translation>
+ </message>
+ <message>
+ <source>No Guesses Found</source>
+ <translation type="obsolete">Nebyly nalezeny žádné návrhy</translation>
+ </message>
+ <message>
+ <source>Open Link</source>
+ <translation type="obsolete">Otevřít adresu odkazu</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+406"/>
+ <source>Bad HTTP request</source>
+ <translation>Neplatný požadavek HTTP</translation>
+ </message>
+ <message>
+ <source>Unknown</source>
+ <translation type="obsolete">Neznámý</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="-57"/>
+ <source>Move the cursor to the previous word</source>
+ <translation>Ukazatel polohy posunout k předchozímu slovu</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Move the cursor to the previous line</source>
+ <translation>Ukazatel polohy posunout na předchozí řádku</translation>
+ </message>
+ <message>
+ <source>%n file(s)</source>
+ <translation type="obsolete">%n soubor(ů)</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="-9"/>
+ <source>Left edge</source>
+ <translation>Levý okraj</translation>
+ </message>
+ <message>
+ <source>Go Forward</source>
+ <translation type="obsolete">Jít dopředu</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Page down</source>
+ <translation>O stranu dolů</translation>
+ </message>
+ <message>
+ <location line="-1"/>
+ <source>Page left</source>
+ <translation>O stranu doleva</translation>
+ </message>
+ <message>
+ <source>This is a searchable index. Enter search keywords: </source>
+ <translation type="obsolete">Tento index má funkci hledání. Zadejte nějaký hledaný výraz:</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+27"/>
+ <source>Select to the previous character</source>
+ <translation>Vybrat až po předchozí znak</translation>
+ </message>
+ <message>
+ <source>Go Back</source>
+ <translation type="obsolete">Jít zpět</translation>
+ </message>
+ <message>
+ <source>Open in New Window</source>
+ <translation type="obsolete">Otevřít v novém okně</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="-3"/>
+ <source>Right edge</source>
+ <translation>Pravý okraj</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="-9"/>
+ <source>Move the cursor to the end of the document</source>
+ <translation>Ukazatel polohy posunout na konec dokumentu</translation>
+ </message>
+ <message>
+ <source>Hide Spelling and Grammar</source>
+ <translation type="obsolete">Skrýt pravopis a mluvnici</translation>
+ </message>
+ <message>
+ <source>%1 (%2x%3 pixels)</source>
+ <translation type="obsolete">%1 (%2x%3 pixelů)</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Select to the next word</source>
+ <translation>Vybrat až po následující slovo</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Select to the next line</source>
+ <translation>Vybrat až po následující řádek</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/FileChooserQt.cpp" line="+45"/>
+ <source>%n file(s)</source>
+ <comment>number of chosen file</comment>
+ <translation>
+ <numerusform>%n soubor(ů)</numerusform>
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+</context>
+<context>
+ <name>QWhatsThisAction</name>
+ <message>
+ <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+527"/>
+ <source>What&apos;s This?</source>
+ <translation>Co je toto?</translation>
+ </message>
+</context>
+<context>
+ <name>QWidget</name>
+ <message>
+ <location filename="../src/gui/kernel/qwidget.cpp" line="+5672"/>
+ <source>*</source>
+ <translation>*</translation>
+ </message>
+</context>
+<context>
+ <name>QWizard</name>
+ <message>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+659"/>
+ <source>Done</source>
+ <translation>Hotovo</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Help</source>
+ <translation>Nápověda</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Nápověda</translation>
+ </message>
+ <message>
+ <location line="-8"/>
+ <source>&amp;Next</source>
+ <translation>&amp;Další</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Cancel</source>
+ <translation>Zrušit</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <source>Commit</source>
+ <translation>Použít</translation>
+ </message>
+ <message>
+ <location line="-5"/>
+ <source>Continue</source>
+ <translation>Pokračovat</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>&amp;Finish</source>
+ <translation>Do&amp;končit</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <source>&amp;Next &gt;</source>
+ <translation>&amp;Další &gt;</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>Go Back</source>
+ <translation>Jít zpět</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>&lt; &amp;Back</source>
+ <translation>&lt; &amp;Zpět</translation>
+ </message>
+</context>
+<context>
+ <name>QWorkspace</name>
+ <message>
+ <location filename="../src/gui/widgets/qworkspace.cpp" line="+1090"/>
+ <source>&amp;Move</source>
+ <translation>Po&amp;sunout</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Size</source>
+ <translation>Změnit &amp;velikost</translation>
+ </message>
+ <message>
+ <location line="-978"/>
+ <source>Close</source>
+ <translation>Zavřít</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Minimize</source>
+ <translation>Zmenšit</translation>
+ </message>
+ <message>
+ <location line="+988"/>
+ <source>Stay on &amp;Top</source>
+ <translation>Zůstat v &amp;popředí</translation>
+ </message>
+ <message>
+ <location line="-6"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Zavřít</translation>
+ </message>
+ <message>
+ <location line="+790"/>
+ <location line="+60"/>
+ <source>%1 - [%2]</source>
+ <translation>%1 - [%2]</translation>
+ </message>
+ <message>
+ <location line="-841"/>
+ <location line="+1059"/>
+ <source>Sh&amp;ade</source>
+ <translation>&amp;Navinout</translation>
+ </message>
+ <message>
+ <location line="-1076"/>
+ <source>&amp;Restore</source>
+ <translation>&amp;Obnovit</translation>
+ </message>
+ <message>
+ <location line="+1072"/>
+ <source>&amp;Unshade</source>
+ <translation>&amp;Odvinout</translation>
+ </message>
+ <message>
+ <location line="-1068"/>
+ <source>Mi&amp;nimize</source>
+ <translation>&amp;Zmenšit</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Ma&amp;ximize</source>
+ <translation>Zvě&amp;tšit</translation>
+ </message>
+ <message>
+ <location line="-978"/>
+ <source>Restore Down</source>
+ <translation>Obnovit</translation>
+ </message>
+</context>
+<context>
+ <name>QXml</name>
+ <message>
+ <location filename="../src/xml/sax/qxml.cpp" line="+78"/>
+ <source>unparsed entity reference in wrong context</source>
+ <translation>používán nevyhodnocený odkaz na entitu v nesprávné souvislosti</translation>
+ </message>
+ <message>
+ <location line="-1"/>
+ <source>external parsed general entity reference not allowed in DTD</source>
+ <translation>v DTD nejsou dovoleny žádné odkazy na vnější obecnou entitu</translation>
+ </message>
+ <message>
+ <location line="-9"/>
+ <source>wrong value for standalone declaration</source>
+ <translation>nesprávná hodnota pro samostatné prohlášení</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>encoding declaration or standalone declaration expected while reading the XML declaration</source>
+ <translation>chybějící prohlášení kódování nebo prohlášení samostatnosti při čtení prohlášení XML</translation>
+ </message>
+ <message>
+ <location line="-11"/>
+ <source>no error occurred</source>
+ <translation>žádná chyba</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>error occurred while parsing reference</source>
+ <translation>při vyhodnocení odkazu se vyskytla chyba</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <source>standalone declaration expected while reading the XML declaration</source>
+ <translation>chybějící prohlášení samostatnosti při čtení prohlášení XML</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <source>invalid name for processing instruction</source>
+ <translation>neplatný název pro pokyn pro zpracování</translation>
+ </message>
+ <message>
+ <location line="-7"/>
+ <source>error triggered by consumer</source>
+ <translation>chyba spuštěná spotřebitelem</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>error occurred while parsing element</source>
+ <translation>při vyhodnocení prvku se vyskytla chyba</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>unexpected character</source>
+ <translation>neočekávaný znak</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>tag mismatch</source>
+ <translation>Značky prvků nejsou vkládány správně</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>error occurred while parsing content</source>
+ <translation>při vyhodnocení obsahu se vyskytla chyba</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>error occurred while parsing comment</source>
+ <translation>při vyhodnocení poznámky se vyskytla chyba</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>internal general entity reference not allowed in DTD</source>
+ <translation>v DTD nejsou dovoleny žádné odkazy na vnitřní obecnou entitu</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>recursive entities</source>
+ <translation>rekurzivní entity</translation>
+ </message>
+ <message>
+ <location line="-18"/>
+ <source>more than one document type definition</source>
+ <translation>více definicí typu dokumentu</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>version expected while reading the XML declaration</source>
+ <translation>chybějící verze při čtení prohlášení XML</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>letter is expected</source>
+ <translation>na tomto místě je potřeba písmeno</translation>
+ </message>
+ <message>
+ <location line="-12"/>
+ <source>unexpected end of file</source>
+ <translation>neočekávaný konec souboru</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>external parsed general entity reference not allowed in attribute value</source>
+ <translation>v hodnotě vlastnosti nejsou dovoleny žádné odkazy na vnější obecnou entitu</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>error in the text declaration of an external entity</source>
+ <translation>Chyba v prohlášení textu vnější entity</translation>
+ </message>
+ <message>
+ <location line="-9"/>
+ <source>error occurred while parsing document type definition</source>
+ <translation>při vyhodnocení definice typu dokumentu se vyskytla chyba</translation>
+ </message>
+</context>
+<context>
+ <name>QXmlStream</name>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1800"/>
+ <source>Reference to unparsed entity &apos;%1&apos;.</source>
+ <translation>Odkaz na nevyhodnocenou entitu &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+1752"/>
+ <source>Unexpected character &apos;%1&apos; in public id literal.</source>
+ <translation>&apos;%1&apos; není platným znakem v údaji veřejného id, který je tvořen písmeny.</translation>
+ </message>
+ <message>
+ <location line="-160"/>
+ <location line="+12"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="-109"/>
+ <location line="+53"/>
+ <source>Illegal namespace declaration.</source>
+ <translation>Neplatné prohlášení jmenného prostoru.</translation>
+ </message>
+ <message>
+ <location line="-613"/>
+ <source>Invalid XML character.</source>
+ <translation>Neplatný znak XML.</translation>
+ </message>
+ <message>
+ <location line="+1137"/>
+ <source>Expected character data.</source>
+ <translation>Byly očekávány údaje o znacích.</translation>
+ </message>
+ <message>
+ <location line="-300"/>
+ <source>Standalone accepts only yes or no.</source>
+ <translation>Hodnota pro samostatnou vlastnost může být pouze &quot;ano&quot; nebo &quot;ne&quot;.</translation>
+ </message>
+ <message>
+ <location line="-48"/>
+ <source>Invalid XML version string.</source>
+ <translation>Neplatný údaj o verzi XML.</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="-217"/>
+ <source>Invalid processing instruction name.</source>
+ <translation>Název pokynu pro zpracování je neplatný.</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="-221"/>
+ <source>Namespace prefix &apos;%1&apos; not declared</source>
+ <translation>Předpona jmenného prostoru &apos;%1&apos; nebyla prohlášena</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+260"/>
+ <location line="+61"/>
+ <location line="+40"/>
+ <source>Entity &apos;%1&apos; not declared.</source>
+ <translation>Entita &apos;%1&apos; není prohlášena.</translation>
+ </message>
+ <message>
+ <location line="-372"/>
+ <source>%1 is an invalid processing instruction name.</source>
+ <translation>%1 není platným názvem pokynu pro zpracování.</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+244"/>
+ <source>The standalone pseudo attribute must appear after the encoding.</source>
+ <translation>Samostatná pseudovlastnost musí následovat bezprostředně po kódování.</translation>
+ </message>
+ <message>
+ <location line="-553"/>
+ <source>Sequence &apos;]]&gt;&apos; not allowed in content.</source>
+ <translation>Sled znaků &apos;]]&gt;&apos; není v obsahu povolen.</translation>
+ </message>
+ <message>
+ <location line="+555"/>
+ <source>%1 is an invalid encoding name.</source>
+ <translation>%1 není platným názvem pro kódování.</translation>
+ </message>
+ <message>
+ <location line="+94"/>
+ <source>, but got &apos;</source>
+ <translation>očekáváno, namísto toho obdrženo &apos;</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="-225"/>
+ <source>Start tag expected.</source>
+ <translation>Očekáván otevírající prvek.</translation>
+ </message>
+ <message>
+ <location line="+611"/>
+ <source>Invalid character reference.</source>
+ <translation>Odkaz na neplatný znak.</translation>
+ </message>
+ <message>
+ <location line="-40"/>
+ <source>Reference to external entity &apos;%1&apos; in attribute value.</source>
+ <translation>V hodnotě vlastnosti byla odkazována entita &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="-11"/>
+ <source>Expected </source>
+ <translation>Bylo </translation>
+ </message>
+ <message>
+ <location line="-40"/>
+ <source>Invalid document.</source>
+ <translation>Neplatný dokument.</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="-80"/>
+ <source>Opening and ending tag mismatch.</source>
+ <translation>Počet otevírajících prvků neodpovídá neodpovídá počtu zavírajících prvků.</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="-319"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="-703"/>
+ <source>Encountered incorrectly encoded content.</source>
+ <translation>Byl nalezen obsah s neplatným kódováním.</translation>
+ </message>
+ <message>
+ <location line="+301"/>
+ <source>Invalid attribute in XML declaration.</source>
+ <translation>Prohlášení XML obsahuje neplatnou vlastnost.</translation>
+ </message>
+ <message>
+ <location line="-193"/>
+ <source>Attribute redefined.</source>
+ <translation>Vlastnost byla nově vymezena.</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+562"/>
+ <source>%1 is an invalid PUBLIC identifier.</source>
+ <translation>%1 není platným údajem VEŘEJNÉHO identifikátoru (id).</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="-1026"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+129"/>
+ <source>Extra content at end of document.</source>
+ <translation>Přebytečný obsah za koncem dokumentu.</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="-11"/>
+ <source>Invalid XML name.</source>
+ <translation>Neplatný název XML.</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+1235"/>
+ <source>Premature end of document.</source>
+ <translation>Předčasný konec dokumentu.</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="-246"/>
+ <source>XML declaration not at start of document.</source>
+ <translation>Prohlášení XML se nenachází na začátku dokumentu.</translation>
+ </message>
+ <message>
+ <location line="-738"/>
+ <source>Recursive entity detected.</source>
+ <translation>Byla zjištěna rekurzivní entita.</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="-64"/>
+ <source>Unsupported XML version.</source>
+ <translation>Tato verze XML není podporována.</translation>
+ </message>
+ <message>
+ <location line="+121"/>
+ <source>Unexpected &apos;</source>
+ <translation>Na tomto místě neplatný &apos; </translation>
+ </message>
+ <message>
+ <location line="-1021"/>
+ <source>Invalid entity value.</source>
+ <translation>neplatná hodnota entity.</translation>
+ </message>
+ <message>
+ <location line="+930"/>
+ <source>Encoding %1 is unsupported</source>
+ <translation>Kódování %1 není podporováno</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+707"/>
+ <source>NDATA in parameter entity declaration.</source>
+ <translation>Parametrické prohlášení entitynesmí obsahovat žádné NDATA.</translation>
+ </message>
+</context>
+<context>
+ <name>QtXmlPatterns</name>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
+ <source>A comment cannot contain %1</source>
+ <translation>Poznámka nesmí obsahovat %1</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+3726"/>
+ <source>Version %1 is not supported. The supported XQuery version is 1.0.</source>
+ <translation>Verze %1 není podporována. Podporovanou verzí XQuery je 1.0.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+54"/>
+ <source>The root node of the second argument to function %1 must be a document node. %2 is not a document node.</source>
+ <translation>Nadřízený uzel druhého agumentu funkce %1 musí být uzlem dokumentu, což není případ %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+145"/>
+ <source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
+ <translation>Nebyl zadán žádný odpovídající %2 pro potřebný parametr %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+163"/>
+ <source>Namespace declarations must occur before function, variable, and option declarations.</source>
+ <translation>Prohlášení jmenných prostorů musí stát před prohlášeními funkcí-, proměnných- nebo prohlášeními voleb.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
+ <source>empty</source>
+ <translation>prázdný</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+2895"/>
+ <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source>
+ <translation>Jmenný prostor-URI nesmí být prázdný, když je spojen s prefixem %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+6"/>
+ <source>A comment cannot end with a %1.</source>
+ <translation>Poznámka nesmí končit na %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+2437"/>
+ <source>Top level stylesheet elements must be in a non-null namespace, which %1 isn&apos;t.</source>
+ <translation>Úplně nahoře stojící prvky prováděcího listu se nesmí nacházet v nulovém jmenném prostoru, což je případ %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/>
+ <source>Integer division (%1) by zero (%2) is undefined.</source>
+ <translation>Celočíselné dělení (%1) nulou (%2) není stanoveno.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+162"/>
+ <source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
+ <translation>Knihovní modul nemůže být posouzen přímo, musí být zaveden z hlavního modulu.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+187"/>
+ <source>Time %1:%2:%3.%4 is invalid.</source>
+ <translation>Časový údaj %1:%2:%3.%4 je neplatný.</translation>
+ </message>
+ <message>
+ <source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source>
+ <translation type="obsolete">Prvek %2 může mít pouze obvyklé vlastnosti, ne však %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/>
+ <source>A value of type %1 must contain an even number of digits. The value %2 does not.</source>
+ <translation>Počet míst hodnoty typu %1 musí být stejný. To není případ %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+14"/>
+ <source>Modulus division (%1) by zero (%2) is undefined.</source>
+ <translation>Dělení absolutní hodnoty (%1) nulou(%2) není stanoveno.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-2987"/>
+ <source>No function with signature %1 is available</source>
+ <translation>Neexistuje žádná funkce označená jako %1</translation>
+ </message>
+ <message>
+ <location line="+2154"/>
+ <source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source>
+ <translation>Musí být přítomen záložní výraz, neboť nejsou podporovány žádné věcné výrazy</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+159"/>
+ <source>In the replacement string, %1 can only be used to escape itself or %2, not %3</source>
+ <translation>V nahrazení může být použit pouze %1, aby se chránil sám, nebo %2, ne však pro %3</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+378"/>
+ <source>The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character.</source>
+ <translation>Kódovací bod %1 z %2 s kódováním %3 není platným znakem XML.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
+ <source>Network timeout.</source>
+ <translation>Časový limit síťové operace byl překročen.</translation>
+ </message>
+ <message>
+ <source>No casting is possible with %1 as the target type.</source>
+ <translation type="obsolete">Nelze provádět žádné výběrové (&quot;cast&quot;) operace s typem %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-1567"/>
+ <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source>
+ <translation>Prohlášení %1 je nepřípustné, protože není podporováno zavedení schémat.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="-1676"/>
+ <source>Attribute %1 and %2 are mutually exclusive.</source>
+ <translation>Vlastnosti %1 a %2 se vzájemně vylučující.</translation>
+ </message>
+ <message>
+ <location line="-213"/>
+ <source>Parse error: %1</source>
+ <translation>Chyba vyhodnocení: %1</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+86"/>
+ <source>If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified.</source>
+ <translation>Nelze zadat žádnou předponu, jestliže je první argument prázdný nebo je prázdný řetězec znaků (žádný jmenný prostor). Byla zadána předpona %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+497"/>
+ <source>In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching.</source>
+ <translation>V XSL-T vyhledávacím vzoru musí být první argument k funkci %1 při použití k hledání odkaz tvořený písmeny nebo proměnný.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/>
+ <location line="+15"/>
+ <source>At least one component must be present.</source>
+ <translation>Alespoň jedna součást musí být přítomna.</translation>
+ </message>
+ <message>
+ <source>In a namespace constructor, the value for a namespace value cannot be an empty string.</source>
+ <translation type="obsolete">Ve staviteli jmenného prostoru nesmí mýt hodnota jmenného prostoru prázdným řetězcem.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+93"/>
+ <source>An attribute by name %1 has already been created.</source>
+ <translation>Již byla vytvořena jedna vlastnost s názvem %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-204"/>
+ <source>An argument by name %1 has already been declared. Every argument name must be unique.</source>
+ <translation>Již existuje jeden argument s názvem %1. Názvy argumentů musí být jednoznačné.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+236"/>
+ <source>%1 is an invalid flag for regular expressions. Valid flags are:</source>
+ <translation>%1 není pro regulérní výrazy platným příznakem. Platnými příznaky jsou:</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+673"/>
+ <source>At least one %1-element must occur inside %2.</source>
+ <translation>V %2 se musí vyskytovat alespoň jeden %1-prvek.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/>
+ <source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source>
+ <translation>Je podporován pouze Unicode Codepoint Collation (%1). %2 není podporován.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="-134"/>
+ <source>Matches are case insensitive</source>
+ <translation>Na psaní velkých/malých písmen není brán zřetel</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+3057"/>
+ <source>The name of an extension expression must be in a namespace.</source>
+ <translation>Název výrazu rozšíření se musí nacházet ve jmenném prostoru.</translation>
+ </message>
+ <message>
+ <location line="-1514"/>
+ <source>Each name of a template parameter must be unique; %1 is duplicated.</source>
+ <translation>Názvy parametrů předloh musí být jednoznačné, %1 již existuje.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="-185"/>
+ <source>At least one mode must be specified in the %1-attribute on element %2.</source>
+ <translation>Ve %1-vlastnosti prvku %2 musí být zadán alespoň jeden způsob.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="-10"/>
+ <source>%1 matches newline characters</source>
+ <translation>Výraz &apos;%1&apos; odpovídá znakům pro nový řádek</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="-107"/>
+ <source>Year %1 is invalid because it begins with %2.</source>
+ <translation>%1 není platným údajem pro rok, protože začíná %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+285"/>
+ <source>The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source>
+ <translation>Druhý argument %1 nemůže být typ %2. Musí to být typ %3, %4 nebo %5.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+651"/>
+ <source>Element %1 cannot have children.</source>
+ <translation>Prvek %1 nemůže mít podprvky.</translation>
+ </message>
+ <message>
+ <source>Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes.</source>
+ <translation type="obsolete">Prvek %2 může mít jen vlastnost %3 nebo vlastnosti, které jsou obvyklé, ne však %1.</translation>
+ </message>
+ <message>
+ <location line="-497"/>
+ <source>Only one %1-element can appear.</source>
+ <translation>Může být jen jeden jediný %1-prvek.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+75"/>
+ <source>The name for a computed attribute cannot have the namespace URI %1 with the local name %2.</source>
+ <translation>Název počítané vlastnosti nesmí mít jmenný prostor-URI %1 s místním názvem %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+138"/>
+ <source>A positional predicate must evaluate to a single numeric value.</source>
+ <translation>Poziční přísudek se musí vyhodnotit jako jednoduchá, číselná hodnota.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+320"/>
+ <source>Element %1 can&apos;t be serialized because it appears outside the document element.</source>
+ <translation>Prvek %1 nemůže být vydáván na pokračování, protože se objevuje mimo prvky dokumentu.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+4"/>
+ <source>%1 and %2 match the start and end of a line.</source>
+ <translation>Výrazy %1 a %2 vždy odpovídají začátku nebo konci libovolného řádku.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="-560"/>
+ <source>Running an XSL-T 1.0 stylesheet with a 2.0 processor.</source>
+ <translation>Je zpracováván jeden XSL-T 1.0 stylový list jedním procesorem verze 2.0.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-1667"/>
+ <source>A stylesheet function must have a prefixed name.</source>
+ <translation>Název funkce stylového listu musí mít předponu.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
+ <source>%1 cannot be retrieved</source>
+ <translation>%1 nelze určit</translation>
+ </message>
+ <message>
+ <source>It&apos;s not possible to cast the value %1 of type %2 to %3</source>
+ <translation type="obsolete">Nelze provést operaci předvedení hodnoty %1 typu %2 k %3</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="-20"/>
+ <source>The value of the XSL-T version attribute must be a value of type %1, which %2 isn&apos;t.</source>
+ <translation>Hodnota XSL-T vlastnosti verze musí být hodnotou typu %1, což není případ %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+69"/>
+ <source>In a namespace constructor, the value for a namespace cannot be an empty string.</source>
+ <translation>Ve staviteli jmenného prostoru nesmí mýt hodnota jmenného prostoru prázdným řetězcem.</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>The prefix %1 cannot be bound.</source>
+ <translation>Předponu %1 nelze spojit.</translation>
+ </message>
+ <message>
+ <location line="-14"/>
+ <source>The prefix must be a valid %1, which %2 is not.</source>
+ <translation>Předpona musí být platný %1, což není případ %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-551"/>
+ <source>The keyword %1 cannot occur with any other mode name.</source>
+ <translation>Klíčové slovo %1 se nemůže používat dohromady s jiným názvem způsobu.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
+ <source>Type error in cast, expected %1, received %2.</source>
+ <translation>Chyba psaní u operace předvedení, bylo očekáváno %1, ale přijato %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-3555"/>
+ <source>%1 is not a valid numeric literal.</source>
+ <translation>%1 není platný číselný údaj tvořený písmeny.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/>
+ <source>%1 takes at most %n argument(s). %2 is therefore invalid.</source>
+ <translation>
+ <numerusform>%1 má jen %n argument; údaj %2 z tohoto důvodu neplatný.</numerusform>
+ <numerusform>%1 má jen %n argumenty; údaj %2 z tohoto důvodu neplatný.</numerusform>
+ <numerusform>%1 má jen %n argumenty; údaj %2 z tohoto důvodu neplatný.</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Circularity detected</source>
+ <translation type="obsolete">byla zjištěna cirkulární závislost</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+3971"/>
+ <source>A variable by name %1 has already been declared.</source>
+ <translation>Proměnná s názvem %1 již byla prohlášena.</translation>
+ </message>
+ <message>
+ <location line="-312"/>
+ <source>The prefix %1 can not be bound. By default, it is already bound to the namespace %2.</source>
+ <translation>Předpona %1 nemůže být spojena. Ve výchozím nastavení je již spojena se jmenným prostorem %2.</translation>
+ </message>
+ <message>
+ <source>An %1-attribute must have a valid %2 as value, which %3 isn&apos;t.</source>
+ <translation type="obsolete">Vlastnost s názvem %1 musí mít platnou %2-hodnotu. %3 není platnou hodnotou.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+389"/>
+ <source>If element %1 has no attribute %2, it cannot have attribute %3 or %4.</source>
+ <translation>Prvek %1 nesmí mít vlastnost %3 nebo %4, pokud nemá vlastnost %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+511"/>
+ <source>A function already exists with the signature %1.</source>
+ <translation>Již existuje funkce s podpisem %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+223"/>
+ <source>When casting to %1 from %2, the source value cannot be %3.</source>
+ <translation>U operace předvedení z %1 do %2 nesmí být zdrojová hodnota %3.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+60"/>
+ <source>Attribute %1 can&apos;t be serialized because it appears at the top level.</source>
+ <translation>Vlastnost %1 nemůže být vydáván na pokračování, protože se objevuje na nejvyšší rovině.</translation>
+ </message>
+ <message>
+ <source>No comparisons can be done involving the type %1.</source>
+ <translation type="obsolete">S typem %1 nemohou být prováděny žádné srovnávací operace.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-160"/>
+ <source>No value is available for the external variable by name %1.</source>
+ <translation>Pro vnější proměnnou s názvem %1 není dostupná žádná hodnota.</translation>
+ </message>
+ <message>
+ <location line="-426"/>
+ <source>The value of attribute %1 must of type %2, which %3 isn&apos;t.</source>
+ <translation>Hodnota vlastnosti %1 musí být typu %2. %3 není platnou hodnotou.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/>
+ <source>The item %1 did not match the required type %2.</source>
+ <translation>Prvek %1 neodpovídá požadovanému typu %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+1122"/>
+ <source>Element %1 cannot have a sequence constructor.</source>
+ <translation>Prvek %1 nemůže mít stavitele posloupnosti.</translation>
+ </message>
+ <message>
+ <location line="-842"/>
+ <source>When attribute %1 is present on %2, a sequence constructor cannot be used.</source>
+ <translation>Nelze používat žádného stavitele posloupnosti, když %2 má vlastnost %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+6"/>
+ <source>one or more</source>
+ <translation>jeden nebo více</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-289"/>
+ <source>The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2.</source>
+ <translation>Kódování %1 je neplatné; smí sestávat pouze z latinských písmen a musí odpovídat pravidelnéu výrazu %2.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+11"/>
+ <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source>
+ <translation>
+ <numerusform>%1 vyžaduje alespoň %n argument; údaj %2 je z toho důvodu neplatný.</numerusform>
+ <numerusform>%1 vyžaduje alespoň %n argumenty; údaj %2 je z toho důvodu neplatný.</numerusform>
+ <numerusform>%1 vyžaduje alespoň %n argumenty; údaj %2 je z toho důvodu neplatný.</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+113"/>
+ <source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.</source>
+ <translation>%2 není platným cílovým názvem pokynu pro zpracování, protože tento nesmí být %1 (nehledě na psaní velkých/malých písmen).</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+156"/>
+ <source>The focus is undefined.</source>
+ <translation>Není stanoveno ohnisko.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-3390"/>
+ <location line="+7323"/>
+ <source>%1 is an unknown schema type.</source>
+ <translation>%1 je neznámým typem schematu.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+1206"/>
+ <source>The value for attribute %1 on element %2 must either be %3 or %4, not %5.</source>
+ <translation>Hodnota vlastnosti %1 prvku %2 může být jen %3 nebo %4, ne však %5.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="-26"/>
+ <source>In the replacement string, %1 must be followed by at least one digit when not escaped.</source>
+ <translation>V nahrazovacím řetězci musí po %1 následovat alespoň jedna číslice, když není chráněn znakem Escape.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-2712"/>
+ <source>In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can.</source>
+ <translation>V XSL-T vyhledávacím vzoru se smějí používat jen osy %2 nebo %3, ne však %1.</translation>
+ </message>
+ <message>
+ <location line="-401"/>
+ <source>The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)</source>
+ <translation>Jmenný prostor uživatelem stanovené funkce nesmí být prázdný (pro tento účel je předstanovená předpona %1)</translation>
+ </message>
+ <message>
+ <source>The first operand in an integer division, %1, cannot be infinity (%2).</source>
+ <translation type="obsolete">První veličina, operand, celočíselného dělení %1 nesmí být nekonečno (%2).</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/>
+ <source>%1 is not a valid value of type %2.</source>
+ <translation>%1 není platnou hodnotou typu %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+166"/>
+ <source>Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed.</source>
+ <translation>Násobení hodnoty typu %1 s %2 nebo %3 (kladné nebo záporné nekonečno) není přípustné.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
+ <source>The variable %1 is unused</source>
+ <translation>Proměnná %1 se nepoužívá</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+1787"/>
+ <source>The %1-axis is unsupported in XQuery</source>
+ <translation>Osa %1 není v XQuery podporována</translation>
+ </message>
+ <message>
+ <location line="+644"/>
+ <source>A direct element constructor is not well-formed. %1 is ended with %2.</source>
+ <translation>Byl nalezen chybný stavitel přímého prvku. %1 končí %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="-32"/>
+ <source>Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed.</source>
+ <translation>Dělení hodnoty typu %1 prostřednictvím %2 nebo %3 (kladná nebo záporná nula) není přípustné.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+20"/>
+ <source>Attribute %1 cannot have the value %2.</source>
+ <translation>Vlastnost %1 nesmí mít hodnotu %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+346"/>
+ <source>It will not be possible to retrieve %1.</source>
+ <translation>%1 nelze určit.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-2103"/>
+ <source>In an XSL-T pattern, function %1 cannot have a third argument.</source>
+ <translation>V XSL-T vyhledávacím vzoru nesmí mít funkce %1 třetí argument.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="-9"/>
+ <source>The namespace URI in the name for a computed attribute cannot be %1.</source>
+ <translation>URI jmenného prostoru v názvu vypočítané vlastnosti nesmí být %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+24"/>
+ <source>%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3.</source>
+ <translation>%1 není platným cílovým názvem pokynu pro zpracování. Musí to být hodnota %2 jakou je například %3.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+2571"/>
+ <source>%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works.</source>
+ <translation>%1 je složeným typem. Operace předvedení u složených typů není možná. Mohou se ovšem provádět operace obsazení u atomárních typů jako %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="-4"/>
+ <source>zero or one</source>
+ <translation>žádný nebo jeden</translation>
+ </message>
+ <message>
+ <source>No operand in an integer division, %1, can be %2.</source>
+ <translation type="obsolete">U celočíselného dělení %1 nesmí být veličina, operand, %2.</translation>
+ </message>
+ <message>
+ <source>The element with local name %1 does not exist in XSL-T.</source>
+ <translation type="obsolete">V XSL-T neexistuje žádný prvek s místním názvem %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-634"/>
+ <source>Two namespace declaration attributes have the same name: %1.</source>
+ <translation>Byly nalezeny dvě vlastnosti prohlášení jmenného prostoru se stejným názvem (%1).</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/>
+ <source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source>
+ <translation>Skutečná Booleanská hodnota nemůže být vypočítána pro posloupnost ze dvou nebo více atomárních hodnot.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+168"/>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="-17"/>
+ <source>%1 is an invalid %2</source>
+ <translation>%1 je neplatný %2</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="-165"/>
+ <source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source>
+ <translation>První argument k %1 nesmí být typu %2; musí to být číselný typ, xs:yearMonthDuration nebo xs:dayTimeDuration.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="-141"/>
+ <source>Division (%1) by zero (%2) is undefined.</source>
+ <translation>Dělení (%1) nulou (%2) není stanoveno.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+40"/>
+ <source>No template by name %1 exists.</source>
+ <translation>Neexistuje žádná předloha s názvem %1.</translation>
+ </message>
+ <message>
+ <source>The attribute %1 must appear on element %2.</source>
+ <translation type="obsolete">Prvek %2 musí mít vlastnost %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+105"/>
+ <source>An attribute by name %1 has already appeared on this element.</source>
+ <translation>Prvek má již vlastnost s názvem %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="-13"/>
+ <source>The default collection is undefined</source>
+ <translation>Pro sbírku není stanovena žádná předloha</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+24"/>
+ <source>Only the prefix %1 can be bound to %2 and vice versa.</source>
+ <translation>S %2 může být spojena pouze předpona %1 (a obráceně).</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
+ <source>Value %1 of type %2 exceeds maximum (%3).</source>
+ <translation>Hodnota %1 typu %2 překračuje maximum (%3).</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+10"/>
+ <source>Whitespace characters are removed, except when they appear in character classes</source>
+ <translation>Prázdné znaky jsou odstraněny v případě, že se neobjeví ve znakových třídách</translation>
+ </message>
+ <message>
+ <source>Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated.</source>
+ <translation type="obsolete">Nemohou se provádět žádné operace předvedení k typu %1, protože je to abstraktní typ ist a nelze je doložit příkladem.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
+ <source>Operator %1 cannot be used on type %2.</source>
+ <translation>Operátor %1 nelze použít na typ %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-2361"/>
+ <source>The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases.</source>
+ <translation>Jmenný prostor %1 je vyhrazen a z toho důvodu jej nemohou používat uživatelem stanovené funkce (pro tento účel je tu předstanovená předpona %2).</translation>
+ </message>
+ <message>
+ <location line="-174"/>
+ <source>The target namespace of a %1 cannot be empty.</source>
+ <translation>Cílový jmenný prostor %1 nesmí být prázdný.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="-39"/>
+ <source>%1 must be followed by %2 or %3, not at the end of the replacement string.</source>
+ <translation>Po %1 musí následovat %2 nebo %3; nesmí se objevit na konci nahrazovacího řetězce.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+2394"/>
+ <source>%1 is an invalid namespace URI.</source>
+ <translation>%1 není platným jmenným prostorem-URI.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="-298"/>
+ <location line="+9"/>
+ <source>The attribute %1 cannot appear on %2, when it is a child of %3.</source>
+ <translation>%2 nesmí mít vlastnost %1 v případě, že je potomkem %3.</translation>
+ </message>
+ <message>
+ <location line="+347"/>
+ <source>The attribute %1 can only appear on the first %2 element.</source>
+ <translation>Pouze první %2-prvek smí mít vlastnost %1.</translation>
+ </message>
+ <message>
+ <location line="-1271"/>
+ <source>Element %1 must have either a %2-attribute or a sequence constructor.</source>
+ <translation>Prvek %1 musí mít buď jednu %2-vlastnost nebo se musí používat stavitel posloupnosti.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-2891"/>
+ <source>Module imports must occur before function, variable, and option declarations.</source>
+ <translation>Zavedení modulů musí nastat před prohlášeními funkcí, proměnných a voleb.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+19"/>
+ <source>Day %1 is outside the range %2..%3.</source>
+ <translation>Údaj dne %1 je mimo rozsah %2..%3.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="-18"/>
+ <source>%1 contains octets which are disallowed in the requested encoding %2.</source>
+ <translation>%1 obsahuje oktety, které v kódování %2 nejsou přípustné.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+125"/>
+ <source>When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor.</source>
+ <translation>Výchozí hodnota požadovaného parametru nemůže být zadána ani prostřednictvím %1-vlastnosti ani přes stavitele posloupnosti.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+967"/>
+ <source>In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching.</source>
+ <translation>V XSL-T vyhledávacím vzoru musí být první argument k funkci %1 při použití k hledání řetězec tvořený písmeny.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="-889"/>
+ <source>Text nodes are not allowed at this location.</source>
+ <translation>Na tomto místě nesmí stát žádné textové uzly.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="-32"/>
+ <source>A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type.</source>
+ <translation>Hodnoty typu %1 nesmí ýt přísudkem. Pro přísudky jsou přípustné pouze typ číselný nebo účinný booleánský.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+2679"/>
+ <source>%1 is not a valid name for a processing-instruction.</source>
+ <translation>%1 není platným názvem pokynu pro zpracování.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
+ <source>%1 was called.</source>
+ <translation>%1 byl volán.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="-7"/>
+ <source>It&apos;s not possible to add attributes after any other kind of node.</source>
+ <translation>Vlastnosti nesmí následovat za jinými druhy uzlů.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+655"/>
+ <source>At least one %1-element must occur before %2.</source>
+ <translation>Před %2 musí stát alespoň jeden %1-prvek.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+252"/>
+ <source>The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization).</source>
+ <translation>Tato forma normalizování %1 není podporována. Podporovanými formami normalizování jsou %2, %3, %4 a %5, a &quot;žádný&quot; (prázdný znakový řetězec zastupuje &quot;žádné normalizování&quot;).</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+29"/>
+ <source>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.</source>
+ <translation>U operace představení k typu %1 nebo odvozených typů musí být zdrojovou hodnotou řetězec znaků tvořený písmeny nebo hodnota stejného typu. Typ %2 je neplatný.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+1048"/>
+ <source>A parameter in a function cannot be declared to be a tunnel.</source>
+ <translation>Parameter funkce nelze prohlásit za tunel.</translation>
+ </message>
+ <message>
+ <source>XSL-T attributes on XSL-T elements must be in the null namespace, not in the XSL-T namespace which %1 is.</source>
+ <translation type="obsolete">XSL-T vlastnosti XSL-T prvku musí být v nulovém jmenném prostoru, nikoli v XSL-T jmenném prostoru, jako %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-2963"/>
+ <source>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</source>
+ <translation>Jmenný prostor uživatelem stanovené funkce v modulu knihovny musí odpovídat jmennému prostoru modulu (Jinými slovy by měl být %1 namísto %2) </translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+26"/>
+ <source>Day %1 is invalid for month %2.</source>
+ <translation>Ǔdaj o dni %1 je neplatným pro měsíc %2.</translation>
+ </message>
+ <message>
+ <location line="-9"/>
+ <source>Overflow: Can&apos;t represent date %1.</source>
+ <translation>Nelze představit datum %1 (Přetečení).</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="-1304"/>
+ <source>In a simplified stylesheet module, attribute %1 must be present.</source>
+ <translation>Ve zjednodušeném modulu stylového listu musí být přítomna vlastnost %1.</translation>
+ </message>
+ <message>
+ <location line="-189"/>
+ <source>Unknown XSL-T attribute %1.</source>
+ <translation>Neznámá XSL-T vlastnost: %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-483"/>
+ <source>It is not possible to redeclare prefix %1.</source>
+ <translation>Předponu %1 nelze prohlásit.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+2"/>
+ <source>exactly one</source>
+ <translation>přesně jeden</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+100"/>
+ <source>%1 is an invalid regular expression pattern: %2</source>
+ <translation>%1 není platným pravidelným výrazem: %2</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="-219"/>
+ <source>Element %1 is not allowed at this location.</source>
+ <translation>Prvek %1 nesmí stát na tomto místě.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+1811"/>
+ <source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source>
+ <translation>%1-výrazy se nemohou používat, protože funkce prohlášení schématu platným není podporována.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+2143"/>
+ <source>At least one %1 element must appear as child of %2.</source>
+ <translation>Alespoň jeden %1-prvek musí být potomkem %2.</translation>
+ </message>
+ <message>
+ <location line="-282"/>
+ <source>This processor is not Schema-aware and therefore %1 cannot be used.</source>
+ <translation>%1 se nemůže používat, protože tento procesor nepodporuje žádné schéma.</translation>
+ </message>
+ <message>
+ <source>Attribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes.</source>
+ <translation type="obsolete">Prvek %2 může mít jen %3 nebo obvyklé vlastnosti, ne však %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+129"/>
+ <location line="+32"/>
+ <source>Dividing a value of type %1 by %2 (not-a-number) is not allowed.</source>
+ <translation>Dělení hodnoty typu %1 prostřednictvím %2 (není číselnou hodnotou) není přípustné.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+58"/>
+ <source>Required cardinality is %1; got cardinality %2.</source>
+ <translation>Požadované kardinální číslo (mohutnost množiny) je %1 (v současnosti %2).</translation>
+ </message>
+ <message>
+ <source>A construct was encountered which only is allowed in XQuery.</source>
+ <translation type="obsolete">Tento výtvor je přípustný pouze v XQuery.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+771"/>
+ <source>No function by name %1 is available.</source>
+ <translation>Neexistuje žádná funkce s názvem %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+65"/>
+ <source>The URI cannot have a fragment</source>
+ <translation>URI nesmí obsahovat kousek</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+788"/>
+ <source>%1 is not an atomic type. Casting is only possible to atomic types.</source>
+ <translation>%1 není atomárním typem. Operace představení se dají provádět pouze s atomárními typy.</translation>
+ </message>
+ <message>
+ <source>The first argument to %1 cannot be of type %2.</source>
+ <translation type="obsolete">První argument %1 nemůže být typu %2.</translation>
+ </message>
+ <message>
+ <location line="-554"/>
+ <source>The namespace URI must be a constant and cannot use enclosed expressions.</source>
+ <translation>Jmenný prostor-URI musí být konstantou a nesmí používat vložené výrazy.</translation>
+ </message>
+ <message>
+ <location line="-2798"/>
+ <source>Prefix %1 is already declared in the prolog.</source>
+ <translation>Předpona %1 byla prohlášena již v předmluvě (prologu).</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
+ <source>Ambiguous rule match.</source>
+ <translation>Víceznačné pravidlo.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="-49"/>
+ <source>Promoting %1 to %2 may cause loss of precision.</source>
+ <translation>Postoupení od %1 k %2 může vést ke ztrátě přesnosti.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+782"/>
+ <source>In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching.</source>
+ <translation>V XSL-T vyhledávacím vzoru se smějí pro srovnávání používat jen funkce %1 a %2, ne však %3.</translation>
+ </message>
+ <message>
+ <location line="-1031"/>
+ <location line="+10"/>
+ <source>A default namespace declaration must occur before function, variable, and option declarations.</source>
+ <translation>Prohlášení výchozích jmenných prostorů musí stát před prohlášeními funkcí-, proměnných- nebo prohlášeními voleb.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+17"/>
+ <source>Operator %1 cannot be used on atomic values of type %2 and %3.</source>
+ <translation>Operátor %1 se nemůže používat u atomárních hodnot typů %2 a %3.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+526"/>
+ <source>The module import feature is not supported</source>
+ <translation>Funkce zavedení modulu není podporována</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="-71"/>
+ <source>The parameter %1 is passed, but no corresponding %2 exists.</source>
+ <translation>Neexistuje žádný odpovídající %2 pro předaný parameter %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/>
+ <source>A value of type %1 cannot have an Effective Boolean Value.</source>
+ <translation>Hodnota typu %1 nemůže mít žádnou účinnou booleánskou hodnotu.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/>
+ <source>The data of a processing instruction cannot contain the string %1</source>
+ <translation>Data pokynu pro zpracování nesmí obsahovat řetězec znaků %1</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+58"/>
+ <source>Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; </source>
+ <translation>Časový údaj 24:%1:%2.%3 je neplatný. U hodinového údaje je 24, ale minuty, sekundy a milisekundy musí být všechny 0; </translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-3984"/>
+ <source>A template by name %1 has already been declared.</source>
+ <translation>Předloha s názvem %1 už byla prohlášena.</translation>
+ </message>
+ <message>
+ <location line="+6376"/>
+ <source>It is not possible to bind to the prefix %1</source>
+ <translation>Předponu %1 nelze spojit</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+9"/>
+ <source>Value %1 of type %2 is below minimum (%3).</source>
+ <translation>Hodnota %1 typu %2 zůstává pod minimem (%3).</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="-44"/>
+ <source>Required type is %1, but %2 was found.</source>
+ <translation>Požadovaný typ je %1, byl ale zadán %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="-16"/>
+ <source>%1 is an unsupported encoding.</source>
+ <translation>Kódování %1 není podporováno.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-2584"/>
+ <source>The name of an option must have a prefix. There is no default namespace for options.</source>
+ <translation>Název volby musí mít předponu. Pro volby není žádná předloha pro jmenný prostor.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="-1221"/>
+ <source>Element %1 must come last.</source>
+ <translation>Prvek %1 musí stát jako poslední.</translation>
+ </message>
+ <message>
+ <source>Attribute %1 cannot appear on the element %2. Allowed is %3, %4, and the standard attributes.</source>
+ <translation type="obsolete">Prvek %2 může mít jen vlastnost %3, %4 nebo vlastnosti, které jsou obvyklé, ne však %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="-12"/>
+ <source>No namespace binding exists for the prefix %1 in %2</source>
+ <translation>Neexistuje žádné svázání jmenného prostoru pro předponu %1 v %2</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+3238"/>
+ <source>The name %1 does not refer to any schema type.</source>
+ <translation>Název %1 nemá žádnou spojitost s jakýmkoli typem schématu.</translation>
+ </message>
+ <message>
+ <location line="-639"/>
+ <source>Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared).</source>
+ <translation>Předponu %1 lze spojit pouze s %2. Toto je prohlášeno již dopředu..</translation>
+ </message>
+ <message>
+ <location line="-6517"/>
+ <source>W3C XML Schema identity constraint selector</source>
+ <translation>Přepínač omezení totožnosti W3C XML schéma</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>W3C XML Schema identity constraint field</source>
+ <translation>Pole omezení totožnosti W3C XML schéma</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>A construct was encountered which is disallowed in the current language(%1).</source>
+ <translation>Narazilo se na výtvor, který v nynějším jazyce není povolen (%1).</translation>
+ </message>
+ <message>
+ <location line="+520"/>
+ <source>The initialization of variable %1 depends on itself</source>
+ <translation>Inicializace proměnné %1 je závislá na její vlastní hodnotě</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+86"/>
+ <source>An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place.</source>
+ <translation>Uzel vlastnosti se nesmí objevit jako potomek uzlu dokumentu. Objevil se uzel vlastnosti s názvem %1, který je proto nevhodný.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="-68"/>
+ <source>Month %1 is outside the range %2..%3.</source>
+ <translation>Údaj o měsíci %1 je mimo rozsah %2..%3.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+4311"/>
+ <source>The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide.</source>
+ <translation>Název proměnné úzce spojené s pro-výrazem se musí lišit od poziční proměnné. Dvě proměnné s názvem %1 se z tohoto důvodu střetávají.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+82"/>
+ <source>No namespace binding exists for the prefix %1</source>
+ <translation>Neexistuje žádné svázání jmenného prostoru pro předponu %1</translation>
+ </message>
+ <message>
+ <source>An %1-attribute with value %2 has already been declared.</source>
+ <translation type="obsolete">Prvek má již jednu vlastnost s názvem %1 s hodnotou %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+19"/>
+ <source>%1 is not valid as a value of type %2.</source>
+ <translation>%1 není platný jako hodnota typu %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+4"/>
+ <source>zero or more</source>
+ <translation>žádný nebo více</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+2482"/>
+ <location line="+71"/>
+ <source>%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported.</source>
+ <translation>%1 se nenachází v oblasti pod prohlášením vlastností. Všimněte si, že funkce zavedení schématu není podporována.</translation>
+ </message>
+ <message>
+ <location line="-2830"/>
+ <source>When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal.</source>
+ <translation>Při použití funkce %1 k vyhodnocování uvnitř vyhledávacího vzoru musí být argumentem odkaz na proměnnou nebo řetězec tvořený písmeny.</translation>
+ </message>
+ <message>
+ <location line="+233"/>
+ <source>%1 is an invalid template mode name.</source>
+ <translation>%1 není platným názvem pro řežim předlohy.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="-7"/>
+ <source>At least one time component must appear after the %1-delimiter.</source>
+ <translation>Po %1-oddělovači se musí objevit alespoň jedna složka času.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+196"/>
+ <source>Overflow: Date can&apos;t be represented.</source>
+ <translation>Nelze představit datum (Přetečení).</translation>
+ </message>
+ <message>
+ <source>Operator %1 is not available between atomic values of type %2 and %3.</source>
+ <translation type="obsolete">Operátor %1 se nemůže používat u atomárních hodnot typů %2 a %3.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qtimezonefns.cpp" line="+87"/>
+ <source>A zone offset must be in the range %1..%2 inclusive. %3 is out of range.</source>
+ <translation>Rozdíl v časové zóně musí ležet v oblasti %1..%2 (včetně). %3 leží mimo oblast.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/>
+ <source>%1 is not a valid XML 1.0 character.</source>
+ <translation>%1 není platný znak XML 1.0.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+74"/>
+ <source>The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source>
+ <translation>První argument %1 nemůže být typu %2. Musí to být typ %3, %4 nebo %5.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qtimezonefns.cpp" line="+12"/>
+ <source>%1 is not a whole number of minutes.</source>
+ <translation>%1 není celočíselným údajem o minutách.</translation>
+ </message>
+ <message>
+ <source>Failure when casting from %1 to %2: %3</source>
+ <translation type="obsolete">Operace předvedení od %1 do %2 se nepodařila: %3</translation>
+ </message>
+ <message>
+ <source>It is not possible to cast from %1 to %2.</source>
+ <translation type="obsolete">Nelze provádět žádnou operaci předvedení od %1 do %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-4204"/>
+ <source>No variable by name %1 exists</source>
+ <translation>Neexistuje žádná proměnná s názvem %1</translation>
+ </message>
+ <message>
+ <location line="+5919"/>
+ <source>Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared).</source>
+ <translation>Jmenný prostor %1 lze spojit pouze s %2. Toto je stanoveno již dopředu.</translation>
+ </message>
+ <message>
+ <source>The second operand in a division, %1, cannot be zero (%2).</source>
+ <translation type="obsolete">Druhá veličina, operand, dělení %1 nesmí být nula (%2).</translation>
+ </message>
+ <message>
+ <location line="-6170"/>
+ <source>Only one %1 declaration can occur in the query prolog.</source>
+ <translation>Předmluva k dotazu (prolog) smí obsahovat pouze jedno %1-prohlášení.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="-151"/>
+ <source>Element %1 must have at least one of the attributes %2 or %3.</source>
+ <translation>Prvek %1 musí mít alespoň jednu z vlastností %2 nebo %3.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+86"/>
+ <source>If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same.</source>
+ <translation>Když jsou zadány obě hodnoty s časovými zónami, musí mít ten samý rozdíl v časové zóně. %1 a %2 nejsou to samé a jsou tím pádem nepřípustné.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+4006"/>
+ <source>No external functions are supported. All supported functions can be used directly, without first declaring them as external</source>
+ <translation>Nejsou podporovány vnější funkce. Všechny podporované funkce se dají používat přímo, bez toho, že by byly nejprve prohlášeny za vnější</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+109"/>
+ <source>The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two.</source>
+ <translation>Poslední krok cesty musí obsahovat buď jen uzly nebo jen atomární hodnoty. Nesmí se vyskytovat společně.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/schema/qxsdparticlechecker.cpp" line="+165"/>
+ <source>Empty particle cannot be derived from non-empty particle.</source>
+ <translation>Prázdnou částici nelze odvodit z částice, která není prázdná.</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Derived particle is missing element %1.</source>
+ <translation>V odvozené částici chybí prvek %1.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Derived element %1 is missing value constraint as defined in base particle.</source>
+ <translation>V odvozeném prvku %1 chybí omezení hodnoty, jak je to stanoveno v základní částici.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Derived element %1 has weaker value constraint than base particle.</source>
+ <translation>Odvozený prvek %1 má slabší omezení hodnoty než má základní částice.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Fixed value constraint of element %1 differs from value constraint in base particle.</source>
+ <translation>Pevné omezení hodnoty prvku %1 se liší od omezení hodnoty základní částici.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Derived element %1 cannot be nillable as base element is not nillable.</source>
+ <translation>Odvozený prvek %1 nemůže mít žádnou vlastnost &apos;nillable&apos;, neboť základní prvek žádnou nestanovuje.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Block constraints of derived element %1 must not be more weaker than in the base element.</source>
+ <translation>Omezení bloku odvozeného prvku %1 nesmí být slabší než v základním prvku.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Simple type of derived element %1 cannot be validly derived from base element.</source>
+ <translation>Jednoduchý typ odvozeného prvku %1 nemůže být platně odvozen ze základního prvku.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Complex type of derived element %1 cannot be validly derived from base element.</source>
+ <translation>Složitý typ odvozeného prvku %1 nemůže být platně odvozen ze základního prvku.</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>Element %1 is missing in derived particle.</source>
+ <translation>Prvek %1 chybí v odvozené částici.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Element %1 does not match namespace constraint of wildcard in base particle.</source>
+ <translation>Prvek %1 neodpovídá omezení jmenného prostoru zástupného symbolu (vzor hledání) v základní částici.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Wildcard in derived particle is not a valid subset of wildcard in base particle.</source>
+ <translation>Zástupný symbol (vzor hledání) v odvozené částici není platnou dílčí množinou zástupného symbolu v základní částici.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>processContent of wildcard in derived particle is weaker than wildcard in base particle.</source>
+ <translation>Vlastnost processContent zástupného symbolu (vzor hledání) odvozené částice je slabší než zástupný symbol (vzor hledání) v základní částici.</translation>
+ </message>
+ <message>
+ <location line="+240"/>
+ <source>Derived particle allows content that is not allowed in the base particle.</source>
+ <translation>Odvozená částice dovoluje obsah, který není přípustný pro základní částici.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/schema/qxsdschemachecker.cpp" line="+227"/>
+ <source>%1 has inheritance loop in its base type %2.</source>
+ <translation>%1 má ve svém základním typu %2 v kruzích prováděnou dědičnost.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <location line="+24"/>
+ <source>Circular inheritance of base type %1.</source>
+ <translation>V kruzích prováděná dědičnost v základním typu %1.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Circular inheritance of union %1.</source>
+ <translation>V kruzích prováděná dědičnost při sjednocení %1.</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>%1 is not allowed to derive from %2 by restriction as the latter defines it as final.</source>
+ <translation>%1 není dovoleno odvodit z %2 pomocí omezení, neboť posledně uvedený ji určuje jako konečnou.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>%1 is not allowed to derive from %2 by extension as the latter defines it as final.</source>
+ <translation>%1 není dovoleno odvodit z %2 pomocí rozšíření, neboť posledně uvedený ji určuje jako konečnou.</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Base type of simple type %1 cannot be complex type %2.</source>
+ <translation>Složitý typ %2 nemůže být základním typem jednoduchého typu %1.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Simple type %1 cannot have direct base type %2.</source>
+ <translation>Jednoduchý typ %1 nemůže mít přímý základní typ %2.</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <location line="+9"/>
+ <source>Simple type %1 is not allowed to have base type %2.</source>
+ <translation>Jednoduchý typ %1 nesmí mít základní typ %2.</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Simple type %1 can only have simple atomic type as base type.</source>
+ <translation>Jednoduchý typ %1 může mít jen jednoduchý malinký základní typ.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Simple type %1 cannot derive from %2 as the latter defines restriction as final.</source>
+ <translation>Jednoduchý typ %1 nesmí být odvozen z %2 , neboť poslední určuje omezení jako konečné.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <location line="+484"/>
+ <source>Variety of item type of %1 must be either atomic or union.</source>
+ <translation>Rozmanitost složkových typů %1 musí být buď malinká nebo sjednocení.</translation>
+ </message>
+ <message>
+ <location line="-474"/>
+ <location line="+483"/>
+ <source>Variety of member types of %1 must be atomic.</source>
+ <translation>Rozmanitost členských typů %1 musí být malinká.</translation>
+ </message>
+ <message>
+ <location line="-470"/>
+ <location line="+451"/>
+ <source>%1 is not allowed to derive from %2 by list as the latter defines it as final.</source>
+ <translation>%1 není dovoleno odvodit z %2 pomocí seznamu, neboť posledně uvedený ji určuje jako konečnou.</translation>
+ </message>
+ <message>
+ <location line="-431"/>
+ <source>Simple type %1 is only allowed to have %2 facet.</source>
+ <translation>Jednoduchý typ %1 může mít jen stránky %2.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Base type of simple type %1 must have variety of type list.</source>
+ <translation>Základní typ jednoduchého typu %1 musí mít rozmanitost seznamu typů.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Base type of simple type %1 has defined derivation by restriction as final.</source>
+ <translation>Základní typ jednoduchého typu %1 určuje sjednocení pomocí omezení jako konečné.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Item type of base type does not match item type of %1.</source>
+ <translation>Složkový typ základního typu neodpovídá složkovému typu %1.</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <location line="+93"/>
+ <source>Simple type %1 contains not allowed facet type %2.</source>
+ <translation>Jednoduchý typ %1 obsahuje nedovolený typ stránky %2.</translation>
+ </message>
+ <message>
+ <location line="-72"/>
+ <location line="+413"/>
+ <source>%1 is not allowed to derive from %2 by union as the latter defines it as final.</source>
+ <translation>%1 není dovoleno odvodit z %2 pomocí sjednocení, neboť posledně uvedený ji určuje jako konečnou.</translation>
+ </message>
+ <message>
+ <location line="-404"/>
+ <source>%1 is not allowed to have any facets.</source>
+ <translation>%1 nesmí mít žádné stránky.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Base type %1 of simple type %2 must have variety of union.</source>
+ <translation>Základní typ %1 jednoduchého typu %2 musí mít rozmanitost sjednocení typů.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute.</source>
+ <translation>Základní typ %1 jednoduchého typu %2 nesmí mít žádné omezení vlastnosti %3.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Member type %1 cannot be derived from member type %2 of %3&apos;s base type %4.</source>
+ <translation>Členský typ %1 nemůže být odvozen z členského typu %2 ze základního typu %4 %3.</translation>
+ </message>
+ <message>
+ <location line="+65"/>
+ <source>Derivation method of %1 must be extension because the base type %2 is a simple type.</source>
+ <translation>Rozšíření s musí používat jako způsob dědičnosti (odvození) pro %1, neboť základní typ %2 je jednoduchým typem.</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Complex type %1 has duplicated element %2 in its content model.</source>
+ <translation>Složitý typ %1 má zdvojený prvek %2 ve svém modelu obsahu.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Complex type %1 has non-deterministic content.</source>
+ <translation>Složitý typ %1 má ne-neměnný obsah.</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3.</source>
+ <translation>Vlastnosti složitého typu %1 nejsou žádným platným rozšířením vlastností základního typu %2: %3.</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>Content model of complex type %1 is not a valid extension of content model of %2.</source>
+ <translation>Model obsahu složitého typu %1 není žádným platným rozšířením modelu obsahu %2.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Complex type %1 must have simple content.</source>
+ <translation>Složitý typ %1 musí mít jednoduchý obsah.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Complex type %1 must have the same simple type as its base class %2.</source>
+ <translation>Složitý typ %1 musí mít jednoduchý obsah.</translation>
+ </message>
+ <message>
+ <location line="+67"/>
+ <source>Complex type %1 cannot be derived from base type %2%3.</source>
+ <translation>Složitý typ %2 nemůže být odvozen ze základního typu %2%3.</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3.</source>
+ <translation>Vlastnosti složitého typu %1 nejsou žádným platným omezením vlastností základního typu %2: %3.</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Complex type %1 with simple content cannot be derived from complex base type %2.</source>
+ <translation>Složitý typ %1 s jednoduchým obsahem nemůže být odvozen ze složitého základního typu %2.</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Item type of simple type %1 cannot be a complex type.</source>
+ <translation>Složkový typ jednoduchého typu %1 nemůže být složitým typem.</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Member type of simple type %1 cannot be a complex type.</source>
+ <translation>Členský typ jednoduchého typu %1 nemůže být složitým typem.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>%1 is not allowed to have a member type with the same name as itself.</source>
+ <translation>%1 nesmí mít členský typ se stejným názvem, jaký má sám.</translation>
+ </message>
+ <message>
+ <location line="+83"/>
+ <location line="+29"/>
+ <location line="+34"/>
+ <source>%1 facet collides with %2 facet.</source>
+ <translation>Stránka %1 se střetává se stránkou %2.</translation>
+ </message>
+ <message>
+ <location line="-20"/>
+ <source>%1 facet must have the same value as %2 facet of base type.</source>
+ <translation>Stránka %1 musí mít tutéž hodnotu, jakou má stránka %2 základního typu.</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>%1 facet must be equal or greater than %2 facet of base type.</source>
+ <translation>Stránka %1 musí být stejná nebo větší než stránka %2 základního typu.</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <location line="+125"/>
+ <location line="+55"/>
+ <location line="+12"/>
+ <location line="+91"/>
+ <location line="+58"/>
+ <location line="+34"/>
+ <location line="+35"/>
+ <source>%1 facet must be less than or equal to %2 facet of base type.</source>
+ <translation>Stránka %1 musí být menší nebo stejná jako stránka %2 základního typu.</translation>
+ </message>
+ <message>
+ <location line="-389"/>
+ <source>%1 facet contains invalid regular expression</source>
+ <translation>Stránka %1 obsahuje neplatný pravidelný výraz</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Unknown notation %1 used in %2 facet.</source>
+ <translation>Stránka %2 obsahuje neplatné zaznamenání %1.</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>%1 facet contains invalid value %2: %3.</source>
+ <translation>Stránka %1 obsahuje neplatnou hodnotu %2: %3.</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>%1 facet cannot be %2 or %3 if %4 facet of base type is %5.</source>
+ <translation>Stránka %1 nesmí být %2 nebo %3, pokud je stránka %4 základního typu %5.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>%1 facet cannot be %2 if %3 facet of base type is %4.</source>
+ <translation>Stránka %1 nesmí být %2, pokud je stránka %3 základního typu %4.</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <location line="+55"/>
+ <location line="+230"/>
+ <source>%1 facet must be less than or equal to %2 facet.</source>
+ <translation>Stránka %1 musí být menší nebo stejná jako stránka %2.</translation>
+ </message>
+ <message>
+ <location line="-257"/>
+ <location line="+134"/>
+ <location line="+82"/>
+ <source>%1 facet must be less than %2 facet of base type.</source>
+ <translation>Stránka %1 musí být menší než stránka %2 základního typu.</translation>
+ </message>
+ <message>
+ <location line="-201"/>
+ <location line="+79"/>
+ <source>%1 facet and %2 facet cannot appear together.</source>
+ <translation>Stránky %1 a %2 se nemohou objevit spolu.</translation>
+ </message>
+ <message>
+ <location line="-27"/>
+ <location line="+12"/>
+ <location line="+113"/>
+ <source>%1 facet must be greater than %2 facet of base type.</source>
+ <translation>Stránka %1 musí být větší než stránka %2 základního typu.</translation>
+ </message>
+ <message>
+ <location line="-86"/>
+ <location line="+58"/>
+ <source>%1 facet must be less than %2 facet.</source>
+ <translation>Stránka %1 musí být menší než stránka %2.</translation>
+ </message>
+ <message>
+ <location line="-42"/>
+ <location line="+58"/>
+ <source>%1 facet must be greater than or equal to %2 facet of base type.</source>
+ <translation>Stránka %1 musí být větší nebo stejná jako stránka %2 základního typu.</translation>
+ </message>
+ <message>
+ <location line="+113"/>
+ <source>Simple type contains not allowed facet %1.</source>
+ <translation>Jednoduchý typ obsahuje nedovolenou stránku %1.</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>%1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list.</source>
+ <translation>Stránky %1, %2, %3, %4, %5 a %6 nejsou při odvození (dědičnosti) pomocí seznamu dovoleny.</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Only %1 and %2 facets are allowed when derived by union.</source>
+ <translation>Při odvození (dědičnosti) pomocí sjednocení jsou dovoleny pouze stránky %1 a %2.</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <location line="+16"/>
+ <source>%1 contains %2 facet with invalid data: %3.</source>
+ <translation>%1 obsahuje stránku %2 s neplatnými daty: %3.</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>Attribute group %1 contains attribute %2 twice.</source>
+ <translation>Skupina vlastností %1 obsahuje vlastnost %2 dvakrát.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Attribute group %1 contains two different attributes that both have types derived from %2.</source>
+ <translation>Skupina vlastností %1 obsahuje dvě rozdílné vlastnosti, obě s typy, které jsou odvozeny z %2.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3.</source>
+ <translation>Skupina vlastností %1 obsahuje vlastnost %2 s omezením hodnoty, typ je ale odvozen z %3.</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Complex type %1 contains attribute %2 twice.</source>
+ <translation>Složitý typ %1 obsahuje vlastnost %2 dvakrát.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Complex type %1 contains two different attributes that both have types derived from %2.</source>
+ <translation>Složitý typ %1 obsahuje dvě rozdílné vlastnosti, obě s typy, které jsou odvozeny z %2.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3.</source>
+ <translation>Složitý typ %1 obsahuje vlastnost %2 s omezením hodnoty, typ je ale odvozen z %3.</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>Element %1 is not allowed to have a value constraint if its base type is complex.</source>
+ <translation>Prvek %1 nesmí mít omezení hodnoty, když je základní typ složitý.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Element %1 is not allowed to have a value constraint if its type is derived from %2.</source>
+ <translation>Prvek %1 nesmí mít omezení hodnoty, když je jeho typ odvozen z %2.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <location line="+11"/>
+ <source>Value constraint of element %1 is not of elements type: %2.</source>
+ <translation>Omezení hodnoty prvku %1 není z typu prvku: %2.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Element %1 is not allowed to have substitution group affiliation as it is no global element.</source>
+ <translation>Prvek %1 nesmí patřit k skupině nahrazení, neboť není celkovým prvkem.</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Type of element %1 cannot be derived from type of substitution group affiliation.</source>
+ <translation>Typ prvku %1 nemůže být odvozen z typu příslušné skupiny nahrazení.</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Value constraint of attribute %1 is not of attributes type: %2.</source>
+ <translation>Omezení hodnoty vlastnosti %1 není z typu vlastnosti: %2.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Attribute %1 has value constraint but has type derived from %2.</source>
+ <translation>Vlastnost %1 má mezení hodnoty, ale její typ je odvozen z %2.</translation>
+ </message>
+ <message>
+ <location line="+56"/>
+ <source>%1 attribute in derived complex type must be %2 like in base type.</source>
+ <translation>Vlastnost %1 v odvozeném složitém typu musí být jako v základním typu %2.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Attribute %1 in derived complex type must have %2 value constraint like in base type.</source>
+ <translation>Vlastnost %1 v odvozeném složitém typu musí mít omezení hodnoty jako v základním typu %2.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Attribute %1 in derived complex type must have the same %2 value constraint like in base type.</source>
+ <translation>Vlastnost %1 v odvozeném složitém typu musí mít stejné omezení hodnoty %2 jako v základním typu.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Attribute %1 in derived complex type must have %2 value constraint.</source>
+ <translation>Vlastnost %1 v odvozeném složitém typu musí omezení hodnoty %2.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>processContent of base wildcard must be weaker than derived wildcard.</source>
+ <translation>Vlastnost &apos;processContent&apos; základního zástupného symbolu (vzor hledání) musí být slabší než odvozený zástupný symbol (vzor hledání).</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <location line="+15"/>
+ <source>Element %1 exists twice with different types.</source>
+ <translation>Prvek %1 existuje dvakrát s rozdílnými typy.</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Particle contains non-deterministic wildcards.</source>
+ <translation>Částice obsahuje ne-neměnné zástupné symboly (vzory hledání).</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/schema/qxsdschemahelper.cpp" line="+691"/>
+ <location line="+63"/>
+ <source>Base attribute %1 is required but derived attribute is not.</source>
+ <translation>Základní vlastnost %1 je vyžadována, ale odvozená vlastnost není.</translation>
+ </message>
+ <message>
+ <location line="-57"/>
+ <source>Type of derived attribute %1 cannot be validly derived from type of base attribute.</source>
+ <translation>Typ odvozené vlastnosti %1 nemůže být platně odvozen z typu základní vlastnosti.</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Value constraint of derived attribute %1 does not match value constraint of base attribute.</source>
+ <translation>Omezení hodnoty odvozené vlastnosti %1 neodpovídá omezení hodnoty základní vlastnosti.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Derived attribute %1 does not exists in the base definition.</source>
+ <translation>Odvozená vlastnost %1 neexistuje v základním vymezení.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Derived attribute %1 does not match the wildcard in the base definition.</source>
+ <translation>Odvozená vlastnost %1 neodpovídá zástupnému symbolu (vzoru hledání) v základním vymezení.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Base attribute %1 is required but missing in derived definition.</source>
+ <translation>Základní vlastnost %1 je vyžadována, ale chybí v odvozeném vymezení.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Derived definition contains an %1 element that does not exists in the base definition</source>
+ <translation>Odvozené vymezení obsahuje prvek %1, který v základním vymezení neexistuje</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Derived wildcard is not a subset of the base wildcard.</source>
+ <translation>Odvozený zástupný symbol (vzor hledání) není žádnou dílčí množinou základního zástupného symbolu (vzoru hledání).</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>%1 of derived wildcard is not a valid restriction of %2 of base wildcard</source>
+ <translation>Vlastnost %1 odvozeného zástupného symbolu (vzoru hledání) není platným omezením %2 základního zástupného symbolu (vzoru hledání)</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Attribute %1 from base type is missing in derived type.</source>
+ <translation>Vlastnost %1 základního typu chybí v odvozeném typu.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Type of derived attribute %1 differs from type of base attribute.</source>
+ <translation>Typ odvozené vlastnosti %1 se liší od typu základní vlastnosti.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Base definition contains an %1 element that is missing in the derived definition</source>
+ <translation>Základní vymezení obsahuje prvek %1, který v odvozeném vymezení chybí</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/schema/qxsdschemaparser.cpp" line="+170"/>
+ <source>Can not process unknown element %1, expected elements are: %2.</source>
+ <translation>Nelze zpracovat neznámý prvek %1, očekávanými prvky jsou: %2.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Element %1 is not allowed in this scope, possible elements are: %2.</source>
+ <translation>Prvek %1 není v této oblasti dovolen; možnými prvky jsou: %2.</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Child element is missing in that scope, possible child elements are: %1.</source>
+ <translation>Podprvek v oblasti chybí; možnými podprvky jsou: %1.</translation>
+ </message>
+ <message>
+ <location line="+127"/>
+ <source>Document is not a XML schema.</source>
+ <translation>Dokument není schématem XML.</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>%1 attribute of %2 element contains invalid content: {%3} is not a value of type %4.</source>
+ <translation>Vlastnost %1 prvku %2 obsahuje neplatný obsah: {%3} není hodnotou typu %4.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>%1 attribute of %2 element contains invalid content: {%3}.</source>
+ <translation>Vlastnost %1 prvku %2 obsahuje neplatný obsah: {%3}.</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema.</source>
+ <translation>Cílový jmenný prostor %1 zahrnutého schématu se liší od jím vymezeného cílového jmenného prostoru %2.</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <location line="+11"/>
+ <source>Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema.</source>
+ <translation>Cílový jmenný prostor %1 zavedeného schématu se liší od jím vymezeného cílového jmenného prostoru %2.</translation>
+ </message>
+ <message>
+ <location line="+237"/>
+ <source>%1 element is not allowed to have the same %2 attribute value as the target namespace %3.</source>
+ <translation>Prvek %1 nemůže stanovit cílový jmenný prostor %3 jako hodnotu vlastnosti %2.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>%1 element without %2 attribute is not allowed inside schema without target namespace.</source>
+ <translation>Ve schématu bez jmenného prostoru musí mít prvek %1 vlastnost %2.</translation>
+ </message>
+ <message>
+ <location line="+833"/>
+ <location line="+158"/>
+ <source>%1 element is not allowed inside %2 element if %3 attribute is present.</source>
+ <translation>Když je přítomna vlastnost %3, nesmí se vyskytovat prvek %1 v prvku %2.</translation>
+ </message>
+ <message>
+ <location line="-97"/>
+ <location line="+119"/>
+ <location line="+92"/>
+ <source>%1 element has neither %2 attribute nor %3 child element.</source>
+ <translation>Prvek %1 nemá ani vlastnost %2 ani podprvek %3.</translation>
+ </message>
+ <message>
+ <location line="+835"/>
+ <location line="+1474"/>
+ <location line="+232"/>
+ <location line="+7"/>
+ <location line="+260"/>
+ <location line="+17"/>
+ <location line="+258"/>
+ <location line="+6"/>
+ <location line="+17"/>
+ <location line="+6"/>
+ <location line="+17"/>
+ <location line="+11"/>
+ <location line="+11"/>
+ <location line="+11"/>
+ <source>%1 element with %2 child element must not have a %3 attribute.</source>
+ <translation>Prvek %1 nesmí mít vlastnost %3, když existuje podprvek %2.</translation>
+ </message>
+ <message>
+ <location line="-1325"/>
+ <source>%1 attribute of %2 element must be %3 or %4.</source>
+ <translation>Vlastnost %1 prvku %2 může být jen %3 nebo %4.</translation>
+ </message>
+ <message>
+ <location line="+36"/>
+ <source>%1 attribute of %2 element must have a value of %3.</source>
+ <translation>Vlastnost %1 prvku %2 musí mít hodnotu %3.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <location line="+34"/>
+ <source>%1 attribute of %2 element must have a value of %3 or %4.</source>
+ <translation>Vlastnost %1 prvku %2 může mít jen jednu z hodnot %3 nebo %4.</translation>
+ </message>
+ <message>
+ <location line="+319"/>
+ <location line="+129"/>
+ <location line="+9"/>
+ <location line="+7"/>
+ <location line="+7"/>
+ <location line="+327"/>
+ <location line="+203"/>
+ <location line="+6"/>
+ <location line="+6"/>
+ <location line="+6"/>
+ <location line="+6"/>
+ <location line="+6"/>
+ <location line="+6"/>
+ <location line="+77"/>
+ <source>%1 element must not have %2 and %3 attribute together.</source>
+ <translation>Vlastnosti %2 a %3 se v prvku %1 nemohou objevit společně.</translation>
+ </message>
+ <message>
+ <location line="-768"/>
+ <location line="+222"/>
+ <source>Content of %1 attribute of %2 element must not be from namespace %3.</source>
+ <translation>Obsah vlastnosti %1 prvku %2 nemůže pocházet ze jmenného prostoru %3.</translation>
+ </message>
+ <message>
+ <location line="-215"/>
+ <location line="+222"/>
+ <source>%1 attribute of %2 element must not be %3.</source>
+ <translation>Vlastnost %1 prvku %2 nemůže být %3.</translation>
+ </message>
+ <message>
+ <location line="-64"/>
+ <source>%1 attribute of %2 element must have the value %3 because the %4 attribute is set.</source>
+ <translation>Vlastnost %1 prvku %2 musí mít hodnotu %3, protože je nastavena vlastnost %4.</translation>
+ </message>
+ <message>
+ <location line="+187"/>
+ <source>Specifying use=&apos;prohibited&apos; inside an attribute group has no effect.</source>
+ <translation>Zadání use=&apos;prohibited&apos; ve skupině vlastností nemá naprosto žádný účinek.</translation>
+ </message>
+ <message>
+ <location line="+353"/>
+ <source>%1 element must have either %2 or %3 attribute.</source>
+ <translation>Prvek %1 musí mít buď vlastnost %2 nebo %3.</translation>
+ </message>
+ <message>
+ <location line="+554"/>
+ <source>%1 element must have either %2 attribute or %3 or %4 as child element.</source>
+ <translation>Prvek %1 musí mít buď vlastnost %2, nebo mít %3 nebo %4 jako podprvek.</translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>%1 element requires either %2 or %3 attribute.</source>
+ <translation>Prvek %1 vyžaduje buď vlastnost %2 nebo %3.</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Text or entity references not allowed inside %1 element</source>
+ <translation>Text nebo odkazy na entitu nejsou v prvku %1 dovoleny</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <location line="+112"/>
+ <source>%1 attribute of %2 element must contain %3, %4 or a list of URIs.</source>
+ <translation>Vlastnost %1 prvku %2 musí obsahovat %3, %4 nebo seznam adres (URL).</translation>
+ </message>
+ <message>
+ <location line="+126"/>
+ <source>%1 element is not allowed in this context.</source>
+ <translation>Prvek %1 není v této souvislosti dovolen.</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>%1 attribute of %2 element has larger value than %3 attribute.</source>
+ <translation>Hodnota vlastnosti %1 prvku %2 je větší než hodnota vlastnosti %3.</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Prefix of qualified name %1 is not defined.</source>
+ <translation>Předpona způsobilého názvu %1 není stanovena.</translation>
+ </message>
+ <message>
+ <location line="+65"/>
+ <location line="+61"/>
+ <source>%1 attribute of %2 element must either contain %3 or the other values.</source>
+ <translation>Hodnota vlastnosti %1 prvku %2 musí obsahovat buď %3 nebo jiné hodnoty.</translation>
+ </message>
+ <message>
+ <location line="+131"/>
+ <source>Component with id %1 has been defined previously.</source>
+ <translation>Součást s ID %1 je již stanovena.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Element %1 already defined.</source>
+ <translation>Prvek %1 je již stanoven.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Attribute %1 already defined.</source>
+ <translation>Vlastnost %1 je již stanovena.</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Type %1 already defined.</source>
+ <translation>Typ %1 je již stanoven.</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Attribute group %1 already defined.</source>
+ <translation>Skupina vlastností %1 je již stanovena.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Element group %1 already defined.</source>
+ <translation>Skupina prvků %1 je již stanovena.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Notation %1 already defined.</source>
+ <translation>Zápis %1 je již stanoven.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Identity constraint %1 already defined.</source>
+ <translation>Omezení totožnosti %1 je již stanoveno.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Duplicated facets in simple type %1.</source>
+ <translation>Zdvojené stránky v jednoduchém typu %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/schema/qxsdschemaresolver.cpp" line="+354"/>
+ <source>%1 references unknown %2 or %3 element %4.</source>
+ <translation>%1 odkazuje na neznámý prvek %4 (%2 nebo %3).</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>%1 references identity constraint %2 that is no %3 or %4 element.</source>
+ <translation>%1 odkazuje na omezení totožnosti %2, které není ani prvek &apos;%3&apos; ani &apos;%4&apos;.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>%1 has a different number of fields from the identity constraint %2 that it references.</source>
+ <translation>U %1 se liší počet polí od omezení totožnosti %2, na kterou odkazuje.</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Base type %1 of %2 element cannot be resolved.</source>
+ <translation>Základní typ %1 prvku %2 nemůže být vyřešen.</translation>
+ </message>
+ <message>
+ <location line="+84"/>
+ <source>Item type %1 of %2 element cannot be resolved.</source>
+ <translation>Složkový typ %1 prvku %2 nemůže být vyřešen.</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Member type %1 of %2 element cannot be resolved.</source>
+ <translation>Členský typ %1 prvku %2 nemůže být vyřešen.</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <location line="+408"/>
+ <location line="+30"/>
+ <source>Type %1 of %2 element cannot be resolved.</source>
+ <translation>Typ %1 prvku %2 nemůže být vyřešen.</translation>
+ </message>
+ <message>
+ <location line="-416"/>
+ <source>Base type %1 of complex type cannot be resolved.</source>
+ <translation>Základní typ %1 složitého typu nemůže být vyřešen.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>%1 cannot have complex base type that has a %2.</source>
+ <translation>%1 nelze mít žádný složitý základní typ, který má %2.</translation>
+ </message>
+ <message>
+ <location line="+279"/>
+ <source>Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type.</source>
+ <translation>Model obsahu složitého typu %1 obsahuje prvek %2; nelze jej proto odvodit pomocí rozšíření z ne-prázdného typu.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model.</source>
+ <translation>Složitý typ %1 nemůže být odvozen pomocí rozšíření z %2, neboť poslední obsahuje prvek &apos;%3&apos; ve svém modelu obsahu.</translation>
+ </message>
+ <message>
+ <location line="+101"/>
+ <source>Type of %1 element must be a simple type, %2 is not.</source>
+ <translation>Typ prvku %1 musí být jednoduchým prvkem, což %2 není.</translation>
+ </message>
+ <message>
+ <location line="+62"/>
+ <source>Substitution group %1 of %2 element cannot be resolved.</source>
+ <translation>Skupina nahrazení %1 prvku %2 nemůže být vyřešena.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Substitution group %1 has circular definition.</source>
+ <translation>Skupina nahrazení %1 má v kruzích prováděné vymezení.</translation>
+ </message>
+ <message>
+ <location line="+120"/>
+ <location line="+7"/>
+ <source>Duplicated element names %1 in %2 element.</source>
+ <translation>Název prvku %1 se vyskytuje v prvku %2 vícekrát.</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <location line="+52"/>
+ <location line="+71"/>
+ <location line="+28"/>
+ <source>Reference %1 of %2 element cannot be resolved.</source>
+ <translation>Odkaz %1 prvku %2 nemůže být vyřešen.</translation>
+ </message>
+ <message>
+ <location line="-138"/>
+ <source>Circular group reference for %1.</source>
+ <translation>V kruzích prováděný skupinový odkaz pro %1.</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>%1 element is not allowed in this scope</source>
+ <translation>Prvek %1 není v této oblasti dovolen</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>%1 element cannot have %2 attribute with value other than %3.</source>
+ <translation>Hodnota vlastnosti %2 prvku %1 může být pouze %3.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>%1 element cannot have %2 attribute with value other than %3 or %4.</source>
+ <translation>Hodnota vlastnosti %2 prvku %1 může být pouze %3 nebo %4.</translation>
+ </message>
+ <message>
+ <location line="+91"/>
+ <source>%1 or %2 attribute of reference %3 does not match with the attribute declaration %4.</source>
+ <translation>Vlastnost %1 nebo %2 odkazu %3 neodpovídá prohlášení vlastnosti %4.</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Attribute group %1 has circular reference.</source>
+ <translation>Skupina vlastnosti %1 má kruzích prováděný odkaz.</translation>
+ </message>
+ <message>
+ <location line="+131"/>
+ <source>%1 attribute in %2 must have %3 use like in base type %4.</source>
+ <translation>Vlastnost %1 v %2 musí mít použití &apos;%3&apos; jako v základním typu %4.</translation>
+ </message>
+ <message>
+ <location line="+52"/>
+ <source>Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2.</source>
+ <translation>Zástupný symbol vlastnosti (vzor hledání) %1není platným omezením zástupného symbolu vlastnosti (vzoru hledání) základního typu %2.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>%1 has attribute wildcard but its base type %2 has not.</source>
+ <translation>%1 má zástupný symbol vlastnosti (vzor hledání), ale jeho základní typ %2 nemá.</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible.</source>
+ <translation>Sjednocení zástupného symbolu vlastnosti (vzoru hledání) typu %1 a zástupného symbolu vlastnosti (vzoru hledání) jeho základního typu %2 není vyjádřitelné.</translation>
+ </message>
+ <message>
+ <location line="+48"/>
+ <source>Enumeration facet contains invalid content: {%1} is not a value of type %2.</source>
+ <translation>Výčtová stránka obsahuje neplatný obsah: {%1} není hodnotou typu %2.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Namespace prefix of qualified name %1 is not defined.</source>
+ <translation>Předpona jmenného prostoru způsobilého názvu %1 není stanovena.</translation>
+ </message>
+ <message>
+ <location line="+51"/>
+ <location line="+18"/>
+ <source>%1 element %2 is not a valid restriction of the %3 element it redefines: %4.</source>
+ <translation>Prvek %2 (%1) není platným omezením přepisovaného prvku (%3): %4.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/schema/qxsdtypechecker.cpp" line="+233"/>
+ <location line="+7"/>
+ <location line="+21"/>
+ <source>%1 is not valid according to %2.</source>
+ <translation>%1 je podle %2 neplatné.</translation>
+ </message>
+ <message>
+ <location line="+167"/>
+ <source>String content does not match the length facet.</source>
+ <translation>Obsah řetězce znaků neodpovídá stránce délky.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>String content does not match the minLength facet.</source>
+ <translation>Obsah řetězce znaků neodpovídá stránce délky (nejmenší údaj, &apos;minLength&apos;).</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>String content does not match the maxLength facet.</source>
+ <translation>Obsah řetězce znaků neodpovídá stránce délky (největší údaj; &apos;maxLength&apos;).</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>String content does not match pattern facet.</source>
+ <translation>Obsah řetězce znaků neodpovídá stránce vzoru pro hledání.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>String content is not listed in the enumeration facet.</source>
+ <translation>Obsah řetězce znaků není obsažen ve výčtové stránce.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Signed integer content does not match the maxInclusive facet.</source>
+ <translation>Celočíselná hodnota označená znaménkem neodpovídá stránce &apos;maxInclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Signed integer content does not match the maxExclusive facet.</source>
+ <translation>Celočíselná hodnota označená znaménkem neodpovídá stránce &apos;maxExclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Signed integer content does not match the minInclusive facet.</source>
+ <translation>Celočíselná hodnota označená znaménkem neodpovídá stránce &apos;minInclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Signed integer content does not match the minExclusive facet.</source>
+ <translation>Celočíselná hodnota označená znaménkem neodpovídá stránce &apos;minExclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Signed integer content is not listed in the enumeration facet.</source>
+ <translation>Celočíselná hodnota označená znaménkem není obsažena ve výčtové stránce.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Signed integer content does not match pattern facet.</source>
+ <translation>Celočíselná hodnota označená znaménkem neodpovídá stránce vzoru pro hledání.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Signed integer content does not match in the totalDigits facet.</source>
+ <translation>Celočíselná hodnota označená znaménkem neodpovídá stránce &apos;totalDigits&apos;.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Unsigned integer content does not match the maxInclusive facet.</source>
+ <translation>Celočíselná hodnota jsoucí bez znaménka neodpovídá stránce &apos;maxInclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Unsigned integer content does not match the maxExclusive facet.</source>
+ <translation>Celočíselná hodnota jsoucí bez znaménka neodpovídá stránce &apos;maxExclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Unsigned integer content does not match the minInclusive facet.</source>
+ <translation>Celočíselná hodnota jsoucí bez znaménka neodpovídá stránce &apos;minInclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Unsigned integer content does not match the minExclusive facet.</source>
+ <translation>Celočíselná hodnota jsoucí bez znaménka neodpovídá stránce &apos;minExclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Unsigned integer content is not listed in the enumeration facet.</source>
+ <translation>Celočíselná hodnota jsoucí bez znaménka není obsažena ve výčtové stránce.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Unsigned integer content does not match pattern facet.</source>
+ <translation>Celočíselná hodnota jsoucí bez znaménka neodpovídá stránce vzoru pro hledání.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Unsigned integer content does not match in the totalDigits facet.</source>
+ <translation>Celočíselná hodnota jsoucí bez znaménka neodpovídá stránce &apos;totalDigits&apos;.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Double content does not match the maxInclusive facet.</source>
+ <translation>Číslo s pohyblivou čárkou neodpovídá stránce &apos;maxInclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Double content does not match the maxExclusive facet.</source>
+ <translation>Číslo s pohyblivou čárkou neodpovídá stránce &apos;maxExclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Double content does not match the minInclusive facet.</source>
+ <translation>Číslo s pohyblivou čárkou neodpovídá stránce &apos;minInclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Double content does not match the minExclusive facet.</source>
+ <translation>Číslo s pohyblivou čárkou neodpovídá stránce &apos;minExclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Double content is not listed in the enumeration facet.</source>
+ <translation>Číslo s pohyblivou čárkou není obsaženo ve výčtové stránce.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Double content does not match pattern facet.</source>
+ <translation>Číslo s pohyblivou čárkou neodpovídá stránce vzoru pro hledání.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Decimal content does not match in the fractionDigits facet.</source>
+ <translation>Desetinné číslo neodpovídá stránce &apos;fractionDigits&apos;.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Decimal content does not match in the totalDigits facet.</source>
+ <translation>Desetinné číslo neodpovídá stránce &apos;totalDigits&apos;.</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Date time content does not match the maxInclusive facet.</source>
+ <translation>Údaj o datu neodpovídá stránce &apos;maxInclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Date time content does not match the maxExclusive facet.</source>
+ <translation>Údaj o datu neodpovídá stránce &apos;maxExclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Date time content does not match the minInclusive facet.</source>
+ <translation>Údaj o datu neodpovídá stránce &apos;minInclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Date time content does not match the minExclusive facet.</source>
+ <translation>Údaj o datu neodpovídá stránce &apos;minExclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Date time content is not listed in the enumeration facet.</source>
+ <translation>Údaj o datu není obsažen ve výčtové stránce.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Date time content does not match pattern facet.</source>
+ <translation>Údaj o datu neodpovídá stránce vzoru pro hledání.</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Duration content does not match the maxInclusive facet.</source>
+ <translation>Údaj o době trvání neodpovídá stránce &apos;maxInclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Duration content does not match the maxExclusive facet.</source>
+ <translation>Údaj o době trvání neodpovídá stránce &apos;maxExclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Duration content does not match the minInclusive facet.</source>
+ <translation>Údaj o době trvání neodpovídá stránce &apos;minInclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Duration content does not match the minExclusive facet.</source>
+ <translation>Údaj o době trvání neodpovídá stránce &apos;minExclusive&apos;.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Duration content is not listed in the enumeration facet.</source>
+ <translation>Údaj o době trvání není obsažen ve výčtové stránce.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Duration content does not match pattern facet.</source>
+ <translation>Údaj o době trvání neodpovídá stránce vzoru pro hledání.</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Boolean content does not match pattern facet.</source>
+ <translation>Booleánská hodnota neodpovídá stránce vzoru pro hledání.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Binary content does not match the length facet.</source>
+ <translation>Binární obsah neodpovídá stránce délky.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Binary content does not match the minLength facet.</source>
+ <translation>Binární obsah neodpovídá stránce &apos;minLength&apos;.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Binary content does not match the maxLength facet.</source>
+ <translation>Binární obsah neodpovídá stránce &apos;maxLength&apos;.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Binary content is not listed in the enumeration facet.</source>
+ <translation>Binární obsah není obsažen ve výčtové stránce.</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Invalid QName content: %1.</source>
+ <translation>Obsah způsobilého názvu (&apos;QName&apos;) je neplatný: %1.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>QName content is not listed in the enumeration facet.</source>
+ <translation>Obsah způsobilého názvu (&apos;QName&apos;) není obsažen ve výčtové stránce.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>QName content does not match pattern facet.</source>
+ <translation>Obsah způsobilého názvu (&apos;QName&apos;) neodpovídá stránce vzoru pro hledání.</translation>
+ </message>
+ <message>
+ <location line="+36"/>
+ <source>Notation content is not listed in the enumeration facet.</source>
+ <translation>Obsah zápisu není obsažen ve výčtové stránce.</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>List content does not match length facet.</source>
+ <translation>Obsah seznamu neodpovídá stránce délky.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>List content does not match minLength facet.</source>
+ <translation>Obsah seznamu neodpovídá stránce &apos;minLength&apos;.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>List content does not match maxLength facet.</source>
+ <translation>Obsah seznamu neodpovídá stránce &apos;maxLength&apos;.</translation>
+ </message>
+ <message>
+ <location line="+90"/>
+ <source>List content is not listed in the enumeration facet.</source>
+ <translation>Obsah seznamu není obsažen ve výčtové stránce.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>List content does not match pattern facet.</source>
+ <translation>Obsah seznamu neodpovídá stránce vzoru pro hledání.</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>Union content is not listed in the enumeration facet.</source>
+ <translation>Obsah sjednocení není obsažen ve výčtové stránce.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Union content does not match pattern facet.</source>
+ <translation>Obsah sjednocení neodpovídá stránce vzoru pro hledání.</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Data of type %1 are not allowed to be empty.</source>
+ <translation>Data typu %1 nemohou být prázdná.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp" line="+160"/>
+ <source>Element %1 is missing child element.</source>
+ <translation>U prvku %1 chybí podprvek.</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>There is one IDREF value with no corresponding ID: %1.</source>
+ <translation>Existuje hodnota IDREF, pro kterou neexistuje příslušné ID: %1.</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Loaded schema file is invalid.</source>
+ <translation>Nahraný soubor se schématem je neplatný.</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>%1 contains invalid data.</source>
+ <translation>%1 obsahuje neplatná data.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>xsi:schemaLocation namespace %1 has already appeared earlier in the instance document.</source>
+ <translation>Jmenný prostor xsi:schemaLocation %1 byl již dříve v případovém dokumentu stanoven.</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute.</source>
+ <translation>xsi:noNamespaceSchemaLocation se nemůže objevit po prvním prvku nebo vlastnosti bez jmenného prostoru.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>No schema defined for validation.</source>
+ <translation>Pro schválení není stanoveno žádné schéma.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>No definition for element %1 available.</source>
+ <translation>Pro prvek %1 není dostupné žádné vymezení.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <location line="+49"/>
+ <location line="+142"/>
+ <source>Specified type %1 is not known to the schema.</source>
+ <translation>Zadaný typ %1 není ve schématu stanoven.</translation>
+ </message>
+ <message>
+ <location line="-176"/>
+ <source>Element %1 is not defined in this scope.</source>
+ <translation>Prvek %1 není v této oblasti stanoven.</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>Declaration for element %1 does not exist.</source>
+ <translation>Pro prvek %1 není dostupné žádné prohlášení.</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Element %1 contains invalid content.</source>
+ <translation>Prvek %1 obsahuje neplatný obsah.</translation>
+ </message>
+ <message>
+ <location line="+73"/>
+ <source>Element %1 is declared as abstract.</source>
+ <translation>Prvek %1 je prohlášen jako abstraktní.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Element %1 is not nillable.</source>
+ <translation>Prvek %1 nemá zadánu vlastnost &apos;nillable&apos;.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Attribute %1 contains invalid data: %2</source>
+ <translation>Vlastnost %1 obsahuje neplatná data: %2</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Element contains content although it is nillable.</source>
+ <translation>Prvek má obsah, ačkoli je &apos;nillable&apos;.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Fixed value constrained not allowed if element is nillable.</source>
+ <translation>Pevné omezení hodnoty není dovoleno, pokud je prvek &apos;nillable&apos;.</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <source>Specified type %1 is not validly substitutable with element type %2.</source>
+ <translation>Zadaný typ %1 není platně nahraditelný typem prvku %2.</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Complex type %1 is not allowed to be abstract.</source>
+ <translation>Složitý typ %1 nemůže být abstraktní.</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>Element %1 contains not allowed attributes.</source>
+ <translation>Prvek %1 obsahuje nepřípustné vlastnosti.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+97"/>
+ <source>Element %1 contains not allowed child element.</source>
+ <translation>Prvek %1 obsahuje nepřípustný podprvek.</translation>
+ </message>
+ <message>
+ <location line="-76"/>
+ <location line="+93"/>
+ <source>Content of element %1 does not match its type definition: %2.</source>
+ <translation>Obsah prvku %1 neodpovídá vymezení svého typu: %2.</translation>
+ </message>
+ <message>
+ <location line="-85"/>
+ <location line="+92"/>
+ <location line="+41"/>
+ <source>Content of element %1 does not match defined value constraint.</source>
+ <translation>Obsah prvku %1 neodpovídá stanovenému omezení hodnoty.</translation>
+ </message>
+ <message>
+ <location line="-73"/>
+ <source>Element %1 contains not allowed child content.</source>
+ <translation>Prvek %1 obsahuje nepřípustný podobsah.</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Element %1 contains not allowed text content.</source>
+ <translation>Prvek %1 obsahuje nepřípustný textový obsah.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Element %1 can not contain other elements, as it has a fixed content.</source>
+ <translation>Prvek %1 nesmí obsahovat žádné podprvky, protože má pevný obsah.</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>Element %1 is missing required attribute %2.</source>
+ <translation>U prvkuk %1 chybí vyžadovaná vlastnost %2.</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Attribute %1 does not match the attribute wildcard.</source>
+ <translation>Vlastnost %1 neodpovídá zástupnému symbolu (vzoru hledání) vlastnosti.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Declaration for attribute %1 does not exist.</source>
+ <translation>Pro vlastnost %1 není dostupné žádné prohlášení.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Element %1 contains two attributes of type %2.</source>
+ <translation>Prvek %1 obsahuje dvě vlastnosti typu %2.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Attribute %1 contains invalid content.</source>
+ <translation>Vlastnost %1 obsahuje neplatný obsah.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Element %1 contains unknown attribute %2.</source>
+ <translation>Prvek %1 obsahuje neznámou vlastnost %2.</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <location line="+46"/>
+ <source>Content of attribute %1 does not match its type definition: %2.</source>
+ <translation>Obsah vlastnosti %1 neodpovídá vymezení svého typu: %2.</translation>
+ </message>
+ <message>
+ <location line="-38"/>
+ <location line="+46"/>
+ <source>Content of attribute %1 does not match defined value constraint.</source>
+ <translation>Obsah vlastnosti %1 neodpovídá stanovenému omezení hodnoty.</translation>
+ </message>
+ <message>
+ <location line="+88"/>
+ <source>Non-unique value found for constraint %1.</source>
+ <translation>Pro omezení %1 byla nalezena ne jednoznačně stanovená hodnota.</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Key constraint %1 contains absent fields.</source>
+ <translation>Omezení klíče %1 obsahuje nepřítomná pole.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Key constraint %1 contains references nillable element %2.</source>
+ <translation>Omezení klíče %1 obsahuje odkazy na prvek %2, který je &apos;nillable&apos;.</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>No referenced value found for key reference %1.</source>
+ <translation>Odkazovanou hodnotu odkazu na klíč %1 se nepodařilo najít.</translation>
+ </message>
+ <message>
+ <location line="+64"/>
+ <source>More than one value found for field %1.</source>
+ <translation>Pro pole %1 bylo nalezeno více hodnot.</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Field %1 has no simple type.</source>
+ <translation>Pole %1 nemá žádný jednoduchý typ.</translation>
+ </message>
+ <message>
+ <location line="+73"/>
+ <source>ID value &apos;%1&apos; is not unique.</source>
+ <translation>Hodnota ID %1 není jednoznačná.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>&apos;%1&apos; attribute contains invalid QName content: %2.</source>
+ <translation>Vlastnost %1 obsahuje neplatný způsobilý název: %2.</translation>
+ </message>
+</context>
+<context>
+ <name>VolumeSlider</name>
+ <message>
+ <source>Muted</source>
+ <translation type="obsolete">Ztlumení</translation>
+ </message>
+ <message>
+ <source>Volume: %1%</source>
+ <translation type="obsolete">Hlasitost: %1%</translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/qt_help_cs.ts b/translations/qt_help_cs.ts
new file mode 100644
index 0000000..15836f1
--- /dev/null
+++ b/translations/qt_help_cs.ts
@@ -0,0 +1,395 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="cs_CZ">
+<context>
+ <name>QCLuceneResultWidget</name>
+ <message>
+ <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+110"/>
+ <source>Search Results</source>
+ <translation>Výsledky hledání</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Note:</source>
+ <translation>Poznámka:</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The search results may not be complete since the documentation is still being indexed!</source>
+ <translation>Nemusí být ukázány všechny výsledky, protože dokumentace je stále ještě rejstříkována!</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Your search did not match any documents.</source>
+ <translation>Nebyly nalezeny žádné dokumenty, které by odpovídaly vašemu hledání.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>(The reason for this might be that the documentation is still being indexed.)</source>
+ <translation>(Důvodem pro to by mohlo být, že dokumentace je stále ještě rejstříkována.)</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpCollectionHandler</name>
+ <message>
+ <source>The collection file is not set up yet!</source>
+ <translation type="obsolete">Soubor se sbírkou ještě není zřízen!</translation>
+ </message>
+ <message>
+ <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/>
+ <source>The collection file &apos;%1&apos; is not set up yet!</source>
+ <translation>Soubor se sbírkou &apos;%1&apos; ještě není zřízen!</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Cannot load sqlite database driver!</source>
+ <translation>Databázový ovladač pro SQLite nelze nahrát!</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <location line="+49"/>
+ <source>Cannot open collection file: %1</source>
+ <translation>Nelze otevřít soubor se sbírkou: %1</translation>
+ </message>
+ <message>
+ <location line="-40"/>
+ <source>Cannot create tables in file %1!</source>
+ <translation>V souboru %1 nelze vytvořit žádné tabulky!</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>The collection file &apos;%1&apos; already exists!</source>
+ <translation>Soubor se sbírkou &apos;%1&apos; již existuje!</translation>
+ </message>
+ <message>
+ <location line="+148"/>
+ <source>Unknown filter &apos;%1&apos;!</source>
+ <translation>Neznámý filtr &apos;%1&apos;!</translation>
+ </message>
+ <message>
+ <location line="+105"/>
+ <source>Invalid documentation file &apos;%1&apos;!</source>
+ <translation>Neplatný soubor s dokumentací &apos;%1&apos;!</translation>
+ </message>
+ <message>
+ <location line="+167"/>
+ <source>Cannot register namespace &apos;%1&apos;!</source>
+ <translation>Nelze zapsat jmenný prostor %1!</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>Cannot open database &apos;%1&apos; to optimize!</source>
+ <translation>Databázi &apos;%1&apos; nelze otevřít pro vyladění!</translation>
+ </message>
+ <message>
+ <source>The specified collection file already exists!</source>
+ <translation type="obsolete">Zadaný soubor se sbírkou již existuje!</translation>
+ </message>
+ <message>
+ <location line="-438"/>
+ <source>Cannot create directory: %1</source>
+ <translation>Nelze vytvořit adresář: %1</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Cannot copy collection file: %1</source>
+ <translation>Nelze kopírovat soubor se sbírkou: %1</translation>
+ </message>
+ <message>
+ <source>Unknown filter!</source>
+ <translation type="obsolete">Neznámý filtr!</translation>
+ </message>
+ <message>
+ <location line="+174"/>
+ <source>Cannot register filter %1!</source>
+ <translation>Nelze zapsat filtr %1!</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Cannot open documentation file %1!</source>
+ <translation>Nelze otevřít soubor s dokumentací: %1!</translation>
+ </message>
+ <message>
+ <source>Invalid documentation file!</source>
+ <translation type="obsolete">Neplatný soubor s dokumentací!</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>The namespace %1 was not registered!</source>
+ <translation>Jmenný prostor %1 nebyl zapsán!</translation>
+ </message>
+ <message>
+ <location line="+120"/>
+ <source>Namespace %1 already exists!</source>
+ <translation>Jmenný prostor %1 již existuje!</translation>
+ </message>
+ <message>
+ <source>Cannot register namespace!</source>
+ <translation type="obsolete">Jmenný prostor nelze zapsat!</translation>
+ </message>
+ <message>
+ <source>Cannot open database to optimize!</source>
+ <translation type="obsolete">Databázi nelze otevřít pro vyladění!</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpDBReader</name>
+ <message>
+ <location filename="../tools/assistant/lib/qhelpdbreader.cpp" line="+98"/>
+ <source>Cannot open database &apos;%1&apos; &apos;%2&apos;: %3</source>
+ <extracomment>The placeholders are: %1 - The name of the database which cannot be opened %2 - The unique id for the connection %3 - The actual error string</extracomment>
+ <translation>Databázi nelze otevřít: &apos;%1&apos; &apos;%2&apos;: %3</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpEngineCore</name>
+ <message>
+ <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+524"/>
+ <source>The specified namespace does not exist!</source>
+ <translation>Zadaný jmenný prostor neexistuje!</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpEngineCorePrivate</name>
+ <message>
+ <location line="-402"/>
+ <source>Cannot open documentation file %1: %2!</source>
+ <translation>Nelze otevřít soubor s dokumentací %1: %2!</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpGenerator</name>
+ <message>
+ <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+157"/>
+ <source>Invalid help data!</source>
+ <translation>Neplatná data s nápovědou!</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>No output file name specified!</source>
+ <translation>Pro výstupní soubor nebyl zadán žádný název!</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Building up file structure...</source>
+ <translation>Vytváří se uspořádání souboru...</translation>
+ </message>
+ <message>
+ <location line="-7"/>
+ <source>The file %1 cannot be overwritten!</source>
+ <translation>Soubor %1 nelze přepsat!</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Cannot open data base file %1!</source>
+ <translation>Nelze otevřít soubor s databází: %1!</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Cannot register namespace %1!</source>
+ <translation>Nelze zapsat jmenný prostor %1!</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Insert custom filters...</source>
+ <translation>Vložit uživatelsky stanovené filtry...</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Insert help data for filter section (%1 of %2)...</source>
+ <translation>Vložit data s nápovědou pro oddělení s filtrem (%1 von %2) einfügen...</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Documentation successfully generated.</source>
+ <translation>Dokumentace byla úspěšně vytvořena.</translation>
+ </message>
+ <message>
+ <location line="+76"/>
+ <source>Some tables already exist!</source>
+ <translation>Některé tabulky již existují!</translation>
+ </message>
+ <message>
+ <location line="+61"/>
+ <source>Cannot create tables!</source>
+ <translation>Tabulky nelze vytvořit!</translation>
+ </message>
+ <message>
+ <location line="+86"/>
+ <source>Cannot register virtual folder!</source>
+ <translation>Virtuální adresář nelze zapsat!</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Insert files...</source>
+ <translation>Vložit soubory...</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it.</source>
+ <translation>Odkazovaný soubor %1 se musí nacházet v adresáři %2 nebo v jeho podadresáři. Přeskakuje se.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>The file %1 does not exist! Skipping it.</source>
+ <translation>Soubor %1 neexistuje! Přeskakuje se.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Cannot open file %1! Skipping it.</source>
+ <translation>Soubor %1 nelze otevřít! Přeskakuje se.</translation>
+ </message>
+ <message>
+ <location line="+131"/>
+ <source>The filter %1 is already registered!</source>
+ <translation>Filtr %1 je již zapsán!</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Cannot register filter %1!</source>
+ <translation>Nelze zapsat filtr %1!</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>Insert indices...</source>
+ <translation>Vložit rejstříky...</translation>
+ </message>
+ <message>
+ <location line="+80"/>
+ <source>Insert contents...</source>
+ <translation>Vložit obsah...</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Cannot insert contents!</source>
+ <translation>Obsah nelze vložit!</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Cannot register contents!</source>
+ <translation>Obsah nelze zapsat!</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpSearchQueryWidget</name>
+ <message>
+ <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+411"/>
+ <source>Search for:</source>
+ <translation>Hledat:</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Previous search</source>
+ <translation>Předchozí hledání</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Next search</source>
+ <translation>Další hledání</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Search</source>
+ <translation>Hledat</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Advanced search</source>
+ <translation>Rozšířené hledání</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>words &lt;B&gt;similar&lt;/B&gt; to:</source>
+ <translation>Slova &lt;B&gt;podobná&lt;/B&gt;:</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>&lt;B&gt;without&lt;/B&gt; the words:</source>
+ <translation>&lt;B&gt;beze&lt;/B&gt; slov:</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>with &lt;B&gt;exact phrase&lt;/B&gt;:</source>
+ <translation>s &lt;B&gt;přesnou skupinou slov&lt;/B&gt;:</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>with &lt;B&gt;all&lt;/B&gt; of the words:</source>
+ <translation>se &lt;B&gt;všemi&lt;/B&gt; slovy:</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>with &lt;B&gt;at least one&lt;/B&gt; of the words:</source>
+ <translation>s &lt;B&gt;jakýmkoli&lt;/B&gt; ze slov:</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpSearchResultWidget</name>
+ <message>
+ <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+235"/>
+ <source>0 - 0 of 0 Hits</source>
+ <translation>0 - 0 z 0 zásahů</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpSearchResultWidgetPrivate</name>
+ <message>
+ <location line="-61"/>
+ <source>%1 - %2 of %3 Hits</source>
+ <translation>%1 - %2 z %3 zásahů</translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../tools/assistant/lib/qhelp_global.h" line="+83"/>
+ <source>Untitled</source>
+ <translation>Bez názvu</translation>
+ </message>
+ <message>
+ <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+85"/>
+ <source>Unknown token.</source>
+ <translation>Neznámý symbol.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Unknown token. Expected &quot;QtHelpProject&quot;!</source>
+ <translation>Neznámý symbol. Byl očekáván &quot;QtHelpProject&quot;!</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Error in line %1: %2</source>
+ <translation>Chyba na řádku %1: %2</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>A virtual folder must not contain a &apos;/&apos; character!</source>
+ <translation>Virtuální složka nesmí obsahovat znak &apos;/&apos;!</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>A namespace must not contain a &apos;/&apos; character!</source>
+ <translation>Jmenný prostor nesmí obsahovat znak &apos;/&apos;!</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Missing namespace in QtHelpProject.</source>
+ <translation>Chybějící jmenný prostor QtHelpProject.</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Missing virtual folder in QtHelpProject</source>
+ <translation>Chybějící virtuální složka v QtHelpProject.</translation>
+ </message>
+ <message>
+ <location line="+88"/>
+ <source>Missing attribute in keyword at line %1.</source>
+ <translation>Chybějící vlastnost v klíčovém slově na řádku %1.</translation>
+ </message>
+ <message>
+ <location line="+123"/>
+ <source>The input file %1 could not be opened!</source>
+ <translation>Vstupní soubor %1 se nepodařilo otevřít!</translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/qt_help_hu.ts b/translations/qt_help_hu.ts
new file mode 100644
index 0000000..3fbe0e9
--- /dev/null
+++ b/translations/qt_help_hu.ts
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="hu_HU">
+<context>
+ <name>QCLuceneResultWidget</name>
+ <message>
+ <source>Search Results</source>
+ <translation>Keresési eredmény</translation>
+ </message>
+ <message>
+ <source>Note:</source>
+ <translation>Megjegyzés:</translation>
+ </message>
+ <message>
+ <source>The search results may not be complete since the documentation is still being indexed!</source>
+ <translation>A keresési eredmény lehet, hogy nem teljes, mivel a dokumentáció még mindig indexelvan van!</translation>
+ </message>
+ <message>
+ <source>Your search did not match any documents.</source>
+ <translation>A keresési feltételeknek megfelően nincs találat.</translation>
+ </message>
+ <message>
+ <source>(The reason for this might be that the documentation is still being indexed.)</source>
+ <translation>(Ennek az oka az lehet, hogy a dokumentáció még mindig indexelve van.)</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpCollectionHandler</name>
+ <message>
+ <source>The collection file &apos;%1&apos; is not set up yet!</source>
+ <translation>A(z) &apos;%1&apos;gyűjtemény fájl még nincs beállítva!</translation>
+ </message>
+ <message>
+ <source>Cannot load sqlite database driver!</source>
+ <translation>Nem lehet betölteni az sqlite adatbázis vezérlőt!</translation>
+ </message>
+ <message>
+ <source>Cannot open collection file: %1</source>
+ <translation>Nem lehet megnyitni a gyűjtemény fájlt: %1</translation>
+ </message>
+ <message>
+ <source>Cannot create tables in file %1!</source>
+ <translation>Nem lehet lehet a(z) %1 fájlban táblákat létrehozni!</translation>
+ </message>
+ <message>
+ <source>The collection file &apos;%1&apos; already exists!</source>
+ <translation>A(z) &apos;%1&apos; gyűjtemény fájl már létezik!</translation>
+ </message>
+ <message>
+ <source>Unknown filter &apos;%1&apos;!</source>
+ <translation>Ismeretlen szűrő &apos;%1&apos;!</translation>
+ </message>
+ <message>
+ <source>Invalid documentation file &apos;%1&apos;!</source>
+ <translation>Érvénytelen dokumentációs fájl &apos;%1&apos;!</translation>
+ </message>
+ <message>
+ <source>Cannot register namespace &apos;%1&apos;!</source>
+ <translation>Nem lehet regisztrálni a(z) &apos;%1&apos; névteret!</translation>
+ </message>
+ <message>
+ <source>Cannot open database &apos;%1&apos; to optimize!</source>
+ <translation>Nem lehet optimalizálásra megnyitni a(z) &apos;%1&apos; adatbázist!</translation>
+ </message>
+ <message>
+ <source>Cannot create directory: %1</source>
+ <translation>Nem lehet a könyvtárat létrehozni: %1</translation>
+ </message>
+ <message>
+ <source>Cannot copy collection file: %1</source>
+ <translation>Nem lehet a gyűjtemény fájlt másolni: %1</translation>
+ </message>
+ <message>
+ <source>Cannot register filter %1!</source>
+ <translation>Nem lehet regisztrálni a(z) %1 szűrőt!</translation>
+ </message>
+ <message>
+ <source>Cannot open documentation file %1!</source>
+ <translation>Nem lehet megnyitni a(z) %1 dokumentációs fájlt!</translation>
+ </message>
+ <message>
+ <source>The namespace %1 was not registered!</source>
+ <translation>A(z) %1 névteret nem regisztrálták!</translation>
+ </message>
+ <message>
+ <source>Namespace %1 already exists!</source>
+ <translation>A(z) %1 névtér már létezik!</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpDBReader</name>
+ <message>
+ <source>Cannot open database &apos;%1&apos; &apos;%2&apos;: %3</source>
+ <translation>Nem lehet megnyitni az adatbázist &apos;%1&apos; &apos;%2&apos;: %3</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpEngineCore</name>
+ <message>
+ <source>The specified namespace does not exist!</source>
+ <translation>A meghatározott névtér nem létezik!</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpEngineCorePrivate</name>
+ <message>
+ <source>Cannot open documentation file %1: %2!</source>
+ <translation>Nem lehet megnyitni a(z) %1 fájlt: %2!</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpGenerator</name>
+ <message>
+ <source>Invalid help data!</source>
+ <translation>Érvénytelen segítség adat!</translation>
+ </message>
+ <message>
+ <source>No output file name specified!</source>
+ <translation>Nincsen kimeneti fájl meghatározva!</translation>
+ </message>
+ <message>
+ <source>Building up file structure...</source>
+ <translation>Fájl struktúra felépítése...</translation>
+ </message>
+ <message>
+ <source>The file %1 cannot be overwritten!</source>
+ <translation>Nem lehet felülírni a(z) %1 fájlt!</translation>
+ </message>
+ <message>
+ <source>Cannot open data base file %1!</source>
+ <translation>Nem lehet megnyitni a(z) %1 adatbázis fájlt!</translation>
+ </message>
+ <message>
+ <source>Cannot register namespace %1!</source>
+ <translation>Nem lehet regisztrálni a(z) %1 névteret!</translation>
+ </message>
+ <message>
+ <source>Insert custom filters...</source>
+ <translation>Szokásos szűrő beszúrása...</translation>
+ </message>
+ <message>
+ <source>Insert help data for filter section (%1 of %2)...</source>
+ <translation>Segítség adatok beszúrása a szűrő szegmens számára (%1 %2-től)...</translation>
+ </message>
+ <message>
+ <source>Documentation successfully generated.</source>
+ <translation>A dokumentáció legenerálása sikeresen lezajlott.</translation>
+ </message>
+ <message>
+ <source>Some tables already exist!</source>
+ <translation>Néhány tábla már létezik!</translation>
+ </message>
+ <message>
+ <source>Cannot create tables!</source>
+ <translation>Nem lehet a táblákat létrehozni!</translation>
+ </message>
+ <message>
+ <source>Cannot register virtual folder!</source>
+ <translation>Nem lehet registrálni a virtuális dossziét!</translation>
+ </message>
+ <message>
+ <source>Insert files...</source>
+ <translation>Fájlok beszúrása...</translation>
+ </message>
+ <message>
+ <source>The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it.</source>
+ <translation>A(z) %1 hivatkozott fájlnak a(z) (%2) alkönyvtárán belül kell elhelyezkednie. Ennek kihagyása.</translation>
+ </message>
+ <message>
+ <source>The file %1 does not exist! Skipping it.</source>
+ <translation>A(z) %1 fájl nem létezik! Ennek kihagyása.</translation>
+ </message>
+ <message>
+ <source>Cannot open file %1! Skipping it.</source>
+ <translation>Nem lehet megnyitni a(z) %1 fájlt! Ennek kihagyása.</translation>
+ </message>
+ <message>
+ <source>The filter %1 is already registered!</source>
+ <translation>A(z) %1 szűrő már regisztrálva van!</translation>
+ </message>
+ <message>
+ <source>Cannot register filter %1!</source>
+ <translation>Nem lehet regisztrálni a(z) %1 szűrőt!</translation>
+ </message>
+ <message>
+ <source>Insert indices...</source>
+ <translation>Indexek beszúrása...</translation>
+ </message>
+ <message>
+ <source>Insert contents...</source>
+ <translation>Tartalom beszúrása...</translation>
+ </message>
+ <message>
+ <source>Cannot insert contents!</source>
+ <translation>Nem lehet beszúrni a tartalmat!</translation>
+ </message>
+ <message>
+ <source>Cannot register contents!</source>
+ <translation>Nem lehet regisztrálni a tartalmat!</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpSearchQueryWidget</name>
+ <message>
+ <source>Search for:</source>
+ <translation>Keresés erre:</translation>
+ </message>
+ <message>
+ <source>Previous search</source>
+ <translation>Előző keresése</translation>
+ </message>
+ <message>
+ <source>Next search</source>
+ <translation>Következő keresése</translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <translation>Keresés</translation>
+ </message>
+ <message>
+ <source>Advanced search</source>
+ <translation>Összetett keresés</translation>
+ </message>
+ <message>
+ <source>words &lt;B&gt;similar&lt;/B&gt; to:</source>
+ <translation>szavak &lt;B&gt;hasonlóak&lt;/B&gt; ehhez:</translation>
+ </message>
+ <message>
+ <source>&lt;B&gt;without&lt;/B&gt; the words:</source>
+ <translation>Ezen szavak &lt;B&gt;nélkül&lt;/B&gt;:</translation>
+ </message>
+ <message>
+ <source>with &lt;B&gt;exact phrase&lt;/B&gt;:</source>
+ <translation>&lt;B&gt;Pontos kifejezés&lt;/B&gt;:</translation>
+ </message>
+ <message>
+ <source>with &lt;B&gt;all&lt;/B&gt; of the words:</source>
+ <translation>Ezen szavak&lt;B&gt;mindegyikével&lt;/B&gt;:</translation>
+ </message>
+ <message>
+ <source>with &lt;B&gt;at least one&lt;/B&gt; of the words:</source>
+ <translation>&lt;B&gt;Legalább egy&lt;/B&gt; a következő szavak közül:</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpSearchResultWidget</name>
+ <message>
+ <source>0 - 0 of 0 Hits</source>
+ <translation>0 találat 0 - 0</translation>
+ </message>
+</context>
+<context>
+ <name>QHelpSearchResultWidgetPrivate</name>
+ <message>
+ <source>%1 - %2 of %3 Hits</source>
+ <translation>%3 Találat %1 - %2</translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <source>Unknown token.</source>
+ <translation>Ismeretlen jel.</translation>
+ </message>
+ <message>
+ <source>Unknown token. Expected &quot;QtHelpProject&quot;!</source>
+ <translation>Ismeretlen hel. &quot;QtSegítségProjekt&quot; várt!</translation>
+ </message>
+ <message>
+ <source>Error in line %1: %2</source>
+ <translation>Hiba a(z) %1 sorban: %2</translation>
+ </message>
+ <message>
+ <source>A virtual folder must not contain a &apos;/&apos; character!</source>
+ <translation>A virtuális dosszié nem tartalmazhat &apos;/&apos; karaktert!</translation>
+ </message>
+ <message>
+ <source>A namespace must not contain a &apos;/&apos; character!</source>
+ <translation>A névtér nem tartalmazhat &apos;/&apos; karaktert!</translation>
+ </message>
+ <message>
+ <source>Missing namespace in QtHelpProject.</source>
+ <translation>Hiányzó névtér a QtSegítségProjektben.</translation>
+ </message>
+ <message>
+ <source>Missing virtual folder in QtHelpProject</source>
+ <translation>Hiányzó virtuális dosszié a QtSegítségProjektben</translation>
+ </message>
+ <message>
+ <source>Missing attribute in keyword at line %1.</source>
+ <translation>Hiányzó attirbútum a kulcsszóban a(z) %1 sorban.</translation>
+ </message>
+ <message>
+ <source>The input file %1 could not be opened!</source>
+ <translation>Nem sikerült megnyitni a(z) %1 bemeneti fájlt!</translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/qt_hu.ts b/translations/qt_hu.ts
new file mode 100644
index 0000000..ecc9826
--- /dev/null
+++ b/translations/qt_hu.ts
@@ -0,0 +1,10537 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="hu">
+<context>
+ <name>CloseButton</name>
+ <message>
+ <location filename="../src/gui/widgets/qtabbar.cpp" line="+2262"/>
+ <source>Close Tab</source>
+ <translation>Lap bezárása</translation>
+ </message>
+</context>
+<context>
+ <name>FakeReply</name>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2198"/>
+ <source>Fake error !</source>
+ <translation>Hamisítási hiba !</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Invalid URL</source>
+ <translation>Érvénytelen URL</translation>
+ </message>
+</context>
+<context>
+ <name>Phonon::</name>
+ <message>
+ <location filename="../src/3rdparty/phonon/phonon/phononnamespace.cpp" line="+55"/>
+ <source>Notifications</source>
+ <translation>Értesítések</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Music</source>
+ <translation>Zene</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Video</source>
+ <translation>Videó</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Communication</source>
+ <translation>Kommunikáció</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Games</source>
+ <translation>Játékok</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Accessibility</source>
+ <translation>Hozzáférhetőség</translation>
+ </message>
+</context>
+<context>
+ <name>Phonon::AudioOutput</name>
+ <message>
+ <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+385"/>
+ <source>&lt;html&gt;The audio playback device &lt;b&gt;%1&lt;/b&gt; does not work.&lt;br/&gt;Falling back to &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</source>
+ <translation>&lt;html&gt;Az audió visszajátszó eszköz &lt;b&gt;%1&lt;/b&gt; nem működik.&lt;br/&gt;Visszavonul ide: &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>&lt;html&gt;Switching to the audio playback device &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;which just became available and has higher preference.&lt;/html&gt;</source>
+ <translation>&lt;html&gt;Az audió visszajátszó eszközre kapcsolás &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;amely éppen elérhetővé vált és magasabb prioritása van.&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Revert back to device &apos;%1&apos;</source>
+ <translation>Visszatérés a(z) &apos;%1&apos; eszközre</translation>
+ </message>
+</context>
+<context>
+ <name>Phonon::Gstreamer::Backend</name>
+ <message>
+ <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+182"/>
+ <source>Warning: You do not seem to have the package gstreamer0.10-plugins-good installed.
+ Some video features have been disabled.</source>
+ <translation>Figyelmeztetés: Úgy tűnik nem telepítette megfelelően a gstreamer0.10-plugins csomagot.
+ Néhány videó tulajdonság tiltva van.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Warning: You do not seem to have the base GStreamer plugins installed.
+ All audio and video support has been disabled</source>
+ <translation>Figyelmeztetés: Úgy tűnik nem telepítette az alap GStreamer beépülő modulokat.
+ Az összes audió és videó támogatás tiltva van</translation>
+ </message>
+</context>
+<context>
+ <name>Phonon::Gstreamer::MediaObject</name>
+ <message>
+ <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/>
+ <source>Cannot start playback.
+
+Check your GStreamer installation and make sure you
+have libgstreamer-plugins-base installed.</source>
+ <translation>Nem lehet elindítani a visszajátszást.
+
+Ellenőrizze le a GStreamer telepítését és győzödjön meg róla, hogy installálta a libgstreamer-plugins-base csomagot.</translation>
+ </message>
+ <message>
+ <location line="+113"/>
+ <source>A required codec is missing. You need to install the following codec(s) to play this content: %0</source>
+ <translation>Egy szükséges kódek hiányzik. A következő kódek(ek) telepítése szükséges ennek a tartalomnak a lejátszásához: %0</translation>
+ </message>
+ <message>
+ <location line="+702"/>
+ <location line="+8"/>
+ <location line="+15"/>
+ <location line="+26"/>
+ <location line="+6"/>
+ <location line="+19"/>
+ <location line="+339"/>
+ <location line="+24"/>
+ <source>Could not open media source.</source>
+ <translation>Nem sikerült megnyitni a média forrást.</translation>
+ </message>
+ <message>
+ <location line="-424"/>
+ <source>Invalid source type.</source>
+ <translation>Érvénytelen forrás típus.</translation>
+ </message>
+ <message>
+ <location line="+398"/>
+ <source>Could not locate media source.</source>
+ <translation>Nem sikerült telepíteni a média forrást.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Could not open audio device. The device is already in use.</source>
+ <translation>Nem sikerült megnyitni az audió eszközt. Az eszköz már használatban van.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Could not decode media source.</source>
+ <translation>Nem sikerült dekódolni a forrást.</translation>
+ </message>
+</context>
+<context>
+ <name>Phonon::MMF</name>
+ <message>
+ <location filename="../src/3rdparty/phonon/mmf/audiooutput.cpp" line="+108"/>
+ <source>Audio Output</source>
+ <translation>Audio kimenet</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The audio output device</source>
+ <translation>A kimeneti audió eszköz</translation>
+ </message>
+</context>
+<context>
+ <name>Phonon::MMF::AudioEqualizer</name>
+ <message>
+ <location filename="../src/3rdparty/phonon/mmf/audioequalizer.cpp" line="+75"/>
+ <source>Frequency band, %1 Hz</source>
+ <translation>Frekvencia sáv, &apos;%1&apos; Hz</translation>
+ </message>
+</context>
+<context>
+ <name>Phonon::MMF::EffectFactory</name>
+ <message>
+ <location filename="../src/3rdparty/phonon/mmf/effectfactory.cpp" line="+65"/>
+ <source>Audio Equalizer</source>
+ <translation>Audió hangszínszabályozó</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Bass Boost</source>
+ <translation>Basszus erősítés</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Distance Attenuation</source>
+ <translation>Távcsillapítás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <location line="+2"/>
+ <source>Environmental Reverb</source>
+ <translation>Környezeti visszhang</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Loudness</source>
+ <translation>Hangosság</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Source Orientation</source>
+ <translation>Forrás orientáció</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Stereo Widening</source>
+ <translation>Sztereó szélesség</translation>
+ </message>
+</context>
+<context>
+ <name>Phonon::MMF::MediaObject</name>
+ <message>
+ <location filename="../src/3rdparty/phonon/mmf/mediaobject.cpp" line="+291"/>
+ <source>Media type could not be determined</source>
+ <translation>Nem lehetet meghatározni a média típust</translation>
+ </message>
+</context>
+<context>
+ <name>Phonon::VolumeSlider</name>
+ <message>
+ <location filename="../src/3rdparty/phonon/phonon/volumeslider.cpp" line="+42"/>
+ <location line="+18"/>
+ <location line="+129"/>
+ <location line="+15"/>
+ <source>Volume: %1%</source>
+ <translation>Hangerő: %1%</translation>
+ </message>
+ <message>
+ <location line="-159"/>
+ <location line="+18"/>
+ <location line="+54"/>
+ <source>Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%</source>
+ <translation>Használja ezt a csúszkát a hangerő szabályozásához. A legbaloldalib pozíció: 0%, a legjobboldalibb %1%</translation>
+ </message>
+ <message>
+ <location line="+67"/>
+ <source>Muted</source>
+ <translation>Elnémított</translation>
+ </message>
+</context>
+<context>
+ <name>Q3Accel</name>
+ <message>
+ <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
+ <source>%1, %2 not defined</source>
+ <translation>%1, %2 nincs definiálva</translation>
+ </message>
+ <message>
+ <location line="+36"/>
+ <source>Ambiguous %1 not handled</source>
+ <translation>Félreérthető %1 nincs lekezelve</translation>
+ </message>
+</context>
+<context>
+ <name>Q3DataTable</name>
+ <message>
+ <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
+ <source>True</source>
+ <translation>Igaz</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>False</source>
+ <translation>Hamis</translation>
+ </message>
+ <message>
+ <location line="+505"/>
+ <source>Insert</source>
+ <translation>Beszúrás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Update</source>
+ <translation>Frissítés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Delete</source>
+ <translation>Törlés</translation>
+ </message>
+</context>
+<context>
+ <name>Q3FileDialog</name>
+ <message>
+ <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+829"/>
+ <source>Copy or Move a File</source>
+ <translation>Egy fájl másolása vagy mozgatása</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Read: %1</source>
+ <translation>Olvasás: %1</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+30"/>
+ <source>Write: %1</source>
+ <translation>Írás: %1</translation>
+ </message>
+ <message>
+ <location line="-22"/>
+ <location line="+1579"/>
+ <source>Cancel</source>
+ <translation>Mégse</translation>
+ </message>
+ <message>
+ <location line="-157"/>
+ <location line="+49"/>
+ <location line="+2149"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+112"/>
+ <source>All Files (*)</source>
+ <translation>Az összes fájl (*)</translation>
+ </message>
+ <message>
+ <location line="-2085"/>
+ <source>Name</source>
+ <translation>Név</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Size</source>
+ <translation>Méret</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Type</source>
+ <translation>Típus</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Date</source>
+ <translation>Dátum</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Attributes</source>
+ <translation>Attribútumok</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <location line="+2027"/>
+ <source>&amp;OK</source>
+ <translation>&amp;OK</translation>
+ </message>
+ <message>
+ <location line="-1987"/>
+ <source>Look &amp;in:</source>
+ <translation>&amp;Benéz:</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <location line="+1977"/>
+ <location line="+16"/>
+ <source>File &amp;name:</source>
+ <translation>Fájl &amp;név:</translation>
+ </message>
+ <message>
+ <location line="-1992"/>
+ <source>File &amp;type:</source>
+ <translation>Fájl &amp;típus:</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Back</source>
+ <translation>Vissza</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>One directory up</source>
+ <translation>Egy könyvtárral kintebb</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Create New Folder</source>
+ <translation>Új mappa létrehozása</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>List View</source>
+ <translation>Lista nézet</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Detail View</source>
+ <translation>Részletes nézet</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Preview File Info</source>
+ <translation>Fájl információ előnézet</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Preview File Contents</source>
+ <translation>Fájl tartalom előnézet</translation>
+ </message>
+ <message>
+ <location line="+88"/>
+ <source>Read-write</source>
+ <translation>Írás olvasás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Read-only</source>
+ <translation>Csak olvasható</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Write-only</source>
+ <translation>Csak írható</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Inaccessible</source>
+ <translation>Hozzáférhetetlen</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Symlink to File</source>
+ <translation>Szimlink a fájlra</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Symlink to Directory</source>
+ <translation>Szimlink a könyvtárra</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Symlink to Special</source>
+ <translation>Szimlink egy speciálisra</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>File</source>
+ <translation>Fájl</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Dir</source>
+ <translation>Könyvtár</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Special</source>
+ <translation>Speciális</translation>
+ </message>
+ <message>
+ <location line="+704"/>
+ <location line="+1999"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+209"/>
+ <source>Open</source>
+ <translation>Megnyitás</translation>
+ </message>
+ <message>
+ <location line="-1889"/>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+71"/>
+ <source>Save As</source>
+ <translation>Mentés másként</translation>
+ </message>
+ <message>
+ <location line="+642"/>
+ <location line="+5"/>
+ <location line="+355"/>
+ <source>&amp;Open</source>
+ <translation>&amp;Megnyitás</translation>
+ </message>
+ <message>
+ <location line="-357"/>
+ <location line="+341"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Mentés</translation>
+ </message>
+ <message>
+ <location line="-334"/>
+ <source>&amp;Rename</source>
+ <translation>&amp;Átnevezés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Törlés</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>R&amp;eload</source>
+ <translation>&amp;Újratöltés</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Sort by &amp;Name</source>
+ <translation>Rendezés &amp;Név alapján</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Sort by &amp;Size</source>
+ <translation>Rendezés &amp;Méret alapján</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Sort by &amp;Date</source>
+ <translation>Rendezés &amp;Dátum alapján</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&amp;Unsorted</source>
+ <translation>&amp;Rendezetlen</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Sort</source>
+ <translation>Rendezés</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Show &amp;hidden files</source>
+ <translation>&amp;Rejtett fájlok megjelenítése</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>the file</source>
+ <translation>a fájl</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>the directory</source>
+ <translation>a könyvtár</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>the symlink</source>
+ <translation>a szimlink</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Delete %1</source>
+ <translation>%1 törlése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&lt;qt&gt;Are you sure you wish to delete %1 &quot;%2&quot;?&lt;/qt&gt;</source>
+ <translation>&lt;qt&gt;Biztos benne, hogy törölni kívánja a(z) %1 &quot;%2&quot;?&lt;/qt&gt;</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&amp;Yes</source>
+ <translation>&amp;Igen</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>&amp;No</source>
+ <translation>&amp;Nem</translation>
+ </message>
+ <message>
+ <location line="+36"/>
+ <source>New Folder 1</source>
+ <translation>Új mappa 1</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>New Folder</source>
+ <translation>Új mappa</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>New Folder %1</source>
+ <translation>Új mappa %1</translation>
+ </message>
+ <message>
+ <location line="+98"/>
+ <source>Find Directory</source>
+ <translation>Könyvtár keresése</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <location line="+108"/>
+ <source>Directories</source>
+ <translation>Könyvtárak</translation>
+ </message>
+ <message>
+ <location line="-2"/>
+ <source>Directory:</source>
+ <translation>Könyvtár:</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <location line="+1009"/>
+ <source>Error</source>
+ <translation>Hiba</translation>
+ </message>
+ <message>
+ <location line="-1008"/>
+ <source>%1
+File not found.
+Check path and filename.</source>
+ <translation>%1
+Fájl nem található
+Útvonal és fájlnév ellenőrzése.</translation>
+ </message>
+ <message>
+ <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="-191"/>
+ <source>All Files (*.*)</source>
+ <translation>Az összes fájl (*.*)</translation>
+ </message>
+ <message>
+ <location line="+264"/>
+ <source>Open </source>
+ <translation>Megnyitás</translation>
+ </message>
+ <message>
+ <location line="+107"/>
+ <source>Select a Directory</source>
+ <translation>Egy könyvtár kiválasztása</translation>
+ </message>
+</context>
+<context>
+ <name>Q3LocalFs</name>
+ <message>
+ <location filename="../src/qt3support/network/q3localfs.cpp" line="+130"/>
+ <location line="+10"/>
+ <source>Could not read directory
+%1</source>
+ <translation>Nem sikerült a könytárat olvasni
+%1</translation>
+ </message>
+ <message>
+ <location line="+45"/>
+ <source>Could not create directory
+%1</source>
+ <translation>Nem sikerült létrehozni a könyvtárat
+%1</translation>
+ </message>
+ <message>
+ <location line="+34"/>
+ <source>Could not remove file or directory
+%1</source>
+ <translation>Nem sikerült eltávolítani egy fájlt vag könyvtárat
+%1</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Could not rename
+%1
+to
+%2</source>
+ <translation>Nem sikerült átnevezni ezt
+%1
+erre
+%2</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Could not open
+%1</source>
+ <translation>Nem sikerült megnyitni
+%1</translation>
+ </message>
+ <message>
+ <location line="+68"/>
+ <source>Could not write
+%1</source>
+ <translation>Nem sikerült írni
+%1</translation>
+ </message>
+</context>
+<context>
+ <name>Q3MainWindow</name>
+ <message>
+ <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
+ <source>Line up</source>
+ <translation>Egy sorral feljebb</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Customize...</source>
+ <translation>Egyéni...</translation>
+ </message>
+</context>
+<context>
+ <name>Q3NetworkProtocol</name>
+ <message>
+ <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
+ <source>Operation stopped by the user</source>
+ <translation>A felhasználó leállította a műveletet</translation>
+ </message>
+</context>
+<context>
+ <name>Q3ProgressDialog</name>
+ <message>
+ <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
+ <location line="+61"/>
+ <source>Cancel</source>
+ <translation>Mégse</translation>
+ </message>
+</context>
+<context>
+ <name>Q3TabDialog</name>
+ <message>
+ <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+190"/>
+ <location line="+824"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location line="-366"/>
+ <source>Apply</source>
+ <translation>Alkalmazza</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>Help</source>
+ <translation>Súgó</translation>
+ </message>
+ <message>
+ <location line="+45"/>
+ <source>Defaults</source>
+ <translation>Alapértelemett</translation>
+ </message>
+ <message>
+ <location line="+50"/>
+ <source>Cancel</source>
+ <translation>Mégse</translation>
+ </message>
+</context>
+<context>
+ <name>Q3TextEdit</name>
+ <message>
+ <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
+ <source>&amp;Undo</source>
+ <translation>&amp;Visszavonás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Redo</source>
+ <translation>&amp;Helyreállítás</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Cu&amp;t</source>
+ <translation>&amp;Kivágás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Copy</source>
+ <translation>&amp;Másolás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&amp;Paste</source>
+ <translation>&amp;Beillesztés</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Clear</source>
+ <translation>Kiürítés</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <location line="+2"/>
+ <source>Select All</source>
+ <translation>Az összes kiválasztása</translation>
+ </message>
+</context>
+<context>
+ <name>Q3TitleBar</name>
+ <message>
+ <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
+ <source>System</source>
+ <translation>Rendszer</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Restore up</source>
+ <translation>Felállítás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Minimize</source>
+ <translation>Minimalizálás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Restore down</source>
+ <translation>Leállítás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Maximize</source>
+ <translation>Maximalizálás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Close</source>
+ <translation>Bezárás</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Contains commands to manipulate the window</source>
+ <translation>Tartalmazza az ablak manipulációs parancsokat</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Puts a minimized window back to normal</source>
+ <translation>Egy minimalizált ablak normálra visszatétele</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Moves the window out of the way</source>
+ <translation>Az ablak félreeső helyre mozgatása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Puts a maximized window back to normal</source>
+ <translation>Maximalizált ablak normálra visszatétele</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Makes the window full screen</source>
+ <translation>Az ablak maximális méretűvé tétele</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Closes the window</source>
+ <translation>Az ablak bezárása</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Displays the name of the window and contains controls to manipulate it</source>
+ <translation>Az ablak nevének megjelenítése és manipuláláshoz szükséges vezérlő elemek tartalmazása</translation>
+ </message>
+</context>
+<context>
+ <name>Q3ToolBar</name>
+ <message>
+ <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
+ <source>More...</source>
+ <translation>További...</translation>
+ </message>
+</context>
+<context>
+ <name>Q3UrlOperator</name>
+ <message>
+ <location filename="../src/qt3support/network/q3urloperator.cpp" line="+386"/>
+ <location line="+260"/>
+ <location line="+4"/>
+ <source>The protocol `%1&apos; is not supported</source>
+ <translation>A(z) &apos;%1&apos; protokoll nem támogatott</translation>
+ </message>
+ <message>
+ <location line="-260"/>
+ <source>The protocol `%1&apos; does not support listing directories</source>
+ <translation>A(z) &apos;%1&apos; protokoll nem támogatja a könyvtár listázást</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The protocol `%1&apos; does not support creating new directories</source>
+ <translation>A(z) &apos;%1&apos; protokoll nem támogatja az új könyvtárak létrehozását</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The protocol `%1&apos; does not support removing files or directories</source>
+ <translation>A(z) &apos;%1&apos; protokoll nem támogatja fájlok vagy könyvtárat áthelyezését</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The protocol `%1&apos; does not support renaming files or directories</source>
+ <translation>A(z) &apos;%1&apos; protokoll nem támogatja fájlok vagy könyvtárat átnevezését</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The protocol `%1&apos; does not support getting files</source>
+ <translation>A(z) &apos;%1&apos; protokoll nem támogatja fájlok szerzését</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The protocol `%1&apos; does not support putting files</source>
+ <translation>A(z) &apos;%1&apos; protokoll nem támogatja fájlok betevését</translation>
+ </message>
+ <message>
+ <location line="+243"/>
+ <location line="+4"/>
+ <source>The protocol `%1&apos; does not support copying or moving files or directories</source>
+ <translation>A(z) &apos;%1&apos; protokoll nem támogatja fájlok vagy könyvtárak mozgatását vagy másolását</translation>
+ </message>
+ <message>
+ <location line="+237"/>
+ <location line="+1"/>
+ <source>(unknown)</source>
+ <translation>(ismeretlen)</translation>
+ </message>
+</context>
+<context>
+ <name>Q3Wizard</name>
+ <message>
+ <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Mégse</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&lt; &amp;Back</source>
+ <translation>&lt; &amp;Vissza</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Next &gt;</source>
+ <translation>&amp;Következő &gt;</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Finish</source>
+ <translation>&amp;Befejezés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Súgó</translation>
+ </message>
+</context>
+<context>
+ <name>QAbstractSocket</name>
+ <message>
+ <location filename="../src/network/socket/qabstractsocket.cpp" line="+899"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+643"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+661"/>
+ <location line="+26"/>
+ <source>Host not found</source>
+ <translation>A hoszt nem található</translation>
+ </message>
+ <message>
+ <location line="+50"/>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+3"/>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+4"/>
+ <source>Connection refused</source>
+ <translation>A kapcsolódás elutasítva</translation>
+ </message>
+ <message>
+ <location line="+142"/>
+ <source>Connection timed out</source>
+ <translation>Kapcsolódási időtúllépés</translation>
+ </message>
+ <message>
+ <location line="-555"/>
+ <location line="+805"/>
+ <location line="+208"/>
+ <source>Operation on socket is not supported</source>
+ <translation>A socket művelet nem támogatott</translation>
+ </message>
+ <message>
+ <location line="+200"/>
+ <source>Socket operation timed out</source>
+ <translation>Socket művelet időtúllépés</translation>
+ </message>
+ <message>
+ <location line="+380"/>
+ <source>Socket is not connected</source>
+ <translation>Socket nincs csatlakoztatva</translation>
+ </message>
+ <message>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-8"/>
+ <source>Network unreachable</source>
+ <translation>A hálózat nem elérhető</translation>
+ </message>
+</context>
+<context>
+ <name>QAbstractSpinBox</name>
+ <message>
+ <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1217"/>
+ <source>&amp;Step up</source>
+ <translation>&amp;Növelés</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Step &amp;down</source>
+ <translation>&amp;Csökkentés</translation>
+ </message>
+ <message>
+ <location line="-8"/>
+ <source>&amp;Select All</source>
+ <translation>Az összes &amp;kiválasztása</translation>
+ </message>
+</context>
+<context>
+ <name>QAccessibleButton</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+250"/>
+ <source>Press</source>
+ <translation>Megnyomás</translation>
+ </message>
+</context>
+<context>
+ <name>QApplication</name>
+ <message>
+ <location filename="../src/gui/kernel/qapplication.cpp" line="+2279"/>
+ <source>QT_LAYOUT_DIRECTION</source>
+ <comment>Translate this string to the string &apos;LTR&apos; in left-to-right languages or to &apos;RTL&apos; in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout.</comment>
+ <translation>QT_LAYOUT_DIRECTION</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="+354"/>
+ <source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
+ <translation>A(z) &apos;%1&apos; futtatható fájl igényli a Qt %2, de Qt %3.-t talált.</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Incompatible Qt Library Error</source>
+ <translation>Inkompatibilis Qt könyvtár hiba</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
+ <source>Activate</source>
+ <translation>Aktiválás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Activates the program&apos;s main window</source>
+ <translation>A program fő ablakának aktiválása</translation>
+ </message>
+</context>
+<context>
+ <name>QAxSelect</name>
+ <message>
+ <location filename="../src/activeqt/container/qaxselect.ui"/>
+ <source>Select ActiveX Control</source>
+ <translation>ActiveX vezérlő kiválasztása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Mégse</translation>
+ </message>
+ <message>
+ <location/>
+ <source>COM &amp;Object:</source>
+ <translation>COM &amp;Objektum:</translation>
+ </message>
+</context>
+<context>
+ <name>QCheckBox</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-136"/>
+ <source>Uncheck</source>
+ <translation>Nincs bejelölve</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Check</source>
+ <translation>Bejelölve</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Toggle</source>
+ <translation>Kapcsolgatás</translation>
+ </message>
+</context>
+<context>
+ <name>QColorDialog</name>
+ <message>
+ <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1349"/>
+ <source>Hu&amp;e:</source>
+ <translation>&amp;Színárnyalat:</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Sat:</source>
+ <translation>&amp;Sat:</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Val:</source>
+ <translation>&amp;Érték:</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Red:</source>
+ <translation>&amp;Piros:</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Green:</source>
+ <translation>&amp;Zöld:</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Bl&amp;ue:</source>
+ <translation>&amp;Kék:</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A&amp;lpha channel:</source>
+ <translation>A&amp;lfa csatorna:</translation>
+ </message>
+ <message>
+ <location line="+101"/>
+ <source>Select Color</source>
+ <translation>Szín kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+180"/>
+ <source>&amp;Basic colors</source>
+ <translation>&amp;Alap színek</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Custom colors</source>
+ <translation>&amp;Egyéni színek</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Add to Custom Colors</source>
+ <translation>&amp;Egyéni színek hozzáadása</translation>
+ </message>
+</context>
+<context>
+ <name>QComboBox</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
+ <location line="+65"/>
+ <source>Open</source>
+ <translation>Megnyitás</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+556"/>
+ <source>False</source>
+ <translation>Hamis</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>True</source>
+ <translation>Igaz</translation>
+ </message>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+0"/>
+ <source>Close</source>
+ <translation>Bezárás</translation>
+ </message>
+</context>
+<context>
+ <name>QCoreApplication</name>
+ <message>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
+ <source>%1: key is empty</source>
+ <comment>QSystemSemaphore</comment>
+ <translation>%1:kulcs üres</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>%1: unable to make key</source>
+ <comment>QSystemSemaphore</comment>
+ <translation>%1: nem lehet kulcsot csinálni</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>%1: ftok failed</source>
+ <comment>QSystemSemaphore</comment>
+ <translation>%1: ftok hiba</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_symbian.cpp" line="+65"/>
+ <source>%1: already exists</source>
+ <comment>QSystemSemaphore</comment>
+ <translation>%1: már létezik</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>%1: does not exist</source>
+ <comment>QSystemSemaphore</comment>
+ <translation>%1: nem létezik</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>%1: out of resources</source>
+ <comment>QSystemSemaphore</comment>
+ <translation>%1: elfogytak az erőforrások</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>%1: unknown error %2</source>
+ <comment>QSystemSemaphore</comment>
+ <translation>%1: ismeretlen hiba %2</translation>
+ </message>
+</context>
+<context>
+ <name>QDB2Driver</name>
+ <message>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1254"/>
+ <source>Unable to connect</source>
+ <translation>Nem lehet csatlakozni</translation>
+ </message>
+ <message>
+ <location line="+298"/>
+ <source>Unable to commit transaction</source>
+ <translation>Nem lehet kommitolni a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Unable to rollback transaction</source>
+ <translation>Nem lehet visszagörgetni a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Unable to set autocommit</source>
+ <translation>Nem lehet beállítani az automatikus kommitolást</translation>
+ </message>
+</context>
+<context>
+ <name>QDB2Result</name>
+ <message>
+ <location line="-1031"/>
+ <location line="+240"/>
+ <source>Unable to execute statement</source>
+ <translation>Nem lehet végrehajtani a műveletet</translation>
+ </message>
+ <message>
+ <location line="-203"/>
+ <source>Unable to prepare statement</source>
+ <translation>Nem lehet felkészülni a műveletre</translation>
+ </message>
+ <message>
+ <location line="+193"/>
+ <source>Unable to bind variable</source>
+ <translation>Nem lehet összekötni a változót</translation>
+ </message>
+ <message>
+ <location line="+89"/>
+ <source>Unable to fetch record %1</source>
+ <translation>Nem lehet letölteni a(z) %1 felvételt</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Unable to fetch next</source>
+ <translation>Nem lehet letölteni a következőt</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>Unable to fetch first</source>
+ <translation>Nem lehet letölteni az elsőt</translation>
+ </message>
+</context>
+<context>
+ <name>QDateTimeEdit</name>
+ <message>
+ <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2287"/>
+ <source>AM</source>
+ <translation>AM</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>am</source>
+ <translation>am</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>PM</source>
+ <translation>PM</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>pm</source>
+ <translation>pm</translation>
+ </message>
+</context>
+<context>
+ <name>QDial</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/>
+ <source>QDial</source>
+ <translation>QDial</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>SpeedoMeter</source>
+ <translation>Sebességmérő</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>SliderHandle</source>
+ <translation>CsúszkaKezelő</translation>
+ </message>
+</context>
+<context>
+ <name>QDialog</name>
+ <message>
+ <location filename="../src/gui/dialogs/qdialog.cpp" line="+636"/>
+ <source>What&apos;s This?</source>
+ <translation>Mi ez?</translation>
+ </message>
+ <message>
+ <location line="-135"/>
+ <source>Done</source>
+ <translation>Kész</translation>
+ </message>
+</context>
+<context>
+ <name>QDialogButtonBox</name>
+ <message>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1872"/>
+ <location line="+464"/>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+622"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+3"/>
+ <source>Save</source>
+ <translation>Mentés</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Mentés</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Open</source>
+ <translation>Megnyitás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Cancel</source>
+ <translation>Mégse</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Mégse</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Close</source>
+ <translation>Bezárás</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Bezárás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Apply</source>
+ <translation>Alkalmazza</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Reset</source>
+ <translation>Visszaállítás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Help</source>
+ <translation>Súgó</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Don&apos;t Save</source>
+ <translation>Ne mentse</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Discard</source>
+ <translation>Eldob</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Yes</source>
+ <translation>&amp;Igen</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Yes to &amp;All</source>
+ <translation>Igen az &amp;összesre</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;No</source>
+ <translation>&amp;Nem</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>N&amp;o to All</source>
+ <translation>&amp;Nem az összesre</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Save All</source>
+ <translation>Az összes mentése</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Abort</source>
+ <translation>Megszakítás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Retry</source>
+ <translation>Újra próbálkozás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Ignore</source>
+ <translation>Mellőzés</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Restore Defaults</source>
+ <translation>Alapértelemezett beállítások visszaállítása</translation>
+ </message>
+ <message>
+ <location line="-29"/>
+ <source>Close without Saving</source>
+ <translation>Bezárás mentés nélkül</translation>
+ </message>
+ <message>
+ <location line="-27"/>
+ <source>&amp;OK</source>
+ <translation>&amp;OK</translation>
+ </message>
+</context>
+<context>
+ <name>QDirModel</name>
+ <message>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+457"/>
+ <source>Name</source>
+ <translation>Név</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Size</source>
+ <translation>Méret</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Kind</source>
+ <comment>Match OS X Finder</comment>
+ <translation>Fajta</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Type</source>
+ <comment>All other platforms</comment>
+ <translation>Típus</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Date Modified</source>
+ <translation>Dátum módosítva</translation>
+ </message>
+</context>
+<context>
+ <name>QDockWidget</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
+ <source>Close</source>
+ <translation>Bezárás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Dock</source>
+ <translation>Dokkolás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Float</source>
+ <translation>Lebegtetés</translation>
+ </message>
+</context>
+<context>
+ <name>QDoubleSpinBox</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-537"/>
+ <source>More</source>
+ <translation>Több</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Less</source>
+ <translation>Kevesebb</translation>
+ </message>
+</context>
+<context>
+ <name>QErrorMessage</name>
+ <message>
+ <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+414"/>
+ <source>&amp;Show this message again</source>
+ <translation>Az üzenet újbóli &amp;megjelenítése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;OK</source>
+ <translation>&amp;OK</translation>
+ </message>
+ <message>
+ <location line="-207"/>
+ <source>Debug Message:</source>
+ <translation>Debug üzenet:</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Warning:</source>
+ <translation>Figyelmeztetés:</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Fatal Error:</source>
+ <translation>Végzetes hiba:</translation>
+ </message>
+</context>
+<context>
+ <name>QFile</name>
+ <message>
+ <location filename="../src/corelib/io/qfile.cpp" line="+697"/>
+ <location line="+155"/>
+ <source>Destination file exists</source>
+ <translation>A cél fájl létezik</translation>
+ </message>
+ <message>
+ <location line="-140"/>
+ <source>Will not rename sequential file using block copy</source>
+ <translation>Blokkos másolásnál nem lesznek átnevezve az egymást követő fájlok</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Cannot remove source file</source>
+ <translation>Nem lehet a forrás fájlt eltávolítani</translation>
+ </message>
+ <message>
+ <location line="+130"/>
+ <source>Cannot open %1 for input</source>
+ <translation>Nem lehet megnyitni %1-t bementre</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Cannot open for output</source>
+ <translation>Nem lehet megnyitni a kimenetre</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Failure to write block</source>
+ <translation>Hiba történt a blokk írás közben</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Cannot create %1 for output</source>
+ <translation>Nem lehet létrehozni a(z) %1-t kimenetre</translation>
+ </message>
+</context>
+<context>
+ <name>QFileDialog</name>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+558"/>
+ <location line="+450"/>
+ <source>All Files (*)</source>
+ <translation>Az összes fájl (*)</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.ui"/>
+ <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
+ <source>Back</source>
+ <translation>Vissza</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
+ <source>List View</source>
+ <translation>Lista nézet</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
+ <source>Detail View</source>
+ <translation>Részletes nézet</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+464"/>
+ <location line="+1"/>
+ <source>File</source>
+ <translation>Fájl</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-467"/>
+ <source>Open</source>
+ <translation>Megnyitás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Save As</source>
+ <translation>Mentés másként</translation>
+ </message>
+ <message>
+ <location line="+689"/>
+ <location line="+50"/>
+ <location line="+1528"/>
+ <source>&amp;Open</source>
+ <translation>&amp;Megnyitás</translation>
+ </message>
+ <message>
+ <location line="-1578"/>
+ <location line="+50"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Mentés</translation>
+ </message>
+ <message>
+ <location line="+1801"/>
+ <source>Recent Places</source>
+ <translation>Utolsó helyek</translation>
+ </message>
+ <message>
+ <location line="-2511"/>
+ <source>&amp;Rename</source>
+ <translation>&amp;Átnevezés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Törlés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Show &amp;hidden files</source>
+ <translation>&amp;Rejtett fájlok megjelenítése</translation>
+ </message>
+ <message>
+ <location line="+1957"/>
+ <source>New Folder</source>
+ <translation>Új mappa</translation>
+ </message>
+ <message>
+ <location line="-1992"/>
+ <source>Find Directory</source>
+ <translation>Könyvtár keresése</translation>
+ </message>
+ <message>
+ <location line="+696"/>
+ <source>Directories</source>
+ <translation>Könyvtárak</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+174"/>
+ <source>All Files (*.*)</source>
+ <translation>Az összes fájl (*.*)</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-655"/>
+ <location line="+659"/>
+ <source>Directory:</source>
+ <translation>Könyvtár:</translation>
+ </message>
+ <message>
+ <location line="+810"/>
+ <source>%1 already exists.
+Do you want to replace it?</source>
+ <translation>A(z) %1 már létezik.
+Szeretné lecserélni?</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>%1
+File not found.
+Please verify the correct file name was given.</source>
+ <translation>%1
+Fájl nem található.
+Kérem ellenőrizze, hogy helyes fájlnevet adott meg.</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+402"/>
+ <source>My Computer</source>
+ <translation>Sajátgép</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.ui"/>
+ <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
+ <source>Parent Directory</source>
+ <translation>Szülő könyvtár</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
+ <source>Files of type:</source>
+ <translation>Típusfájlok:</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-54"/>
+ <location line="+862"/>
+ <source>%1
+Directory not found.
+Please verify the correct directory name was given.</source>
+ <translation>%1
+A könyvtár nem található.
+Kérem ellenőrizze le, hogy helyes könyvtár nevet adott meg.</translation>
+ </message>
+ <message>
+ <location line="-218"/>
+ <source>&apos;%1&apos; is write protected.
+Do you want to delete it anyway?</source>
+ <translation>A(z) &apos;%1&apos; írásvédett.
+Mégis törölni szeretné?</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Are sure you want to delete &apos;%1&apos;?</source>
+ <translation>Törölni szeretné &apos;%1&apos;?</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Could not delete directory.</source>
+ <translation>Nem sikerült törölni a könyvtárat.</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="-4"/>
+ <source>Drive</source>
+ <translation>Vezérlő</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>File Folder</source>
+ <comment>Match Windows Explorer</comment>
+ <translation>Fájl mappa</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Folder</source>
+ <comment>All other platforms</comment>
+ <translation>Mappa</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Alias</source>
+ <comment>Mac OS X Finder</comment>
+ <translation>Álnév</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Shortcut</source>
+ <comment>All other platforms</comment>
+ <translation>Gyorsbillentyű</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Unknown</source>
+ <translation>Ismeretlen</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2111"/>
+ <source>Show </source>
+ <translation>Megjelenítés</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.ui"/>
+ <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
+ <source>Forward</source>
+ <translation>Előre</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+7"/>
+ <source>&amp;New Folder</source>
+ <translation>&amp;Új mappa</translation>
+ </message>
+ <message>
+ <location line="+667"/>
+ <location line="+38"/>
+ <source>&amp;Choose</source>
+ <translation>&amp;Kiválasztás</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qsidebar.cpp" line="+442"/>
+ <source>Remove</source>
+ <translation>Eltávolítás</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-698"/>
+ <location line="+663"/>
+ <source>File &amp;name:</source>
+ <translation>Fájl &amp;név:</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfiledialog.ui"/>
+ <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
+ <source>Look in:</source>
+ <translation>Benéz:</translation>
+ </message>
+ <message>
+ <location/>
+ <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
+ <source>Create New Folder</source>
+ <translation>Új mappa létrehozása</translation>
+ </message>
+</context>
+<context>
+ <name>QFileSystemModel</name>
+ <message>
+ <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+744"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+476"/>
+ <source>%1 TB</source>
+ <translation>%1 TB</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/>
+ <source>%1 GB</source>
+ <translation>%1 GB</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/>
+ <source>%1 MB</source>
+ <translation>%1 MB</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/>
+ <source>%1 KB</source>
+ <translation>%1 KB</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>%1 bytes</source>
+ <translation>%1 bájt</translation>
+ </message>
+ <message>
+ <location line="+77"/>
+ <source>Invalid filename</source>
+ <translation>Érvénytelen fájlnév</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&lt;b&gt;The name &quot;%1&quot; can not be used.&lt;/b&gt;&lt;p&gt;Try using another name, with fewer characters or no punctuations marks.</source>
+ <translation>&lt;b&gt;A(z) &quot;%1&quot; név nem használható.&lt;/b&gt;&lt;p&gt;Próbáljon meg más nevet használni, kevesebb karakterrel vagy írásjelekek nélkül.</translation>
+ </message>
+ <message>
+ <location line="+64"/>
+ <source>Name</source>
+ <translation>Név</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Size</source>
+ <translation>Méret</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Kind</source>
+ <comment>Match OS X Finder</comment>
+ <translation>Fajta</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Type</source>
+ <comment>All other platforms</comment>
+ <translation>Típus</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Date Modified</source>
+ <translation>Dátum módosítva</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+258"/>
+ <source>My Computer</source>
+ <translation>Sajátgép</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Computer</source>
+ <translation>Számítógép</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+1"/>
+ <source>%1 byte(s)</source>
+ <translation>%1 bájt</translation>
+ </message>
+</context>
+<context>
+ <name>QFontDatabase</name>
+ <message>
+ <location filename="../src/gui/text/qfontdatabase.cpp" line="+102"/>
+ <location line="+1342"/>
+ <source>Normal</source>
+ <translation>Normál</translation>
+ </message>
+ <message>
+ <location line="-1339"/>
+ <location line="+12"/>
+ <location line="+1315"/>
+ <source>Bold</source>
+ <translation>Kövér</translation>
+ </message>
+ <message>
+ <location line="-1324"/>
+ <location line="+1326"/>
+ <source>Demi Bold</source>
+ <translation>Félkövér</translation>
+ </message>
+ <message>
+ <location line="-1323"/>
+ <location line="+18"/>
+ <location line="+1301"/>
+ <source>Black</source>
+ <translation>Fekete</translation>
+ </message>
+ <message>
+ <location line="-1311"/>
+ <source>Demi</source>
+ <translation>Fél</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+1311"/>
+ <source>Light</source>
+ <translation>Világos</translation>
+ </message>
+ <message>
+ <location line="-1165"/>
+ <location line="+1168"/>
+ <source>Italic</source>
+ <translation>Dőlt</translation>
+ </message>
+ <message>
+ <location line="-1165"/>
+ <location line="+1167"/>
+ <source>Oblique</source>
+ <translation>Homályos</translation>
+ </message>
+ <message>
+ <location line="+704"/>
+ <source>Any</source>
+ <translation>Bármilyen</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Latin</source>
+ <translation>Latin</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Greek</source>
+ <translation>Görög</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Cyrillic</source>
+ <translation>Ciril</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Armenian</source>
+ <translation>Örmény</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Hebrew</source>
+ <translation>Héber</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Arabic</source>
+ <translation>Arab</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Syriac</source>
+ <translation>Szíriai</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Thaana</source>
+ <translation>Thana</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Devanagari</source>
+ <translation>Dévanágari</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Bengali</source>
+ <translation>Bengáli</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Gurmukhi</source>
+ <translation>Gurmukhi</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Gujarati</source>
+ <translation>Gujarati</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Oriya</source>
+ <translation>Oriya</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Tamil</source>
+ <translation>Tamil</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Telugu</source>
+ <translation>Telugu</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Kannada</source>
+ <translation>Kanadai</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Malayalam</source>
+ <translation>Maláj</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Sinhala</source>
+ <translation>Sinhala</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Thai</source>
+ <translation>Tájföldi</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Lao</source>
+ <translation>Lao</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Tibetan</source>
+ <translation>Tibeti</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Myanmar</source>
+ <translation>Mianmari</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Georgian</source>
+ <translation>Grúz</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Khmer</source>
+ <translation>Khmer</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Simplified Chinese</source>
+ <translation>Egyszerűsített kínai</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Traditional Chinese</source>
+ <translation>Hagyományos kínai</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Japanese</source>
+ <translation>Japán</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Korean</source>
+ <translation>Koreai</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Vietnamese</source>
+ <translation>Vietnámi</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Symbol</source>
+ <translation>Szimbólum</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Ogham</source>
+ <translation>Ogham</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Runic</source>
+ <translation>Székely</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>N&apos;Ko</source>
+ <translation>N&apos;Ko</translation>
+ </message>
+</context>
+<context>
+ <name>QFontDialog</name>
+ <message>
+ <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+776"/>
+ <source>&amp;Font</source>
+ <translation>&amp;Betű</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Font st&amp;yle</source>
+ <translation>Betű st&amp;ílus</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Size</source>
+ <translation>&amp;Méret</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Effects</source>
+ <translation>Hatások</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Stri&amp;keout</source>
+ <translation>Ki&amp;talál</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Underline</source>
+ <translation>&amp;Aláhúzás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Sample</source>
+ <translation>Minta</translation>
+ </message>
+ <message>
+ <location line="-608"/>
+ <location line="+257"/>
+ <source>Select Font</source>
+ <translation>Betű kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+352"/>
+ <source>Wr&amp;iting System</source>
+ <translation>Rendszer &amp;írása</translation>
+ </message>
+</context>
+<context>
+ <name>QFtp</name>
+ <message>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+2303"/>
+ <source>Host %1 found</source>
+ <translation>%1 host megtalálva</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Host found</source>
+ <translation>Hoszt megtalálva</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qftp.cpp" line="+1008"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="-1456"/>
+ <location line="+1451"/>
+ <source>Connected to host %1</source>
+ <translation>%1 hosztra csatlkoztatva</translation>
+ </message>
+ <message>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+7"/>
+ <source>Connected to host</source>
+ <translation>Hosztra csatlakoztatva</translation>
+ </message>
+ <message>
+ <location line="-5"/>
+ <source>Connection to %1 closed</source>
+ <translation>%1-re csatlakoztatása bezárva</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qftp.cpp" line="+1377"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="-243"/>
+ <location line="+250"/>
+ <source>Connection closed</source>
+ <translation>Kapcsolat bezárva</translation>
+ </message>
+ <message>
+ <location line="-1489"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="-1566"/>
+ <source>Host %1 not found</source>
+ <translation>%1 host nem található</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+4"/>
+ <source>Connection refused to host %1</source>
+ <translation>Kapcsolat elutasítva a(z) %1 hoszttal</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Connection timed out to host %1</source>
+ <translation>Kapcsolati időtúllépés a %1 hoszttal</translation>
+ </message>
+ <message>
+ <location line="+501"/>
+ <location line="+29"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+458"/>
+ <location line="+728"/>
+ <source>Unknown error</source>
+ <translation>Ismeretlen hiba</translation>
+ </message>
+ <message>
+ <location line="+891"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+77"/>
+ <source>Connecting to host failed:
+%1</source>
+ <translation>A hoszthoz kapcsolódás nem sikerült:
+%1</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
+ <source>Login failed:
+%1</source>
+ <translation>Bejelentkezési hiba:
+%1</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
+ <source>Listing directory failed:
+%1</source>
+ <translation>Könyvtár listázási hiba:
+%1</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
+ <source>Changing directory failed:
+%1</source>
+ <translation>Könyvtár változtatási hiba:
+%1</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
+ <source>Downloading file failed:
+%1</source>
+ <translation>Fájl letöltési hiba:
+%1</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
+ <source>Uploading file failed:
+%1</source>
+ <translation>Fájl feltöltési hiba:
+%1</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
+ <source>Removing file failed:
+%1</source>
+ <translation>Fájl eltávolítási hiba:
+%1</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
+ <source>Creating directory failed:
+%1</source>
+ <translation>Könyvtár létrehozási hiba:
+%1</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
+ <source>Removing directory failed:
+%1</source>
+ <translation>Könyvtár eltávolítása hiba:
+%1</translation>
+ </message>
+ <message>
+ <location line="-1529"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="-1356"/>
+ <source>Not connected</source>
+ <translation>Nincs csatlakoztatva</translation>
+ </message>
+ <message>
+ <location line="+399"/>
+ <location filename="../src/qt3support/network/q3ftp.cpp" line="+332"/>
+ <source>Connection refused for data connection</source>
+ <translation>Adat kapcsolat érdekében történő csatlakozás megtagadva</translation>
+ </message>
+</context>
+<context>
+ <name>QHostInfo</name>
+ <message>
+ <location filename="../src/network/kernel/qhostinfo_p.h" line="+185"/>
+ <source>Unknown error</source>
+ <translation>Ismeretlen hiba</translation>
+ </message>
+</context>
+<context>
+ <name>QHostInfoAgent</name>
+ <message>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+257"/>
+ <location line="+32"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+220"/>
+ <location line="+27"/>
+ <source>Host not found</source>
+ <translation>A hoszt nem található</translation>
+ </message>
+ <message>
+ <location line="-45"/>
+ <location line="+39"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-34"/>
+ <location line="+29"/>
+ <source>Unknown address type</source>
+ <translation>Ismeretlen cím típus</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-19"/>
+ <location line="+27"/>
+ <source>Unknown error</source>
+ <translation>Ismeretlen hiba</translation>
+ </message>
+ <message>
+ <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-67"/>
+ <source>No host name given</source>
+ <translation>Nincs hoszt név megadva</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Invalid hostname</source>
+ <translation>Érvénytelen hoszt név</translation>
+ </message>
+</context>
+<context>
+ <name>QHttp</name>
+ <message>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+578"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+1835"/>
+ <source>Connection refused</source>
+ <translation>Kapcsolat megtagadva</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttp.cpp" line="+2639"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
+ <source>Host %1 not found</source>
+ <translation>A(z) %1 hoszt nem található</translation>
+ </message>
+ <message>
+ <location line="-62"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="-45"/>
+ <source>Wrong content length</source>
+ <translation>Hibás tartalom hossz</translation>
+ </message>
+ <message>
+ <location line="+82"/>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+10"/>
+ <location line="+19"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+48"/>
+ <source>HTTP request failed</source>
+ <translation>HTTP kérési hiba</translation>
+ </message>
+ <message>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+450"/>
+ <source>Host %1 found</source>
+ <translation>A(z) %1 hoszt nem található</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Host found</source>
+ <translation>Hoszt megtalálható</translation>
+ </message>
+ <message>
+ <location line="-11"/>
+ <source>Connected to host %1</source>
+ <translation>%1 hoszthoz csatlakozva van</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Connected to host</source>
+ <translation>Hosztra csatlakoztatva</translation>
+ </message>
+ <message>
+ <location line="-11"/>
+ <source>Connection to %1 closed</source>
+ <translation>%1-re csatlkozás bezárva</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-22"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+14"/>
+ <source>Connection closed</source>
+ <translation>Kapcsolat bezárva</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttp.cpp" line="-1077"/>
+ <location line="+820"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="-1152"/>
+ <location line="+567"/>
+ <source>Unknown error</source>
+ <translation>Ismeretlen hiba</translation>
+ </message>
+ <message>
+ <location line="-568"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
+ <source>Request aborted</source>
+ <translation>Kérés megszakítva</translation>
+ </message>
+ <message>
+ <location line="+579"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
+ <source>No server set to connect to</source>
+ <translation>Nincsen szerver beállítva, amire csatlakozni lehetne</translation>
+ </message>
+ <message>
+ <location line="+168"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+60"/>
+ <source>Server closed connection unexpectedly</source>
+ <translation>A szerver váratlanul bezárta a kapcsolatot</translation>
+ </message>
+ <message>
+ <location line="+172"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+113"/>
+ <source>Invalid HTTP response header</source>
+ <translation>Érvénytelen HTTP válasz fejléc</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Unknown authentication method</source>
+ <translation>Ismeretlen hitelesítési eljárás</translation>
+ </message>
+ <message>
+ <location line="+97"/>
+ <location line="+48"/>
+ <location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
+ <location line="+47"/>
+ <source>Invalid HTTP chunked body</source>
+ <translation>Érvénytelen nagy HTTP törzs</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Error writing response to device</source>
+ <translation>Hiba történt a válasz eszközre írása közben</translation>
+ </message>
+ <message>
+ <location line="-173"/>
+ <source>Proxy authentication required</source>
+ <translation>Proxy hitelesítés szükséges</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Authentication required</source>
+ <translation>Hitelesítés szükséges</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+6"/>
+ <source>Proxy requires authentication</source>
+ <translation>A proxy a hitelesítést kéri</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Host requires authentication</source>
+ <translation>A hoszt hitelesítést kér</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Data corrupted</source>
+ <translation>Sérült adat</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>SSL handshake failed</source>
+ <translation>SSL kézfogási hiba</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>Unknown protocol specified</source>
+ <translation>Ismeretlen protokoll van megadva</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qhttp.cpp" line="-159"/>
+ <source>Connection refused (or timed out)</source>
+ <translation>Kapcsolat megtagadva (vagy időtúllépés)</translation>
+ </message>
+ <message>
+ <location line="-2266"/>
+ <source>HTTPS connection requested but SSL support not compiled in</source>
+ <translation>HTTP kapcsolat lett kérve, de az SSL támogatás nincs beleforgatva</translation>
+ </message>
+</context>
+<context>
+ <name>QHttpSocketEngine</name>
+ <message>
+ <location filename="../src/network/socket/qhttpsocketengine.cpp" line="-89"/>
+ <source>Did not receive HTTP response from proxy</source>
+ <translation>Nem kapott HTTP választ a proxy-tól</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Error parsing authentication request from proxy</source>
+ <translation>Hiba történt a proxy hitelesítés kérésének elemzése közben</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Authentication required</source>
+ <translation>Hitelesítés szükséges</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Proxy denied connection</source>
+ <translation>A proxy megtagadta a kapcsolatot</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Error communicating with HTTP proxy</source>
+ <translation>Hiba történt a HTTP proxy-val történő kommunikáció közben</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Proxy server not found</source>
+ <translation>A proxy szerver nem található</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Proxy connection refused</source>
+ <translation>A proxy kapcsolat elutasítva</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Proxy server connection timed out</source>
+ <translation>Proxy szerver kapcsolódási időtúllépés</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Proxy connection closed prematurely</source>
+ <translation>Proxy kapcsolódás túl korán be lett zárva</translation>
+ </message>
+</context>
+<context>
+ <name>QIBaseDriver</name>
+ <message>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1491"/>
+ <source>Error opening database</source>
+ <translation>Hiba történt az adatbázis megnyitása közben</translation>
+ </message>
+ <message>
+ <location line="+54"/>
+ <source>Could not start transaction</source>
+ <translation>Nem sikerült elindítani a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Unable to commit transaction</source>
+ <translation>Nem lehet kommitolni a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Unable to rollback transaction</source>
+ <translation>Nem lehet visszagörgetni a tranzakciót</translation>
+ </message>
+</context>
+<context>
+ <name>QIBaseResult</name>
+ <message>
+ <location line="-1149"/>
+ <source>Unable to create BLOB</source>
+ <translation>Nem lehet BLOB-t létrehozni</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Unable to write BLOB</source>
+ <translation>Nem lehet írni a BLOB-t</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Unable to open BLOB</source>
+ <translation>Nem lehet megnyitni a BLOB-t</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Unable to read BLOB</source>
+ <translation>Nem lehet olvasni a BLOB-t</translation>
+ </message>
+ <message>
+ <location line="+125"/>
+ <location line="+187"/>
+ <source>Could not find array</source>
+ <translation>Nem sikerült megtalálni a tömböt</translation>
+ </message>
+ <message>
+ <location line="-155"/>
+ <source>Could not get array data</source>
+ <translation>Nem sikerüét megszerezni a tömb adatokat</translation>
+ </message>
+ <message>
+ <location line="+210"/>
+ <source>Could not get query info</source>
+ <translation>Nem sikerült megszerezni a lekérdezi információt</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Could not start transaction</source>
+ <translation>Nem sikerült elindítani a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Unable to commit transaction</source>
+ <translation>Nem lehet kommitolni a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>Could not allocate statement</source>
+ <translation>Nem sikerült lefoglalni a műveletet</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Could not prepare statement</source>
+ <translation>Nem sikerült felkészülni a műveletre</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <location line="+11"/>
+ <source>Could not describe input statement</source>
+ <translation>Nem sikerült leírni a bemeneti állítást</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Could not describe statement</source>
+ <translation>Nem sikerült leírni az állítást</translation>
+ </message>
+ <message>
+ <location line="+115"/>
+ <source>Unable to close statement</source>
+ <translation>Nem lehet megnyitni az állítást</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Unable to execute query</source>
+ <translation>Nem lehet végrehajtani a lekérdezést</translation>
+ </message>
+ <message>
+ <location line="+46"/>
+ <source>Could not fetch next item</source>
+ <translation>Nem lehet letölteni a következő elemet</translation>
+ </message>
+ <message>
+ <location line="+197"/>
+ <source>Could not get statement info</source>
+ <translation>Nem lehet az művelet információkat megszerezni</translation>
+ </message>
+</context>
+<context>
+ <name>QIODevice</name>
+ <message>
+ <location filename="../src/corelib/global/qglobal.cpp" line="+2072"/>
+ <source>Permission denied</source>
+ <translation>Beleegyezés megtagadva</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Too many open files</source>
+ <translation>Túl sok fájl megnyitása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>No such file or directory</source>
+ <translation>Nincs ilyen fájl vagy könyvtár</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>No space left on device</source>
+ <translation>Nincs több hely a lemezen</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/io/qiodevice.cpp" line="+1561"/>
+ <source>Unknown error</source>
+ <translation>Ismeretlen hiba</translation>
+ </message>
+</context>
+<context>
+ <name>QInputContext</name>
+ <message>
+ <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+256"/>
+ <source>XIM</source>
+ <translation>XIM</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>FEP</source>
+ <translation>FEP</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>XIM input method</source>
+ <translation>XIM beviteli eljárás</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Windows input method</source>
+ <translation>Windows beviteli eljárás</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Mac OS X input method</source>
+ <translation>Mac OS X beviteli eljárás</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>S60 FEP input method</source>
+ <translation>S60 FEP beviteli eljárás</translation>
+ </message>
+</context>
+<context>
+ <name>QInputDialog</name>
+ <message>
+ <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
+ <source>Enter a value:</source>
+ <translation>Egy értél bevitele:</translation>
+ </message>
+</context>
+<context>
+ <name>QLibrary</name>
+ <message>
+ <location filename="../src/corelib/plugin/qlibrary.cpp" line="+383"/>
+ <source>Could not mmap &apos;%1&apos;: %2</source>
+ <translation>Nem sikerült az mmap &apos;%1&apos;: %2</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Plugin verification data mismatch in &apos;%1&apos;</source>
+ <translation>Beépülő modul igazoló adata nem megfelelő a(z) &apos;%1&apos;-ben</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Could not unmap &apos;%1&apos;: %2</source>
+ <translation>Nem lehet eltávolítani a letérképezést &apos;%1&apos;: %2</translation>
+ </message>
+ <message>
+ <location line="+344"/>
+ <source>The plugin &apos;%1&apos; uses incompatible Qt library. (%2.%3.%4) [%5]</source>
+ <translation>A(z) &apos;%1&apos; beépülő modul inkompatibilis Qt könyvtárat használ. (%2.%3.%4) [%5]</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>The plugin &apos;%1&apos; uses incompatible Qt library. Expected build key &quot;%2&quot;, got &quot;%3&quot;</source>
+ <translation>A(z) &apos;%1&apos; beépülő modul inkompatibilis Qt könyvtárat használ. A várt építési kulcs &apos;%2&apos;, kapott &apos;%3&apos;</translation>
+ </message>
+ <message>
+ <location line="+365"/>
+ <source>Unknown error</source>
+ <translation>Ismeretlen hiba</translation>
+ </message>
+ <message>
+ <location line="-402"/>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+343"/>
+ <source>The shared library was not found.</source>
+ <translation>A megosztott könyvtár nem található.</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>The file &apos;%1&apos; is not a valid Qt plugin.</source>
+ <translation>A(z) &apos;%1&apos; fájl nem egy érvényes Qt beépülő modul.</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>The plugin &apos;%1&apos; uses incompatible Qt library. (Cannot mix debug and release libraries.)</source>
+ <translation>A(z) &apos;%1&apos; beépülő modul inkompatibilis Qt könyvtárat használ. (Nem lehet a debug és kiadási könyvtárakat keverni.)</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+236"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+87"/>
+ <source>Cannot load library %1: %2</source>
+ <translation>Nem lehet betölteni a(z) %1 könyvtárat: %2</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+22"/>
+ <source>Cannot unload library %1: %2</source>
+ <translation>Nem lehet kirakni a(z) %1 könyvtárat: %2</translation>
+ </message>
+ <message>
+ <location line="+34"/>
+ <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+15"/>
+ <source>Cannot resolve symbol &quot;%1&quot; in %2: %3</source>
+ <translation>Nem lehet megfejteni a(z) &apos;%1&apos; szimbólumot a(z) %2-ben: %3</translation>
+ </message>
+</context>
+<context>
+ <name>QLineEdit</name>
+ <message>
+ <location filename="../src/gui/widgets/qlineedit.cpp" line="+2035"/>
+ <source>Select All</source>
+ <translation>Az összes kiválasztása</translation>
+ </message>
+ <message>
+ <location line="-32"/>
+ <source>&amp;Undo</source>
+ <translation>&amp;Visszavonás</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&amp;Redo</source>
+ <translation>&amp;Helyreállítás</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Cu&amp;t</source>
+ <translation>&amp;Kivágás</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Copy</source>
+ <translation>&amp;Másolás</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Paste</source>
+ <translation>&amp;Beillesztés</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Delete</source>
+ <translation>Törlés</translation>
+ </message>
+</context>
+<context>
+ <name>QLocalServer</name>
+ <message>
+ <location filename="../src/network/socket/qlocalserver.cpp" line="+224"/>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+246"/>
+ <source>%1: Name error</source>
+ <translation>%1: Név hiba</translation>
+ </message>
+ <message>
+ <location filename="../src/network/socket/qlocalserver_unix.cpp" line="-8"/>
+ <source>%1: Permission denied</source>
+ <translation>%1: Engedély megtagadva</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>%1: Address in use</source>
+ <translation>%1: Cím használatban</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>%1: Unknown error %2</source>
+ <translation>%1: Ismeretlen hiba %2</translation>
+ </message>
+</context>
+<context>
+ <name>QLocalSocket</name>
+ <message>
+ <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+139"/>
+ <source>%1: Connection refused</source>
+ <translation>%1: Kapcsolat elutasítva</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+ <source>%1: Remote closed</source>
+ <translation>%1: Távol bezárva</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/>
+ <location line="+45"/>
+ <source>%1: Invalid name</source>
+ <translation>%1: Érvénytelen név</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+ <source>%1: Socket access error</source>
+ <translation>%1: Socket hozzáférési hiba</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+ <source>%1: Socket resource error</source>
+ <translation>%1: Socket erőforrás hiba</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+ <source>%1: Socket operation timed out</source>
+ <translation>%1: Socker művelet időtúllépés</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+ <source>%1: Datagram too large</source>
+ <translation>%1: Túl nagy datagram</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="-50"/>
+ <source>%1: Connection error</source>
+ <translation>%1: Kapcsolat hiba</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+ <source>%1: The socket operation is not supported</source>
+ <translation>%1: A socket művelet nem támogatott</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>%1: Unknown error</source>
+ <translation>%1: Ismeretlen hiba</translation>
+ </message>
+ <message>
+ <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+4"/>
+ <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+10"/>
+ <source>%1: Unknown error %2</source>
+ <translation>%1: Ismeretlen hiba %2</translation>
+ </message>
+</context>
+<context>
+ <name>QMYSQLDriver</name>
+ <message>
+ <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1261"/>
+ <source>Unable to open database &apos;</source>
+ <translation>Nem lehet megnyitni az adatbázist</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Unable to connect</source>
+ <translation>Nem lehet kapcsolódni</translation>
+ </message>
+ <message>
+ <location line="+151"/>
+ <source>Unable to begin transaction</source>
+ <translation>Nem lehet megkezdeni a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Unable to commit transaction</source>
+ <translation>Nem lehet kommitolni a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Unable to rollback transaction</source>
+ <translation>Nem lehet visszagörgetni a tranzakciót</translation>
+ </message>
+</context>
+<context>
+ <name>QMYSQLResult</name>
+ <message>
+ <location line="-969"/>
+ <source>Unable to fetch data</source>
+ <translation>Nem lehet letölteni az adatot</translation>
+ </message>
+ <message>
+ <location line="+183"/>
+ <source>Unable to execute query</source>
+ <translation>Nem lehet végrehajtani a lekérdezést</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Unable to store result</source>
+ <translation>Nem lehet tárolni az eredményt</translation>
+ </message>
+ <message>
+ <location line="+191"/>
+ <location line="+8"/>
+ <source>Unable to prepare statement</source>
+ <translation>Nem lehet felkészülni a műveletre</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>Unable to reset statement</source>
+ <translation>Nem lehet visszaállítani a műveleteket</translation>
+ </message>
+ <message>
+ <location line="+86"/>
+ <source>Unable to bind value</source>
+ <translation>Nem lehet összekötni az értéket</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Unable to execute statement</source>
+ <translation>Nem lehet végrehajtani az állítást</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <location line="+21"/>
+ <source>Unable to bind outvalues</source>
+ <translation>Nem lehet összekötni a kiértékeléseket</translation>
+ </message>
+ <message>
+ <location line="-12"/>
+ <source>Unable to store statement results</source>
+ <translation>Nem lehet letárolni a művelet eredményeket</translation>
+ </message>
+ <message>
+ <location line="-253"/>
+ <source>Unable to execute next query</source>
+ <translation>Nem lehet végrehajtani a következő lekérdezést</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Unable to store next result</source>
+ <translation>Nem lehet letárolni a következő eredményt</translation>
+ </message>
+</context>
+<context>
+ <name>QMdiArea</name>
+ <message>
+ <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
+ <source>(Untitled)</source>
+ <translation>(Címtelen)</translation>
+ </message>
+</context>
+<context>
+ <name>QMdiSubWindow</name>
+ <message>
+ <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/>
+ <source>%1 - [%2]</source>
+ <translation>%1 - [%2]</translation>
+ </message>
+ <message>
+ <location line="+72"/>
+ <source>Close</source>
+ <translation>Bezárás</translation>
+ </message>
+ <message>
+ <location line="-18"/>
+ <source>Minimize</source>
+ <translation>Minimalizálás</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Restore Down</source>
+ <translation>Leállítás</translation>
+ </message>
+ <message>
+ <location line="+707"/>
+ <source>&amp;Restore</source>
+ <translation>&amp;Letárolás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Move</source>
+ <translation>&amp;Mozgatás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Size</source>
+ <translation>&amp;Méret</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Mi&amp;nimize</source>
+ <translation>&amp;Minimalizálás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Ma&amp;ximize</source>
+ <translation>Ma&amp;ximalizálás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Stay on &amp;Top</source>
+ <translation>&amp;Tetején maradni</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Bezárás</translation>
+ </message>
+ <message>
+ <location line="-729"/>
+ <source>Maximize</source>
+ <translation>Maximalizálás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Unshade</source>
+ <translation>Árnyékolás megszüntetése</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Shade</source>
+ <translation>Árnyákolás</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Restore</source>
+ <translation>Visszaállítás</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Help</source>
+ <translation>Súgó</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Menu</source>
+ <translation>Menü</translation>
+ </message>
+ <message>
+ <location line="-79"/>
+ <source>- [%1]</source>
+ <translation>- [%1]</translation>
+ </message>
+</context>
+<context>
+ <name>QMenu</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
+ <location line="+225"/>
+ <source>Close</source>
+ <translation>Bezárás</translation>
+ </message>
+ <message>
+ <location line="-224"/>
+ <location line="+225"/>
+ <source>Open</source>
+ <translation>Megnyitás</translation>
+ </message>
+ <message>
+ <location line="-223"/>
+ <location line="+225"/>
+ <location line="+51"/>
+ <source>Execute</source>
+ <translation>Végrehajtás</translation>
+ </message>
+</context>
+<context>
+ <name>QMenuBar</name>
+ <message>
+ <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+410"/>
+ <source>Actions</source>
+ <translation>Tevékenységek</translation>
+ </message>
+</context>
+<context>
+ <name>QMessageBox</name>
+ <message>
+ <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1964"/>
+ <location line="+847"/>
+ <location filename="../src/gui/dialogs/qmessagebox.h" line="-52"/>
+ <location line="+8"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location line="+477"/>
+ <source>&lt;h3&gt;About Qt&lt;/h3&gt;&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
+ <translation>&lt;h3&gt;Qt-ról&lt;/h3&gt;&lt;p&gt;Ez a program a(z) %1 Qt verziót használja.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&lt;p&gt;Qt is a C++ toolkit for cross-platform application development.&lt;/p&gt;&lt;p&gt;Qt provides single-source portability across MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;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.&lt;/p&gt;&lt;p&gt;Qt is available under three different licensing options designed to accommodate the needs of our various users.&lt;/p&gt;&lt;p&gt;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.&lt;/p&gt;&lt;p&gt;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.&lt;/p&gt;&lt;p&gt;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.&lt;/p&gt;&lt;p&gt;Please see &lt;a href=&quot;http://qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;Qt is a Nokia product. See &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; for more information.&lt;/p&gt;</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>About Qt</source>
+ <translation>Qt-ról</translation>
+ </message>
+ <message>
+ <location line="-512"/>
+ <source>Help</source>
+ <translation>Súgó</translation>
+ </message>
+ <message>
+ <location line="-1099"/>
+ <source>Show Details...</source>
+ <translation>Részletek megjelenítése...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Hide Details...</source>
+ <translation>Részletek elrejtése...</translation>
+ </message>
+</context>
+<context>
+ <name>QMultiInputContext</name>
+ <message>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
+ <source>Select IM</source>
+ <translation>IM kiválasztása</translation>
+ </message>
+</context>
+<context>
+ <name>QMultiInputContextPlugin</name>
+ <message>
+ <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
+ <source>Multiple input method switcher</source>
+ <translation>Összetett beviteli eljárás kapcsoló</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Multiple input method switcher that uses the context menu of the text widgets</source>
+ <translation>Összetett beviteli eljárás kapcsoló, ami a szöveg widgetek menü összefüggéseit használja</translation>
+ </message>
+</context>
+<context>
+ <name>QNativeSocketEngine</name>
+ <message>
+ <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/>
+ <source>The remote host closed the connection</source>
+ <translation>A távoli hoszt bezárta a kapcsolatot</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Network operation timed out</source>
+ <translation>Hálózati művelet időtúllépése</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Out of resources</source>
+ <translation>Kifogytak az erőforrások</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Unsupported socket operation</source>
+ <translation>Nem támogatott socket művelet</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Protocol type not supported</source>
+ <translation>Nem támogatott protokoll típus</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Invalid socket descriptor</source>
+ <translation>Érvénytelen socket leíró</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Network unreachable</source>
+ <translation>A hálózat nem elérhető</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Permission denied</source>
+ <translation>Engedély megtagadva</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Connection timed out</source>
+ <translation>Kapcsolat időtúllépés</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Connection refused</source>
+ <translation>Kapcsolat elutasítva</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The bound address is already in use</source>
+ <translation>A cím összeköttetés már használatban van</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The address is not available</source>
+ <translation>A cím nem elérhető</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The address is protected</source>
+ <translation>A cím védett</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Unable to send a message</source>
+ <translation>Nem lehet üzenetet küldeni</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Unable to receive a message</source>
+ <translation>Nem lehet megkapni az üzeneteket</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Unable to write</source>
+ <translation>Nem lehet írni</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Network error</source>
+ <translation>Hálózati hiba</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Another socket is already listening on the same port</source>
+ <translation>Egy másik socker már ugyanazon a porton figyel</translation>
+ </message>
+ <message>
+ <location line="-66"/>
+ <source>Unable to initialize non-blocking socket</source>
+ <translation>Nem lehet inicializálni egy nem blokkoló socketet</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Unable to initialize broadcast socket</source>
+ <translation>Nem lehet inicializálni a socket közvetítőt</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Attempt to use IPv6 socket on a platform with no IPv6 support</source>
+ <translation>IPv6 socket használatának kipróbálása olyan platformon, amelyik nem támogatja az IPv6-t</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>Host unreachable</source>
+ <translation>A hoszt nem elérhető</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>Datagram was too large to send</source>
+ <translation>A datagram túl nagy volt elküldésre</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Operation on non-socket</source>
+ <translation>Nem socketen végzett művelet</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Unknown error</source>
+ <translation>Ismeretlen hiba</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>The proxy type is invalid for this operation</source>
+ <translation>A proxy típusa ismeretlen erre a műveletre</translation>
+ </message>
+</context>
+<context>
+ <name>QNetworkAccessCacheBackend</name>
+ <message>
+ <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+66"/>
+ <source>Error opening %1</source>
+ <translation>Hiba történt a(z) %1 megnyitása közben</translation>
+ </message>
+</context>
+<context>
+ <name>QNetworkAccessDebugPipeBackend</name>
+ <message>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+195"/>
+ <source>Write error writing to %1: %2</source>
+ <translation>Írása hiba történt a(z) %1-be történő írás közben: %2</translation>
+ </message>
+</context>
+<context>
+ <name>QNetworkAccessFileBackend</name>
+ <message>
+ <location filename="../src/network/access/qfilenetworkreply.cpp" line="+83"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+100"/>
+ <source>Request for opening non-local file %1</source>
+ <translation>Kérés a(z) %1 nem helyi fál megnyitására</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+45"/>
+ <source>Error opening %1: %2</source>
+ <translation>Hiba történt a(z) %1 megnyitása közben: %2</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+38"/>
+ <source>Write error writing to %1: %2</source>
+ <translation>Írási hiba történt a(z) %1-be írás közben: %2</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qfilenetworkreply.cpp" line="-11"/>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+48"/>
+ <source>Cannot open %1: Path is a directory</source>
+ <translation>Nem lehet megnyitni a(z) %1-t: az útvonal egy könyvtár</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+21"/>
+ <source>Read error reading from %1: %2</source>
+ <translation>Olvasási hiba történt a(z) %1-ból való olvasás közben: %2</translation>
+ </message>
+</context>
+<context>
+ <name>QNetworkAccessFtpBackend</name>
+ <message>
+ <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+131"/>
+ <source>No suitable proxy found</source>
+ <translation>Nem található megfelelő proxy</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Cannot open %1: is a directory</source>
+ <translation>Nem lehet megnyitni a(z) %1 t, mert az egy könyvtár</translation>
+ </message>
+ <message>
+ <location line="+112"/>
+ <source>Logging in to %1 failed: authentication required</source>
+ <translation>A(z) %1-be történő loggolás nem sikerült: hitelesítés szükséges</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>Error while downloading %1: %2</source>
+ <translation>Hiba történt a(z) %1 letöltése közben: %2</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Error while uploading %1: %2</source>
+ <translation>Hiba történt a(z) %1 feltöltése közben: %2</translation>
+ </message>
+</context>
+<context>
+ <name>QNetworkAccessHttpBackend</name>
+ <message>
+ <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+585"/>
+ <source>No suitable proxy found</source>
+ <translation>Nem található megfelelő proxy</translation>
+ </message>
+</context>
+<context>
+ <name>QNetworkReply</name>
+ <message>
+ <location line="+95"/>
+ <source>Error downloading %1 - server replied: %2</source>
+ <translation>Hiba történt a(z) %1 letöltése közben - a szerver válasza: %2</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+77"/>
+ <source>Protocol &quot;%1&quot; is unknown</source>
+ <translation>A(z) &apos;%1&apos; protokoll ismeretlen</translation>
+ </message>
+</context>
+<context>
+ <name>QNetworkReplyImpl</name>
+ <message>
+ <location line="+519"/>
+ <location line="+28"/>
+ <source>Operation canceled</source>
+ <translation>Művelet visszavonása</translation>
+ </message>
+</context>
+<context>
+ <name>QOCIDriver</name>
+ <message>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2083"/>
+ <source>Unable to logon</source>
+ <translation>Nem lehet bejelentkezni</translation>
+ </message>
+ <message>
+ <location line="-144"/>
+ <source>Unable to initialize</source>
+ <comment>QOCIDriver</comment>
+ <translation>Nem lehet inicializálni</translation>
+ </message>
+ <message>
+ <location line="+215"/>
+ <source>Unable to begin transaction</source>
+ <translation>Nem lehet megkezdeni a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Unable to commit transaction</source>
+ <translation>Nem lehet kommitolni a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Unable to rollback transaction</source>
+ <translation>Nem lehet visszagörgetni a tranzakciót</translation>
+ </message>
+</context>
+<context>
+ <name>QOCIResult</name>
+ <message>
+ <location line="-979"/>
+ <location line="+168"/>
+ <location line="+15"/>
+ <source>Unable to bind column for batch execute</source>
+ <translation>Nem lehet összekötni az oszlopot köteg végrehajtásra</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Unable to execute batch statement</source>
+ <translation>Nem lehet végrehajtani a köteg állítást</translation>
+ </message>
+ <message>
+ <location line="+304"/>
+ <source>Unable to goto next</source>
+ <translation>Nem lehet a következőre ugrani</translation>
+ </message>
+ <message>
+ <location line="+59"/>
+ <source>Unable to alloc statement</source>
+ <translation>Nem lehet helyet lefoglalni az állításnak</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Unable to prepare statement</source>
+ <translation>Nem lehet felkészülni a műveletre</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Unable to get statement type</source>
+ <translation>Nem lehet megszerezni az állítás típusát</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Unable to bind value</source>
+ <translation>Nem lehet összekötni az értéket</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Unable to execute statement</source>
+ <translation>Nem lehet végrehajtani az állítást</translation>
+ </message>
+</context>
+<context>
+ <name>QODBCDriver</name>
+ <message>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1790"/>
+ <source>Unable to connect</source>
+ <translation>Nem lehet kapcsolódni</translation>
+ </message>
+ <message>
+ <location line="+238"/>
+ <source>Unable to disable autocommit</source>
+ <translation>Nem lehet letiltani az automatikus kommitolást</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Unable to commit transaction</source>
+ <translation>Nem lehet kommitolni a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Unable to rollback transaction</source>
+ <translation>Nem lehet visszagörgetni a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Unable to enable autocommit</source>
+ <translation>Nem lehet engedélyezni az automatikus kommitolást</translation>
+ </message>
+ <message>
+ <location line="-281"/>
+ <source>Unable to connect - Driver doesn&apos;t support all functionality required</source>
+ <translation>Nem lehet csatlakozni- A vezérlő nem támogatja az összes szükséges funkciót</translation>
+ </message>
+</context>
+<context>
+ <name>QODBCResult</name>
+ <message>
+ <location line="-932"/>
+ <location line="+346"/>
+ <source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
+ <translation>QODBCEredmény::Visszaállítás: Nen lehet beállítani az &apos;SQL_CURSOR_STATIC&apos; állítás attribútumra. Kérem ellenőrizze le az ODBC vezérlő konfigurációt</translation>
+ </message>
+ <message>
+ <location line="-329"/>
+ <location line="+623"/>
+ <source>Unable to execute statement</source>
+ <translation>Nem lehet végrehajtani az állítást</translation>
+ </message>
+ <message>
+ <location line="-547"/>
+ <source>Unable to fetch next</source>
+ <translation>Nem lehet letölteni a következőt</translation>
+ </message>
+ <message>
+ <location line="+271"/>
+ <source>Unable to prepare statement</source>
+ <translation>Nem lehet felkészülni az állításra</translation>
+ </message>
+ <message>
+ <location line="+268"/>
+ <source>Unable to bind variable</source>
+ <translation>Nem lehet összekötni a változót</translation>
+ </message>
+ <message>
+ <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+190"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-467"/>
+ <location line="+576"/>
+ <source>Unable to fetch last</source>
+ <translation>Nem lehet letölteni az utolsót</translation>
+ </message>
+ <message>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-670"/>
+ <source>Unable to fetch</source>
+ <translation>Nem lehet letölteni</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Unable to fetch first</source>
+ <translation>Nem letölteni az elsőt</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Unable to fetch previous</source>
+ <translation>Nem lehet letölteni az előzőt</translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="-97"/>
+ <source>Invalid hostname</source>
+ <translation>Érvénytelen hoszt név</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
+ <source>Operation not supported on %1</source>
+ <translation>A művelet nem támogatott a(z) %1-n</translation>
+ </message>
+ <message>
+ <location line="+57"/>
+ <source>Invalid URI: %1</source>
+ <translation>Érvénytelen URI: %1</translation>
+ </message>
+ <message>
+ <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+60"/>
+ <source>Socket error on %1: %2</source>
+ <translation>Socket hiba a(z) %1-n: %2</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Remote host closed the connection prematurely on %1</source>
+ <translation>A távoli hoszt túl korán bezárta a kapcsolatot a(z) %1-n</translation>
+ </message>
+ <message>
+ <location filename="../src/network/kernel/qhostinfo.cpp" line="+175"/>
+ <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+0"/>
+ <source>No host name given</source>
+ <translation>Nincs hoszt név megadva</translation>
+ </message>
+</context>
+<context>
+ <name>QPPDOptionsModel</name>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1197"/>
+ <source>Name</source>
+ <translation>Név</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Value</source>
+ <translation>Érték</translation>
+ </message>
+</context>
+<context>
+ <name>QPSQLDriver</name>
+ <message>
+ <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+782"/>
+ <source>Unable to connect</source>
+ <translation>Nem lehet csatlakozni</translation>
+ </message>
+ <message>
+ <location line="+49"/>
+ <source>Could not begin transaction</source>
+ <translation>Nem sikerült megkezdeni a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Could not commit transaction</source>
+ <translation>Nem lehet kommitolni a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Could not rollback transaction</source>
+ <translation>Nem lehet visszagörgetni a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+374"/>
+ <source>Unable to subscribe</source>
+ <translation>Nem lehet feliratkozni</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <source>Unable to unsubscribe</source>
+ <translation>Nem lehet leiratkozni</translation>
+ </message>
+</context>
+<context>
+ <name>QPSQLResult</name>
+ <message>
+ <location line="-1085"/>
+ <source>Unable to create query</source>
+ <translation>Nem lehet létrehozni a lekérdezést</translation>
+ </message>
+ <message>
+ <location line="+372"/>
+ <source>Unable to prepare statement</source>
+ <translation>Nem lehet felkészülni az állításra</translation>
+ </message>
+</context>
+<context>
+ <name>QPageSetupWidget</name>
+ <message>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
+ <source>Centimeters (cm)</source>
+ <translation>Centiméter (cm)</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Millimeters (mm)</source>
+ <translation>Milliméter (mm)</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Inches (in)</source>
+ <translation>Incs (in)</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Points (pt)</source>
+ <translation>Pont (pt)</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qpagesetupwidget.ui"/>
+ <source>Form</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location/>
+ <source>Paper</source>
+ <translation>Papír</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Page size:</source>
+ <translation>Lap méret:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Width:</source>
+ <translation>Szélesség:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Height:</source>
+ <translation>Magasság:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Paper source:</source>
+ <translation>Papír forrás:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Orientation</source>
+ <translation>Elhelyezkedés</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Portrait</source>
+ <translation>Portré</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Landscape</source>
+ <translation>Tájkép</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Reverse landscape</source>
+ <translation>Fordított tájkép</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Reverse portrait</source>
+ <translation>Fordított portré</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Margins</source>
+ <translation>Margó</translation>
+ </message>
+ <message>
+ <location/>
+ <source>top margin</source>
+ <translation>Felső margó</translation>
+ </message>
+ <message>
+ <location/>
+ <source>left margin</source>
+ <translation>Bal margó</translation>
+ </message>
+ <message>
+ <location/>
+ <source>right margin</source>
+ <translation>Jobb margó</translation>
+ </message>
+ <message>
+ <location/>
+ <source>bottom margin</source>
+ <translation>Alsó margó</translation>
+ </message>
+</context>
+<context>
+ <name>QPluginLoader</name>
+ <message>
+ <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+24"/>
+ <source>Unknown error</source>
+ <translation>Ismeretlen hiba</translation>
+ </message>
+ <message>
+ <location line="-113"/>
+ <source>The plugin was not loaded.</source>
+ <translation>A beépülő modult nem sikerült betölteni.</translation>
+ </message>
+</context>
+<context>
+ <name>QPrintDialog</name>
+ <message>
+ <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+108"/>
+ <source>locally connected</source>
+ <translation>Helyileg csatlakoztatva</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <location line="+225"/>
+ <source>Aliases: %1</source>
+ <translation>Álnevek: %1</translation>
+ </message>
+ <message>
+ <location line="+225"/>
+ <location line="+199"/>
+ <source>unknown</source>
+ <translation>ismeretlen</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+266"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+375"/>
+ <source>Print all</source>
+ <translation>Az összes kinyomtatása</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Print range</source>
+ <translation>Egy tartomány kinyomtatása</translation>
+ </message>
+ <message>
+ <location line="-48"/>
+ <source>A0 (841 x 1189 mm)</source>
+ <translation>A0 (841 x 1189 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A1 (594 x 841 mm)</source>
+ <translation>A1 (594 x 841 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A2 (420 x 594 mm)</source>
+ <translation>A2 (420 x 594 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A3 (297 x 420 mm)</source>
+ <translation>A3 (297 x 420 mm)</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>A5 (148 x 210 mm)</source>
+ <translation>A5 (148 x 210 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A6 (105 x 148 mm)</source>
+ <translation>A6 (105 x 148 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A7 (74 x 105 mm)</source>
+ <translation>A7 (74 x 105 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A8 (52 x 74 mm)</source>
+ <translation>A8 (52 x 74 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A9 (37 x 52 mm)</source>
+ <translation>A9 (37 x 52 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B0 (1000 x 1414 mm)</source>
+ <translation>B0 (1000 x 1414 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B1 (707 x 1000 mm)</source>
+ <translation>B1 (707 x 1000 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B2 (500 x 707 mm)</source>
+ <translation>B2 (500 x 707 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B3 (353 x 500 mm)</source>
+ <translation>B3 (353 x 500 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B4 (250 x 353 mm)</source>
+ <translation>B4 (250 x 353 mm)</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>B6 (125 x 176 mm)</source>
+ <translation>B6 (125 x 176 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B7 (88 x 125 mm)</source>
+ <translation>B7 (88 x 125 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B8 (62 x 88 mm)</source>
+ <translation>B8 (62 x 88 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B9 (44 x 62 mm)</source>
+ <translation>B9 (44 x 62 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B10 (31 x 44 mm)</source>
+ <translation>B10 (31 x 44 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>C5E (163 x 229 mm)</source>
+ <translation>C5E (163 x 229 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>DLE (110 x 220 mm)</source>
+ <translation>DLE (110 x 220 mm)</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Folio (210 x 330 mm)</source>
+ <translation>Fólió (210 x 330 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Ledger (432 x 279 mm)</source>
+ <translation>Főkönyv (432 x 279 mm)</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Tabloid (279 x 432 mm)</source>
+ <translation>Tabletta (279 x 432 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>US Common #10 Envelope (105 x 241 mm)</source>
+ <translation>US közös #10 bélyeg (105 x 241 mm)</translation>
+ </message>
+ <message>
+ <location line="-25"/>
+ <source>A4 (210 x 297 mm, 8.26 x 11.7 inches)</source>
+ <translation>A4 (210 x 297 mm, 8.26 x 11.7 inches)</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>B5 (176 x 250 mm, 6.93 x 9.84 inches)</source>
+ <translation>B5 (176 x 250 mm, 6.93 x 9.84 inches)</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Executive (7.5 x 10 inches, 191 x 254 mm)</source>
+ <translation>Vezető (7.5 x 10 inches, 191 x 254 mm)</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Legal (8.5 x 14 inches, 216 x 356 mm)</source>
+ <translation>Legális (8.5 x 14 inches, 216 x 356 mm)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Letter (8.5 x 11 inches, 216 x 279 mm)</source>
+ <translation>Levél (8.5 x 11 inches, 216 x 279 mm)</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Print selection</source>
+ <translation>Nyomtatási kiválasztás</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+112"/>
+ <location line="+13"/>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
+ <source>Print</source>
+ <translation>Nyomtatás</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-359"/>
+ <source>Print To File ...</source>
+ <translation>Fájlba nyomtatás ...</translation>
+ </message>
+ <message>
+ <location line="+82"/>
+ <source>File %1 is not writable.
+Please choose a different file name.</source>
+ <translation>A(z) %1 fájl nem írható.
+Kérem válasszon különböző fájl nevet.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>%1 already exists.
+Do you want to overwrite it?</source>
+ <translation>A(z) %1 már létezik.
+Felül szeretné írni?</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-228"/>
+ <source>File exists</source>
+ <translation>Fájl létezik</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&lt;qt&gt;Do you want to overwrite it?&lt;/qt&gt;</source>
+ <translation>&lt;qt&gt;Felül szeretné írni?&lt;/qt&gt;</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-8"/>
+ <source>%1 is a directory.
+Please choose a different file name.</source>
+ <translation>A(z) %1 egy könyvtár.
+Kérem válasszon egy különböző fájl nevet.</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+1"/>
+ <source>The &apos;From&apos; value cannot be greater than the &apos;To&apos; value.</source>
+ <translation>A &apos;-Tól&apos; érték nem lehet nagyobb az &apos;-Ig&apos; értéknél.</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="-232"/>
+ <source>A0</source>
+ <translation>A0</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A1</source>
+ <translation>A1</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A2</source>
+ <translation>A2</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A3</source>
+ <translation>A3</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A4</source>
+ <translation>A4</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A5</source>
+ <translation>A5</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A6</source>
+ <translation>A6</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A7</source>
+ <translation>A7</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A8</source>
+ <translation>A8</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A9</source>
+ <translation>A9</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B0</source>
+ <translation>B0</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B1</source>
+ <translation>B1</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B2</source>
+ <translation>B2</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B3</source>
+ <translation>B3</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B4</source>
+ <translation>B4</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B5</source>
+ <translation>B5</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B6</source>
+ <translation>B6</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B7</source>
+ <translation>B7</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B8</source>
+ <translation>B8</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B9</source>
+ <translation>B9</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>B10</source>
+ <translation>B10</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>C5E</source>
+ <translation>C5E</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>DLE</source>
+ <translation>DLE</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Executive</source>
+ <translation>Vezető</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Folio</source>
+ <translation>Fólió</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Ledger</source>
+ <translation>Főkönyv</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Legal</source>
+ <translation>Legális</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Letter</source>
+ <translation>Levél</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Tabloid</source>
+ <translation>Tabletta</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>US Common #10 Envelope</source>
+ <translation>US közös #10 bélyeg</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Custom</source>
+ <translation>Egyéni</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-523"/>
+ <location line="+68"/>
+ <source>&amp;Options &gt;&gt;</source>
+ <translation>&amp;Opciók &gt;&gt;</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&amp;Options &lt;&lt;</source>
+ <translation>&amp;Opciók &lt;&lt;</translation>
+ </message>
+ <message>
+ <location line="+253"/>
+ <source>Print to File (PDF)</source>
+ <translation>Fájlba nyomtatás (PDF)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Print to File (Postscript)</source>
+ <translation>Fájlba nyomtatás (Postscript)</translation>
+ </message>
+ <message>
+ <location line="+47"/>
+ <source>Local file</source>
+ <translation>Helyi fájl</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Write %1 file</source>
+ <translation>%1 fájlba írás</translation>
+ </message>
+ <message>
+ <location line="-369"/>
+ <source>&amp;Print</source>
+ <translation>&amp;Nyomtatás</translation>
+ </message>
+</context>
+<context>
+ <name>QPrintPreviewDialog</name>
+ <message>
+ <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+246"/>
+ <source>%1%</source>
+ <translation>%1%</translation>
+ </message>
+ <message>
+ <location line="+68"/>
+ <source>Print Preview</source>
+ <translation>Nyomtatási előnézet</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Next page</source>
+ <translation>Következő lap</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Previous page</source>
+ <translation>Előző lap</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>First page</source>
+ <translation>Első lap</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Last page</source>
+ <translation>Utolsó lap</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Fit width</source>
+ <translation>Megfelelő szélesség</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Fit page</source>
+ <translation>Megfelelő lap</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Zoom in</source>
+ <translation>Nagyítás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Zoom out</source>
+ <translation>Kicsinyítés</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Portrait</source>
+ <translation>Portré</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Landscape</source>
+ <translation>Tájkép</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Show single page</source>
+ <translation>Egyetlen lap megjelenítése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Show facing pages</source>
+ <translation>Lapok megjelenítése szemből</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Show overview of all pages</source>
+ <translation>Az összes lap áttekintésének megjelenítése</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Print</source>
+ <translation>Nyomtatás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Page setup</source>
+ <translation>Lap beállítás</translation>
+ </message>
+ <message>
+ <location line="+150"/>
+ <source>Export to PDF</source>
+ <translation>PDF-be exportálás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Export to PostScript</source>
+ <translation>PostScript-be exportálás</translation>
+ </message>
+ <message>
+ <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
+ <location line="+12"/>
+ <source>Page Setup</source>
+ <translation>Lap beállítás</translation>
+ </message>
+</context>
+<context>
+ <name>QPrintPropertiesWidget</name>
+ <message>
+ <location filename="../src/gui/dialogs/qprintpropertieswidget.ui"/>
+ <source>Form</source>
+ <translation>Forma</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Page</source>
+ <translation>Lap</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Advanced</source>
+ <translation>Speciális</translation>
+ </message>
+</context>
+<context>
+ <name>QPrintSettingsOutput</name>
+ <message>
+ <location filename="../src/gui/dialogs/qprintsettingsoutput.ui"/>
+ <source>Form</source>
+ <translation>Forma</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Copies</source>
+ <translation>Másolás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Print range</source>
+ <translation>Tartomány nyomtatása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Print all</source>
+ <translation>Az összes nyomtatása</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Pages from</source>
+ <translation>Lapok ettől</translation>
+ </message>
+ <message>
+ <location/>
+ <source>to</source>
+ <translation>eddig</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Selection</source>
+ <translation>Kiválasztás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Output Settings</source>
+ <translation>Kimeneti beállítások</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Copies:</source>
+ <translation>Másolatok:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Collate</source>
+ <translation>Egyeztet</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Reverse</source>
+ <translation>Fordítva</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Options</source>
+ <translation>Opciók</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Color Mode</source>
+ <translation>Színes mód</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Color</source>
+ <translation>Szín</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Grayscale</source>
+ <translation>Szürkeárnyalat</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Duplex Printing</source>
+ <translation>Dupla nyomtatás</translation>
+ </message>
+ <message>
+ <location/>
+ <source>None</source>
+ <translation>Semmi</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Long side</source>
+ <translation>Hosszú oldal</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Short side</source>
+ <translation>Rövid oldal</translation>
+ </message>
+</context>
+<context>
+ <name>QPrintWidget</name>
+ <message>
+ <location filename="../src/gui/dialogs/qprintwidget.ui"/>
+ <source>Form</source>
+ <translation>Űrlap</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Printer</source>
+ <translation>Nyomtató</translation>
+ </message>
+ <message>
+ <location/>
+ <source>&amp;Name:</source>
+ <translation>&amp;Név:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>P&amp;roperties</source>
+ <translation>Tu&amp;lajdonságok</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Location:</source>
+ <translation>Elhelyezkedés:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Preview</source>
+ <translation>Előnézet</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Type:</source>
+ <translation>Típus:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Output &amp;file:</source>
+ <translation>Kimeneti &amp;fájl:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+</context>
+<context>
+ <name>QProcess</name>
+ <message>
+ <location filename="../src/corelib/io/qprocess_unix.cpp" line="+406"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+137"/>
+ <source>Could not open input redirection for reading</source>
+ <translation>Nem sikerült megnyitni a bevitel olvasásra irányítását</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+20"/>
+ <source>Could not open output redirection for writing</source>
+ <translation>Nem sikerült megnyitni a kimenet írásra irányítását</translation>
+ </message>
+ <message>
+ <location line="+239"/>
+ <source>Resource error (fork failure): %1</source>
+ <translation>Erőforrás hiba (Szétágazás hiba): %1</translation>
+ </message>
+ <message>
+ <location line="+258"/>
+ <location line="+52"/>
+ <location line="+74"/>
+ <location line="+66"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+406"/>
+ <location line="+50"/>
+ <location line="+75"/>
+ <location line="+42"/>
+ <location line="+54"/>
+ <source>Process operation timed out</source>
+ <translation>Folyamat művelet időtúllépés</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/io/qprocess.cpp" line="+855"/>
+ <location line="+52"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
+ <location line="+50"/>
+ <source>Error reading from process</source>
+ <translation>Hiba történt a folyamat olvasása közben</translation>
+ </message>
+ <message>
+ <location line="+47"/>
+ <location line="+826"/>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="+140"/>
+ <source>Error writing to process</source>
+ <translation>Hiba történt a folyamat írása közben</translation>
+ </message>
+ <message>
+ <location line="-756"/>
+ <source>Process crashed</source>
+ <translation>A folyamat összeomlott</translation>
+ </message>
+ <message>
+ <location line="+959"/>
+ <source>No program defined</source>
+ <translation>Nincs program definiálva</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/io/qprocess_win.cpp" line="-360"/>
+ <source>Process failed to start: %1</source>
+ <translation>Nem sikerült elindítani a folyamatot: %1</translation>
+ </message>
+</context>
+<context>
+ <name>QProgressDialog</name>
+ <message>
+ <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+196"/>
+ <source>Cancel</source>
+ <translation>Mégse</translation>
+ </message>
+</context>
+<context>
+ <name>QPushButton</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-8"/>
+ <source>Open</source>
+ <translation>Megnyitás</translation>
+ </message>
+</context>
+<context>
+ <name>QRadioButton</name>
+ <message>
+ <location line="+12"/>
+ <source>Check</source>
+ <translation>Ellenőrzés</translation>
+ </message>
+</context>
+<context>
+ <name>QRegExp</name>
+ <message>
+ <location filename="../src/corelib/tools/qregexp.cpp" line="+65"/>
+ <source>no error occurred</source>
+ <translation>nem történt hiba</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>disabled feature used</source>
+ <translation>tiltás tulajdonság használva</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>bad char class syntax</source>
+ <translation>rossz karakter osztály szintakszis</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>bad lookahead syntax</source>
+ <translation>rossz előreolvasási szintakszis</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>bad repetition syntax</source>
+ <translation>rossz ismétlési szintakszis</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>invalid octal value</source>
+ <translation>érvénytelen oktális érték</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>missing left delim</source>
+ <translation>hiányzó bal határolójel</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>unexpected end</source>
+ <translation>váratlan vég</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>met internal limit</source>
+ <translation>találkozott belső korlát</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>invalid interval</source>
+ <translation>érvénytelen intervallum</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>invalid category</source>
+ <translation>érvénytelen kategória</translation>
+ </message>
+</context>
+<context>
+ <name>QSQLite2Driver</name>
+ <message>
+ <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+391"/>
+ <source>Error opening database</source>
+ <translation>Hiba történt az adatbázis megnyitása közben</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Unable to begin transaction</source>
+ <translation>Nem lehet elkezdeni a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Unable to commit transaction</source>
+ <translation>Nem lehet kommitolni a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Unable to rollback transaction</source>
+ <translation>Nem lehet visszagörgetni a tranzakciót</translation>
+ </message>
+</context>
+<context>
+ <name>QSQLite2Result</name>
+ <message>
+ <location line="-319"/>
+ <source>Unable to fetch results</source>
+ <translation>Nem lehet letölteni az eredményeket</translation>
+ </message>
+ <message>
+ <location line="+143"/>
+ <source>Unable to execute statement</source>
+ <translation>Nem lehet végrehajtani az állítást</translation>
+ </message>
+</context>
+<context>
+ <name>QSQLiteDriver</name>
+ <message>
+ <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+540"/>
+ <source>Error opening database</source>
+ <translation>Hiba történt az adatbázis megnyitása közben</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Error closing database</source>
+ <translation>Hiba történt az adatbázis bezárása közben</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Unable to begin transaction</source>
+ <translation>Nem lehet elkezdeni a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Unable to commit transaction</source>
+ <translation>Nem lehet kommitolni a tranzakciót</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Unable to rollback transaction</source>
+ <translation>Nem lehet visszagörgetni a tranzakciót</translation>
+ </message>
+</context>
+<context>
+ <name>QSQLiteResult</name>
+ <message>
+ <location line="-404"/>
+ <location line="+62"/>
+ <location line="+8"/>
+ <source>Unable to fetch row</source>
+ <translation>Nem lehet leszedni a sort</translation>
+ </message>
+ <message>
+ <location line="+59"/>
+ <source>Unable to execute statement</source>
+ <translation>Nem lehet végrehajtani az állítást</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Unable to reset statement</source>
+ <translation>Nem lehet visszaállítani az állítást</translation>
+ </message>
+ <message>
+ <location line="+45"/>
+ <source>Unable to bind parameters</source>
+ <translation>Nem lehet összekötni a paramétereket</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Parameter count mismatch</source>
+ <translation>A paraméter számláló nem megfelelő</translation>
+ </message>
+ <message>
+ <location line="-200"/>
+ <source>No query</source>
+ <translation>Nincs lekérdezés</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptBreakpointsModel</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptbreakpointsmodel.cpp" line="+455"/>
+ <source>ID</source>
+ <translation>Azonosító</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Location</source>
+ <translation>Elhelyezkedés</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Condition</source>
+ <translation>Feltétel</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Ignore-count</source>
+ <translation>Számítás mellőzése</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Single-shot</source>
+ <translation>Egylövetű</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Hit-count</source>
+ <translation>Leütés számítás</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptBreakpointsWidget</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="+298"/>
+ <source>New</source>
+ <translation>Új</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Delete</source>
+ <translation>Törlés</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptDebugger</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptdebugger.cpp" line="+885"/>
+ <location line="+1013"/>
+ <source>Go to Line</source>
+ <translation>Ugrás erre a sorra</translation>
+ </message>
+ <message>
+ <location line="-1012"/>
+ <source>Line:</source>
+ <translation>Sor:</translation>
+ </message>
+ <message>
+ <location line="+791"/>
+ <source>Interrupt</source>
+ <translation>Megszakítás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Shift+F5</source>
+ <translation>Shift+F5</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Continue</source>
+ <translation>Folytatás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>F5</source>
+ <translation>F5</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Step Into</source>
+ <translation>Belelépés</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>F11</source>
+ <translation>F11</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Step Over</source>
+ <translation>Átlépés</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>F10</source>
+ <translation>F10</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Step Out</source>
+ <translation>Kilép</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Shift+F11</source>
+ <translation>Shift+F11</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Run to Cursor</source>
+ <translation>Kurzorra futás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Ctrl+F10</source>
+ <translation>Ctrl+F10</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Run to New Script</source>
+ <translation>Az új Szkriptre futás</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Toggle Breakpoint</source>
+ <translation>Töréspont kapcsolgatása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>F9</source>
+ <translation>F9</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Clear Debug Output</source>
+ <translation>Debug kimenet kiürítése</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Clear Error Log</source>
+ <translation>Error Log kiürítése</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Clear Console</source>
+ <translation>Konzol kiürítése</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>&amp;Find in Script...</source>
+ <translation>Szkriptben &amp;keresés...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Ctrl+F</source>
+ <translation>Ctrl+F</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Find &amp;Next</source>
+ <translation>&amp;Következő keresése</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>F3</source>
+ <translation>F3</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Find &amp;Previous</source>
+ <translation>&amp;Előző keresése</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Shift+F3</source>
+ <translation>Shift+F3</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Ctrl+G</source>
+ <translation>Ctrl+G</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Debug</source>
+ <translation>Debug</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptDebuggerCodeFinderWidget</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptdebuggercodefinderwidget.cpp" line="+141"/>
+ <source>Close</source>
+ <translation>Bezárás</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Previous</source>
+ <translation>Előző</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Next</source>
+ <translation>Következő</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Case Sensitive</source>
+ <translation>Kis és nagybetű érzékeny</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Whole words</source>
+ <translation>Egész szavakat</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>&lt;img src=&quot;:/qt/scripttools/debugging/images/wrap.png&quot;&gt;&amp;nbsp;Search wrapped</source>
+ <translation>&lt;img src=&quot;:/qt/scripttools/debugging/images/wrap.png&quot;&gt;&amp;nbsp;Keresés tördelve</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptDebuggerLocalsModel</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp" line="+872"/>
+ <source>Name</source>
+ <translation>Név</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Value</source>
+ <translation>Érték</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptDebuggerStackModel</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptdebuggerstackmodel.cpp" line="+161"/>
+ <source>Level</source>
+ <translation>Szint</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Name</source>
+ <translation>Név</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Location</source>
+ <translation>Elhelyezkedés</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptEdit</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptedit.cpp" line="+411"/>
+ <source>Toggle Breakpoint</source>
+ <translation>Töréspont kapcsolgatása</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Disable Breakpoint</source>
+ <translation>Töréspont tiltása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Enable Breakpoint</source>
+ <translation>Töréspont engedélyezése</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Breakpoint Condition:</source>
+ <translation>Töréspont feltétel:</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptEngineDebugger</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptenginedebugger.cpp" line="+523"/>
+ <source>Loaded Scripts</source>
+ <translation>Betöltött szkriptek</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Breakpoints</source>
+ <translation>Töréspontok</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Stack</source>
+ <translation>Verem</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Locals</source>
+ <translation>Helyi változók</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Console</source>
+ <translation>Konzol</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Debug Output</source>
+ <translation>Debug kimenet</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Error Log</source>
+ <translation>Hiba Log</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Search</source>
+ <translation>Keresés</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>View</source>
+ <translation>Nézet</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Qt Script Debugger</source>
+ <translation>Qt szkript debugger</translation>
+ </message>
+</context>
+<context>
+ <name>QScriptNewBreakpointWidget</name>
+ <message>
+ <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="-223"/>
+ <source>Close</source>
+ <translation>Bezárás</translation>
+ </message>
+</context>
+<context>
+ <name>QScrollBar</name>
+ <message>
+ <location filename="../src/gui/widgets/qscrollbar.cpp" line="+454"/>
+ <source>Scroll here</source>
+ <translation>Görgetés itt</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Left edge</source>
+ <translation>Bal szegély</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Top</source>
+ <translation>Tető</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Right edge</source>
+ <translation>Jobb szegély</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Bottom</source>
+ <translation>Alja</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Page left</source>
+ <translation>Lapzoás balra</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+143"/>
+ <source>Page up</source>
+ <translation>Lapozás felfele</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Page right</source>
+ <translation>Lapozás jobbra</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+4"/>
+ <source>Page down</source>
+ <translation>Lapozás lefele</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Scroll left</source>
+ <translation>Görgetés balra</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Scroll up</source>
+ <translation>Görgetés felfele</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Scroll right</source>
+ <translation>Görgetés jobbra</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Scroll down</source>
+ <translation>Görgetés lefele</translation>
+ </message>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-6"/>
+ <source>Line up</source>
+ <translation>Egy sorral feljebb</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Position</source>
+ <translation>Pozíció</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Line down</source>
+ <translation>Egy sorral lejjebb</translation>
+ </message>
+</context>
+<context>
+ <name>QSharedMemory</name>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+304"/>
+ <source>%1: create size is less then 0</source>
+ <translation>%1: 0-nál kisebb méret létrehozása</translation>
+ </message>
+ <message>
+ <location line="+168"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+155"/>
+ <source>%1: unable to lock</source>
+ <translation>%1: Nem lehet zárolni</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>%1: unable to unlock</source>
+ <translation>%1: Nem lehet kinyitni</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="+83"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+79"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
+ <source>%1: permission denied</source>
+ <translation>%1: engedély megtagadva</translation>
+ </message>
+ <message>
+ <location line="-16"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+4"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-22"/>
+ <source>%1: already exists</source>
+ <translation>%1: már létezik</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>%1: doesn&apos;t exists</source>
+ <translation>%1: nem létezik</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+10"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+18"/>
+ <source>%1: out of resources</source>
+ <translation>%1: Kifogyott az erőforrásból</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+4"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+7"/>
+ <source>%1: unknown error %2</source>
+ <translation>%1: ismeretlen hiba %2</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+21"/>
+ <source>%1: key is empty</source>
+ <translation>%1: Üres kulcs</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>%1: ftok failed</source>
+ <translation>%1: ftok hiba</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="+56"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+51"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+15"/>
+ <source>%1: unable to make key</source>
+ <translation>%1: Nem lehet kulcsot csinálni</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="-97"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-31"/>
+ <source>%1: doesn&apos;t exist</source>
+ <translation>%1: nem létezik</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>%1: UNIX key file doesn&apos;t exist</source>
+ <translation>%1: UNIX kulcs fájl nem létezik</translation>
+ </message>
+ <message>
+ <location line="+78"/>
+ <source>%1: system-imposed size restrictions</source>
+ <translation>%1: a rendszer rárakott méretének korlátozásai</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>%1: not attached</source>
+ <translation>%1: nincs hozzácsatolva</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="-67"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+4"/>
+ <source>%1: invalid size</source>
+ <translation>%1: érvénytelen méret</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+63"/>
+ <source>%1: key error</source>
+ <translation>%1: kulcs hiba</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+32"/>
+ <source>%1: size query failed</source>
+ <translation>%1: méret lekérdezési hiba</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="-271"/>
+ <source>%1: unable to set key on lock</source>
+ <translation>%1: nem lehet beállítani a kulcsot a záron</translation>
+ </message>
+</context>
+<context>
+ <name>QShortcut</name>
+ <message>
+ <location filename="../src/gui/kernel/qkeysequence.cpp" line="+393"/>
+ <source>Space</source>
+ <translation>Space</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Esc</source>
+ <translation>Esc</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Tab</source>
+ <translation>Tab</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Backtab</source>
+ <translation>Backtab</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Backspace</source>
+ <translation>Backspace</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Return</source>
+ <translation>Return</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Enter</source>
+ <translation>Enter</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Ins</source>
+ <translation>Ins</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Del</source>
+ <translation>Del</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Pause</source>
+ <translation>Pause</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Print</source>
+ <translation>Print</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>SysReq</source>
+ <translation>SysReq</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Home</source>
+ <translation>Home</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>End</source>
+ <translation>End</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Left</source>
+ <translation>Left</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Up</source>
+ <translation>Up</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Right</source>
+ <translation>Right</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Down</source>
+ <translation>Down</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>PgUp</source>
+ <translation>PgUp</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>PgDown</source>
+ <translation>PgDown</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>CapsLock</source>
+ <translation>CapsLock</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>NumLock</source>
+ <translation>NumLock</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>ScrollLock</source>
+ <translation>ScrollLock</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Menu</source>
+ <translation>Menü</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Help</source>
+ <translation>Súgó</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Back</source>
+ <translation>Vissza</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Forward</source>
+ <translation>Előre</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Stop</source>
+ <translation>Leállítás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Refresh</source>
+ <translation>Felfrissítés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Volume Down</source>
+ <translation>Hangerő lehalkítása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Volume Mute</source>
+ <translation>Hangerő Elnémítás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Volume Up</source>
+ <translation>Hangerő hangosítása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Bass Boost</source>
+ <translation>Basszus erősítés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Bass Up</source>
+ <translation>Basszus növelése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Bass Down</source>
+ <translation>Basszus csökkentése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Treble Up</source>
+ <translation>Felháromszorozás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Treble Down</source>
+ <translation>Leharmadolás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Media Play</source>
+ <translation>Média elindítása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Media Stop</source>
+ <translation>Média leállítása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Media Previous</source>
+ <translation>Előző média</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Media Next</source>
+ <translation>Következő média</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Media Record</source>
+ <translation>Média felvétel</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Favorites</source>
+ <translation>Kedvcencek</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Search</source>
+ <translation>Keresés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Standby</source>
+ <translation>Készenlét</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Open URL</source>
+ <translation>URL megnyitása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch Mail</source>
+ <translation>Mail indítása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch Media</source>
+ <translation>Média indítása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (0)</source>
+ <translation>Elindítás (0)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (1)</source>
+ <translation>Elindítás (1)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (2)</source>
+ <translation>Elindítás (2)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (3)</source>
+ <translation>Elindítás (3)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (4)</source>
+ <translation>Elindítás (4)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (5)</source>
+ <translation>Elindítás (5)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (6)</source>
+ <translation>Elindítás (6)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (7)</source>
+ <translation>Elindítás (7)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (8)</source>
+ <translation>Elindítás (8)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (9)</source>
+ <translation>Elindítás (9)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (A)</source>
+ <translation>Elindítás (A)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (B)</source>
+ <translation>Elindítás (B)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (C)</source>
+ <translation>Elindítás (C)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (D)</source>
+ <translation>Elindítás (D)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (E)</source>
+ <translation>Elindítás (E)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Launch (F)</source>
+ <translation>Elindítás (F)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Monitor Brightness Up</source>
+ <translation>Monitorfény növelése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Monitor Brightness Down</source>
+ <translation>Monitorfény csökkentése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Keyboard Light On/Off</source>
+ <translation>Billentyű világítás be/ki</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Keyboard Brightness Up</source>
+ <translation>Billentyűfény növelése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Keyboard Brightness Down</source>
+ <translation>Billentyűfény csökkentése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Power Off</source>
+ <translation>Kikapcsolás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Wake Up</source>
+ <translation>Felébresztés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Eject</source>
+ <translation>Kidobás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Screensaver</source>
+ <translation>Képernyővédő</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>WWW</source>
+ <translation>WWW</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Sleep</source>
+ <translation>Alvás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>LightBulb</source>
+ <translation>Villanykörte</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Shop</source>
+ <translation>Bolt</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>History</source>
+ <translation>Történelem</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Add Favorite</source>
+ <translation>Hozzáadás a kedvencekhez</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Hot Links</source>
+ <translation>Hot linkek</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Adjust Brightness</source>
+ <translation>Fényszabályozás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Finance</source>
+ <translation>Pénzügy</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Community</source>
+ <translation>Közösség</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Audio Rewind</source>
+ <translation>Audió áttekercselés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Back Forward</source>
+ <translation>Előre hátra</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Application Left</source>
+ <translation>Alkalmazás balra</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Application Right</source>
+ <translation>Alkalmazás jobbra</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Book</source>
+ <translation>Könyv</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>CD</source>
+ <translation>CD</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Calculator</source>
+ <translation>Számológép</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Clear</source>
+ <translation>Tiszta</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Clear Grab</source>
+ <translation>Tiszta megmarkolás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Close</source>
+ <translation>Bezárás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Copy</source>
+ <translation>Másolás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Cut</source>
+ <translation>Kivágás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Display</source>
+ <translation>Megjelenítés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>DOS</source>
+ <translation>DOS</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Documents</source>
+ <translation>Dokumentumok</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Spreadsheet</source>
+ <translation>Táblázatkezelő</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Browser</source>
+ <translation>Böngésző</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Game</source>
+ <translation>Játék</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Go</source>
+ <translation>Gyerünk</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>iTouch</source>
+ <translation>iTouch</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Logoff</source>
+ <translation>Kijelentkezés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Market</source>
+ <translation>Piac</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Meeting</source>
+ <translation>Találkozó</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Keyboard Menu</source>
+ <translation>Billlentyű menü</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Menu PB</source>
+ <translation>PB menü</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>My Sites</source>
+ <translation>Oldalam</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>News</source>
+ <translation>Hírek</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Home Office</source>
+ <translation>Otthoni iroda</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Option</source>
+ <translation>Opció</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Paste</source>
+ <translation>Beillesztés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Phone</source>
+ <translation>Telefon</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Reply</source>
+ <translation>Válasz</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Reload</source>
+ <translation>Újratöltés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Rotate Windows</source>
+ <translation>Ablakok forgatása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Rotation PB</source>
+ <translation>PB forgatás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Rotation KB</source>
+ <translation>KB forgatás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Save</source>
+ <translation>Mentés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Send</source>
+ <translation>Küldés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Spellchecker</source>
+ <translation>Helyesírás ellenőrző</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Split Screen</source>
+ <translation>Képernyő felosztása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Support</source>
+ <translation>Támogatás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Task Panel</source>
+ <translation>Feladat panel</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Terminal</source>
+ <translation>Terminál</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Tools</source>
+ <translation>Eszközök</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Travel</source>
+ <translation>Utazás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Video</source>
+ <translation>Videó</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Word Processor</source>
+ <translation>Szó feldolgozó</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>XFer</source>
+ <translation>XFer</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Zoom In</source>
+ <translation>Nagyítás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Zoom Out</source>
+ <translation>Kicsinyítés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Away</source>
+ <translation>Távol</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Messenger</source>
+ <translation>Hírnök</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>WebCam</source>
+ <translation>WebCam</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Mail Forward</source>
+ <translation>Mail továbbítása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Pictures</source>
+ <translation>Képek</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Music</source>
+ <translation>Zene</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Battery</source>
+ <translation>Elem</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Bluetooth</source>
+ <translation>Bluetooth</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Wireless</source>
+ <translation>Vezeték nélküli</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Ultra Wide Band</source>
+ <translation>Ultra széles sáv</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Audio Forward</source>
+ <translation>Audio továbbítás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Audio Repeat</source>
+ <translation>Audió ismétlés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Audio Random Play</source>
+ <translation>Audió véletlenszerű lejátszása</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Subtitle</source>
+ <translation>Alcím</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Audio Cycle Track</source>
+ <translation>Audió ciklikus követése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Time</source>
+ <translation>Idő</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>View</source>
+ <translation>Nézet</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Top Menu</source>
+ <translation>Felső menü</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Suspend</source>
+ <translation>Felfüggesztés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Hibernate</source>
+ <translation>Hibernálás</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Print Screen</source>
+ <translation>Képernyő másolás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Page Up</source>
+ <translation>Feljebb lapozás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Page Down</source>
+ <translation>Lejjebb lapozás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Caps Lock</source>
+ <translation>Caps Lock</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Num Lock</source>
+ <translation>Num Lock</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Number Lock</source>
+ <translation>Number Lock</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Scroll Lock</source>
+ <translation>Scroll Lock</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Insert</source>
+ <translation>Insert</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Delete</source>
+ <translation>Delete</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Escape</source>
+ <translation>Escape</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>System Request</source>
+ <translation>System Request</translation>
+ </message>
+ <message>
+ <location line="-18"/>
+ <location line="+22"/>
+ <source>Select</source>
+ <translation>Kiválsztás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Yes</source>
+ <translation>Igen</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>No</source>
+ <translation>Nem</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Context1</source>
+ <translation>Tartalom1</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Context2</source>
+ <translation>Tartalom2</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Context3</source>
+ <translation>Tartalom3</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Context4</source>
+ <translation>Tartalom4</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Call</source>
+ <translation>Hívás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Hangup</source>
+ <translation>Felfüggeszt</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Flip</source>
+ <translation>Feldobás</translation>
+ </message>
+ <message>
+ <location line="+573"/>
+ <location line="+135"/>
+ <source>Ctrl</source>
+ <translation>Ctrl</translation>
+ </message>
+ <message>
+ <location line="-134"/>
+ <location line="+138"/>
+ <source>Shift</source>
+ <translation>Shift</translation>
+ </message>
+ <message>
+ <location line="-137"/>
+ <location line="+135"/>
+ <source>Alt</source>
+ <translation>Alt</translation>
+ </message>
+ <message>
+ <location line="-134"/>
+ <location line="+130"/>
+ <source>Meta</source>
+ <translation>Meta</translation>
+ </message>
+ <message>
+ <location line="-40"/>
+ <source>+</source>
+ <translation>+</translation>
+ </message>
+ <message>
+ <location line="+61"/>
+ <source>F%1</source>
+ <translation>F%1</translation>
+ </message>
+ <message>
+ <location line="-869"/>
+ <source>Home Page</source>
+ <translation>Honlap</translation>
+ </message>
+</context>
+<context>
+ <name>QSlider</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+151"/>
+ <source>Page left</source>
+ <translation>Lapozás balra</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Page up</source>
+ <translation>Lapozás felfele</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Position</source>
+ <translation>Pozíció</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Page right</source>
+ <translation>Lapozás jobbra</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Page down</source>
+ <translation>Lapozás lefele</translation>
+ </message>
+</context>
+<context>
+ <name>QSocks5SocketEngine</name>
+ <message>
+ <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-67"/>
+ <source>Connection to proxy refused</source>
+ <translation>Proxyhoz kapcsolódás elutasítva</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Connection to proxy closed prematurely</source>
+ <translation>A proxyhoz való csatlakozás túl korán be lett zárva</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Proxy host not found</source>
+ <translation>Proxy hoszt nem található</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Connection to proxy timed out</source>
+ <translation>Proxyhoz való csatlakozásnál időtúllépés történt</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Proxy authentication failed</source>
+ <translation>Proxy hitelesítési hiba</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Proxy authentication failed: %1</source>
+ <translation>Proxy hitelesítési hiba: %1</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>SOCKS version 5 protocol error</source>
+ <translation>SOCKS verzió 5-s protokoll hiba</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>General SOCKSv5 server failure</source>
+ <translation>Általános SOCKSv5 szerver hiba</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Connection not allowed by SOCKSv5 server</source>
+ <translation>A csatlakozást nem engedi a SOCKSv5 szerver</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>TTL expired</source>
+ <translation>Lejárt a TTL</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>SOCKSv5 command not supported</source>
+ <translation>SOCKSv5 parancs nincs támogatva</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Address type not supported</source>
+ <translation>Cím típus nincs támogatva</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Unknown SOCKSv5 proxy error code 0x%1</source>
+ <translation>Ismeretlen SOCKSv5 proxy hiba kód 0x%1</translation>
+ </message>
+ <message>
+ <location line="+689"/>
+ <source>Network operation timed out</source>
+ <translation>Hálózat műveleti időtúllépés</translation>
+ </message>
+</context>
+<context>
+ <name>QSoftKeyManager</name>
+ <message>
+ <location filename="../src/gui/kernel/qsoftkeymanager.cpp" line="+79"/>
+ <source>Ok</source>
+ <translation>Ok</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Select</source>
+ <translation>Kiválasztás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Done</source>
+ <translation>Kész</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Options</source>
+ <translation>Opciók</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Cancel</source>
+ <translation>Mégse</translation>
+ </message>
+ <message>
+ <location line="+172"/>
+ <source>Exit</source>
+ <translation>Kilépés</translation>
+ </message>
+</context>
+<context>
+ <name>QSpinBox</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-574"/>
+ <source>More</source>
+ <translation>Több</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Less</source>
+ <translation>Kevés</translation>
+ </message>
+</context>
+<context>
+ <name>QSql</name>
+ <message>
+ <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
+ <source>Delete</source>
+ <translation>Törlés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Delete this record?</source>
+ <translation>Törölni szeretné ezt a felvételt?</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <location line="+16"/>
+ <location line="+36"/>
+ <source>Yes</source>
+ <translation>Igen</translation>
+ </message>
+ <message>
+ <location line="-51"/>
+ <location line="+16"/>
+ <location line="+36"/>
+ <source>No</source>
+ <translation>Nem</translation>
+ </message>
+ <message>
+ <location line="-44"/>
+ <source>Insert</source>
+ <translation>Beszúrás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Update</source>
+ <translation>Frissítés</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Save edits?</source>
+ <translation>Szerkesztések mentése?</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Cancel</source>
+ <translation>Mégse</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <source>Confirm</source>
+ <translation>Megerősítés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Cancel your edits?</source>
+ <translation>Szerkesztések visszavonása?</translation>
+ </message>
+</context>
+<context>
+ <name>QSslSocket</name>
+ <message>
+ <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+546"/>
+ <source>Unable to write data: %1</source>
+ <translation>Nem lehet adatot írni: %1</translation>
+ </message>
+ <message>
+ <location line="+119"/>
+ <source>Error while reading: %1</source>
+ <translation>Hiba történt olvasás közben: %1</translation>
+ </message>
+ <message>
+ <location line="+96"/>
+ <source>Error during SSL handshake: %1</source>
+ <translation>Hiba történt az SSL kézfogás közben: %1</translation>
+ </message>
+ <message>
+ <location line="-501"/>
+ <source>Error creating SSL context (%1)</source>
+ <translation>Hiba történt az SSL összefüggés (%1) létrehozása közben</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Invalid or empty cipher list (%1)</source>
+ <translation>Érvénytelen vagy üres számjegy lista (%1)</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>Private key does not certify public key, %1</source>
+ <translation>A privát kulcs nem igazolja a publikus kulcsot, %1</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Error creating SSL session, %1</source>
+ <translation>Hiba történt az SSL szakasz létrehozása közben, %1</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Error creating SSL session: %1</source>
+ <translation>Hiba történt az SSL szakasz létrehozása közben: %1</translation>
+ </message>
+ <message>
+ <location line="-61"/>
+ <source>Cannot provide a certificate with no key, %1</source>
+ <translation>Nem lehet biztosítani egy igazolást kulcs nélkül, %1</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Error loading local certificate, %1</source>
+ <translation>Hiba történt a helyi igazolás betöltése közben, %1</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Error loading private key, %1</source>
+ <translation>Hiba történt a privát kulcs betöltése közben, %1</translation>
+ </message>
+ <message>
+ <location filename="../src/network/ssl/qsslerror.cpp" line="+213"/>
+ <source>No error</source>
+ <translation>Nincs hiba</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The issuer certificate could not be found</source>
+ <translation>A problémás igazolás nem található</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The certificate signature could not be decrypted</source>
+ <translation>Az igazolás aláírás titkosítását nem sikerült feloldani</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The public key in the certificate could not be read</source>
+ <translation>Az igazolásban található publikus kulcsot nem sikerült olvasni</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The signature of the certificate is invalid</source>
+ <translation>Az igazolás aláírása érvénytelen</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The certificate is not yet valid</source>
+ <translation>Az igazolás még nem érvényes</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The certificate has expired</source>
+ <translation>Az igazolás lejárt</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The certificate&apos;s notBefore field contains an invalid time</source>
+ <translation>A mező érvénytelen idő tartalmazása előtt nincsen igazolás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The certificate&apos;s notAfter field contains an invalid time</source>
+ <translation>A mező érvénytelen idő tartalmazása után nincsen igazolás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The certificate is self-signed, and untrusted</source>
+ <translation>Az igazolás ön jelölt, és megbízhatatlan</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The root certificate of the certificate chain is self-signed, and untrusted</source>
+ <translation>Az igazolás lánc rendszergazda igazolása ön jelölt és megbízhatatlan</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The issuer certificate of a locally looked up certificate could not be found</source>
+ <translation>Egy helyileg utánanézett igazolás problémás igazolása nem található</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>No certificates could be verified</source>
+ <translation>Nem sikerült igazolást leellenőrizni</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>One of the CA certificates is invalid</source>
+ <translation>A CA igazolások egyike érvénytelen</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The basicConstraints path length parameter has been exceeded</source>
+ <translation>Az alap megszorítási útvonal hossz paramétereket meghaladták</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The supplied certificate is unsuitable for this purpose</source>
+ <translation>A szolgáltatott igazolás nem alkalmas erre a célra</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The root CA certificate is not trusted for this purpose</source>
+ <translation>A rendszergazda CA igazolás nem megbízható erre a célra</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The root CA certificate is marked to reject the specified purpose</source>
+ <translation>A rendszergazda CA igazolás a specializást cél megtagadására lett megjelölve</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate</source>
+ <translation>Az aktuális jelölt problémás igazolása meg lett tagadva, mert a téma neve nem egyezett az aktuális igazolás problémás nevével</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>The current candidate issuer certificate was rejected because its issuer name and serial number was present and did not match the authority key identifier of the current certificate</source>
+ <translation>Az aktuális jelölt problémás igazolása el lett utasítva, mert a problémás név és sorszám benyűjtva és nem egyezett az aktuális igazolás hitelesítési kulcs azonosítójával</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>The peer did not present any certificate</source>
+ <translation>A kortárs nem nyújtott be egyetlen igazolást sem</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>The host name did not match any of the valid hosts for this certificate</source>
+ <translation>A hoszt név nem egyezik egyetlen érvényes hoszttal sem erre az igazolásra</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Unknown error</source>
+ <translation>Ismeretlen hiba</translation>
+ </message>
+</context>
+<context>
+ <name>QStateMachine</name>
+ <message>
+ <location filename="../src/corelib/statemachine/qstatemachine.cpp" line="+1028"/>
+ <source>Missing initial state in compound state &apos;%1&apos;</source>
+ <translation>Hiányzó kezdeti állapot összetett helyzetben &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Missing default state in history state &apos;%1&apos;</source>
+ <translation>Hiányzó alapértelmezett állapot a történelmi állapotokban &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>No common ancestor for targets and source of transition from state &apos;%1&apos;</source>
+ <translation>Nincs közös őse az átmeneti céloknak és forrásnak a(z) &apos;%1&apos; helyzetből</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Unknown error</source>
+ <translation>Ismeretlen hiba</translation>
+ </message>
+</context>
+<context>
+ <name>QSystemSemaphore</name>
+ <message>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-46"/>
+ <source>%1: does not exist</source>
+ <translation>%1 : nem létezik</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
+ <source>%1: out of resources</source>
+ <translation>%1: kifogyott az erőforrásból</translation>
+ </message>
+ <message>
+ <location line="-13"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+4"/>
+ <source>%1: permission denied</source>
+ <translation>%1: Engedély megtagadva</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>%1: already exists</source>
+ <translation>%1: már létezik</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+3"/>
+ <source>%1: unknown error %2</source>
+ <translation>%1: ismeretlen hiba %2</translation>
+ </message>
+</context>
+<context>
+ <name>QTDSDriver</name>
+ <message>
+ <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+595"/>
+ <source>Unable to open connection</source>
+ <translation>Nem lehet megnyitni a kapcsolatot</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Unable to use database</source>
+ <translation>Nem lehet az adatbázist használni</translation>
+ </message>
+</context>
+<context>
+ <name>QTabBar</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="-326"/>
+ <source>Scroll Left</source>
+ <translation>Görgetés balra</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Scroll Right</source>
+ <translation>Görgetésre jobbra</translation>
+ </message>
+</context>
+<context>
+ <name>QTcpServer</name>
+ <message>
+ <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
+ <source>Operation on socket is not supported</source>
+ <translation>A socketen végzett művelet nem támogatott</translation>
+ </message>
+</context>
+<context>
+ <name>QTextControl</name>
+ <message>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+2024"/>
+ <source>&amp;Undo</source>
+ <translation>&amp;Visszavonás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&amp;Redo</source>
+ <translation>&amp;Megismétlés</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Cu&amp;t</source>
+ <translation>&amp;Kivágás</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>&amp;Copy</source>
+ <translation>&amp;Másolás</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Copy &amp;Link Location</source>
+ <translation>&amp;Link címének másolása</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>&amp;Paste</source>
+ <translation>&amp;Beillesztés</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Delete</source>
+ <translation>Törlés</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Select All</source>
+ <translation>Az összes kiválasztása</translation>
+ </message>
+</context>
+<context>
+ <name>QToolButton</name>
+ <message>
+ <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+310"/>
+ <location line="+6"/>
+ <source>Press</source>
+ <translation>Megnyomás</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <location line="+8"/>
+ <source>Open</source>
+ <translation>Megnyitás</translation>
+ </message>
+</context>
+<context>
+ <name>QUdpSocket</name>
+ <message>
+ <location filename="../src/network/socket/qudpsocket.cpp" line="+179"/>
+ <source>This platform does not support IPv6</source>
+ <translation>Ez a platform nem támogatja az IPv6-t</translation>
+ </message>
+</context>
+<context>
+ <name>QUndoGroup</name>
+ <message>
+ <location filename="../src/gui/util/qundogroup.cpp" line="+385"/>
+ <source>Undo</source>
+ <translation>Visszavonás</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Redo</source>
+ <translation>Megismétlés</translation>
+ </message>
+</context>
+<context>
+ <name>QUndoModel</name>
+ <message>
+ <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
+ <source>&lt;empty&gt;</source>
+ <translation>&lt;üres&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>QUndoStack</name>
+ <message>
+ <location filename="../src/gui/util/qundostack.cpp" line="+832"/>
+ <source>Undo</source>
+ <translation>Visszavonás</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Redo</source>
+ <translation>Megismétlés</translation>
+ </message>
+</context>
+<context>
+ <name>QUnicodeControlCharacterMenu</name>
+ <message>
+ <location filename="../src/gui/text/qtextcontrol.cpp" line="+899"/>
+ <source>LRM Left-to-right mark</source>
+ <translation>LRM balról jobbra jelölés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>RLM Right-to-left mark</source>
+ <translation>RLM jobbról balra jelölés</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>ZWJ Zero width joiner</source>
+ <translation>ZWJ Nulla szélességű asztalos</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>ZWNJ Zero width non-joiner</source>
+ <translation>ZWNJ Nulla szélességű nem asztalos</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>ZWSP Zero width space</source>
+ <translation>ZWSP Nulla szélességű hely</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>LRE Start of left-to-right embedding</source>
+ <translation>LRE Balról jobbra beágyazás kezdete</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>RLE Start of right-to-left embedding</source>
+ <translation>RLE Jobbról balra beágyazás kezdete</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>LRO Start of left-to-right override</source>
+ <translation>LRO Balról jobbra megsemmisítés kezdete</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>RLO Start of right-to-left override</source>
+ <translation>RLO Jobbról balra megsemmisítés kezdete</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>PDF Pop directional formatting</source>
+ <translation>PDF Kérirányú formázás benézése</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Insert Unicode control character</source>
+ <translation>Unicode vezérlő karakter beszúrása</translation>
+ </message>
+</context>
+<context>
+ <name>QWebFrame</name>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+712"/>
+ <source>Request cancelled</source>
+ <translation>Kérés visszavonva</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Request blocked</source>
+ <translation>Kérés blokkolva</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Cannot show URL</source>
+ <translation>Nem lehet megjeleníteni az URL-t</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Frame load interrupted by policy change</source>
+ <translation>Irányvonal megváltozása miatt a szerkezet töltése megszakítva</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Cannot show mimetype</source>
+ <translation>Nem lehet megjeleníteni mime típust</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>File does not exist</source>
+ <translation>A fájl nem létezik</translation>
+ </message>
+</context>
+<context>
+ <name>QWebPage</name>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+42"/>
+ <source>Submit</source>
+ <comment>default label for Submit buttons in forms on web pages</comment>
+ <translation>Feltöltés</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Submit</source>
+ <comment>Submit (input element) alt text for &lt;input&gt; elements with no alt, title, or value</comment>
+ <translation>Feltöltés</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Reset</source>
+ <comment>default label for Reset buttons in forms on web pages</comment>
+ <translation>Helyreállítás</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Choose File</source>
+ <comment>title for file button used in HTML forms</comment>
+ <translation>Fájl kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>No file selected</source>
+ <comment>text to display in file button used in HTML forms when no file is selected</comment>
+ <translation>Nincsen egyetlen fájl sem kiválasztva</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Open in New Window</source>
+ <comment>Open in New Window context menu item</comment>
+ <translation>Megnyitás új ablakban</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Save Link...</source>
+ <comment>Download Linked File context menu item</comment>
+ <translation>Link mentése...</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Copy Link</source>
+ <comment>Copy Link context menu item</comment>
+ <translation>Link másolása</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Open Image</source>
+ <comment>Open Image in New Window context menu item</comment>
+ <translation>Kép megnyitása</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Save Image</source>
+ <comment>Download Image context menu item</comment>
+ <translation>Kép elmentése</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Copy Image</source>
+ <comment>Copy Link context menu item</comment>
+ <translation>Kép másolása</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Open Frame</source>
+ <comment>Open Frame in New Window context menu item</comment>
+ <translation>Szerkezet megnyitása</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Copy</source>
+ <comment>Copy context menu item</comment>
+ <translation>Másolás</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Go Back</source>
+ <comment>Back context menu item</comment>
+ <translation>Menj vissza</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Go Forward</source>
+ <comment>Forward context menu item</comment>
+ <translation>Menj előre</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Stop</source>
+ <comment>Stop context menu item</comment>
+ <translation>Leállítás</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Reload</source>
+ <comment>Reload context menu item</comment>
+ <translation>Újratöltés</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Cut</source>
+ <comment>Cut context menu item</comment>
+ <translation>Kivágás</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Paste</source>
+ <comment>Paste context menu item</comment>
+ <translation>Beillesztés</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>No Guesses Found</source>
+ <comment>No Guesses Found context menu item</comment>
+ <translation>Nincs feltételezések találata</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Ignore</source>
+ <comment>Ignore Spelling context menu item</comment>
+ <translation>Mellőzés</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Add To Dictionary</source>
+ <comment>Learn Spelling context menu item</comment>
+ <translation>Hozzáadás a szótárhoz</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Search The Web</source>
+ <comment>Search The Web context menu item</comment>
+ <translation>Keresés a weben</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Look Up In Dictionary</source>
+ <comment>Look Up in Dictionary context menu item</comment>
+ <translation>Utánanézés szótárban</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Open Link</source>
+ <comment>Open Link context menu item</comment>
+ <translation>Link megnyitása</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Ignore</source>
+ <comment>Ignore Grammar context menu item</comment>
+ <translation>Mellőzés</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Spelling</source>
+ <comment>Spelling and Grammar context sub-menu item</comment>
+ <translation>Helyesírás</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Show Spelling and Grammar</source>
+ <comment>menu item title</comment>
+ <translation>Helyesírás és nyelvtan megjelenítése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Hide Spelling and Grammar</source>
+ <comment>menu item title</comment>
+ <translation>Helyesírás és nyelvtan elrejtése</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Check Spelling</source>
+ <comment>Check spelling context menu item</comment>
+ <translation>Helyesírás ellenőrzés</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Check Spelling While Typing</source>
+ <comment>Check spelling while typing context menu item</comment>
+ <translation>Helyesírás ellenőrzés gépelés közben</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Check Grammar With Spelling</source>
+ <comment>Check grammar with spelling context menu item</comment>
+ <translation>Nyelvtani ellenőrzés helyesírás ellenőrzéssel</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Fonts</source>
+ <comment>Font context sub-menu item</comment>
+ <translation>Betű</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Bold</source>
+ <comment>Bold context menu item</comment>
+ <translation>Félkövér</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Italic</source>
+ <comment>Italic context menu item</comment>
+ <translation>Dőlt</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Underline</source>
+ <comment>Underline context menu item</comment>
+ <translation>Aláhúzás</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Outline</source>
+ <comment>Outline context menu item</comment>
+ <translation>Kontúrozás</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Direction</source>
+ <comment>Writing direction context sub-menu item</comment>
+ <translation>Irány összefüggések írás, menü elem</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Text Direction</source>
+ <comment>Text direction context sub-menu item</comment>
+ <translation>Szöveg irány</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Default</source>
+ <comment>Default writing direction context menu item</comment>
+ <translation>Alapértelmezett</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Left to Right</source>
+ <comment>Left to Right context menu item</comment>
+ <translation>Balról jobbra</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Right to Left</source>
+ <comment>Right to Left context menu item</comment>
+ <translation>Jobbról balra</translation>
+ </message>
+ <message>
+ <location line="+105"/>
+ <source>Loading...</source>
+ <comment>Media controller status message when the media is loading</comment>
+ <translation>Betöltés...</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Live Broadcast</source>
+ <comment>Media controller status message when watching a live broadcast</comment>
+ <translation>Élő bejelentés</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Audio Element</source>
+ <comment>Media controller element</comment>
+ <translation>Audió elem</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Video Element</source>
+ <comment>Media controller element</comment>
+ <translation>Videó elem</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Mute Button</source>
+ <comment>Media controller element</comment>
+ <translation>Elnémítás gomb</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Unmute Button</source>
+ <comment>Media controller element</comment>
+ <translation>Elnémítás megszűntetése gomb</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Play Button</source>
+ <comment>Media controller element</comment>
+ <translation>Lejátszás gomb</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Pause Button</source>
+ <comment>Media controller element</comment>
+ <translation>Szünet gomb</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Slider</source>
+ <comment>Media controller element</comment>
+ <translation>Csúszka</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Slider Thumb</source>
+ <comment>Media controller element</comment>
+ <translation>Csuszka ujj</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Rewind Button</source>
+ <comment>Media controller element</comment>
+ <translation>Áttekercselés gomb</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Return to Real-time Button</source>
+ <comment>Media controller element</comment>
+ <translation>A valós idejűre visszatérés gomb</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Elapsed Time</source>
+ <comment>Media controller element</comment>
+ <translation>Eltelt idő</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Remaining Time</source>
+ <comment>Media controller element</comment>
+ <translation>Fennmaradó idő</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Status Display</source>
+ <comment>Media controller element</comment>
+ <translation>Státusz kijelzés</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Fullscreen Button</source>
+ <comment>Media controller element</comment>
+ <translation>Teljes képernyő gomb</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Seek Forward Button</source>
+ <comment>Media controller element</comment>
+ <translation>Keresés továbbítása gomb</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Seek Back Button</source>
+ <comment>Media controller element</comment>
+ <translation>Keresés visszafele gomb</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Audio element playback controls and status display</source>
+ <comment>Media controller element</comment>
+ <translation>Audió elem visszajátszás vezérlők és státusz kijelzés</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Video element playback controls and status display</source>
+ <comment>Media controller element</comment>
+ <translation>Videó elem visszajátszás vezérlők és státusz kijelzés</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Mute audio tracks</source>
+ <comment>Media controller element</comment>
+ <translation>Audió számok elnémítása</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Unmute audio tracks</source>
+ <comment>Media controller element</comment>
+ <translation>Audió számok elnémításának megszűntetése</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Begin playback</source>
+ <comment>Media controller element</comment>
+ <translation>Visszajátszás megkezdése</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Pause playback</source>
+ <comment>Media controller element</comment>
+ <translation>Visszajátszás szüneteltetése</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Movie time scrubber</source>
+ <comment>Media controller element</comment>
+ <translation>Film idő súroló</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Movie time scrubber thumb</source>
+ <comment>Media controller element</comment>
+ <translation>Film idő súrolókörte</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Rewind movie</source>
+ <comment>Media controller element</comment>
+ <translation>Film visszatekerése</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Return streaming movie to real-time</source>
+ <comment>Media controller element</comment>
+ <translation>Özönlő filmek visszaadása a valós idő számára</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Current movie time</source>
+ <comment>Media controller element</comment>
+ <translation>Az aktuális filmidő</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Remaining movie time</source>
+ <comment>Media controller element</comment>
+ <translation>Fennmaradó filmidő</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Current movie status</source>
+ <comment>Media controller element</comment>
+ <translation>Az aktuális film státusz</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Play movie in full-screen mode</source>
+ <comment>Media controller element</comment>
+ <translation>Film lejátszása teljes képernyős módban</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Seek quickly back</source>
+ <comment>Media controller element</comment>
+ <translation>Gyorsan visszafele keresés</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Seek quickly forward</source>
+ <comment>Media controller element</comment>
+ <translation>Gyorsan előre keresés</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Indefinite time</source>
+ <comment>Media time description</comment>
+ <translation>Bizonytalan idő</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>%1 days %2 hours %3 minutes %4 seconds</source>
+ <comment>Media time description</comment>
+ <translation>%1 nap %2 óra %3 perc %4 másodperc</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>%1 hours %2 minutes %3 seconds</source>
+ <comment>Media time description</comment>
+ <translation>%1 óra %2 perc %3 másodperc</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>%1 minutes %2 seconds</source>
+ <comment>Media time description</comment>
+ <translation>%1 perc %2 másodperc</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 seconds</source>
+ <comment>Media time description</comment>
+ <translation>%1 másodperc</translation>
+ </message>
+ <message>
+ <location line="-210"/>
+ <source>Inspect</source>
+ <comment>Inspect Element context menu item</comment>
+ <translation>Megtekintés</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>No recent searches</source>
+ <comment>Label for only item in menu that appears when clicking on the search field image, when no searches have been performed</comment>
+ <translation>Nincsenek utóbbi keresések</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Recent searches</source>
+ <comment>label for first item in the menu that appears when clicking on the search field image, used as embedded menu title</comment>
+ <translation>Utóbbi keresések</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Clear recent searches</source>
+ <comment>menu item in Recent Searches menu that empties menu&apos;s contents</comment>
+ <translation>Utóbbi keresések kiürítése</translation>
+ </message>
+ <message>
+ <location line="+75"/>
+ <source>Unknown</source>
+ <comment>Unknown filesize FTP directory listing item</comment>
+ <translation>Ismeretlen</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+167"/>
+ <source>Web Inspector - %2</source>
+ <translation>Web felügyelő - %2</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+5"/>
+ <source>%1 (%2x%3 pixels)</source>
+ <comment>Title string for images</comment>
+ <translation>%1 (%2x%3 pixelek)</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+412"/>
+ <source>Bad HTTP request</source>
+ <translation>Érvénytelen HTTP kérés</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="-291"/>
+ <source>This is a searchable index. Enter search keywords: </source>
+ <comment>text that appears at the start of nearly-obsolete web pages in the form of a &apos;searchable index&apos;</comment>
+ <translation>Ez egy kereshető index. Gépelje be a kívánt kulcsszavakat:</translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+58"/>
+ <source>Scroll here</source>
+ <translation>Görgetés ide</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Left edge</source>
+ <translation>Bal szegély</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Top</source>
+ <translation>Felül</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Right edge</source>
+ <translation>Jobb szegély</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Bottom</source>
+ <translation>Alul</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Page left</source>
+ <translation>Lapozás balra</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Page up</source>
+ <translation>Lapozás fel</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Page right</source>
+ <translation>Lapozás jobbra</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Page down</source>
+ <translation>Lapozás balra</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Scroll left</source>
+ <translation>Görgetés balra</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Scroll up</source>
+ <translation>Görgetés fel</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Scroll right</source>
+ <translation>Görgetés jobbra</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Scroll down</source>
+ <translation>Görgetés lefele</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/3rdparty/webkit/WebCore/platform/qt/FileChooserQt.cpp" line="+45"/>
+ <source>%n file(s)</source>
+ <comment>number of chosen file</comment>
+ <translation>
+ <numerusform>%n fájl</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1822"/>
+ <source>JavaScript Alert - %1</source>
+ <translation>JavaSzkript figyelmeztetés - %1</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>JavaScript Confirm - %1</source>
+ <translation>JavaSzkript megerősítés - %1</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>JavaScript Prompt - %1</source>
+ <translation>JavaSzkript prompt - %1</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>JavaScript Problem - %1</source>
+ <translation>JavaSzkript probléma - %1</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>The script on this page appears to have a problem. Do you want to stop the script?</source>
+ <translation>Az ezen a lapon található szkriptnek úgy tűnik, hogy van egy problémája. Le szeretné állítani a szkriptet?</translation>
+ </message>
+ <message>
+ <location line="+381"/>
+ <source>Move the cursor to the next character</source>
+ <translation>Az egér mozgatása a következő karakterre</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Move the cursor to the previous character</source>
+ <translation>Az egér mozgatása az előző karakterre</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Move the cursor to the next word</source>
+ <translation>Az egér mozgatása a következő szóra</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Move the cursor to the previous word</source>
+ <translation>Az egér mozgatása az előző szóra</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Move the cursor to the next line</source>
+ <translation>Az egér mozgatása a következő sorra</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Move the cursor to the previous line</source>
+ <translation>Az egér mozgatása az előző sorra</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Move the cursor to the start of the line</source>
+ <translation>Az egér mozgatása a sor elejére</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Move the cursor to the end of the line</source>
+ <translation>Az egér mozgatása a sor végére</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Move the cursor to the start of the block</source>
+ <translation>Az egér mozgatása a blokk elejére</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Move the cursor to the end of the block</source>
+ <translation>Az egér mozgatása a blokk végére</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Move the cursor to the start of the document</source>
+ <translation>Az egér mozgatása a dokumentum elejére</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Move the cursor to the end of the document</source>
+ <translation>Az egér mozgatása a dokumentum végére</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Select all</source>
+ <translation>Az összes kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Select to the next character</source>
+ <translation>A következő karakter kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Select to the previous character</source>
+ <translation>Az előző karakter kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Select to the next word</source>
+ <translation>A következő szó kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Select to the previous word</source>
+ <translation>Az előző szó kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Select to the next line</source>
+ <translation>A következő sor kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Select to the previous line</source>
+ <translation>Az előző sor kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Select to the start of the line</source>
+ <translation>A sor elejének kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Select to the end of the line</source>
+ <translation>A sor végének kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Select to the start of the block</source>
+ <translation>A blokk elejének kiválsztása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Select to the end of the block</source>
+ <translation>A blokk végének kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Select to the start of the document</source>
+ <translation>A dokumentum elejének kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Select to the end of the document</source>
+ <translation>A dokumentum végének kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Delete to the start of the word</source>
+ <translation>A szó elejének törlése</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Delete to the end of the word</source>
+ <translation>A szó végének törlése</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>Insert a new paragraph</source>
+ <translation>Egy új bekezdés beszúrása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Insert a new line</source>
+ <translation>Egy új sor beszúrása</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Paste and Match Style</source>
+ <translation>Stílus beillesztése és összepasszintása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Remove formatting</source>
+ <translation>Formázás eltávolítása</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Strikethrough</source>
+ <translation>Áthúzás</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Subscript</source>
+ <translation>Alsó index</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Superscript</source>
+ <translation>Felső index</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Insert Bulleted List</source>
+ <translation>Hivatalos közlemény lista beszúrása</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Insert Numbered List</source>
+ <translation>Számozott lista beszúrása</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Indent</source>
+ <translation>Behúzás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Outdent</source>
+ <translation>Behúzás kifelé</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Center</source>
+ <translation>Közép</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Justify</source>
+ <translation>Igazolás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Align Left</source>
+ <translation>Balra állít</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Align Right</source>
+ <translation>Jobbra állít</translation>
+ </message>
+</context>
+<context>
+ <name>QWhatsThisAction</name>
+ <message>
+ <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+527"/>
+ <source>What&apos;s This?</source>
+ <translation>Mi ez?</translation>
+ </message>
+</context>
+<context>
+ <name>QWidget</name>
+ <message>
+ <location filename="../src/gui/kernel/qwidget.cpp" line="+5720"/>
+ <source>*</source>
+ <translation>*</translation>
+ </message>
+</context>
+<context>
+ <name>QWizard</name>
+ <message>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+661"/>
+ <source>Cancel</source>
+ <translation>Mégse</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Help</source>
+ <translation>Súgó</translation>
+ </message>
+ <message>
+ <location line="-14"/>
+ <source>&lt; &amp;Back</source>
+ <translation>&lt; &amp;Vissza</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>&amp;Finish</source>
+ <translation>&amp;Befejezés</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Súgó</translation>
+ </message>
+ <message>
+ <location line="-14"/>
+ <source>Go Back</source>
+ <translation>Vissza ugrás</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Continue</source>
+ <translation>Folytatás</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Commit</source>
+ <translation>Kommit</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Done</source>
+ <translation>Kész</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <source>&amp;Next</source>
+ <translation>&amp;Következő</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>&amp;Next &gt;</source>
+ <translation>&amp;Következő &gt;</translation>
+ </message>
+</context>
+<context>
+ <name>QWorkspace</name>
+ <message>
+ <location filename="../src/gui/widgets/qworkspace.cpp" line="+1089"/>
+ <source>&amp;Restore</source>
+ <translation>&amp;Visszaállítás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Move</source>
+ <translation>&amp;Mozgatás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Size</source>
+ <translation>&amp;Méret</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Mi&amp;nimize</source>
+ <translation>&amp;Minimalizálás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Ma&amp;ximize</source>
+ <translation>Ma&amp;ximalizálás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Bezárás</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Stay on &amp;Top</source>
+ <translation>&amp;Tetején maradni</translation>
+ </message>
+ <message>
+ <location line="-988"/>
+ <source>Minimize</source>
+ <translation>Minimalizálás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Restore Down</source>
+ <translation>Letárolás</translation>
+ </message>
+ <message>
+ <location line="-4"/>
+ <source>Close</source>
+ <translation>Bezárás</translation>
+ </message>
+ <message>
+ <location line="+993"/>
+ <location line="+1059"/>
+ <source>Sh&amp;ade</source>
+ <translation>Árnya&amp;lat</translation>
+ </message>
+ <message>
+ <location line="-278"/>
+ <location line="+60"/>
+ <source>%1 - [%2]</source>
+ <translation>%1 - [%2]</translation>
+ </message>
+ <message>
+ <location line="+214"/>
+ <source>&amp;Unshade</source>
+ <translation>&amp;Leeresztés</translation>
+ </message>
+</context>
+<context>
+ <name>QXml</name>
+ <message>
+ <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
+ <source>no error occurred</source>
+ <translation>nem történt hiba</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>error triggered by consumer</source>
+ <translation>Ügyfél által előidézett hiba</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>unexpected end of file</source>
+ <translation>Váratlan fájlvég</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>more than one document type definition</source>
+ <translation>Több mint egy dokumentum típus definíció</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>error occurred while parsing element</source>
+ <translation>Hiba történt az elem elemzése közben</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>tag mismatch</source>
+ <translation>Nem egyező címke</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>error occurred while parsing content</source>
+ <translation>Hiba történt a tartalom elemzése közben</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>unexpected character</source>
+ <translation>váratlan karakter</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>invalid name for processing instruction</source>
+ <translation>érvénytelen név az utasítás feldolgozására</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>version expected while reading the XML declaration</source>
+ <translation>várt verzió az XML deklaráció olvasása közben</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>wrong value for standalone declaration</source>
+ <translation>Hibás egyedülálló deklaráció érték</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>error occurred while parsing document type definition</source>
+ <translation>Hiba történt a dokumentum típus definíció elemzése közben</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>letter is expected</source>
+ <translation>betű várt</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>error occurred while parsing comment</source>
+ <translation>hiba történt az elemző megjegyzés előfordulása közben</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>error occurred while parsing reference</source>
+ <translation>Hiba történt az elemző hivatkozás előfordulása közben</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>internal general entity reference not allowed in DTD</source>
+ <translation>A DTD-ben nem engedélyezett a belső általános valós hivatkozás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>external parsed general entity reference not allowed in attribute value</source>
+ <translation>Az attribútum értékben nem engedélyezett a külsőleg elemzett általános valós hivatkozás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>external parsed general entity reference not allowed in DTD</source>
+ <translation>A DTD-ben nem engedélyezett a külsőleg elemzett általános valós hivatkozás</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>unparsed entity reference in wrong context</source>
+ <translation>Hivatkozás egy nem értelmezett entitásra hibás összefüggésben</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>recursive entities</source>
+ <translation>Rekurzív entitások</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>error in the text declaration of an external entity</source>
+ <translation>Hiba egy külső entitás szöveg deklarációjában</translation>
+ </message>
+ <message>
+ <location line="-11"/>
+ <source>encoding declaration or standalone declaration expected while reading the XML declaration</source>
+ <translation>Kódolása deklaráció vagy egyedülálló deklaráció várt az XML deklaráció olvasása közben</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>standalone declaration expected while reading the XML declaration</source>
+ <translation>Egyedülálló deklaráció várt az XML deklaráció olvasása közben</translation>
+ </message>
+</context>
+<context>
+ <name>QXmlPatternistCLI</name>
+ <message>
+ <location filename="../src/xmlpatterns/api/qcoloringmessagehandler.cpp" line="+87"/>
+ <source>Warning in %1, at line %2, column %3: %4</source>
+ <translation>Figyelmeztetés %1-ben, %2 sorban, %3 oszlopban: %4</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Warning in %1: %2</source>
+ <translation>Figyelmeztetés %1-ben: %2</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Unknown location</source>
+ <translation>Ismeretlen elhelyezkedés</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Error %1 in %2, at line %3, column %4: %5</source>
+ <translation>%1 hiba %2-ben, %3 sorban, %4 oszlopban: %5</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Error %1 in %2: %3</source>
+ <translation>%1 hiba %2-ben: %3</translation>
+ </message>
+</context>
+<context>
+ <name>QXmlStream</name>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="+611"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1770"/>
+ <source>Extra content at end of document.</source>
+ <translation>Extra tartalom a dokumentum végén.</translation>
+ </message>
+ <message>
+ <location line="+271"/>
+ <source>Invalid entity value.</source>
+ <translation>Érvénytelen entitás érték.</translation>
+ </message>
+ <message>
+ <location line="+109"/>
+ <source>Invalid XML character.</source>
+ <translation>Érvénytelen XML karakter.</translation>
+ </message>
+ <message>
+ <location line="+259"/>
+ <source>Sequence &apos;]]&gt;&apos; not allowed in content.</source>
+ <translation>&apos;]]&gt;&apos; sor nem engedélyezett a tartalomban.</translation>
+ </message>
+ <message>
+ <location line="+309"/>
+ <source>Namespace prefix &apos;%1&apos; not declared</source>
+ <translation>&apos;%1&apos; névtér előtag nincsen deklarálva</translation>
+ </message>
+ <message>
+ <location line="+78"/>
+ <source>Attribute redefined.</source>
+ <translation>Attribútum újradefiniálva.</translation>
+ </message>
+ <message>
+ <location line="+115"/>
+ <source>Unexpected character &apos;%1&apos; in public id literal.</source>
+ <translation>Váratlan karakter &apos;%1&apos; a publikus azonosító literál.</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Invalid XML version string.</source>
+ <translation>Érvénytelen XML verzió sztring.</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Unsupported XML version.</source>
+ <translation>Nem támogatott XML verzió.</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>%1 is an invalid encoding name.</source>
+ <translation>%1 egy érvénytelen kódolási név.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Encoding %1 is unsupported</source>
+ <translation>%1 kódolás nem támogatva</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Standalone accepts only yes or no.</source>
+ <translation>Egyedülálló elfogadás kizárólas igen vagy nem.</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Invalid attribute in XML declaration.</source>
+ <translation>Érvénytelen attribútum az XML deklarációban.</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Premature end of document.</source>
+ <translation>Túl korai dokumentum vég.</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Invalid document.</source>
+ <translation>Érvénytelen dokumentum.</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>Expected </source>
+ <translation>Várt</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>, but got &apos;</source>
+ <translation>, pedig megkapta &apos;</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Unexpected &apos;</source>
+ <translation>Váratlan &apos;</translation>
+ </message>
+ <message>
+ <location line="+225"/>
+ <source>Expected character data.</source>
+ <translation>Várt karakter adat.</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="-995"/>
+ <source>Recursive entity detected.</source>
+ <translation>Rekurzív entitás észlelve.</translation>
+ </message>
+ <message>
+ <location line="+516"/>
+ <source>Start tag expected.</source>
+ <translation>Kezdő címke várva.</translation>
+ </message>
+ <message>
+ <location line="+222"/>
+ <source>XML declaration not at start of document.</source>
+ <translation>XML deklaráció nem a dokumentum elején található.</translation>
+ </message>
+ <message>
+ <location line="-31"/>
+ <source>NDATA in parameter entity declaration.</source>
+ <translation>NDATA a paraméter entitás deklarációban.</translation>
+ </message>
+ <message>
+ <location line="+34"/>
+ <source>%1 is an invalid processing instruction name.</source>
+ <translation>%1 egy érvénytelen feldolgozó utasítás neve.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Invalid processing instruction name.</source>
+ <translation>Érvénytelen feldolgozó utasítás név.</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="-536"/>
+ <location line="+12"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+164"/>
+ <location line="+53"/>
+ <source>Illegal namespace declaration.</source>
+ <translation>Illegális névtér deklarációk.</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+15"/>
+ <source>Invalid XML name.</source>
+ <translation>Érvénytelen XML név.</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Opening and ending tag mismatch.</source>
+ <translation>Nyitó és záró címkék nem egyeznek.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Reference to unparsed entity &apos;%1&apos;.</source>
+ <translation>Hivatkozás egy nem értelmezett entitásra &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location line="-13"/>
+ <location line="+61"/>
+ <location line="+40"/>
+ <source>Entity &apos;%1&apos; not declared.</source>
+ <translation>&apos;%1&apos; entitás nincsen deklarálva.</translation>
+ </message>
+ <message>
+ <location line="-26"/>
+ <source>Reference to external entity &apos;%1&apos; in attribute value.</source>
+ <translation>Hivatkozás egy külső entitásra &apos;%1&apos; az attribútum értékben.</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>Invalid character reference.</source>
+ <translation>Érvénytelen karakter hivatkozás.</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream.cpp" line="-75"/>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="-823"/>
+ <source>Encountered incorrectly encoded content.</source>
+ <translation>Helytelen kódolási tartalommal találta szembe magát.</translation>
+ </message>
+ <message>
+ <location line="+274"/>
+ <source>The standalone pseudo attribute must appear after the encoding.</source>
+ <translation>Az egyedülálló ál attribútumnak a kódolás után kell feltűnnie.</translation>
+ </message>
+ <message>
+ <location filename="../src/corelib/xml/qxmlstream_p.h" line="+562"/>
+ <source>%1 is an invalid PUBLIC identifier.</source>
+ <translation>%1 egy érvénytelen PUBLIC-us azonosító.</translation>
+ </message>
+</context>
+<context>
+ <name>QtXmlPatterns</name>
+ <message>
+ <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/>
+ <location line="+15"/>
+ <source>At least one component must be present.</source>
+ <translation>Legalább egy komponenset be kell nyújtani.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/>
+ <source>%1 is not a valid value of type %2.</source>
+ <translation>%1 nem egy érvény értéke a(z) %2 típusnak.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+223"/>
+ <source>When casting to %1 from %2, the source value cannot be %3.</source>
+ <translation>A(z) %1-ről %2-re történő kasztoláskor, a forrás érték nem lehet %3.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/>
+ <source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source>
+ <translation>Hatékony logikai értéket nem lehet egy sor számára kiszámítani, amely kettő vagy több atomikus értéket tartalmaz.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/>
+ <source>The data of a processing instruction cannot contain the string %1</source>
+ <translation>Egy feldolgozó utasítás adata nem tartalmazhat %1 sztringet</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+168"/>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
+ <source>%1 is an invalid %2</source>
+ <translation>%1 egy érvénytelen %2</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/>
+ <source>%1 is not a valid XML 1.0 character.</source>
+ <translation>%1 egy érvénytelen 1.0 XML karakter.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
+ <source>%1 was called.</source>
+ <translation>%1 lett meghívva.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+133"/>
+ <source>In the replacement string, %1 must be followed by at least one digit when not escaped.</source>
+ <translation>A kicserélési sztrinben, %1 -t legalább egy számnak kell követnie nem meneküléskor.</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>In the replacement string, %1 can only be used to escape itself or %2, not %3</source>
+ <translation>A kicserelési sztringben, %1-t csak magának a(z) %2 vagy %3 menekülésére lehet használni</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
+ <source>%1 matches newline characters</source>
+ <translation>%1 megegyező újsor karakterek</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Matches are case insensitive</source>
+ <translation>Az egyezés kis és nagybetűre nem érzékeny</translation>
+ </message>
+ <message>
+ <location line="+104"/>
+ <source>%1 is an invalid regular expression pattern: %2</source>
+ <translation>%1 egy érvénytelen reguláris kifejezés minta: %2</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+346"/>
+ <source>It will not be possible to retrieve %1.</source>
+ <translation>Nem lesz lehetséges kinyerni %1.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+266"/>
+ <source>The default collection is undefined</source>
+ <translation>Az alapértelmezett gyűjtemény nincs definiálva</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>%1 cannot be retrieved</source>
+ <translation>%1 nem lehet megszerezni</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/>
+ <source>The item %1 did not match the required type %2.</source>
+ <translation>A(z) %1 elem nem egyezik a szükséges típussal %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+352"/>
+ <location line="+7323"/>
+ <source>%1 is an unknown schema type.</source>
+ <translation>%1 egy ismeretlen terv típus.</translation>
+ </message>
+ <message>
+ <location line="-7254"/>
+ <source>A template with name %1 has already been declared.</source>
+ <translation>Egy %1 nevű sablon már deklarálva van.</translation>
+ </message>
+ <message>
+ <location line="+213"/>
+ <source>Only one %1 declaration can occur in the query prolog.</source>
+ <translation>Kizárólag egy %1 deklaráció fordulhat elő a kérdéses előszóban.</translation>
+ </message>
+ <message>
+ <location line="+188"/>
+ <source>The initialization of variable %1 depends on itself</source>
+ <translation>A(z) %1 változó inicializálása önmagától függ</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
+ <source>The variable %1 is unused</source>
+ <translation>A(z) %1 változó nincsen használva</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+2904"/>
+ <source>Version %1 is not supported. The supported XQuery version is 1.0.</source>
+ <translation>%1-es verzió nem támogatott. A támogatott XQuery verzió az 1.0.</translation>
+ </message>
+ <message>
+ <location line="+71"/>
+ <source>No function with signature %1 is available</source>
+ <translation>Nincs %1 aláírással rendelkező függvény</translation>
+ </message>
+ <message>
+ <location line="+303"/>
+ <source>It is not possible to redeclare prefix %1.</source>
+ <translation>Nem lehetséges a(z) %1 előtag újradeklarálása.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Prefix %1 is already declared in the prolog.</source>
+ <translation>%1 előtag már deklarálva van az előszóban.</translation>
+ </message>
+ <message>
+ <location line="+95"/>
+ <source>The name of an option must have a prefix. There is no default namespace for options.</source>
+ <translation>Az opció nevének tartalmaznia kell egy előtagot. Nincs alapértelmezett névtér ezekre az opciókra.</translation>
+ </message>
+ <message>
+ <location line="+171"/>
+ <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source>
+ <translation>A terv importálása tulajdonság nem támogatott, és ennek következtében a(z) %1 deklarációk nem fordulhatnak elő.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>The target namespace of a %1 cannot be empty.</source>
+ <translation>Egy %1 cél névtere nem lehet üres.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>The module import feature is not supported</source>
+ <translation>A modul importáló tulajdonság nem támogatott</translation>
+ </message>
+ <message>
+ <location line="+178"/>
+ <source>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</source>
+ <translation>Egy felhasználó által definiált függvény névterének egy könyvtár modulban megfelelőnek kell lenni a modul névtérrel. Más szóval, %1-nek kellene lennie %2 helyett</translation>
+ </message>
+ <message>
+ <location line="+34"/>
+ <source>A function already exists with the signature %1.</source>
+ <translation>Egy függvény már létezik ezzel az aláírással %1.</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>No external functions are supported. All supported functions can be used directly, without first declaring them as external</source>
+ <translation>Kulső függvények nincsenek támogatva. Az összes támogatott függvényt lehet közvetlenül haszálni, az első külső deklarálásuk nélkül</translation>
+ </message>
+ <message>
+ <location line="+1709"/>
+ <source>The %1-axis is unsupported in XQuery</source>
+ <translation>A(z) %1 tengely nem támogatott az XQuery-ben</translation>
+ </message>
+ <message>
+ <location line="+435"/>
+ <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source>
+ <translation>Az URI névtér nem lehet üres sztring egy előtaghoz való összeköttetéskor, %1.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>%1 is an invalid namespace URI.</source>
+ <translation>%1 egy érvénytelen URI névtér.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>It is not possible to bind to the prefix %1</source>
+ <translation>Nem lehetséges a(z) %1 előtaggal összekötni</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Two namespace declaration attributes have the same name: %1.</source>
+ <translation>Két névtér deklaráció attribútumnak ugyanaz a neve: %1.</translation>
+ </message>
+ <message>
+ <location line="+89"/>
+ <source>The namespace URI must be a constant and cannot use enclosed expressions.</source>
+ <translation>Az URI névtérnek állandónak kell lennie és nem használhat elhatárolt kifejezéseket.</translation>
+ </message>
+ <message>
+ <location line="+699"/>
+ <location line="+71"/>
+ <source>%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported.</source>
+ <translation>%1 nem a hatókör attribútum deklarációin belül található. Vegye figyelembe, hogy a terv importáló tulajdonság nem támogatott.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
+ <source>empty</source>
+ <translation>üres</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>zero or one</source>
+ <translation>nulla vagy egy</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>exactly one</source>
+ <translation>pontosan egy</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>one or more</source>
+ <translation>egy vagy több</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>zero or more</source>
+ <translation>nulla vagy több</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+156"/>
+ <source>The focus is undefined.</source>
+ <translation>A fókusz nincs definiálva.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+93"/>
+ <source>An attribute by name %1 has already been created.</source>
+ <translation>Egy %1 nevű attribútum már létre lett hozva.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
+ <source>Network timeout.</source>
+ <translation>Hálózati időtúllépés.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+320"/>
+ <source>Element %1 can&apos;t be serialized because it appears outside the document element.</source>
+ <translation>%1 elemet nem lehet besorolni, mert úgy tűnik a dokumentum elem külső oldalán található.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/>
+ <source>Year %1 is invalid because it begins with %2.</source>
+ <translation>%1 év érvénytelen, mert %2-vel kezdődik.</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Day %1 is outside the range %2..%3.</source>
+ <translation>%1 nap a tartomány külsp oldalán van %2..%3.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Month %1 is outside the range %2..%3.</source>
+ <translation>%1 hónap a tartomány külső felületén van %2..%3.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Overflow: Can&apos;t represent date %1.</source>
+ <translation>Túlcsordulás: Nem lehet feltünteti a(z) %1 dátumot.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Day %1 is invalid for month %2.</source>
+ <translation>%1 nap érvénytelen a(z) %2 hónapra vonatkozólag.</translation>
+ </message>
+ <message>
+ <location line="+49"/>
+ <source>Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; </source>
+ <translation>Idő 24:%1:%2:%3 érvénytelen. Az óra 24, de a perc, másodperc, és milliszekundum egyáltalán nem 0; </translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Time %1:%2:%3.%4 is invalid.</source>
+ <translation>Idő %1:%2:%3.%4 érvénytelen.</translation>
+ </message>
+ <message>
+ <location line="+115"/>
+ <source>Overflow: Date can&apos;t be represented.</source>
+ <translation>Túlcsordulás: A dátumot nem lehet feltüntetni.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="-7"/>
+ <source>At least one time component must appear after the %1-delimiter.</source>
+ <translation>Legalább egy idő komponensnek lennie kell a(z) %1 határolójel után.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+201"/>
+ <location line="+32"/>
+ <source>Dividing a value of type %1 by %2 (not-a-number) is not allowed.</source>
+ <translation>%1 típus értékének osztása egy %2(nem szám)-mal nem engedélyezett.</translation>
+ </message>
+ <message>
+ <location line="-20"/>
+ <source>Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed.</source>
+ <translation>%1 típus értékének osztása egy %2 vagy %3(plusz vagy minusz nulla)-mal nem engedélyezett.</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <source>Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed.</source>
+ <translation>%1 típusú érték %2 vagy %3-mal való szorzása(plusz vagy minusz végtelen) nem engedélyezett.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/>
+ <source>A value of type %1 cannot have an Effective Boolean Value.</source>
+ <translation>%1 típusú értéknek nincsen hatékony logikai értéke.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
+ <source>Value %1 of type %2 exceeds maximum (%3).</source>
+ <translation>%2 típus %1 értéke elérte a maxiumot (%3).</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Value %1 of type %2 is below minimum (%3).</source>
+ <translation>%1 típus %2 értéke a minimum alatt van (%3).</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/>
+ <source>A value of type %1 must contain an even number of digits. The value %2 does not.</source>
+ <translation>%1 típus értékének tartalmaznia kell egy páratlan számú számot. A(z) %2 érték nem.</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>%1 is not valid as a value of type %2.</source>
+ <translation>%1 érvénytelen %2 típusú értékként.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
+ <source>Operator %1 cannot be used on type %2.</source>
+ <translation>%1 műveletet nem lehet a(z) %2 típuson használni.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Operator %1 cannot be used on atomic values of type %2 and %3.</source>
+ <translation>%1 műveletet nem lehet a %2 és %3-as típusú atomikus értéken használni.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+66"/>
+ <source>The namespace URI in the name for a computed attribute cannot be %1.</source>
+ <translation>Az URI névtér a névben számított attribútumra nem lehet %1.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>The name for a computed attribute cannot have the namespace URI %1 with the local name %2.</source>
+ <translation>Egy kiszámított attribútumnak nem lehet %1 URI névtere %2 helyi névvel.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
+ <source>Type error in cast, expected %1, received %2.</source>
+ <translation>Típus hiba a kasztolásban, %1 várt, %2 kapott.</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>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.</source>
+ <translation>%1-re kasztoláskor vagy típus származtatáskor, a forrás értéknek ugyanolyan típusúnak kell lennie, vagy sztring literálnak kell lennie. %2 típus nem engedélyezett.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
+ <source>A comment cannot contain %1</source>
+ <translation>A megjegyzés nem tartalmazhat %1-t</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>A comment cannot end with a %1.</source>
+ <translation>A megjegyzés nem végződget %1-gyel.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+86"/>
+ <source>An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place.</source>
+ <translation>Az attribútum csomópont egy dokumentum csomópont gyermeke. Ennek következtében a(z) %1 attribútum nem helyénvaló.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+162"/>
+ <source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
+ <translation>A köbyvtár modult nem lehet közvetlenül kiértékelni. A fő modulból kell importálni.</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>No template by name %1 exists.</source>
+ <translation>%1 nevű sablon nem létezik.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+106"/>
+ <source>A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type.</source>
+ <translation>A(z) %1 típus értéke egy állítmány. Egy állítmánynak tartalmaznia kell vagy egy szám típust vagy egy effektív logikai érték típust.</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <source>A positional predicate must evaluate to a single numeric value.</source>
+ <translation>A helyzet állítmányt egy egyetlen szám értékként kell kiértékelni.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+113"/>
+ <source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid.</source>
+ <translation>A cél neve egy utasítás feldolgozásban nem lehet %1 kis és nagybetűk bármely kombinációjában. Ennek következtében a(z) %2 érvénytelen.</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3.</source>
+ <translation>%1 nem egy érvényes cél név az utasítás feldolgozásban. %2 vagy %3 értéknek kell lennie.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+109"/>
+ <source>The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two.</source>
+ <translation>Az utolsó lépésnek vagy csomópontokat vagy atomikus értékeket kell tartalmaznia. Ez nem lehet a kettő közötti keverék.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+82"/>
+ <source>No namespace binding exists for the prefix %1</source>
+ <translation>Nem létezik névtér összeköttetés a(z) %1 előtagra</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="-12"/>
+ <source>No namespace binding exists for the prefix %1 in %2</source>
+ <translation>Nem létezik névtér összeköttetés a(z) %1 előtagra %2-ben</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+120"/>
+ <source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source>
+ <translation>Az első argumentum %1 nem lehet %2 típusú. Egy számos típusnak kelle lennie, xs:évHónapIdőtartam vagy xs:napIdőTartam.</translation>
+ </message>
+ <message>
+ <location line="+74"/>
+ <source>The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source>
+ <translation>Az első argumentum %1 nem lehet %2 típusú. %3, %4 vagy %5 típusúnak kell lennie.</translation>
+ </message>
+ <message>
+ <location line="+91"/>
+ <source>The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source>
+ <translation>Az második argumentum %1 nem lehet %2 típusú. %3, %4 vagy %5 típusúnak kell lennie.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+86"/>
+ <source>If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same.</source>
+ <translation>Ha mindkét értéknek zóna eltolása van, ugyanazt a zóna eltolást kell tartalmazniuk. %1 és %2 nem ugyanaz.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="-65"/>
+ <source>%1 must be followed by %2 or %3, not at the end of the replacement string.</source>
+ <translation>%1-t %2 vagy %3-nak kell követnie, nem a kicserélési sztring végén.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="-110"/>
+ <source>%1 and %2 match the start and end of a line.</source>
+ <translation>%1 és %2 egyezik a sor elején és végén.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Whitespace characters are removed, except when they appear in character classes</source>
+ <translation>Nem látható karakterek eltávolítva, kivéve mikor karakter osztályokban tűnnek fel</translation>
+ </message>
+ <message>
+ <location line="+130"/>
+ <source>%1 is an invalid flag for regular expressions. Valid flags are:</source>
+ <translation>%1 egy érvénytelen jelző reguláris kifejezésekre. Érvényes flagek:</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+17"/>
+ <source>If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified.</source>
+ <translation>Ha az első argumentum üres sorozat vagy nulla hosszúságú sztring (nincsen névtér), egy előtagot nem lehet meghatározni. %1 előtag volt meghatározva.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+252"/>
+ <source>The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization).</source>
+ <translation>A(z) %1 szabványosítási forma nem támogatott. A támogatott formák %2, %3, %4 és %5 és semmi más, lásd az üres sztringet (nincs szabványosítás).</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qtimezonefns.cpp" line="+87"/>
+ <source>A zone offset must be in the range %1..%2 inclusive. %3 is out of range.</source>
+ <translation>A zóna eltolásnak a(z) %1..%2 tartományban kell benne lennie. %3 az tartományon kívüli.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+58"/>
+ <source>Required cardinality is %1; got cardinality %2.</source>
+ <translation>Szükséges számosság %1, szerzett számosság %2.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-3944"/>
+ <source>The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2.</source>
+ <translation>A(z) %1 kódolás érvénytelen. Kizárólag latin karaktereket kell tartalmaznia, nem szabad látható karaktereket tartalmaznia, és a(z) %2 reguláris kifejezéssel kell megegyeznie.</translation>
+ </message>
+ <message>
+ <location line="+260"/>
+ <source>The keyword %1 cannot occur with any other mode name.</source>
+ <translation>A(z) %1 kulcscszó nem fordulhat elő semmilyen más mód névvel.</translation>
+ </message>
+ <message>
+ <location line="-3117"/>
+ <source>No variable with name %1 exists</source>
+ <translation>%1 nevű változó nem létezik</translation>
+ </message>
+ <message>
+ <location line="+3146"/>
+ <source>The value of attribute %1 must be of type %2, which %3 isn&apos;t.</source>
+ <translation>A(z) %1 attribútumnak %2 típusúnak kell lennie, amelyik nem %3-as.</translation>
+ </message>
+ <message>
+ <location line="+75"/>
+ <source>The prefix %1 cannot be bound. By default, it is already bound to the namespace %2.</source>
+ <translation>A(z) %1 előtagot nem lehet összekötni. Alapértelmezetten, már hozzá van kötve a %2 névtérhez.</translation>
+ </message>
+ <message>
+ <location line="+312"/>
+ <source>A variable with name %1 has already been declared.</source>
+ <translation>%1 nevű változó már deklarálva van.</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>No value is available for the external variable with name %1.</source>
+ <translation>%1 nevű külső változóhoz nem érhető el érték. </translation>
+ </message>
+ <message>
+ <location line="+96"/>
+ <source>A stylesheet function must have a prefixed name.</source>
+ <translation>A stíluslap függvénynek tartalmaznia kell egy előtag nevet.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases.</source>
+ <translation>A(z) %1 névtér foglalt, ennek következtében a felhasználó által definiált függvényt nem lehet használni. Próbálja ki az előredefiniált %2 előtagot, amely erre az esetekre van kitalálva.</translation>
+ </message>
+ <message>
+ <location line="+106"/>
+ <source>An argument with name %1 has already been declared. Every argument name must be unique.</source>
+ <translation>Egy %1 nevű argumentum már deklarálva van. Minden argumentum névnek egyedülállónak kell lennie.</translation>
+ </message>
+ <message>
+ <location line="+179"/>
+ <source>When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal.</source>
+ <translation>Mikor %1 függvény van használva egyeztetése egy mintán belül, az argumentumnak egy változó hivatkozásnak vagy egy sztring literálnak kell lennie.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching.</source>
+ <translation>Egy XSLT mintában, az első argumentumnak a(z) %1 függvényre egy sztring literálnak kell lennie, amikor egyeztetésre használják.</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching.</source>
+ <translation>Egy XSLT mintában, az első argumentumnak a(z) %1 függvény esetén egy literálnak vagy egy változó hibatkozásnak kell lennie, mikor egyeztetésre használják.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>In an XSL-T pattern, function %1 cannot have a third argument.</source>
+ <translation>Egy XSLT mintában, %1 függvénynek nem lehet egy harmadik argumentuma.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching.</source>
+ <translation>Egy XSLT mintában, kizárólag a(z) %1 és %2 függvényeket, és %3-at nem lehet egyeztetésre használni.</translation>
+ </message>
+ <message>
+ <location line="+63"/>
+ <source>In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can.</source>
+ <translation>Egy XSLT mintában, %1 tengelyt nem lehet használni, kizárólag a(z) %2 vagy %3 tengelyeket.</translation>
+ </message>
+ <message>
+ <location line="+126"/>
+ <source>%1 is an invalid template mode name.</source>
+ <translation>%1 egy érvénytelen sablon mód név.</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide.</source>
+ <translation>Egy változó összeköttetés nevének egy for kifejezésben különböznie kell a pozícionális változótol. Ezért, a két %1 nevű változó ütközik.</translation>
+ </message>
+ <message>
+ <location line="+778"/>
+ <source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source>
+ <translation>A terv jóváhagyási tulajdonság nem támogatott. Ezért, %1 kifejezést nem lehet használni.</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source>
+ <translation>A pragma kifejezések egyike sem támogatott. Ezért egy visszavonuló kifejezést kell nyújtani</translation>
+ </message>
+ <message>
+ <location line="+269"/>
+ <source>Each name of a template parameter must be unique; %1 is duplicated.</source>
+ <translation>Sablon paraméter mindegyik nevének egyedülállónak kell lennie, %1 az duplikáns.</translation>
+ </message>
+ <message>
+ <location line="+462"/>
+ <source>No function with name %1 is available.</source>
+ <translation>%1 nevű függvény nem elérhető.</translation>
+ </message>
+ <message>
+ <location line="-6235"/>
+ <source>%1 is not a valid numeric literal.</source>
+ <translation>%1 nem egy érvényes számos literál.</translation>
+ </message>
+ <message>
+ <location line="-152"/>
+ <source>W3C XML Schema identity constraint selector</source>
+ <translation>W3C XML terv azonosító megszorító kiválasztó</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>W3C XML Schema identity constraint field</source>
+ <translation>W3C XML Terv azonosító megszorító mező</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>A construct was encountered which is disallowed in the current language(%1).</source>
+ <translation>Egy olyan konstruktort talált amelyik nincsen engedélyezve az aktuális nyelvben(%1).</translation>
+ </message>
+ <message>
+ <location line="+6502"/>
+ <source>Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared).</source>
+ <translation>%1 névteret kizárólag a %2-vel lehet összekötni (és ennyi, vagy mindkét esetben, előre deklarált).</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared).</source>
+ <translation>%1 előtagot kizárólag a %2-vel lehet összekötni (és ennyi, vagy mindkét esetben, előre deklarált).</translation>
+ </message>
+ <message>
+ <location line="+120"/>
+ <source>An attribute with name %1 has already appeared on this element.</source>
+ <translation>%1 attribútum név már van ebben az elemben.</translation>
+ </message>
+ <message>
+ <location line="+61"/>
+ <source>A direct element constructor is not well-formed. %1 is ended with %2.</source>
+ <translation>Egy közvetlen elem konstruktor, mely nincsen jól megformázva. %1 a(z) %2-ben végzőik.</translation>
+ </message>
+ <message>
+ <location line="+458"/>
+ <source>The name %1 does not refer to any schema type.</source>
+ <translation>A(z) %1 név nem vonatkozik egyetlen terv típusra sem.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works.</source>
+ <translation>%1 egy összetett típus. Összetett típusra kasztolás nem lehetséges. De egy atomikus típusra mint egy %2 működik.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>%1 is not an atomic type. Casting is only possible to atomic types.</source>
+ <translation>%1 nem egy atomikus típus. Kaszolás kizárólag csak atomikus típusra lehetséges.</translation>
+ </message>
+ <message>
+ <location line="+76"/>
+ <source>%1 is not a valid name for a processing-instruction.</source>
+ <translation>%1 nem egy érvényes név egy utasítás feldolgozásra.</translation>
+ </message>
+ <message>
+ <location line="+188"/>
+ <source>The name of an extension expression must be in a namespace.</source>
+ <translation>Egy kifejezés kiterjesztés nevének egy névtérben kell lennie.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="-93"/>
+ <source>Required type is %1, but %2 was found.</source>
+ <translation>%1 a szükséges típus, de %2 található.</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Promoting %1 to %2 may cause loss of precision.</source>
+ <translation>%1 elősegítése %2-re precíziós vesztést okozhat.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="-7"/>
+ <source>It&apos;s not possible to add attributes after any other kind of node.</source>
+ <translation>Nem lehetséges attribútumokat hozzáadni, bármely másik csomópont után.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/>
+ <source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source>
+ <translation>Kizárólag a Unicode Kódpontos összevetés támogatott(%1). %2 nem támogatott.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="-180"/>
+ <source>Integer division (%1) by zero (%2) is undefined.</source>
+ <translation>Egész számos (%1) osztás nullával (%2) nem definiált.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Division (%1) by zero (%2) is undefined.</source>
+ <translation>Osztás (%1) nullával (%2) nem definiált.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Modulus division (%1) by zero (%2) is undefined.</source>
+ <translation>Tényezős osztás (%1) nullával (%2) nem definiált.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/>
+ <source>%1 takes at most %n argument(s). %2 is therefore invalid.</source>
+ <translation>
+ <numerusform>%1 legalább %n argumentumot vár. A(z) %2 ennel következtében érvénytelen.</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location line="+11"/>
+ <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source>
+ <translation>
+ <numerusform>%1 legalább %n argumentumot igényel. Ennek következtében a(z) %2 érvénytelen.</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+54"/>
+ <source>The root node of the second argument to function %1 must be a document node. %2 is not a document node.</source>
+ <translation>A második argumentum rendszergazda csomópontja %1 függvényre dokumentum csomópontnak kell lenni. %2 nem egy dokumentum csomópont.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-3172"/>
+ <source>The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)</source>
+ <translation>A névtér a felhasználó által definiált függvényre nem lehet üres (próbálja ki az előredefiniált %1 előtagot, mely innen esetekre lett kitalálva)</translation>
+ </message>
+ <message>
+ <location line="-693"/>
+ <location line="+10"/>
+ <source>A default namespace declaration must occur before function, variable, and option declarations.</source>
+ <translation>Egy alapértelmezett névtér deklarációnak a függvény, változó, és opció deklarációk előtt kell elhelyezkednie.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Namespace declarations must occur before function, variable, and option declarations.</source>
+ <translation>A névtér deklarációnak a függvény, változó, és opció deklarációk előtt kell elhelyezkednie.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Module imports must occur before function, variable, and option declarations.</source>
+ <translation>Modul importálásnak a függvény, változó, és opció deklarációk előtt kell elhelyezkednie.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qtimezonefns.cpp" line="+12"/>
+ <source>%1 is not a whole number of minutes.</source>
+ <translation>%1 nem egy egész számú perc érték.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+60"/>
+ <source>Attribute %1 can&apos;t be serialized because it appears at the top level.</source>
+ <translation>%1 attribtútumot nem lehet sorozatosítani, mert legfelső szinten tűnik fel.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+344"/>
+ <source>%1 is an unsupported encoding.</source>
+ <translation>%1 egy nem támogatott kódolás.</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>%1 contains octets which are disallowed in the requested encoding %2.</source>
+ <translation>%1 oktálisokat tartalmat, melyek tiltva vannak a lekérdezett %2 kódolásban.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character.</source>
+ <translation>A kódpont %1, mely a %2-ben fordul elő %3 kódolást használva, egy érvénytelen XML karakter.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
+ <source>Ambiguous rule match.</source>
+ <translation>Bizonytalan szabály egyezés.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+69"/>
+ <source>In a namespace constructor, the value for a namespace cannot be an empty string.</source>
+ <translation>Egy névtér konstruktorban, egy névtér értéke nem lehet egy üres sztring.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>The prefix must be a valid %1, which %2 is not.</source>
+ <translation>Az előtagnak egy érvényes %1-nek kell lennie, %2 nem lehet.</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>The prefix %1 cannot be bound.</source>
+ <translation>A(z) %1 előtagot nem lehet összekötni.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Only the prefix %1 can be bound to %2 and vice versa.</source>
+ <translation>Kizárólag a(z) %1 előtagot lehet összekötni a %2-vel és fordítva.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+145"/>
+ <source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
+ <translation>A(z) %1 paraméter követelik, de nincs megelelő %2 támogatás hozzá.</translation>
+ </message>
+ <message>
+ <location line="-71"/>
+ <source>The parameter %1 is passed, but no corresponding %2 exists.</source>
+ <translation>A(z) %1 paraméter teljesítve, de a megfelelő %2 nem létezik.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+65"/>
+ <source>The URI cannot have a fragment</source>
+ <translation>Az URI nem tartalmaz tördezettséget</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
+ <source>Element %1 is not allowed at this location.</source>
+ <translation>%1 elem nincs engedélyezve ezen a ponton.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Text nodes are not allowed at this location.</source>
+ <translation>Szöveg csomópontok nincsenek engedélyezve ezen a ponton.</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Parse error: %1</source>
+ <translation>Elemzési hiba: %1</translation>
+ </message>
+ <message>
+ <location line="+62"/>
+ <source>The value of the XSL-T version attribute must be a value of type %1, which %2 isn&apos;t.</source>
+ <translation>XSLT verzió attribútum értékének %1 típusú értéknek kell lennie, %2 nem lehet.</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Running an XSL-T 1.0 stylesheet with a 2.0 processor.</source>
+ <translation>Egy XSLT 1.0 stíluslap egy 2.0 feldolgozóval való futtatása.</translation>
+ </message>
+ <message>
+ <location line="+108"/>
+ <source>Unknown XSL-T attribute %1.</source>
+ <translation>Ismeretlen XSLT attribútum %1.</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Attribute %1 and %2 are mutually exclusive.</source>
+ <translation>A(z) %1 és %2 attribútum kölcsönösen kizárják egymást.</translation>
+ </message>
+ <message>
+ <location line="+166"/>
+ <source>In a simplified stylesheet module, attribute %1 must be present.</source>
+ <translation>Egy leegyszerűsített stíluslap modulban, %1 attribútumot kell nyújtani.</translation>
+ </message>
+ <message>
+ <location line="+72"/>
+ <source>If element %1 has no attribute %2, it cannot have attribute %3 or %4.</source>
+ <translation>Ha a(z) %1 elem nem tartalmaz %2 attribútumot, akkor nem tartalmazhat %3 vagy %4 attribútumot.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Element %1 must have at least one of the attributes %2 or %3.</source>
+ <translation>%1 elemnek legalább egy %2 vagy %3 attribútumot kell tartalmaznia.</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>At least one mode must be specified in the %1-attribute on element %2.</source>
+ <translation>Legalább egy csomópontot meg kell határozni a(z) %1 attribútumban a(z) %2 elemen.</translation>
+ </message>
+ <message>
+ <location line="+123"/>
+ <source>Element %1 must come last.</source>
+ <translation>%1 elemnek kell utoljára következnie.</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>At least one %1-element must occur before %2.</source>
+ <translation>Legalább egy %1 elemnek kell előfordulnia %2 előtt.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Only one %1-element can appear.</source>
+ <translation>Csak egy %1 elem jelenhet meg.</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>At least one %1-element must occur inside %2.</source>
+ <translation>Legalább egy %1 elem fordulhat elő %2-n belül.</translation>
+ </message>
+ <message>
+ <location line="+58"/>
+ <source>When attribute %1 is present on %2, a sequence constructor cannot be used.</source>
+ <translation>Mikor %1 attribútuk van benyújtva %2-n, egy sorozat konstruktort nem lehet használni.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Element %1 must have either a %2-attribute or a sequence constructor.</source>
+ <translation>%1 elemnek vagy egy %2 attribútumot vagy egy sorozat konstruktort kell tartalmaznia.</translation>
+ </message>
+ <message>
+ <location line="+125"/>
+ <source>When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor.</source>
+ <translation>Amikor egy paramétert igényel, egy alapértelmezett érték ellátni egy %1 attribútum vagy egy sorozat konstruktoron keresztül.</translation>
+ </message>
+ <message>
+ <location line="+270"/>
+ <source>Element %1 cannot have children.</source>
+ <translation>%1 elem nem tartalmazhat gyereket.</translation>
+ </message>
+ <message>
+ <location line="+434"/>
+ <source>Element %1 cannot have a sequence constructor.</source>
+ <translation>%1 elem nem tartalmazhat egy sorozat konstruktort.</translation>
+ </message>
+ <message>
+ <location line="+86"/>
+ <location line="+9"/>
+ <source>The attribute %1 cannot appear on %2, when it is a child of %3.</source>
+ <translation>A(z) %1 attribútum nem jelenhet meg %2-n, mikor egy %3 gyereke.</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>A parameter in a function cannot be declared to be a tunnel.</source>
+ <translation>Egy paramétert nem lehet behangoltnak deklarálni egy függvényben.</translation>
+ </message>
+ <message>
+ <location line="+149"/>
+ <source>This processor is not Schema-aware and therefore %1 cannot be used.</source>
+ <translation>Ez a feldolgozó nem terv biztos és ennek következtében a(z) %1-t nem lehet használni.</translation>
+ </message>
+ <message>
+ <location line="+57"/>
+ <source>Top level stylesheet elements must be in a non-null namespace, which %1 isn&apos;t.</source>
+ <translation>Felső szintű stíluslap elemeknek nem szabad egy nem nulla névtérnek lenniük, %1 nem jó.</translation>
+ </message>
+ <message>
+ <location line="+48"/>
+ <source>The value for attribute %1 on element %2 must either be %3 or %4, not %5.</source>
+ <translation>%1 attribútum értékének a(z) %2-s elemen vagy %3 vagy %4, vagy %5-nek kell lennie.</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Attribute %1 cannot have the value %2.</source>
+ <translation>%1 attribútum nem tartalmazhat %2 értéket.</translation>
+ </message>
+ <message>
+ <location line="+58"/>
+ <source>The attribute %1 can only appear on the first %2 element.</source>
+ <translation>A(z) %1 attribútum kizárólag az első %2 elemen tűnhet fel.</translation>
+ </message>
+ <message>
+ <location line="+99"/>
+ <source>At least one %1 element must appear as child of %2.</source>
+ <translation>Legalább egy %1 elemnek mutatkoznia %2 gyerekeként.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/schema/qxsdschemachecker.cpp" line="+227"/>
+ <source>%1 has inheritance loop in its base type %2.</source>
+ <translation>%1 tartalmaz egy öröklődési hurkot annak %2 alaptípusában.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <location line="+24"/>
+ <source>Circular inheritance of base type %1.</source>
+ <translation>A(z) %1 alaptípus cirkuláris öröklődése.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Circular inheritance of union %1.</source>
+ <translation>A(z) %1 union cirkuláris öröklődése.</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>%1 is not allowed to derive from %2 by restriction as the latter defines it as final.</source>
+ <translation>A(z) %1 %2-ből való származtatása nem megengedett, azzal a korlátozassal, hogy az utóbbi utolsónak definiálja.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>%1 is not allowed to derive from %2 by extension as the latter defines it as final.</source>
+ <translation>%1-nek nem engedélyezett a %2-ből való származtatása, azzal a kiegészítéssel, hogy a utóbbi végsőnek definiálja.</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Base type of simple type %1 cannot be complex type %2.</source>
+ <translation>A(z) %1 egyszerű típus alaptípusa nem lehet egy %2 összetett típus.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Simple type %1 cannot have direct base type %2.</source>
+ <translation>A(z) %1 egyszerű típus nem tartalmazhat közvetlen %2 alap típust.</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <location line="+9"/>
+ <source>Simple type %1 is not allowed to have base type %2.</source>
+ <translation>%1 egyszerű típusnak nincs engedélyezve, hogy %2 alap típusokat tartalmazzon.</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Simple type %1 can only have simple atomic type as base type.</source>
+ <translation>A(z) %1 egyszerű típus kizárólag egyszerű atomikus típusokat tartalmazhat alaptípusként.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Simple type %1 cannot derive from %2 as the latter defines restriction as final.</source>
+ <translation>%1 egyszerű típus nem származtatható %2-ből, mint ahogy az utóbbi végső korlátozásokat definiál.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <location line="+484"/>
+ <source>Variety of item type of %1 must be either atomic or union.</source>
+ <translation>%1 elemtípus különbözőségeinek vagy vagy atomikus vagy unionnak kell lenni.</translation>
+ </message>
+ <message>
+ <location line="-474"/>
+ <location line="+483"/>
+ <source>Variety of member types of %1 must be atomic.</source>
+ <translation>%1 tagtípusok különbözőségének atomikusnak kell lennie.</translation>
+ </message>
+ <message>
+ <location line="-470"/>
+ <location line="+451"/>
+ <source>%1 is not allowed to derive from %2 by list as the latter defines it as final.</source>
+ <translation>%1 származtatása a(z) %2-ből nem engedélyezett, listázva azt, hogy az utóbbi végsőként definiálja.</translation>
+ </message>
+ <message>
+ <location line="-431"/>
+ <source>Simple type %1 is only allowed to have %2 facet.</source>
+ <translation>%1 egyszerű típus kizárólag %2 oldalt tartalmazhat.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Base type of simple type %1 must have variety of type list.</source>
+ <translation>%1 egyszerű típus alap típusának különböző típus listákat kell tartalmaznia.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Base type of simple type %1 has defined derivation by restriction as final.</source>
+ <translation>%1 egyszerű típus alaptípusa definiálja a számaztatást végső korlátozással.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Item type of base type does not match item type of %1.</source>
+ <translation>Az alap típus elem típusa nem egyezik a(z) %1 elemtípusával. </translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <location line="+93"/>
+ <source>Simple type %1 contains not allowed facet type %2.</source>
+ <translation>%1 egyszerű típus nem engedélyezett oldal %2 típusokat tartalmaz.</translation>
+ </message>
+ <message>
+ <location line="-72"/>
+ <location line="+413"/>
+ <source>%1 is not allowed to derive from %2 by union as the latter defines it as final.</source>
+ <translation>%1 %2-ből történő származtatása nem engedélyezett az unió által, az utóbbi végsőként definiálja.</translation>
+ </message>
+ <message>
+ <location line="-404"/>
+ <source>%1 is not allowed to have any facets.</source>
+ <translation>%1 nem tartalmazhat semmilyen oldalt.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Base type %1 of simple type %2 must have variety of union.</source>
+ <translation>%2 egyszerű típus %1 alap típusának különböző egységeket kell tartalmaznia.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute.</source>
+ <translation>%2 egyszerű típus %1 alap típusa nem tartalmazhat korlátozásokat a %3 attribútumban.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Member type %1 cannot be derived from member type %2 of %3&apos;s base type %4.</source>
+ <translation>%1 tag típus nem származtatható a(z) %3 %4 alap típusának %2 tagtípusából.</translation>
+ </message>
+ <message>
+ <location line="+65"/>
+ <source>Derivation method of %1 must be extension because the base type %2 is a simple type.</source>
+ <translation>%1 származtatása eljárásának kiterjesztésnek kell lennie, mert %2 alap típus egy egyszerű típus.</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Complex type %1 has duplicated element %2 in its content model.</source>
+ <translation>A(z) %1 összetett típusnak duplikáns %2 eleme van a tartalmi modellében.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Complex type %1 has non-deterministic content.</source>
+ <translation>%1 összetett típusnak nincsen meghatározott tartalma.</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3.</source>
+ <translation>%1 összetett típus attribútumai a(z) %2 alap típus attribútumainak nem érvényes kiterjesztései: %3.</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>Content model of complex type %1 is not a valid extension of content model of %2.</source>
+ <translation>%1 komplex típus tartalmi modelle a(z) %2 tartalmi modellének nem egy érvényes kiterjesztése.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Complex type %1 must have simple content.</source>
+ <translation>%1 komplex típusnak tartalmaznia kell egy egyszerű tartalmat.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Complex type %1 must have the same simple type as its base class %2.</source>
+ <translation>%1 komplex típusnak ugyanazt az egyszerű típust kell tartalmaznia a(z) %2 alap osztálya számára.</translation>
+ </message>
+ <message>
+ <location line="+67"/>
+ <source>Complex type %1 cannot be derived from base type %2%3.</source>
+ <translation>%1 komplex típus nem származtatható a(z) %2%3 alap típusból.</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3.</source>
+ <translation>%1 komplex típus attribútumai nem egy érvényes korlátozások a(z) %2 alap típus attribútumaitól: %3.</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Complex type %1 with simple content cannot be derived from complex base type %2.</source>
+ <translation>%1 komplex típus egyszerű tartalommal nem származtatható %2 komplex alap típusból.</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Item type of simple type %1 cannot be a complex type.</source>
+ <translation>A(z) %1 egyszerű típus elemi típusa nem lehet egy komplex típus.</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Member type of simple type %1 cannot be a complex type.</source>
+ <translation>%1 egyszerű típus tag típusa nem lehet egy komplex típus.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>%1 is not allowed to have a member type with the same name as itself.</source>
+ <translation>%1 nem engedélyzett, hogy tartalmazzon egy tag típust ugyanazzal a névvel, mint a saját neve.</translation>
+ </message>
+ <message>
+ <location line="+83"/>
+ <location line="+29"/>
+ <location line="+34"/>
+ <source>%1 facet collides with %2 facet.</source>
+ <translation>%1 oldal ütközik a(z) %2 oldallal.</translation>
+ </message>
+ <message>
+ <location line="-20"/>
+ <source>%1 facet must have the same value as %2 facet of base type.</source>
+ <translation>%1 oldalnak ugyanazt az értéket kell tartalmaznia, mint az alap típus %2 oldalának.</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>%1 facet must be equal or greater than %2 facet of base type.</source>
+ <translation>%1 oldalnak nagyobbnak vagy egyenlőnek kell lennie, mint az alap típus %2 oldalának.</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <location line="+125"/>
+ <location line="+55"/>
+ <location line="+12"/>
+ <location line="+91"/>
+ <location line="+58"/>
+ <location line="+34"/>
+ <location line="+35"/>
+ <source>%1 facet must be less than or equal to %2 facet of base type.</source>
+ <translation>%1 oldalnal kisebb vagy egyenlőnek kell lennie az alap típus %2 oldalánál.</translation>
+ </message>
+ <message>
+ <location line="-389"/>
+ <source>%1 facet contains invalid regular expression</source>
+ <translation>%1 oldal érvénytelen reguláris kifejezéseket tartalmaz</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Unknown notation %1 used in %2 facet.</source>
+ <translation>%1 ismeretlen jelölési mód van használva a(z) %2 oldalon.</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>%1 facet contains invalid value %2: %3.</source>
+ <translation>%1 oldal érvénytelen %2 értéket tartalmaz: %3.</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>%1 facet cannot be %2 or %3 if %4 facet of base type is %5.</source>
+ <translation>%1 oldal nem lehet %2 vagy %3, ha az alap típus %4 oldala %5.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>%1 facet cannot be %2 if %3 facet of base type is %4.</source>
+ <translation>%1 oldal nem lehet %2, ha az alap típus %3 oldala %4.</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <location line="+55"/>
+ <location line="+230"/>
+ <source>%1 facet must be less than or equal to %2 facet.</source>
+ <translation>%1 oldalnak kisebb egyenlőnek kell lennie a(z) %2 oldalnál.</translation>
+ </message>
+ <message>
+ <location line="-257"/>
+ <location line="+134"/>
+ <location line="+82"/>
+ <source>%1 facet must be less than %2 facet of base type.</source>
+ <translation>%1 oldalnak kisebbnek kell lennie az alap típus %2 oldalánál.</translation>
+ </message>
+ <message>
+ <location line="-201"/>
+ <location line="+79"/>
+ <source>%1 facet and %2 facet cannot appear together.</source>
+ <translation>%1 oldal és %2 oldal nem fordulhat elő együtt.</translation>
+ </message>
+ <message>
+ <location line="-27"/>
+ <location line="+12"/>
+ <location line="+113"/>
+ <source>%1 facet must be greater than %2 facet of base type.</source>
+ <translation>%1 oldalnak nagyobbnak kell lennie, mint az alaptípus %2 oldalának.</translation>
+ </message>
+ <message>
+ <location line="-86"/>
+ <location line="+58"/>
+ <source>%1 facet must be less than %2 facet.</source>
+ <translation>%1 oldalnak kisebbnek kell lenni a(z) %2 oldalnál.</translation>
+ </message>
+ <message>
+ <location line="-42"/>
+ <location line="+58"/>
+ <source>%1 facet must be greater than or equal to %2 facet of base type.</source>
+ <translation>%1 oldalnak nagyobb vagy egyenlőnek kell lennie az alap típus %2 oldalánál.</translation>
+ </message>
+ <message>
+ <location line="+113"/>
+ <source>Simple type contains not allowed facet %1.</source>
+ <translation>Egyszerű típus nem tartalmazhat %1 oldalt.</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>%1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list.</source>
+ <translation>%1, %2, %3, %4, %5 és %6 oldalak nem engedélyezettek listáról származtatáskor.</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Only %1 and %2 facets are allowed when derived by union.</source>
+ <translation>Csak a(z) %1 és %2 oldalak engedélyezettek union származtatásakor.</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <location line="+16"/>
+ <source>%1 contains %2 facet with invalid data: %3.</source>
+ <translation>%1 %2 oldalt tartalmaz érvénytelen adattal: %3.</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>Attribute group %1 contains attribute %2 twice.</source>
+ <translation>A(z) %1 attribútum csoport a(z) %2 attribútumot kétszer tartalmazza.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Attribute group %1 contains two different attributes that both have types derived from %2.</source>
+ <translation>A(z) %1 attribútum csoport két különböző attribútumot tartalmaz, melyek közül mindkettő %2-ból számaztatott típusokat tartalmaz.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3.</source>
+ <translation>A(z) %1 attribútum csoport %2 attribútumot tartalmaz, amely olyan megszorított értéket tartalmaz, kivéve a típust, amit %3-ból örököl.</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Complex type %1 contains attribute %2 twice.</source>
+ <translation>A(z) %1 összetett típus %2 attribútumot tartalmazza kétszer.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Complex type %1 contains two different attributes that both have types derived from %2.</source>
+ <translation>%1 komplex típus két különböző attribútumot tartalmaz, amelyek közül mindkettő %2-ból származtatott típusokat tartalmaz.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3.</source>
+ <translation>%1 kompex típus %2 attribútumot tartalmaz, aminek megszorító értéke van, kivéve a típust, amit a(z) %3-ból örököl.</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>Element %1 is not allowed to have a value constraint if its base type is complex.</source>
+ <translation>%1 elem nem tartalmazhat egy korlátozott értéket, ha az alaptípusa komplex.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Element %1 is not allowed to have a value constraint if its type is derived from %2.</source>
+ <translation>%1 elem nem tartalmazhat egy korlátozott értéket, ha a típusa a(z) %2-ből származik.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <location line="+11"/>
+ <source>Value constraint of element %1 is not of elements type: %2.</source>
+ <translation>%1 elem korlátozó értéke nem elemi típus: %2.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Element %1 is not allowed to have substitution group affiliation as it is no global element.</source>
+ <translation>%1 elem nem tartalmazhat helyettesítési csoport egyesítést, mert nem egy globális elem.</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Type of element %1 cannot be derived from type of substitution group affiliation.</source>
+ <translation>%1 elem típus nem származtatható helyettesítési csoport egyesítési típusból.</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Value constraint of attribute %1 is not of attributes type: %2.</source>
+ <translation>%1 attribútum korlátozó értéke nem attribútum típus: %2.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Attribute %1 has value constraint but has type derived from %2.</source>
+ <translation>%1 attribútumnak korlátozó értéke van, de %2-ből származtatott típust tartalmaz.</translation>
+ </message>
+ <message>
+ <location line="+56"/>
+ <source>%1 attribute in derived complex type must be %2 like in base type.</source>
+ <translation>%1 attribútum egy származtatott komplex típusban %2-nek kell lennie, mint az alap típusban.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Attribute %1 in derived complex type must have %2 value constraint like in base type.</source>
+ <translation>A származtatott komplex típusban levő %1 attribútumnak %2 érték korlátozót kell tartalmaznia, mint az alap típusban.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Attribute %1 in derived complex type must have the same %2 value constraint like in base type.</source>
+ <translation>Származtatott komplex típusban levő %1 attribútumnak ugyanazt a(z) %2 korlátozott értéket kell tartalmaznia, mint az alap típusban.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Attribute %1 in derived complex type must have %2 value constraint.</source>
+ <translation>Származtatott komplex típusban levő %1 attribútumnak %2 érték korlátozót kell tartalmaznia.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>processContent of base wildcard must be weaker than derived wildcard.</source>
+ <translation>Az alap helyettesítő jel folyamat tartalma gyengébb kell legyen, mint a származtatott helyettesítő jel.</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <location line="+15"/>
+ <source>Element %1 exists twice with different types.</source>
+ <translation>%1 elem kétszer létezik különböző típusokkal.</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Particle contains non-deterministic wildcards.</source>
+ <translation>A részecske nem meghatározott helyettesítő jeleket tartalmaz.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/schema/qxsdschemahelper.cpp" line="+691"/>
+ <location line="+63"/>
+ <source>Base attribute %1 is required but derived attribute is not.</source>
+ <translation>A(z) %1 alap attribútum szükséges, de a származtatott attribútum nem.</translation>
+ </message>
+ <message>
+ <location line="-57"/>
+ <source>Type of derived attribute %1 cannot be validly derived from type of base attribute.</source>
+ <translation>A(z) %1 származtatott attribútum típusa nem lehet érvényesen származtatni az alap attribútum típusból.</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Value constraint of derived attribute %1 does not match value constraint of base attribute.</source>
+ <translation>&apos;%1 származtatott attribútum érték korlátozója nem egyezik az alap attribútum érték korlátozójával.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Derived attribute %1 does not exist in the base definition.</source>
+ <translation>%1 származtatott attribútum nem létezik az alap definícióban.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Derived attribute %1 does not match the wildcard in the base definition.</source>
+ <translation>%1 származtatott attribútum nem egyezik a helyettesítő jellel az alap definícióban.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Base attribute %1 is required but missing in derived definition.</source>
+ <translation>%1 alap attribútum szükséges, de hiáynzik a származtatott definícióban.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Derived definition contains an %1 element that does not exists in the base definition</source>
+ <translation>A származtatot definíció egy %1 elemet tartalmaz, ami nem létezik az alap definícióban</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Derived wildcard is not a subset of the base wildcard.</source>
+ <translation>Származtatott helyettesítőjel nem az alap helyettesítőjel egy részhalmaza.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>%1 of derived wildcard is not a valid restriction of %2 of base wildcard</source>
+ <translation>Származtaott helyettesítő jel %1-e nem az alap helyettesítőjel %2-nek egy érvényes korlátozója</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Attribute %1 from base type is missing in derived type.</source>
+ <translation>Az alap típus %1 attribútuma hiányzik a származtatott típusban.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Type of derived attribute %1 differs from type of base attribute.</source>
+ <translation>A(z) %1 származtatott típus az alap attribútum típusától különbözik.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Base definition contains an %1 element that is missing in the derived definition</source>
+ <translation>Az alap definíció egy %1 elemet tartalmaz, ami hiányzik a származtatott definícióból</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/schema/qxsdschemaresolver.cpp" line="+354"/>
+ <source>%1 references unknown %2 or %3 element %4.</source>
+ <translation>%1 ismeretlen %2 vagy %3 elemre hivatkozik %4.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>%1 references identity constraint %2 that is no %3 or %4 element.</source>
+ <translation>%1 %2 indentitás korlátozóra hivatkozik, ami nem %3 vagy %4 elem.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>%1 has a different number of fields from the identity constraint %2 that it references.</source>
+ <translation>%1 mezők egy különböző számát tartalmazza a(z) %2 indetitás korlátozóbol, amelyik erre hivatkozik.</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Base type %1 of %2 element cannot be resolved.</source>
+ <translation>%1 elem %2 alap típusát nem lehet megfejteni.</translation>
+ </message>
+ <message>
+ <location line="+84"/>
+ <source>Item type %1 of %2 element cannot be resolved.</source>
+ <translation>%2 elem %1 elem típusát nem lehet megfejteni.</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Member type %1 of %2 element cannot be resolved.</source>
+ <translation>%2 elem %1 tag típusát nem lehet megoldani.</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <location line="+408"/>
+ <location line="+30"/>
+ <source>Type %1 of %2 element cannot be resolved.</source>
+ <translation>%2 elem %1 típusát nem lehet megoldani.</translation>
+ </message>
+ <message>
+ <location line="-416"/>
+ <source>Base type %1 of complex type cannot be resolved.</source>
+ <translation>Komplex típus %1 alap típusát nem lehet megfejteni.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>%1 cannot have complex base type that has a %2.</source>
+ <translation>%1 nem tartalmazhat komplex alap típusokat, egy %2-t tartalmaz.</translation>
+ </message>
+ <message>
+ <location line="+279"/>
+ <source>Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type.</source>
+ <translation>%1 komplex típus tartalmi modelle %2 elemet tartalmaz, tehát nem származtatható kiterjesztésben egy nem üres típusból.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model.</source>
+ <translation>%1 komplex nem típus nem származtatható kiterjesztésben %2-ből, mert az utóbbi %3 elemet tartalmaz a tartalmi modellében.</translation>
+ </message>
+ <message>
+ <location line="+101"/>
+ <source>Type of %1 element must be a simple type, %2 is not.</source>
+ <translation>%1 elem típusnak egy egyszerű típusnak kell, de %2 nem az.</translation>
+ </message>
+ <message>
+ <location line="+62"/>
+ <source>Substitution group %1 of %2 element cannot be resolved.</source>
+ <translation>%2 elem %1 helyettesítési csoportját nem lehet megoldani.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Substitution group %1 has circular definition.</source>
+ <translation>%1 helyettesítési csoport cirkuláris definíciót tartalmaz.</translation>
+ </message>
+ <message>
+ <location line="+120"/>
+ <location line="+7"/>
+ <source>Duplicated element names %1 in %2 element.</source>
+ <translation>Duplikát %1 elemnév %2 elemben.</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <location line="+52"/>
+ <location line="+71"/>
+ <location line="+28"/>
+ <source>Reference %1 of %2 element cannot be resolved.</source>
+ <translation>%2 elem %1 hivatkozását nem lehet megoldani.</translation>
+ </message>
+ <message>
+ <location line="-138"/>
+ <source>Circular group reference for %1.</source>
+ <translation>Cirkuláris csoport hivatkozás %1-re.</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>%1 element is not allowed in this scope</source>
+ <translation>%1 elem nem engedélyezett ebben a hatókörben</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>%1 element cannot have %2 attribute with value other than %3.</source>
+ <translation>%1 elem nem tartalmazhat %2 attribútumot %3-tól eltérő értékkel.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>%1 element cannot have %2 attribute with value other than %3 or %4.</source>
+ <translation>%1 element nem tartalmazhat %2 attribútumot %3 vagy %4-től eltérő értékkel.</translation>
+ </message>
+ <message>
+ <location line="+91"/>
+ <source>%1 or %2 attribute of reference %3 does not match with the attribute declaration %4.</source>
+ <translation>%3 hivatkozás %1 vagy %2 attribútuma nem egyezik meg a(z) %4 attribútum deklarációval.</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Attribute group %1 has circular reference.</source>
+ <translation>%1 attribútum csoport cirkuláris hivatkozást tartalmaz.</translation>
+ </message>
+ <message>
+ <location line="+131"/>
+ <source>%1 attribute in %2 must have %3 use like in base type %4.</source>
+ <translation>%2-ben található %1 attribútumnak %3 használatát kell tartalmaznia, mint a(z) %4 alap típusban.</translation>
+ </message>
+ <message>
+ <location line="+52"/>
+ <source>Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2.</source>
+ <translation>%1 attribútum helyettesítő jele nem a(z) %2 alap típus attribútum helyettesítő jelének egy érvényes korlátozása.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>%1 has attribute wildcard but its base type %2 has not.</source>
+ <translation>%1 attribútum helyettesítő jelet tartalmaz, de a(z) %2 alap típusa nem.</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible.</source>
+ <translation>%2 alaptípusának attribútum helyettesítő jele és a(z) %1 típus attribútum helyettesítő jelének union-ja nem kifejezhető.</translation>
+ </message>
+ <message>
+ <location line="+48"/>
+ <source>Enumeration facet contains invalid content: {%1} is not a value of type %2.</source>
+ <translation>Felsorolás oldal érvénytelen tartalmat tartalmaz. {%1} nem egy érvényes %2 típus érték.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Namespace prefix of qualified name %1 is not defined.</source>
+ <translation>%1 minősített név névtér előtagja nincs definiálva.</translation>
+ </message>
+ <message>
+ <location line="+51"/>
+ <location line="+18"/>
+ <source>%1 element %2 is not a valid restriction of the %3 element it redefines: %4.</source>
+ <translation>%2 elem %1 nem a(z) %3 elem egy érvényes korlátozása, újradefininálja: %4.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/schema/qxsdparticlechecker.cpp" line="+165"/>
+ <source>Empty particle cannot be derived from non-empty particle.</source>
+ <translation>Üres részecskét nem lehet egy üres részecskéből származtatni.</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Derived particle is missing element %1.</source>
+ <translation>Származtatott részecskének van egy %1 hiányzó eleme.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Derived element %1 is missing value constraint as defined in base particle.</source>
+ <translation>%1 származtatott elem hiányol egy érték korlátozót, ami az alap részecskében van definiálva.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Derived element %1 has weaker value constraint than base particle.</source>
+ <translation>%1 származtatott elem gyengébb érték korlátozót tartalmaz, mint az alap részecske.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Fixed value constraint of element %1 differs from value constraint in base particle.</source>
+ <translation>%1 elem fix érték korlátozója különbözik az alap részecskében található érték korlátozótól.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Derived element %1 cannot be nillable as base element is not nillable.</source>
+ <translation>%1 származtatott elem nem lehet nullázható, mint ahogy az alap elem sem nullázható.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Block constraints of derived element %1 must not be more weaker than in the base element.</source>
+ <translation>%1 származtatott elem blokk korlátozója nem lehet gyengébb, mint az alap elemben.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Simple type of derived element %1 cannot be validly derived from base element.</source>
+ <translation>%1 származtatott elem egyszerű típusa nem származtatható érvényesen az alap elemből.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Complex type of derived element %1 cannot be validly derived from base element.</source>
+ <translation>%1 származtatott elem komplex típusa nem származtatható érvényesen az alap elemből.</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>Element %1 is missing in derived particle.</source>
+ <translation>%1 elem hiányzik a származtott récseszkében.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Element %1 does not match namespace constraint of wildcard in base particle.</source>
+ <translation>%1 elem nem egyezik meg az alap részecskében található helyettesítő jel névtér korlátozójával.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Wildcard in derived particle is not a valid subset of wildcard in base particle.</source>
+ <translation>Helyettesítő jel a származtatott részecskénen nem az alap részecskében található helyettesítő jel egy érvényes részhalmaza.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>processContent of wildcard in derived particle is weaker than wildcard in base particle.</source>
+ <translation>A származtatott részecskében található helyettesítő jel folyamatTartalma gyengébb, mint az alap részecskében található helyettesítő jel.</translation>
+ </message>
+ <message>
+ <location line="+240"/>
+ <source>Derived particle allows content that is not allowed in the base particle.</source>
+ <translation>Származtatott részecske engedélyezi a tartalmat, ami nem engedélyezett az alap részecskében.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/schema/qxsdschemaparser.cpp" line="+170"/>
+ <source>Can not process unknown element %1, expected elements are: %2.</source>
+ <translation>Nem lehet feldolgozni ismeretlen %1 elemet, várt elemek: %2.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Element %1 is not allowed in this scope, possible elements are: %2.</source>
+ <translation>%1 elem nem engedélyezett ebben a hatórközben, lehetséges elemek: %2.</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Child element is missing in that scope, possible child elements are: %1.</source>
+ <translation>Gyermek elem hiányzik abban a hatókörben, lehetséges gyermek elemek: %1.</translation>
+ </message>
+ <message>
+ <location line="+127"/>
+ <source>Document is not a XML schema.</source>
+ <translation>Dokumentum nem egy XML terv.</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>%1 attribute of %2 element contains invalid content: {%3} is not a value of type %4.</source>
+ <translation>%2 elem %1 attribútuma érvénytelen tartalmat tartalmaz: {%3} nem egy %4 típus érték.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>%1 attribute of %2 element contains invalid content: {%3}.</source>
+ <translation>%2 elem %1 attribútuma érvénytelen tartalmat tartalmaz: {%3}.</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema.</source>
+ <translation>A beleértett terv %1 cél névtere különbözik a %2 cél névtértől, amit a beleértett terv által lett definiálva.</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <location line="+11"/>
+ <source>Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema.</source>
+ <translation>Az importált terv %1 cél névtere különbözik a(z) %2 cél névtértől, ami az importált terv által van definiálva.</translation>
+ </message>
+ <message>
+ <location line="+237"/>
+ <source>%1 element is not allowed to have the same %2 attribute value as the target namespace %3.</source>
+ <translation>%1 elem nem tartalmazhatja ugyanazt a(z) %2 attribútum értéket, mint a(z) %3 cél névtér.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>%1 element without %2 attribute is not allowed inside schema without target namespace.</source>
+ <translation>%1 elem %2 attribútum nélkül nem engedélyezett a vázlaton belül cél névtér nélkül.</translation>
+ </message>
+ <message>
+ <location line="+833"/>
+ <location line="+158"/>
+ <source>%1 element is not allowed inside %2 element if %3 attribute is present.</source>
+ <translation>%1 elem nem engedélyezett a(z) %2 elemen belül, ha %3 attribútum van nyújtva.</translation>
+ </message>
+ <message>
+ <location line="-97"/>
+ <location line="+119"/>
+ <location line="+92"/>
+ <source>%1 element has neither %2 attribute nor %3 child element.</source>
+ <translation>%1 elem nem tartalmaz %2 attribútumot és %3 gyermek elemet sem.</translation>
+ </message>
+ <message>
+ <location line="+835"/>
+ <location line="+1474"/>
+ <location line="+232"/>
+ <location line="+7"/>
+ <location line="+260"/>
+ <location line="+17"/>
+ <location line="+258"/>
+ <location line="+6"/>
+ <location line="+17"/>
+ <location line="+6"/>
+ <location line="+17"/>
+ <location line="+11"/>
+ <location line="+11"/>
+ <location line="+11"/>
+ <source>%1 element with %2 child element must not have a %3 attribute.</source>
+ <translation>%1 elem %2 gyermek elemmel nem tartalmazhat egy %3 attribútumot.</translation>
+ </message>
+ <message>
+ <location line="-1325"/>
+ <source>%1 attribute of %2 element must be %3 or %4.</source>
+ <translation>%2 elem %1 attribútumának %3 vagy %4-nek kell lennie.</translation>
+ </message>
+ <message>
+ <location line="+36"/>
+ <source>%1 attribute of %2 element must have a value of %3.</source>
+ <translation>%2 elem %1 attribútumának %3 egy értékét tartalmaznia kell.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <location line="+34"/>
+ <source>%1 attribute of %2 element must have a value of %3 or %4.</source>
+ <translation>%2 elem %1 attribútumának tartalmaznia kell %3 vagy %4 egy értékét.</translation>
+ </message>
+ <message>
+ <location line="+319"/>
+ <location line="+129"/>
+ <location line="+9"/>
+ <location line="+7"/>
+ <location line="+7"/>
+ <location line="+327"/>
+ <location line="+203"/>
+ <location line="+6"/>
+ <location line="+6"/>
+ <location line="+6"/>
+ <location line="+6"/>
+ <location line="+6"/>
+ <location line="+6"/>
+ <location line="+77"/>
+ <source>%1 element must not have %2 and %3 attribute together.</source>
+ <translation>%1 elemnek tartalmaznia kell %2 és %3 attribútumokat együttesen.</translation>
+ </message>
+ <message>
+ <location line="-768"/>
+ <location line="+222"/>
+ <source>Content of %1 attribute of %2 element must not be from namespace %3.</source>
+ <translation>%2 elem %1 attribútumának tartalmának nem szabad a(z) %3 névtérből lennie.</translation>
+ </message>
+ <message>
+ <location line="-215"/>
+ <location line="+222"/>
+ <source>%1 attribute of %2 element must not be %3.</source>
+ <translation>%2 elem %1 attribútumának nem szabad %3-nak lennie.</translation>
+ </message>
+ <message>
+ <location line="-64"/>
+ <source>%1 attribute of %2 element must have the value %3 because the %4 attribute is set.</source>
+ <translation>%2 elem %1 attribútumának tartalmaznia kell %3 értéket, mert %4 attribútum be van állítva.</translation>
+ </message>
+ <message>
+ <location line="+187"/>
+ <source>Specifying use=&apos;prohibited&apos; inside an attribute group has no effect.</source>
+ <translation>Használat meghatározásának = &apos;tiltott&apos; egy attribútum csoportját belül nincsen hatása.</translation>
+ </message>
+ <message>
+ <location line="+353"/>
+ <source>%1 element must have either %2 or %3 attribute.</source>
+ <translation>%1 elemnek vagy %2 vagy %3 attribútumot tartalmaznia kell.</translation>
+ </message>
+ <message>
+ <location line="+554"/>
+ <source>%1 element must have either %2 attribute or %3 or %4 as child element.</source>
+ <translation>%1 elemnek tartalmaznia kell vagy %2 vagy %3 vagy %4 attribútumot, mint ahogy a gyermek elem.</translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>%1 element requires either %2 or %3 attribute.</source>
+ <translation>%1 elem vagy %2 vagy %3 attribútumot igényli.</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Text or entity references not allowed inside %1 element</source>
+ <translation>Szöveg avgy entitás hivatkozás nem engedélyezett a(z) %1 elemen belül</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <location line="+112"/>
+ <source>%1 attribute of %2 element must contain %3, %4 or a list of URIs.</source>
+ <translation>%2 elem %1 attribútumának tartalmaznia kell %3, %4 vagy URI-k egy listáját.</translation>
+ </message>
+ <message>
+ <location line="+126"/>
+ <source>%1 element is not allowed in this context.</source>
+ <translation>%1 elem nem engedélyezett ebben a szöveg környezetben.</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>%1 attribute of %2 element has larger value than %3 attribute.</source>
+ <translation>%2 elem %1 attribútuma nagyobb értéket tartalmaz, mint a %3 attribútum.</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Prefix of qualified name %1 is not defined.</source>
+ <translation>A(z) %1 minősített név előtagja nem definiált.</translation>
+ </message>
+ <message>
+ <location line="+65"/>
+ <location line="+61"/>
+ <source>%1 attribute of %2 element must either contain %3 or the other values.</source>
+ <translation>%2 elem %1 attribútumának vagy %3 vagy más értékeket kell tartalmaznia.</translation>
+ </message>
+ <message>
+ <location line="+131"/>
+ <source>Component with ID %1 has been defined previously.</source>
+ <translation>%1 azonosítóval rendelkezővel komponens előzőleg definiálva lett.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Element %1 already defined.</source>
+ <translation>%1 elem már definiálva van.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Attribute %1 already defined.</source>
+ <translation>%1 attribútum már definiálva van.</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Type %1 already defined.</source>
+ <translation>%1 típus már definiálva van.</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Attribute group %1 already defined.</source>
+ <translation>%1 csoport attribútum már definiálva van.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Element group %1 already defined.</source>
+ <translation>%1 csoport elem már definiálva van.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Notation %1 already defined.</source>
+ <translation>%1 értesítés már definiálva van.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Identity constraint %1 already defined.</source>
+ <translation>%1 azonosító korlátozó már definiálva van.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Duplicated facets in simple type %1.</source>
+ <translation>Duplikált oldalak %1 egyszerű típusban.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/schema/qxsdtypechecker.cpp" line="+233"/>
+ <location line="+7"/>
+ <location line="+21"/>
+ <source>%1 is not valid according to %2.</source>
+ <translation>%1 nem érvényes %2 szerint.</translation>
+ </message>
+ <message>
+ <location line="+167"/>
+ <source>String content does not match the length facet.</source>
+ <translation>Sztring tartalom nem egyezik a hossz oldallal.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>String content does not match the minLength facet.</source>
+ <translation>Sztring tartalom nem egyezik a minimális hosszúságú felülettel.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>String content does not match the maxLength facet.</source>
+ <translation>Sztring tartalom nem egyezik a maximális hosszúságú felülettel.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>String content does not match pattern facet.</source>
+ <translation>Sztrng tartalom nem egyezik a minta felülettel.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>String content is not listed in the enumeration facet.</source>
+ <translation>Sztring tartalom nincs listázva a felsorol felületben.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Signed integer content does not match the maxInclusive facet.</source>
+ <translation>Előjeles egész szám tartalom nem egyezik a maximális beleszámított felülettel.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Signed integer content does not match the maxExclusive facet.</source>
+ <translation>Előjeles egész szám tartalom nem egyzik a maximális kizárólagos felülettel.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Signed integer content does not match the minInclusive facet.</source>
+ <translation>Előjeles egész szám tartalom nem egyezik a minimális beleértet felülettel.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Signed integer content does not match the minExclusive facet.</source>
+ <translation>Előjeles egész szám tartalom nem egyezik a minimális kizárólagos felülettel.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Signed integer content is not listed in the enumeration facet.</source>
+ <translation>Előjeles egész szám tartalom nincsen kilistázva a felsorolási felületben.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Signed integer content does not match pattern facet.</source>
+ <translation>Előjeles egész szám tartalom nem egyezik a minta felületben.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Signed integer content does not match in the totalDigits facet.</source>
+ <translation>Előjeles egész szám tartalom nem egyezik a teljesSzámos felület.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Unsigned integer content does not match the maxInclusive facet.</source>
+ <translation>Nem előjeles egész szám tartalom nem egyezik a maximális beleértett felülettel.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Unsigned integer content does not match the maxExclusive facet.</source>
+ <translation>Nem előjeles egész szám tartalom nem egyezik a maximális kizárólagos felülettel.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Unsigned integer content does not match the minInclusive facet.</source>
+ <translation>Nem előjeles tartalom nem egyezik a minimális beleértett felülettel.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Unsigned integer content does not match the minExclusive facet.</source>
+ <translation>Nem előjeleg egész szám tartalom nem egyezik a beleértett minimális felülettel.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Unsigned integer content is not listed in the enumeration facet.</source>
+ <translation>Nem előjeles egész szám tartalom nincsen kilistázva a felsorolási felületben.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Unsigned integer content does not match pattern facet.</source>
+ <translation>Nem előjeles egész szám tartalom nem egyezik a minta felületben.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Unsigned integer content does not match in the totalDigits facet.</source>
+ <translation>Nem előjeles egész szám tartalom nem egyezik a teljesSzámos felületben.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Double content does not match the maxInclusive facet.</source>
+ <translation>Dupla tartalom nem egyezik a maximális beleértett felületben.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Double content does not match the maxExclusive facet.</source>
+ <translation>Dupla tartalom nem egyezik a maximális kizárólagos felülettel.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Double content does not match the minInclusive facet.</source>
+ <translation>Dupla tartalom nem egyezik a minimális beleértett felülettel.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Double content does not match the minExclusive facet.</source>
+ <translation>Dupla tartalom nem egyezik a minimális kizárólag felülettel.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Double content is not listed in the enumeration facet.</source>
+ <translation>Dupla tartalom nincs listázva a felsorolási felületben.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Double content does not match pattern facet.</source>
+ <translation>Dupla tartalom nem egyezik a minta felületben.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Decimal content does not match in the fractionDigits facet.</source>
+ <translation>Tizedes tartalom nem egyezik a szám tényezős felületben.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Decimal content does not match in the totalDigits facet.</source>
+ <translation>Tizedes tartalom nem egyezik a teljesenSzámos felületben.</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Date time content does not match the maxInclusive facet.</source>
+ <translation>Dátum idő tartalom nem egyezik a maximális beleértett felülettel.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Date time content does not match the maxExclusive facet.</source>
+ <translation>Dátum idő tartalom nem egyezik a maximális kizárólagos felülettel.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Date time content does not match the minInclusive facet.</source>
+ <translation>Dátum idő tartalom nem egyezik a minimális beleértett felülettel.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Date time content does not match the minExclusive facet.</source>
+ <translation>Dátum idő tartalom nem egyezik a minimális kizárólagos felülettel.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Date time content is not listed in the enumeration facet.</source>
+ <translation>Dátum idő tartalom nincsen kilistázva a felsorolási felületben.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Date time content does not match pattern facet.</source>
+ <translation>Dátum idő tartalom nem egyezik a minta felületben.</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Duration content does not match the maxInclusive facet.</source>
+ <translation>Tartalom időtartam nem egyezik a maximális beleértett felülettel.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Duration content does not match the maxExclusive facet.</source>
+ <translation>Tartalom időtartam nem egyezik a maximális kizárólagos felülettel.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Duration content does not match the minInclusive facet.</source>
+ <translation>Tartalom időtartam nem egyezik a minimális benne foglalt felülettel.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Duration content does not match the minExclusive facet.</source>
+ <translation>Tartalom időtartam nem egyezik a minimális kizárólagos felülettel.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Duration content is not listed in the enumeration facet.</source>
+ <translation>Tartalom időtartam nincs listázva a felsorolási felületben.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Duration content does not match pattern facet.</source>
+ <translation>Tartalom időtartam nem egyezik a felület mintában.</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Boolean content does not match pattern facet.</source>
+ <translation>Logikai tartalom nem egyezik a minta felületben.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Binary content does not match the length facet.</source>
+ <translation>Bináris tartalom nem egyezik a hossz felületben.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Binary content does not match the minLength facet.</source>
+ <translation>Bináris tartalom nem egyezik a minimális hossz felületben.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Binary content does not match the maxLength facet.</source>
+ <translation>Bináris tartalom nem egyezik a maximális hossz felületben.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Binary content is not listed in the enumeration facet.</source>
+ <translation>Bináris tartalom nincsen kilistázva a felsorolási felületben.</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Invalid QName content: %1.</source>
+ <translation>Érvénytelen QName tartalom: %1.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>QName content is not listed in the enumeration facet.</source>
+ <translation>QName tartalom nincsen kilistázva a felsorolási felületben.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>QName content does not match pattern facet.</source>
+ <translation>QName tartalom nem egyezik a mintha felületben.</translation>
+ </message>
+ <message>
+ <location line="+36"/>
+ <source>Notation content is not listed in the enumeration facet.</source>
+ <translation>Tartalom jelölés nincsen kilistázva a felsorolási felületben.</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>List content does not match length facet.</source>
+ <translation>Tartalom lista nem egyezik a hossz felületben.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>List content does not match minLength facet.</source>
+ <translation>Tartalmi lista nem egyezik a minimális hossz felületben.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>List content does not match maxLength facet.</source>
+ <translation>Tartalmi list nem egyezik a maximális hossz felületen.</translation>
+ </message>
+ <message>
+ <location line="+90"/>
+ <source>List content is not listed in the enumeration facet.</source>
+ <translation>Tartalmi lista nincsen kilistázva a felsorolási felületen.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>List content does not match pattern facet.</source>
+ <translation>Tartalmi lista nem egyezik a minta felületen.</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>Union content is not listed in the enumeration facet.</source>
+ <translation>Egység tartalom nincsen kilistázva a felsorolási felületen.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Union content does not match pattern facet.</source>
+ <translation>Egység tartalom nem egyezik a minta felületen.</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Data of type %1 are not allowed to be empty.</source>
+ <translation>%1 típus adata nem engedélyezett, hogy üres legyen.</translation>
+ </message>
+ <message>
+ <location filename="../src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp" line="+160"/>
+ <source>Element %1 is missing child element.</source>
+ <translation>%1 elem hiányzik a gyermek elemből.</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>There is one IDREF value with no corresponding ID: %1.</source>
+ <translation>Van egy IDREF érték nem megfelelő azonosítóval: %1.</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Loaded schema file is invalid.</source>
+ <translation>Betöltött terv fájl nem létezik.</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>%1 contains invalid data.</source>
+ <translation>%1 érvénytelen adatot tartalmaz.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>xsi:schemaLocation namespace %1 has already appeared earlier in the instance document.</source>
+ <translation>xsi:tervElhelyezkedés %1 névtér már előfordult korábban a példa dokumentumban.</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute.</source>
+ <translation>xsi:tervElhelyezkedés névtér nem fordulhat elő az első nem névtér elem vagy attribútum után.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>No schema defined for validation.</source>
+ <translation>Nincsen terv definiálva jóváhagyásra.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>No definition for element %1 available.</source>
+ <translation>Nincsen elérhető definíció a(z) %1 elemre.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <location line="+49"/>
+ <location line="+142"/>
+ <source>Specified type %1 is not known to the schema.</source>
+ <translation>%1 meghatározott típus ismeretlen a terv számára.</translation>
+ </message>
+ <message>
+ <location line="-176"/>
+ <source>Element %1 is not defined in this scope.</source>
+ <translation>%1 elem nincs definiálva ebben a hatókörben.</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>Declaration for element %1 does not exist.</source>
+ <translation>%1 elem deklaráció nem létezik.</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Element %1 contains invalid content.</source>
+ <translation>%1 elem érvénytelen tartalmat tartalmaz.</translation>
+ </message>
+ <message>
+ <location line="+73"/>
+ <source>Element %1 is declared as abstract.</source>
+ <translation>%1 elem elvontkét lett deklarálva.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Element %1 is not nillable.</source>
+ <translation>%1 elem nem nullázható.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Attribute %1 contains invalid data: %2</source>
+ <translation>%1 attribútum érvénytelen adatokat tartalmaz: %2</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Element contains content although it is nillable.</source>
+ <translation>Elem nem nullázható elemeket tartalmaz.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Fixed value constraint not allowed if element is nillable.</source>
+ <translation>Fix érték korlátozó nem engedélyezett, ha az elem nullázható.</translation>
+ </message>
+ <message>
+ <location line="+230"/>
+ <source>Element %1 cannot contain other elements, as it has a fixed content.</source>
+ <translation>%1 nem tartalmazhat másik elemeket, mint ennek is egy fix mérete van.</translation>
+ </message>
+ <message>
+ <location line="-198"/>
+ <source>Specified type %1 is not validly substitutable with element type %2.</source>
+ <translation>%1 meghatározott típus nem helyettesíthető érvényesen %2 elem típussal.</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Complex type %1 is not allowed to be abstract.</source>
+ <translation>%1 komplex típus nem engedélyezett, hogy elvont legyen.</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>Element %1 contains not allowed attributes.</source>
+ <translation>%1 nem engedélyezett attribútumokat tartalmaz.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+97"/>
+ <source>Element %1 contains not allowed child element.</source>
+ <translation>%1 nem engedélyezett gyermek attribútumokat tartalmaz.</translation>
+ </message>
+ <message>
+ <location line="-76"/>
+ <location line="+93"/>
+ <source>Content of element %1 does not match its type definition: %2.</source>
+ <translation>%1 elem tartalma nem egyezik meg a típus definíciójával: %2.</translation>
+ </message>
+ <message>
+ <location line="-85"/>
+ <location line="+92"/>
+ <location line="+41"/>
+ <source>Content of element %1 does not match defined value constraint.</source>
+ <translation>%1 elem tartalma nem egyezik meg a definiált érték korlátozóval.</translation>
+ </message>
+ <message>
+ <location line="-73"/>
+ <source>Element %1 contains not allowed child content.</source>
+ <translation>%1 nem engedélyezett gyermek tartalmat tartalmaz.</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Element %1 contains not allowed text content.</source>
+ <translation>%1 nem engedélyezett szöveg tartalmat tartalmaz.</translation>
+ </message>
+ <message>
+ <location line="+61"/>
+ <source>Element %1 is missing required attribute %2.</source>
+ <translation>%1 hiányzik, %2 attribútum igényli.</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Attribute %1 does not match the attribute wildcard.</source>
+ <translation>%1 attribűtum nem egyezik meg az attribútum helyettesítő jellel.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Declaration for attribute %1 does not exist.</source>
+ <translation>%1 attribútum deklarációja nem létezik.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Element %1 contains two attributes of type %2.</source>
+ <translation>%1 elem %2 típus két attribútumát tartalmazza.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Attribute %1 contains invalid content.</source>
+ <translation>%1 attribútum érvénytelen tartalmaz tartalmaz.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Element %1 contains unknown attribute %2.</source>
+ <translation>%1 elem ismeretlen %2 attribútumokat tartalmaz.</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <location line="+46"/>
+ <source>Content of attribute %1 does not match its type definition: %2.</source>
+ <translation>%1 attribútum tartalma nem egyezik a típus definíciójával: %2.</translation>
+ </message>
+ <message>
+ <location line="-38"/>
+ <location line="+46"/>
+ <source>Content of attribute %1 does not match defined value constraint.</source>
+ <translation>%1 attribútum tartalma nem egyezik meg a definiált érték korlátozóval.</translation>
+ </message>
+ <message>
+ <location line="+88"/>
+ <source>Non-unique value found for constraint %1.</source>
+ <translation>Nem található egyedülálló érték a(z) %1 módosítóra.</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Key constraint %1 contains absent fields.</source>
+ <translation>%1 kulcs korlátozó hiányzó mezőket tartalmaz.</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Key constraint %1 contains references nillable element %2.</source>
+ <translation>%1 kulcs korlátozó hivatkozásokat nem tartalmaz nullázható %2 elemekre.</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>No referenced value found for key reference %1.</source>
+ <translation>Nem található referencia érték a(z) %1 kulcs referenciára.</translation>
+ </message>
+ <message>
+ <location line="+64"/>
+ <source>More than one value found for field %1.</source>
+ <translation>Több mint egy érték található a(z) %1-es mezőre.</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Field %1 has no simple type.</source>
+ <translation>%1 mezőnek nincsen egyszerű típusa.</translation>
+ </message>
+ <message>
+ <location line="+73"/>
+ <source>ID value &apos;%1&apos; is not unique.</source>
+ <translation>%1 azonosító érték nem egyedülálló.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>&apos;%1&apos; attribute contains invalid QName content: %2.</source>
+ <translation>%1 attribútum érvénytelen QName tartalmaz tartalmaz: %2.</translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/qtconfig_hu.ts b/translations/qtconfig_hu.ts
new file mode 100644
index 0000000..0eaead0
--- /dev/null
+++ b/translations/qtconfig_hu.ts
@@ -0,0 +1,920 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="hu">
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../tools/qtconfig/mainwindow.cpp" line="+202"/>
+ <source>Desktop Settings (Default)</source>
+ <translation>Asztali beállítások (Alapértelmezett)</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Choose style and palette based on your desktop settings.</source>
+ <translation>Stílus és paletta alapú kiválasztása az asztali beállításokban.</translation>
+ </message>
+ <message>
+ <location line="+144"/>
+ <source>On The Spot</source>
+ <translation>Azon nyomban</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <location line="+1"/>
+ <location line="+38"/>
+ <location line="+1"/>
+ <source>Auto (default)</source>
+ <translation>Automatikus (alapértelmezett)</translation>
+ </message>
+ <message>
+ <location line="-38"/>
+ <source>Choose audio output automatically.</source>
+ <translation>Audió kimenet automatikus kiválasztása.</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <location line="+1"/>
+ <source>aRts</source>
+ <translation>aRts</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Experimental aRts support for GStreamer.</source>
+ <translation>Kísérleti aRts támogatás a GStreamerhez.</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Phonon GStreamer backend not available.</source>
+ <translation>Phonon GStreamer backend nem elérhető.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Choose render method automatically</source>
+ <translation>Render eljárás automatikus kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <location line="+1"/>
+ <source>X11</source>
+ <translation>X11</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Use X11 Overlays</source>
+ <translation>X11 borítás használata</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+1"/>
+ <source>OpenGL</source>
+ <translation>OpenGL</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Use OpenGL if avaiable</source>
+ <translation>OpenGL használata, ha rendelkezésre áll</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <location line="+1"/>
+ <source>Software</source>
+ <translation>Szoftver</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Use simple software rendering</source>
+ <translation>Egyszerű szoftver adás használata</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>No changes to be saved.</source>
+ <translation>A változtatások nincsenek elmentve.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Saving changes...</source>
+ <translation>Változtatások elmentése...</translation>
+ </message>
+ <message>
+ <location line="+48"/>
+ <source>Over The Spot</source>
+ <translation>Célon túlmenően</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Off The Spot</source>
+ <translation>Elkalandozás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Root</source>
+ <translation>Rendszergazda</translation>
+ </message>
+ <message>
+ <location line="+466"/>
+ <source>Select a Directory</source>
+ <translation>Egy könyvtár kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;Version %2&lt;br/&gt;&lt;br/&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</source>
+ <translation>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;Verzió %2&lt;br/&gt;&lt;br/&gt;Szerzői jog (C) 2010 Nokia vállalat és/vagy leányvállalata(i).</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+1"/>
+ <location line="+8"/>
+ <source>Qt Configuration</source>
+ <translation>Qt Konfiguráció</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Save Changes</source>
+ <translation>Változtatások elmentése</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Save changes to settings?</source>
+ <translation>Változtatások elmentése a beállításokba ?</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Yes</source>
+ <translation>&amp;Igen</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>&amp;No</source>
+ <translation>&amp;Nem</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Mégse</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="../tools/qtconfig/mainwindowbase.ui" line="+54"/>
+ <source>Qt Configuration</source>
+ <translation>Qt Konfiguráció
+</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Appearance</source>
+ <translation>Feltűnés</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>GUI Style</source>
+ <translation>GUI Stílus</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Select GUI &amp;Style:</source>
+ <translation>GUI &amp;Stílus kiválasztása:</translation>
+ </message>
+ <message>
+ <location line="+88"/>
+ <source>Build Palette</source>
+ <translation>Építési paletta</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>&amp;3-D Effects:</source>
+ <translation>&amp;3 D Hatások:</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Window Back&amp;ground:</source>
+ <translation>Ablak Hát&amp;tér:</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>&amp;Tune Palette...</source>
+ <translation>&amp;Hangolási paletta...</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Please use the KDE Control Center to set the palette.</source>
+ <translation>Kérem használja a KDE Vezérlő Központot a paletta beállításához.</translation>
+ </message>
+ <message>
+ <location line="-154"/>
+ <source>Preview</source>
+ <translation>Előnézet</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Select &amp;Palette:</source>
+ <translation>&amp;Paletta kiválasztása:</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Active Palette</source>
+ <translation>Aktív paletta</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Inactive Palette</source>
+ <translation>Inaktív paletta</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Disabled Palette</source>
+ <translation>Tiltott paletta</translation>
+ </message>
+ <message>
+ <location line="+138"/>
+ <source>Fonts</source>
+ <translation>Betűk</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Default Font</source>
+ <translation>Alapértelmezett betű</translation>
+ </message>
+ <message>
+ <location line="+45"/>
+ <source>&amp;Style:</source>
+ <translation>&amp;Stílus:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>&amp;Point Size:</source>
+ <translation>&amp;Pont méret:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>F&amp;amily:</source>
+ <translation>Csa&amp;lád:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Sample Text</source>
+ <translation>Minta szöveg</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Font Substitution</source>
+ <translation>Betű helyettesítés</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>S&amp;elect or Enter a Family:</source>
+ <translation>Egy család ki&amp;választása vgy bevitele:</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Current Substitutions:</source>
+ <translation>Aktuális helyettesítés:</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <location line="+501"/>
+ <source>Up</source>
+ <translation>Fel</translation>
+ </message>
+ <message>
+ <location line="-494"/>
+ <location line="+508"/>
+ <source>Down</source>
+ <translation>Le</translation>
+ </message>
+ <message>
+ <location line="-501"/>
+ <location line="+494"/>
+ <source>Remove</source>
+ <translation>Eltávolítás</translation>
+ </message>
+ <message>
+ <location line="-464"/>
+ <source>Select s&amp;ubstitute Family:</source>
+ <translation>Család &amp;helyettesítésének kiválasztása:</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <location line="+487"/>
+ <source>Add</source>
+ <translation>Hozzáad</translation>
+ </message>
+ <message>
+ <location line="-474"/>
+ <source>Interface</source>
+ <translation>Interfész</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Feel Settings</source>
+ <translation>Érzet beállítások</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <location line="+26"/>
+ <source> ms</source>
+ <translation> ms</translation>
+ </message>
+ <message>
+ <location line="-13"/>
+ <source>&amp;Double Click Interval:</source>
+ <translation>&amp;Dupla kattintási intervallum:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>No blinking</source>
+ <translation>Nincs villogás</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>&amp;Cursor Flash Time:</source>
+ <translation>&amp;Kurzor flash idő:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source> lines</source>
+ <translation>sorok</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Wheel &amp;Scroll Lines:</source>
+ <translation>Kerék sor &amp;görgetés:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Resolve symlinks in URLs</source>
+ <translation>URL-ben található szimlinkek megoldása</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>GUI Effects</source>
+ <translation>GUI hatások</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>&amp;Enable</source>
+ <translation>&amp;Engedélyezés</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Alt+E</source>
+ <translation>Alt+E</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>&amp;Menu Effect:</source>
+ <translation>&amp;Menü hatás:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>C&amp;omboBox Effect:</source>
+ <translation>C&amp;omboBox hatás:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>&amp;ToolTip Effect:</source>
+ <translation>&amp;Eszköz tipp hatás:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Tool&amp;Box Effect:</source>
+ <translation>Eszköz&amp;doboz hatás:</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <location line="+19"/>
+ <location line="+14"/>
+ <location line="+19"/>
+ <source>Disable</source>
+ <translation>Tiltás</translation>
+ </message>
+ <message>
+ <location line="-47"/>
+ <location line="+19"/>
+ <location line="+14"/>
+ <location line="+19"/>
+ <source>Animate</source>
+ <translation>Animálás</translation>
+ </message>
+ <message>
+ <location line="-47"/>
+ <location line="+33"/>
+ <source>Fade</source>
+ <translation>Elhalkulás</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Global Strut</source>
+ <translation>Globális struktúra</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Minimum &amp;Width:</source>
+ <translation>Minimum &amp;szélesség:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Minimum Hei&amp;ght:</source>
+ <translation>Minimum ma&amp;gasség:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <location line="+10"/>
+ <source> pixels</source>
+ <translation>pixelek</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Enhanced support for languages written right-to-left</source>
+ <translation>Kiterjesztett támogatás a jobbról balra írt nyelvek számára</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>XIM Input Style:</source>
+ <translation>XIM beviteli stílus:</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>On The Spot</source>
+ <translation>Azon nyomban</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Over The Spot</source>
+ <translation>Célon túlmenően</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Off The Spot</source>
+ <translation>Elkalandozás</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Root</source>
+ <translation>Rendszergazda</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Default Input Method:</source>
+ <translation>Alapértelmezett beviteli eljárás:</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Printer</source>
+ <translation>Nyomtató</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Enable Font embedding</source>
+ <translation>Betű beágyazás engedélyezése</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Font Paths</source>
+ <translation>Betű útvonalak</translation>
+ </message>
+ <message>
+ <location line="+77"/>
+ <source>Browse...</source>
+ <translation>Böngészés...</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Press the &lt;b&gt;Browse&lt;/b&gt; button or enter a directory and press Enter to add them to the list.</source>
+ <translation>Nyomja meg a &lt;b&gt;Böngészés&lt;/b&gt; gombot vagy lépjen be egy könyvtárba és nyomja meg az Enter gombot hogy hozzáadja őket a listához.</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Phonon</source>
+ <translation>Phonon</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>About Phonon</source>
+ <translation>Phonon-ról</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+44"/>
+ <source>Current Version:</source>
+ <translation>Aktuális verzió:</translation>
+ </message>
+ <message>
+ <location line="-37"/>
+ <location line="+44"/>
+ <source>Not available</source>
+ <translation>Nem elérhető</translation>
+ </message>
+ <message>
+ <location line="-37"/>
+ <location line="+44"/>
+ <source>Website:</source>
+ <translation>Weblap:</translation>
+ </message>
+ <message>
+ <location line="-37"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://phonon.kde.org&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;http://phonon.kde.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://phonon.kde.org&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;http://phonon.kde.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>About GStreamer</source>
+ <translation>GStreamer-ről</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://gstreamer.freedesktop.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;http://gstreamer.freedesktop.org/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://gstreamer.freedesktop.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;http://gstreamer.freedesktop.org/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>GStreamer backend settings</source>
+ <translation>GStreamer backend beállítások</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Preferred audio sink:</source>
+ <translation>Preferrált audió tartály:</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Preferred render method:</source>
+ <translation>Preferrált render eljárás:</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Note: changes to these settings may prevent applications from starting up correctly.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Megjegyzés: Ezekben a beállításokban történő változtatások megakadályozhatják az alkalmazásokat a megfelelő betöltéstől.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="+68"/>
+ <source>&amp;File</source>
+ <translation>&amp;Fájl</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Súgó</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Mentés</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Save</source>
+ <translation>Mentés</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Ctrl+S</source>
+ <translation>Ctrl+S</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>E&amp;xit</source>
+ <translation>&amp;Kilépés</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Exit</source>
+ <translation>Kilépés</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>&amp;About</source>
+ <translation>&amp;Névjegy</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>About</source>
+ <translation>Névjegy</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>About &amp;Qt</source>
+ <translation>&amp;Qt-ról</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>About Qt</source>
+ <translation>Qt-ról</translation>
+ </message>
+</context>
+<context>
+ <name>PaletteEditorAdvancedBase</name>
+ <message>
+ <location filename="../tools/qtconfig/paletteeditoradvancedbase.ui" line="+61"/>
+ <source>Tune Palette</source>
+ <translation>Hangoló paletta</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>&lt;b&gt;Edit Palette&lt;/b&gt;&lt;p&gt;Change the palette of the current widget or form.&lt;/p&gt;&lt;p&gt;Use a generated palette or select colors for each color group and each color role.&lt;/p&gt;&lt;p&gt;The palette can be tested with different widget layouts in the preview section.&lt;/p&gt;</source>
+ <translation>&lt;b&gt;Paletta szerkesztése&lt;/b&gt;&lt;p&gt;Az aktuális widget vagy űrlap palettájának megváltoztatása&lt;/p&gt;&lt;p&gt;Egy generált paletta használata vagy szín kiválasztás mindegyik színcsoport és szín szabályra.&lt;/p&gt;&lt;p&gt;A paletta tesztelhető különböző widget szerkezetekkel az előnézeti szegmensben.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Select &amp;Palette:</source>
+ <translation>&amp;Paletta kiválasztása:</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Active Palette</source>
+ <translation>Aktív paletta</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Inactive Palette</source>
+ <translation>Inaktív paletta</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Disabled Palette</source>
+ <translation>Paletta tiltása</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>Auto</source>
+ <translation>Auto</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Build inactive palette from active</source>
+ <translation>Inaktív paletta építése aktívból</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Build disabled palette from active</source>
+ <translation>Tiltott paletta építése aktívból</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Central color &amp;roles</source>
+ <translation>Központi szín &amp;szabályok</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Choose central color role</source>
+ <translation>Központi szín szabályok kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&lt;b&gt;Select a color role.&lt;/b&gt;&lt;p&gt;Available central roles are: &lt;ul&gt; &lt;li&gt;Window - general background color.&lt;/li&gt; &lt;li&gt;WindowText - general foreground color. &lt;/li&gt; &lt;li&gt;Base - used as background color for e.g. text entry widgets, usually white or another light color. &lt;/li&gt; &lt;li&gt;Text - the foreground color used with Base. Usually this is the same as WindowText, in what case it must provide good contrast both with Window and Base. &lt;/li&gt; &lt;li&gt;Button - general button background color, where buttons need a background different from Window, as in the Macintosh style. &lt;/li&gt; &lt;li&gt;ButtonText - a foreground color used with the Button color. &lt;/li&gt; &lt;li&gt;Highlight - a color to indicate a selected or highlighted item. &lt;/li&gt; &lt;li&gt;HighlightedText - a text color that contrasts to Highlight. &lt;/li&gt; &lt;li&gt;BrightText - a text color that is very different from WindowText and contrasts well with e.g. black. &lt;/li&gt; &lt;/ul&gt; &lt;/p&gt;</source>
+ <translation>&lt;b&gt;Egy szín szabály kiválasztása.&lt;/b&gt;&lt;p&gt;Az elérhetp központi szabályok: &lt;ul&gt; &lt;li&gt;Ablak - általános háttér szín.&lt;/li&gt; &lt;li&gt;AblakSzöveg - általános előtér szín. &lt;/li&gt; &lt;li&gt;Alap - háttérszínként használva példul szöveg beviteli widgetekre, rendszerint fehér vagy más világos színekre. &lt;/li&gt; &lt;li&gt;Szöveg - az előtér szín van haszálva a bázissal. Rendszerint ez ugyanaz, mint az AblakSzöveg, amilyen esetekben egy jó ellentétet kell biztosítania mindkettőre Ablakkal és Bázissal. &lt;/li&gt; &lt;li&gt;Gomb - általános gomb háttér szín, ahol a gomboknak szüksége van egy háttére ami különbözik az ablakétól, mint a Macintosh stílusban. &lt;/li&gt; &lt;li&gt;GombSzöveg - egy előtér szín van használva gomb színnel. &lt;/li&gt; &lt;li&gt;Kihangsúlyozás - egy szín a kiválasztott vagy kihangsúlyozott elem jelölésére. &lt;/li&gt; &lt;li&gt;KihangsúlyozottSzöveg - egy szöveg szín, ami ellentétes a kihangsúlyozással. &lt;/li&gt; &lt;li&gt;VilágosSzöveg - egy szöveg szín, ami nagyon különböző az AblakSzövegtől és a kontrasztoktól jól van példul feketével. &lt;/li&gt; &lt;/ul&gt; &lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Window</source>
+ <translation>Ablak</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>WindowText</source>
+ <translation>AblakSzöveg</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Button</source>
+ <translation>Gomb</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Base</source>
+ <translation>Bázis</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Text</source>
+ <translation>Szöveg</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>BrightText</source>
+ <translation>VilágosSzöveg</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>ButtonText</source>
+ <translation>GombSzöveg</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Highlight</source>
+ <translation>Kihangsúlyozás</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>HighlightedText</source>
+ <translation>KihangsúlyozottSzöveg</translation>
+ </message>
+ <message>
+ <location line="+52"/>
+ <source>&amp;Select Color:</source>
+ <translation>Szín &amp;kiválasztása:</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <location line="+171"/>
+ <source>Choose a color</source>
+ <translation>Egy szín kiválasztása</translation>
+ </message>
+ <message>
+ <location line="-168"/>
+ <source>Choose a color for the selected central color role.</source>
+ <translation>Egy szín kiválasztása a kiválasztott központi szín szabályokra.</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>3-D shadow &amp;effects</source>
+ <translation>3 D árnyék &amp;hatások</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Build &amp;from button color</source>
+ <translation>Építés gomb szín&amp;ből</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Generate shadings</source>
+ <translation>Árnyékolások generálása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Check to let 3D-effect colors be calculated from button-color.</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Choose 3D-effect color role</source>
+ <translation>3D hatás szín szabályok kiválasztása</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&lt;b&gt;Select a color role.&lt;/b&gt;&lt;p&gt;Available effect roles are: &lt;ul&gt; &lt;li&gt;Light - lighter than Button color. &lt;/li&gt; &lt;li&gt;Midlight - between Button and Light. &lt;/li&gt; &lt;li&gt;Mid - between Button and Dark. &lt;/li&gt; &lt;li&gt;Dark - darker than Button. &lt;/li&gt; &lt;li&gt;Shadow - a very dark color. &lt;/li&gt; &lt;/ul&gt;</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Light</source>
+ <translation>Világos</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Midlight</source>
+ <translation>Központi fény</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Mid</source>
+ <translation>Középső</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Dark</source>
+ <translation>Sötét</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Shadow</source>
+ <translation>Árnyék</translation>
+ </message>
+ <message>
+ <location line="+54"/>
+ <source>Select Co&amp;lor:</source>
+ <translation>&amp;Szín kiválasztása:</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Choose a color for the selected effect color role.</source>
+ <translation>Egy szín kiválasztása a kiválaszott hatás szín szabályra.</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Close dialog and apply all changes.</source>
+ <translation>Párbeszéd ablak bezárása és az összes változtatás alkalmazása.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Cancel</source>
+ <translation>Mégse</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Close dialog and discard all changes.</source>
+ <translation>Párbeszédablak bezárása és az összes változtatás eldobása.</translation>
+ </message>
+</context>
+<context>
+ <name>PreviewFrame</name>
+ <message>
+ <location filename="../tools/qtconfig/previewframe.cpp" line="+81"/>
+ <source>Desktop settings will only take effect after an application restart.</source>
+ <translation>Az asztal beállítások kizárólag az alkalmazás újraindítása utan lépnek érvénybe.</translation>
+ </message>
+</context>
+<context>
+ <name>PreviewWidgetBase</name>
+ <message>
+ <location filename="../tools/qtconfig/previewwidgetbase.ui" line="+66"/>
+ <source>Preview Window</source>
+ <translation>Előnézet ablak</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>ButtonGroup</source>
+ <translation>GombCsoport</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>RadioButton1</source>
+ <translation>RádioGomb1</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>RadioButton2</source>
+ <translation>RádioGomb2</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>RadioButton3</source>
+ <translation>RádioGomb3</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>ButtonGroup2</source>
+ <translation>GombCsoport2</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>CheckBox1</source>
+ <translation>Jelölőnégyzet1</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>CheckBox2</source>
+ <translation>Jelölőnégyzet2</translation>
+ </message>
+ <message>
+ <location line="+36"/>
+ <source>LineEdit</source>
+ <translation>SorSzerkesztés</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>ComboBox</source>
+ <translation>ComboBox</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>PushButton</source>
+ <translation>NyomóGomb</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>&lt;p&gt;
+&lt;a href=&quot;http://qt.nokia.com&quot;&gt;http://qt.nokia.com&lt;/a&gt;
+&lt;/p&gt;
+&lt;p&gt;
+&lt;a href=&quot;http://www.kde.org&quot;&gt;http://www.kde.org&lt;/a&gt;
+&lt;/p&gt;</source>
+ <translation>&lt;p&gt;
+&lt;a href=&quot;http://qt.nokia.com&quot;&gt;http://qt.nokia.com&lt;/a&gt;
+&lt;/p&gt;
+&lt;p&gt;
+&lt;a href=&quot;http://www.kde.org&quot;&gt;http://www.kde.org&lt;/a&gt;
+&lt;/p&gt;</translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/qvfb_hu.ts b/translations/qvfb_hu.ts
new file mode 100644
index 0000000..bb8c931
--- /dev/null
+++ b/translations/qvfb_hu.ts
@@ -0,0 +1,344 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="hu">
+<context>
+ <name>AnimationSaveWidget</name>
+ <message>
+ <location filename="../tools/qvfb/qvfb.cpp" line="+865"/>
+ <location line="+204"/>
+ <source>Record</source>
+ <translation>Rekord</translation>
+ </message>
+ <message>
+ <location line="-202"/>
+ <source>Reset</source>
+ <translation>Visszaállítás</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Save</source>
+ <translation>Mentés</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Save in MPEG format (requires netpbm package installed)</source>
+ <translation>MPEG formátumba mentés (netpbm csomag telepítése szükséges)</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <location line="+206"/>
+ <source>Click record to begin recording.</source>
+ <translation>Kattintson az írásra az írás megkezdéséhez.</translation>
+ </message>
+ <message>
+ <location line="-115"/>
+ <location line="+147"/>
+ <source>Finished saving.</source>
+ <translation>Befejezett mentés.</translation>
+ </message>
+ <message>
+ <location line="-63"/>
+ <source>Paused. Click record to resume, or save if done.</source>
+ <translation>Szüneteltetve. Kattintson az írásra a folytatáshoz, vagy mentse el, ha kész.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Pause</source>
+ <translation>Szünet</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Recording...</source>
+ <translation>Felvétel...</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>Saving... </source>
+ <translation>Mentés...</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <location line="+4"/>
+ <source>Save animation...</source>
+ <translation>Animáció mentése...</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Save canceled.</source>
+ <translation>Megnés visszavonva.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Save failed!</source>
+ <translation>Mentési hiba!</translation>
+ </message>
+</context>
+<context>
+ <name>Config</name>
+ <message>
+ <location filename="../tools/qvfb/config.ui" line="+54"/>
+ <source>Configure</source>
+ <translation>Konfigurálás</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Size</source>
+ <translation>Méret</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>176x220 &quot;SmartPhone&quot;</source>
+ <translation>176x220 &quot;ÜgyesTelefon&quot;</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>240x320 &quot;PDA&quot;</source>
+ <translation>240x320 &quot;PDA&quot;</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>320x240 &quot;TV&quot; / &quot;QVGA&quot;</source>
+ <translation>320x240 &quot;TV&quot; / &quot;QVGA&quot;</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>640x480 &quot;VGA&quot;</source>
+ <translation>640x480 &quot;VGA&quot;</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>800x600</source>
+ <translation>800x600</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>1024x768</source>
+ <translation>1024x768</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>Custom</source>
+ <translation>Szokásos</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Depth</source>
+ <translation>Mélység</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>1 bit monochrome</source>
+ <translation>1 bites egyszínű</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>2 bit grayscale</source>
+ <translation>2 bites szürke skálázás</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>4 bit grayscale</source>
+ <translation>4 bites szürke slálázás</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>8 bit</source>
+ <translation>8 bites</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>12 (16) bit</source>
+ <translation>12 (16) bites</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>15 bit</source>
+ <translation>15 bites</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>16 bit</source>
+ <translation>16 bites</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>18 bit</source>
+ <translation>18 bites</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>24 bit</source>
+ <translation>24 bites</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>32 bit</source>
+ <translation>32 bites</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>32 bit ARGB</source>
+ <translation>32 bites ARGB</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Swap red and blue channels</source>
+ <translation>Piros és kék csatornák felcserélése</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>BGR format</source>
+ <translation>BGR formátum</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Skin</source>
+ <translation>Szkin</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>None</source>
+ <translation>Semmi</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Emulate touch screen (no mouse move)</source>
+ <translatorcomment>указателя?</translatorcomment>
+ <translation>Érintő képernyő emulálása (nincs egér mozgatás)</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Emulate LCD screen (Only with fixed zoom of 3.0 times magnification)</source>
+ <translation>LCD kijelző emulálása (Kizárólag egy fix 3-szoros nagyítással)</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>&lt;p&gt;Note that any applications using the virtual framebuffer will be terminated if you change the Size or Depth &lt;i&gt;above&lt;/i&gt;. You may freely modify the Gamma &lt;i&gt;below&lt;/i&gt;.</source>
+ <translation>&lt;p&gt;Vegye figyelembe azt, hogy bármely alkalmazás, amely virtuális framebuffer-t használ, be lesz fejezve, ha megváltoztatja a méretet vagy a mélységet &lt;i&gt;felül&lt;/i&gt;. Szabadon módosíthatja a Gamma-t &lt;i&gt;alul&lt;/i&gt;.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Gamma</source>
+ <translation>Gamma</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Blue</source>
+ <translation>Kék</translation>
+ </message>
+ <message>
+ <location line="+489"/>
+ <location line="+496"/>
+ <location line="+14"/>
+ <location line="+496"/>
+ <source>1.0</source>
+ <translation>1.0</translation>
+ </message>
+ <message>
+ <location line="-999"/>
+ <source>Green</source>
+ <translation>Zöld</translation>
+ </message>
+ <message>
+ <location line="+496"/>
+ <source>All</source>
+ <translation>Mind</translation>
+ </message>
+ <message>
+ <location line="+496"/>
+ <source>Red</source>
+ <translation>Piros</translation>
+ </message>
+ <message>
+ <location line="+496"/>
+ <source>Set all to 1.0</source>
+ <translation>Az összes 1.0-ra állítása</translation>
+ </message>
+ <message>
+ <location line="+34"/>
+ <source>&amp;OK</source>
+ <translation>&amp;OK</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Mégse</translation>
+ </message>
+</context>
+<context>
+ <name>DeviceSkin</name>
+ <message>
+ <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+79"/>
+ <source>The image file &apos;%1&apos; could not be loaded.</source>
+ <translation>Nem sikerült betölteni a(z) &apos;%1&apos; kép fájlt.</translation>
+ </message>
+ <message>
+ <location line="+64"/>
+ <source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
+ <translation>A(z) &apos;%1&apos; skin könyvtár nem tartalmaz egyetlen konfigurációs fájlt sem.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>The skin configuration file &apos;%1&apos; could not be opened.</source>
+ <translation>Nem lehetett megnyitni a(z) &apos;%1&apos; skin konfigurációs fájlt.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
+ <translation>Nem lehetett olvasni a(z) &apos;%1&apos; skin konfigurációs fájlt: %2</translation>
+ </message>
+ <message>
+ <location line="+70"/>
+ <source>Syntax error: %1</source>
+ <translation>Szintakszis hiba: %1</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>The skin &quot;up&quot; image file &apos;%1&apos; does not exist.</source>
+ <translation>A(z) &apos;%1 &apos;fel&apos; skinezett kép fájl nem létezik.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
+ <translation>A(z) &apos;%1 &apos;le&apos; skinezett kép fájl nem létezik.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
+ <translation>A(z) &apos;%1&apos; skin &quot;bezárt&quot; kép fájl nem létezik.</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>The skin cursor image file &apos;%1&apos; does not exist.</source>
+ <translation>A(z) &apos;%1&apos; skin kurzor kép fájl nem létezik.</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Syntax error in area definition: %1</source>
+ <translation>Szintaszis hiba a terület definícióban: %1</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Mismatch in number of areas, expected %1, got %2.</source>
+ <translation>Nem megfelelő terület szám, %1 várt, %2 kapott.</translation>
+ </message>
+</context>
+<context>
+ <name>QVFb</name>
+ <message>
+ <location filename="../tools/qvfb/qvfb.cpp" line="-501"/>
+ <source>Browse...</source>
+ <translation>Böngészés...</translation>
+ </message>
+ <message>
+ <location line="+140"/>
+ <source>Load Custom Skin...</source>
+ <translation>Szokásos skin betöltése...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>All QVFB Skins (*.skin)</source>
+ <translation>Minden QVFB skin (*.skin)</translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/translations.pri b/translations/translations.pri
index 2b97a14..808dc4f 100644
--- a/translations/translations.pri
+++ b/translations/translations.pri
@@ -17,7 +17,7 @@ LUPDATE += -locations relative -no-ui-lines
###### Qt Libraries
-QT_TS = ar da de es fr iw ja_JP pl pt ru sk sl sv uk zh_CN zh_TW
+QT_TS = ar cs da de es fr hu iw ja_JP pl pt ru sk sl sv uk zh_CN zh_TW
ts-qt.commands = (cd $$QT_SOURCE_TREE/src && $$LUPDATE \
-I../include -I../include/Qt \
diff --git a/util/s60pixelmetrics/pixel_metrics.cpp b/util/s60pixelmetrics/pixel_metrics.cpp
index 705c0ec..93873fb 100644
--- a/util/s60pixelmetrics/pixel_metrics.cpp
+++ b/util/s60pixelmetrics/pixel_metrics.cpp
@@ -50,7 +50,7 @@
// so that we can keep dynamic and static values inline.
// Please adjust version data if correcting dynamic PM calculations.
const TInt KPMMajorVersion = 1;
-const TInt KPMMinorVersion = 15;
+const TInt KPMMinorVersion = 16;
TPixelMetricsVersion PixelMetrics::Version()
{
@@ -855,19 +855,26 @@ TInt PixelMetrics::PixelMetricValue(QStyle::PixelMetric metric)
case QStyle::PM_FocusFrameHMargin:
case QStyle::PM_FocusFrameVMargin:
{
- TAknLayoutRect gridRect;
- gridRect.LayoutRect(mainPaneRect, AknLayoutScalable_Avkon::grid_highlight_pane(0));
- TAknLayoutRect gridRectCenter;
- gridRectCenter.LayoutRect(mainPaneRect, AknLayoutScalable_Avkon::cell_highlight_pane_g1());
+ TAknLayoutRect listScrollPane;
+ listScrollPane.LayoutRect(mainPaneRect, AknLayoutScalable_Avkon::listscroll_gen_pane(0));
+ TAknLayoutRect listGenPane;
+ listGenPane.LayoutRect(listScrollPane.Rect(), AknLayoutScalable_Avkon::list_gen_pane(0));
+ TAknLayoutRect listSinglePane;
+ listSinglePane.LayoutRect(listGenPane.Rect(), AknLayoutScalable_Avkon::list_single_pane(0));
+ TAknLayoutText listSinglePaneText;
+ listSinglePaneText.LayoutText(listSinglePane.Rect(), AknLayoutScalable_Avkon::list_single_pane_t1(0));
+ TAknLayoutRect highlightRect;
+ highlightRect.LayoutRect(listSinglePane.Rect(), AknLayoutScalable_Avkon::list_highlight_pane_cp1().LayoutLine());
// The difference of center piece from border tell the frame width.
if ( value == QStyle::PM_FocusFrameHMargin)
{
- value = gridRect.Rect().iBr.iX - gridRectCenter.Rect().iBr.iX;
+ //use topleft for horizontal as S60 uses different values for right and left borders
+ value = listSinglePaneText.TextRect().iTl.iX - highlightRect.Rect().iTl.iX;
}
else
{
- value = gridRect.Rect().iBr.iY - gridRectCenter.Rect().iBr.iY;
+ value = highlightRect.Rect().iBr.iY - listSinglePaneText.TextRect().iBr.iY;
}
}
break;